WhitneyAVSolver - Relative Permeability dependent of Magnetic Field Strength direction

Numerical methods and mathematical models of Elmer
Post Reply
szewro
Posts: 28
Joined: 01 Feb 2014, 18:57
Antispam: Yes
Location: Warsaw, Poland

WhitneyAVSolver - Relative Permeability dependent of Magnetic Field Strength direction

Post by szewro »

Dear All,

I am trying to model systems with anisotropic magnetic materials where Relative Permeability is dependent on the direction of Magnetic Field Strength vector. I am using WhitneyAVSolver.

As a result I try to define Relative Permeability as a function of Magnetic Field Strength described in MATC as the linear characteristic with saturation:

Code: Select all

Material 3
	Name = "ferro"
	Electric Conductivity = Real 1.0e7 

	Relative Permeability = Variable Magnetic Field Strength 1, Magnetic Field Strength 2
        Real MATC "x=tx(0);y=tx(1);H=sqrt(x^2+y^2);if(H<600) {1.3262912e3} else {7.9577472e5/H}"

End
However, it is not working. Magnetic Field Strength seems to be not transmitted to MATC and Relative Permeability is always equal 1.3262912e3.

I know, that magnetic B(H) curve can be described by H-B curve:

Code: Select all

H-B Curve = Variable coupled iter
         Real Monotone Cubic
         Include Hb
       End
Unfortunately, it can't be Magnetic Field Strength direction dependent. Moreover, I plan to connect Relative Permeability with mechanical stresses (within multisolver capabilities). As a result, I really need to describe relative permeability as a function of Magnetic Field Strength and other variables.

Do you have any idea, how to overcome this problem?

In the first step, I plan to connect Relative Permeability with Magnetic Field Strength absolute value, next with its direction and finally with its direction and mechanical stresses.

With best regards!

Roman
szewro
Posts: 28
Joined: 01 Feb 2014, 18:57
Antispam: Yes
Location: Warsaw, Poland

Re: WhitneyAVSolver - Relative Permeability dependent of Magnetic Field Strength direction

Post by szewro »

I also send the complete .sif file to clarify the problem

Code: Select all


Header
	CHECK KEYWORDS Warn
	Mesh DB "." "ring_ext"
	Include Path ""
	Results Directory "."
End

Simulation
	Mesh Levels = 1
	Max Output Level = 5
	Coordinate System = "Cartesian 3D"  
	Coordinate Mapping(3) = 1 2 3  
	Simulation Type = Steady state
	Steady State Max Iterations = 1
	Output Intervals = 1
	Timestepping Method = BDF
	BDF Order = 1
	Post File = "ring_ext.ep"
End

Constants
	Gravity(4) = 0 -1 0 9.82
	Stefan Boltzmann = 5.67e-08
	Permittivity of Vacuum = 8.8542e-12
	Boltzmann Constant = 1.3807e-23
	Unit Charge = 1.602e-19
End

! ------ MATERIALS --------

Material 1
	Name = "air"
	Electric Conductivity = Real 0.0
	Relative Permeability = Real 1.0
End


Material 2
	Name = "copper"
	Electric Conductivity = 6.0e3 ! 6.0e7
	Relative Permeability = 1.0
End

Material 3
	Name = "ferro"
	Electric Conductivity = 1.0e7 ! 104.058
	Relative Permeability = Variable Magnetic Field Strength 1, Magnetic Field Strength 2
        Real MATC "x=tx(0);y=tx(1);H=sqrt(x^2+y^2);if(H<600) {1.3262912e3} else {7.9577472e5/H}"
End


! ------- BODIES ----------

Body 1
	Target Bodies (1) = 1 
	Name = "Core"
	Equation = 1
	Material = 3
End

Body 2
	Target Bodies (1) = 2
	Name = "Wire"
	Equation = 2
	Material = 2
	Body Force = 1
End

Body 3
	Target Bodies (1) = 3
	Name = "Range"
	Equation = 1
	Material = 1
End


! --------- SOLVERS --------

