I`ve got a problem with the sliding/moving mesh for a electrical machine. In my problem I have an outer iron ring with a magnet and air body. For rotation I have a rotating square core with air. All outer boundaries are Vpot=0. My sif file:
Code: Select all
$ p = 1 ! pole pairs
$ dangle = 45 ! angle for d-axis in degree
$ skew_angle = 00 ! skewing angle in degree
$ skew_length = 100 ! base length for skewing (epM: stack length)
$ speed = 1000 ! rotational speed in rpm
$ N_period = 1 ! number of electrical periods
$ Nsteps = 90 ! number of steps
$ w_mech = 2.0*pi*speed/60.0
$ T = 1.0/(speed/60.0*p)*N_period
$ dt = T / Nsteps
Header
CHECK KEYWORDS Warn
Mesh DB "mesh" "."
Include Path ""
Results Directory "results"
End
!// include "mesh/entities.sif"
Simulation
Max Output Level = 3
Coordinate System = "Cartesian 3D"
Coordinate Scaling = 0.001
Simulation Type = Transient
Timestep Size = $dt
Timestep Intervals = $Nsteps+1
Timestepping Method = BDF
BDF order = 2
Steady State Max Iterations = 10
Output Intervals = 100
Use Mesh Names = Logical True
!// !!!!!!!! mesh interpolation tolerances
Interpolation Numeric Epsilon = Real 5.0e-9
End
!!!!!!!!!!!!!!!!!!!!!!!!!! Materials !!!!!!!!!!!!!!!!!!!!!!!!!!!
Material 1
Name = "Air"
Relative Permeability = 1
End
Material 2
Name = "iron"
Relative Permeability = 1000
End
Material 3
Name = "Ferritband"
Relative Permeability = 1.05
Magnetization 1 = 187196.5283
Magnetization 2 = 0
Magnetization 3 = 0
End
!!!!!!!!!!!!!!!!!!!!!!!!!! Boundary conditions !!!!!!!!!!!!!!!!!!!!!!!!!!!
Boundary Condition 1
Target Boundaries(11) = 2 3 4 5 6 7 8 9 10 11 12
Name = "Boundary_Outer"
AV {e} = Real 0
End
!!!!!!!!!!!!!!!!!!!!!!!!!! Solver parameters !!!!!!!!!!!!!!!!!!!!!!!!!!!
! solver for magnetic vector potential A [Vs/m]
Solver 1
Equation = "MGDynamics"
Procedure = "MagnetoDynamics" "WhitneyAVSolver"
Variable = "AV"
Apply Mortar BCs = Logical True
! Fix Input Current Density = Logical True
Nonlinear System Convergence Tolerance = 1.0e-4
Nonlinear System Max Iterations = 50
Nonlinear System Relaxation Factor = 1
Newton-Raphson Iteration = Logical True
! Linear System Solver = Direct
! Linear System Direct Method = UMFPACK
Linear System Symmetric = Logical True
Linear System Solver = "Iterative"
Linear System Preconditioning = None
Linear System Convergence Tolerance = 1e-8
Linear System Residual Output = 100
Linear System Max Iterations = 5000
Linear System Iterative Method = CG ! CG CGS BiCGStab l TFQMR GMRES GCR
End
Solver 2
Equation = "MGDynamicsCalc"
Procedure = "MagnetoDynamics" "MagnetoDynamicsCalcFields"
Linear System Symmetric = True
Potential Variable = "AV"
!// Apply Mortar BCs = Logical True
Calculate Magnetic Field Strength = Logical True
Calculate Current Density = Logical True
Calculate nodal forces = logical true
Calculate Magnetic Vector Potential = Logical True
! Linear System Solver = Direct
! Linear System Direct Method = UMFPACK
Linear System Solver = "Iterative"
Linear System Preconditioning = None
Linear System Residual Output = 100
Linear System Max Iterations = 5000
Linear System Iterative Method = CG
Steady State Convergence Tolerance = 1e-6
Linear System Convergence Tolerance = 1.0e-8
End
!save to VTU format for ParaView with faces' IDs
Solver 3
Exec Solver = After Timestep
Procedure = "ResultOutputSolve" "ResultOutputSolver"
Output File Name = "step"
! Save Nodal Fields = Logical True
Vtu Format = True
Binary Output = True
Single Precision = True
Save Geometry Ids = True
End
Equation 1
Name = "ModelDomain"
Active Solvers(3) = 1 2 3
End
!!!!!!!!!!!!!!!!!!!!!!!!!! Bodies are here !!!!!!!!!!!!!!!!!!!!!!!!!!!
Body 1
Name = "yoke"
Equation = 1
Material = 2
End
Body 2
Name = "magnet"
Equation = 1
Material = 3
End
Body 3
Name = "air2"
Equation = 1
Material = 1
End
Body 4
Name = "air1"
Equation = 1
Material = 1
Body Force = 1
End
Body 5
Name = "core"
Equation = 1
Material = 2
Body Force = 1
End
But now I want to move the core and the inner mesh. Therefore I use the mortar boundary:
Code: Select all
$ p = 1 ! pole pairs
$ dangle = 45 ! angle for d-axis in degree
$ skew_angle = 00 ! skewing angle in degree
$ skew_length = 100 ! base length for skewing (epM: stack length)
$ speed = 1000 ! rotational speed in rpm
$ N_period = 1 ! number of electrical periods
$ Nsteps = 90 ! number of steps
$ w_mech = 2.0*pi*speed/60.0
$ T = 1.0/(speed/60.0*p)*N_period
$ dt = T / Nsteps
Header
CHECK KEYWORDS Warn
Mesh DB "mesh" "."
Include Path ""
Results Directory "results"
End
!// include "mesh/entities.sif"
Simulation
Max Output Level = 3
Coordinate System = "Cartesian 3D"
Coordinate Scaling = 0.001
Simulation Type = Transient
Timestep Size = $dt
Timestep Intervals = $Nsteps+1
Timestepping Method = BDF
BDF order = 2
Steady State Max Iterations = 10
Output Intervals = 100
Use Mesh Names = Logical True
!// !!!!!!!! mesh interpolation tolerances
Interpolation Numeric Epsilon = Real 5.0e-9
End
!!!!!!!!!!!!!!!!!!!!!!!!!! Materials !!!!!!!!!!!!!!!!!!!!!!!!!!!
Material 1
Name = "Air"
Relative Permeability = 1
End
Material 2
Name = "iron"
Relative Permeability = 1000
End
Material 3
Name = "Ferritband"
Relative Permeability = 1.05
Magnetization 1 = 187196.5283
Magnetization 2 = 0
Magnetization 3 = 0
End
!!!!!!!!!!!!!!!!!!!!!!!!!! Boundary conditions !!!!!!!!!!!!!!!!!!!!!!!!!!!
Boundary Condition 1
Target Boundaries(11) = 2 3 4 5 6 7 8 9 10 11 12
Name = "Boundary_Outer"
AV {e} = Real 0
End
Boundary Condition 2
Target Boundaries(1) = 1
Name = "slide"
Discontinuous Boundary = Logical True
!// Save Line = True
Mortar BC = 3
!// Discontinuous BC = 3
!// Galerkin Projector = Logical True ! programm error on step 2
!// Rotational Projector = Logical True ! too much mesh skew
Sliding Projector = Logical True ! programm error on step 2
!// Cylindrical Projector = Logical True ! too much mesh skew
!// Radial Projector = Logical True ! leads to singular matrix
!// Level Projector = Logical True ! leads to singular matrix
!// Plane Projector = Logical True ! too much mesh skew
End
!!!!!!!!!!!!!!!!!!!!!!!!!! Body Forces !!!!!!!!!!!!!!!!!!!!!!!!!!!
!// rotation of the rotor
Body Force 1
Name = "BodyForce_Rotation"
Mesh Rotate 3 = Variable time, timestep size
Real MATC "180/pi*w_mech*(tx(0)-tx(1))" ! in degrees
End
!!!!!!!!!!!!!!!!!!!!!!!!!! Solver parameters !!!!!!!!!!!!!!!!!!!!!!!!!!!
!mesh rotation
Solver 1
Exec Solver = Before Timestep
Equation = MeshDeform
Procedure = "RigidMeshMapper" "RigidMeshMapper"
End
! solver for magnetic vector potential A [Vs/m]
Solver 2
Equation = "MGDynamics"
Procedure = "MagnetoDynamics" "WhitneyAVSolver"
Variable = "AV"
Apply Mortar BCs = Logical True
! Fix Input Current Density = Logical True
Nonlinear System Convergence Tolerance = 1.0e-4
Nonlinear System Max Iterations = 50
Nonlinear System Relaxation Factor = 1
Newton-Raphson Iteration = Logical True
Linear System Symmetric = Logical True
Linear System Solver = "Iterative"
Linear System Preconditioning = None
Linear System Convergence Tolerance = 1e-8
Linear System Residual Output = 100
Linear System Max Iterations = 5000
Linear System Iterative Method = CG ! CG CGS BiCGStab l TFQMR GMRES GCR
End
Solver 3
Equation = "MGDynamicsCalc"
Procedure = "MagnetoDynamics" "MagnetoDynamicsCalcFields"
Linear System Symmetric = True
Potential Variable = "AV"
Calculate Magnetic Field Strength = Logical True
Calculate Current Density = Logical True
Calculate nodal forces = logical true
Calculate Magnetic Vector Potential = Logical True
Linear System Solver = "Iterative"
Linear System Preconditioning = None
Linear System Residual Output = 100
Linear System Max Iterations = 5000
Linear System Iterative Method = CG
Steady State Convergence Tolerance = 1e-6
Linear System Convergence Tolerance = 1.0e-8
End
!save to VTU format for ParaView with faces' IDs
Solver 4
Exec Solver = After Timestep
Procedure = "ResultOutputSolve" "ResultOutputSolver"
Output File Name = "step"
! Save Nodal Fields = Logical True
Vtu Format = True
Binary Output = True
Single Precision = True
Save Geometry Ids = True
End
!// save scalar variables - torque T [Nm]
Solver 5
Exec Solver = After Timestep
Filename = "scalars.dat"
Procedure = "SaveData" "SaveScalars"
Show Norm Index = 1
End
Equation 1
Name = "ModelDomain"
Active Solvers(5) = 1 2 3 4 5
End
!!!!!!!!!!!!!!!!!!!!!!!!!! Bodies are here !!!!!!!!!!!!!!!!!!!!!!!!!!!
Body 1
Name = "yoke"
Equation = 1
Material = 2
End
Body 2
Name = "magnet"
Equation = 1
Material = 3
End
Body 3
Name = "air2"
Equation = 1
Material = 1
End
Body 4
Name = "air1"
Equation = 1
Material = 1
Body Force = 1
End
Body 5
Name = "core"
Equation = 1
Material = 2
Body Force = 1
End
What I am doing wrong with the sliding mesh?
Best regards
Martin