Solver 1
	Equation = "Static Current Driver"
	!Exec Solver = Before Simulation
	Calculate Loads = False
	Variable = Potential
	Variable DOFs = 1
	Procedure = "StatCurrentSolve" "StatCurrentSolver"
	Stabilize = True
	Bubbles = False
	Lumped Mass Matrix = False
	Optimize Bandwidth = True
	Calculate Volume Current = True
	Calculate Joule Heating = False
	Steady State Convergence Tolerance = 1.0e-8
	Nonlinear System Convergence Tolerance = 4e-10
	Nonlinear System Max Iterations = 200
	Nonlinear System Newton After Iterations = 6
	Nonlinear System Newton After Tolerance = 1.0e-8
	Nonlinear System Relaxation Factor = 1
	Linear System Solver = Iterative
	Linear System Iterative Method = BiCGStab
	Linear System Max Iterations = 10000
	Linear System Convergence Tolerance = 1.0e-9
	Linear System Preconditioning = ILU0
	Linear System ILUT Tolerance = 1.0e-6
	Linear System Abort Not Converged = False
	Linear System Residual Output = 1
	Linear System Precondition Recompute = 1
End

Solver 2
       Equation = "MGDynamics"
       Exec Solver = After Timestep
       Variable = "A"

       Procedure = "MagnetoDynamics" "WhitneyAVSolver"
       Fix Input Current Density = Logical True

       Newton-Raphson Iteration = Logical True
       Nonlinear System Max Iterations = 1
       Nonlinear System Convergence Tolerance = 7.0e-10

       Linear System Symmetric = Logical True
       Linear System Solver = "Iterative"
       Linear System Preconditioning = None
       Linear System Convergence Tolerance = 7.0e-10
       Linear System Residual Output = 100
       Linear System Max Iterations = 5000
       Linear System Iterative Method = CG
       Steady State Convergence Tolerance = 7.0e-10
End

Solver 3
 	Equation = "MGDynamicsCalc"
	Exec Solver = After Timestep
  	Procedure = "MagnetoDynamics" "MagnetoDynamicsCalcFields"
  	Linear System Symmetric = True
	
  	Potential Variable = String "A"
	
 	Calculate Magnetic Vector Potential = Logical True
 	Calculate Current Density = Logical True
  	Calculate Joule Heating = Logical True
  	Calculate Electric Field = Logical True
 	Calculate Magnetic Flux Density = Logical True
	Calculate Magnetic Field Strength = Logical True

  	Steady State Convergence Tolerance = 1
 	Linear System Solver = "Iterative"
 	Linear System Preconditioning = none !ILU2
 	Linear System Residual Output = 0
  	Linear System Max Iterations = 5000
 	Linear System Iterative Method = Bicgstabl
	Linear System Convergence Tolerance = 7.0e-10
End 

Solver 4
  	Exec Solver = After all
  	! Exec Interval = 2
  	Equation = "result output"
  	Procedure = "ResultOutputSolve" "ResultOutputSolver"
  	Save Geometry Ids = Logical True ! add this line if you want to access boundaries in Paraview
  	Output File Name = File "ring_ext.vtu"
  	Output Format = String vtu
End

Solver 5
	Exec Solver = After all
	Equation = SaveGrid2
	Procedure = "SaveGridData" "SaveGridData"
	Filename Prefix = String MagnFluxDensity
	Output Format = String table
	Check for Duplicates = Logical True

	Grid nx = Integer 500
	Grid ny = Integer 500
	Grid nz = Integer 1
	
	Min Coordinate 1 = Real -0.018
	Min Coordinate 2 = Real -0.018
	Min Coordinate 3 = Real -0.000001

	Max Coordinate 1 = Real 0.018
	Max Coordinate 2 = Real 0.018
	Max Coordinate 3 = Real 0.0000001

	Vector Field 1 = String magnetic flux density

End


! -------- EQUATIONS ----------
Equation 1
	Name = "Equation1"
	Active Solvers (5) =  1 2 3 4 5
End

Equation 2
	Name = "Equation2"
	Active Solvers (2) = 1 2
End


!---------BODY FORCE------

Body Force 1
	Name = "Current Density1"
	Current Density 1 = Equals Volume current 1
	Current Density 2 = Equals Volume current 2
	Current Density 3 = Equals Volume current 3
End


! ------- BOUNDARY CONDITIONS -------


Boundary Condition 1
	Target Boundaries = 4
	Name = "ground1"
	Potential = 0
End

Boundary Condition 2
	Target Boundaries = 5
	Name = "Ua1"
	Potential = 500
End

Boundary Condition 3
	Target Boundaries(1) = 8
	Name = "far"
  	Magnetic Flux Density 1 = Real 0
   	Magnetic Flux Density 2 = Real 0 
   	Magnetic Flux Density 3 = Real 0
End

Post Reply