Page 1 of 1

WhitneyAVSolver – No Values for Variable AV

Posted: 24 Aug 2019, 16:05
by anton1ret
Task: Magnetic field 3D of two Permanent Magnet

Hello erveryone,

I first tried to calculate a geometry, which I solved successfully two-dimensionally, 3-dimensionally for comparison, before it gets more complicated.

I have tried a lot of settings, including completely different settings of solvers, which I found here in an example. But for the magnetic field AV I only get values close to 0.

The other values are comparable to the two-dimensional solution. Certainly the values are not the same, it is also another idealization and net geometry.

But can anyone tell me how i can get values for the paramter AV.

I attach the input and output file.

Very best regards,
Anton.

Version: 4.5.0 - Build 24.20.100.6292 on Windows 10 and
3.1 Mesa 18.2.8 on Linux 18.04, 64bit
Intel I7-8750H with 32 GB RAM an a fast SSD harddisk

Code: Select all

!!! case.sif !!!
Header
  CHECK KEYWORDS Warn
  Mesh DB "." "."
  Include Path ""
  Results Directory ""
End

Simulation
  Max Output Level = 5
  Coordinate System = Cartesian
  Coordinate Scaling = Real 0.001		! mm to meter
  Coordinate Mapping(3) = 1 2 3
  Simulation Type = Steady state
  Steady State Max Iterations = 1
  Output Intervals = 1
  Timestepping Method = BDF
  BDF Order = 1
  Solver Input File = case.sif
End

Constants
  Permittivity of Vacuum = 8.8542e-12
  Boltzmann Constant = 1.3807e-23
  Unit Charge = 1.602e-19
End

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

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

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

Solver 1
  Equation = MgDyn
  Procedure = "MagnetoDynamics" "WhitneyAVSolver"
  Variable =  AV
  Exec Solver = Always
  Stabilize = True
  Bubbles = False
  Lumped Mass Matrix = False
  Optimize Bandwidth = True
  Steady State Convergence Tolerance = 1.0e-5
  Nonlinear System Convergence Tolerance = 1.0e-7
  Nonlinear System Max Iterations = 20
  Nonlinear System Newton After Iterations = 3
  Nonlinear System Newton After Tolerance = 1.0e-3
  Nonlinear System Relaxation Factor = 1
  Linear System Solver = Iterative
  Linear System Iterative Method = BiCGStab
  Linear System Max Iterations = 1000
  Linear System Convergence Tolerance = 1.0e-10
  BiCGstabl polynomial degree = 2
  Linear System Preconditioning = ILU0
  Linear System ILUT Tolerance = 1.0e-3
  Linear System Abort Not Converged = False
  Linear System Residual Output = 10
  Linear System Precondition Recompute = 1
End

Solver 2
  Equation = MgDynPost
  Procedure = "MagnetoDynamics" "MagnetoDynamicsCalcFields"
  Potential Variable = String "AV"
  Exec Solver = Always
  Stabilize = True
  Bubbles = False
  Lumped Mass Matrix = False
  Optimize Bandwidth = True
  Steady State Convergence Tolerance = 1.0e-5
  Nonlinear System Convergence Tolerance = 1.0e-7
  Nonlinear System Max Iterations = 20
  Nonlinear System Newton After Iterations = 3
  Nonlinear System Newton After Tolerance = 1.0e-3
  Nonlinear System Relaxation Factor = 1
  Linear System Solver = Iterative
  Linear System Iterative Method = BiCGStab
  Linear System Max Iterations = 1000
  Linear System Convergence Tolerance = 1.0e-10
  BiCGstabl polynomial degree = 2
  Linear System Preconditioning = ILU0
  Linear System ILUT Tolerance = 1.0e-3
  Linear System Abort Not Converged = False
  Linear System Residual Output = 10
  Linear System Precondition Recompute = 1
  Calculate Magnetic Vector Potential = logical True
  Calculate Magnetic Field Strength = logical True
  Calculate Nodal Forces = logical true
End

!!! Save the fields to a file
Solver 3
  Exec Solver = After Timestep
  Equation = ResultOutput
  Procedure = "ResultOutputSolve" "ResultOutputSolver"

  Output File Name = "step"
  Output Directory = "results"
  
  ! VTU format for ParaView with faces' IDs
  Save Geometry Ids = logical True
  Vtu Format = logical True
  !Ascii Output = False
  !Binary Output = logical True
  !Single Precision = logical True
End

Solver 4
  Exec Solver = After Timestep
  Equation = SaveScalars
  Procedure = "SaveData" "SaveScalars"

  Filename = "results.dat"
  Output Directory = "results"

  Save Component Results = logical True
End

Equation 1
  Name = "MGDyn"
  Active Solvers(4) = 1 2 3 4
End


Material 1
  Name = "air"
  Relative Permeability = 1
End

Material 2
  Name = "magnet1"
  Relative Permeability = 1.216
  Magnetization 2 = Real 942.0e3
End

Material 3
  Name = "magnet3"
  Relative Permeability = 1.216
  Magnetization 2 = Real 666.0e3
  Magnetization 1 = Real 666.0e3
End

Boundary Condition 1
  Target Boundaries(1) = 4 
  Name = "farvield"
!  Infinity BC = True
  AV {e} = Real 0
!  AV {e} 1 = Real 0
!  AV {e} 2 = Real 0
End

Component 1
  Name = string "force"
  Master Bodies(1) = integer 2
  Calculate Magnetic Force = Logical True
!  Save Scalars = Logical True
End

Code: Select all

!!! case.out !!!
ELMER SOLVER (v 8.3) STARTED AT: 2019/08/23 12:19:25
ParCommInit:  Initialize #PEs:            1
MAIN: 
MAIN: =============================================================
MAIN: ElmerSolver finite element software, Welcome!
MAIN: This program is free software licensed under (L)GPL
MAIN: Copyright 1st April 1995 - , CSC - IT Center for Science Ltd.
MAIN: Webpage http://www.csc.fi/elmer, Email elmeradm@csc.fi
MAIN: Version: 8.3 (Rev: 432ee0dd, Compiled: 2018-12-18)
MAIN:  Running one task without MPI parallelization.
MAIN:  Running with just one thread per task.
MAIN:  Lua interpreted linked in.
MAIN: =============================================================
MAIN: 
MAIN: 
MAIN: -------------------------------------
MAIN: Reading Model: case.sif
LoadInputFile: Scanning input file: case.sif

LoadInputFile: Loading input file: case.sif
Loading user function library: [MagnetoDynamics]...[WhitneyAVSolver_Init0]
Loading user function library: [MagnetoDynamics]...[MagnetoDynamicsCalcFields_Init0]
Loading user function library: [ResultOutputSolve]...[ResultOutputSolver_Init0]
Loading user function library: [SaveData]...[SaveScalars_Init0]
LoadMesh: Base mesh name: ./.

LoadMesh: Scaling coordinates: 1.000E-03 1.000E-03 1.000E-03

LoadMesh: Elapsed REAL time:     2.2330 (s)

MAIN: -------------------------------------
Loading user function library: [MagnetoDynamics]...[WhitneyAVSolver_Init]
Loading user function library: [MagnetoDynamics]...[WhitneyAVSolver_bulk]
Loading user function library: [MagnetoDynamics]...[WhitneyAVSolver]
OptimizeBandwidth: ---------------------------------------------------------

OptimizeBandwidth: Computing matrix structure for: mgdyn...done.
OptimizeBandwidth: Half bandwidth without optimization: 269367
OptimizeBandwidth: 

OptimizeBandwidth: Bandwidth Optimization ...done.
OptimizeBandwidth: Half bandwidth after optimization: 13810
OptimizeBandwidth: ---------------------------------------------------------

Loading user function library: [MagnetoDynamics]...[MagnetoDynamicsCalcFields_Init]
Loading user function library: [MagnetoDynamics]...[MagnetoDynamicsCalcFields_bulk]
Loading user function library: [MagnetoDynamics]...[MagnetoDynamicsCalcFields]
OptimizeBandwidth: ---------------------------------------------------------
OptimizeBandwidth: Computing matrix structure for: mgdynpost...done.
OptimizeBandwidth: Half bandwidth without optimization: 40470
OptimizeBandwidth: 

OptimizeBandwidth: Bandwidth Optimization ...done.
OptimizeBandwidth: Half bandwidth after optimization: 3303
OptimizeBandwidth: ---------------------------------------------------------

Loading user function library: [ResultOutputSolve]...[ResultOutputSolver_Init]
Loading user function library: [ResultOutputSolve]...[ResultOutputSolver_bulk]
Loading user function library: [ResultOutputSolve]...[ResultOutputSolver]
Loading user function library: [SaveData]...[SaveScalars_Init]
Loading user function library: [SaveData]...[SaveScalars_bulk]
Loading user function library: [SaveData]...[SaveScalars]
MAIN: 
MAIN: -------------------------------------
MAIN:  Steady state iteration:            1
MAIN: -------------------------------------
MAIN: 
SingleSolver: Attempting to call solver
SingleSolver: Solver Equation string is: mgdyn
WhitneyAVSolver: Solving the AV equations with edge elements

MGDynAssembly: Elapsed REAL time:     3.2430 (s)
DefUtils::DefaultDirichletBCs: Setting Dirichlet boundary conditions

DefUtils::DefaultDirichletBCs: Dirichlet boundary conditions set

CRS_IncompleteLU: ILU(0) (Real), Starting Factorization:

CRS_IncompleteLU: ILU(0) (Real), NOF nonzeros:   4302723
CRS_IncompleteLU: ILU(0) (Real), filling (%) :       100
CRS_IncompleteLU: ILU(0) (Real), Factorization ready at (s):     0.11

      10 0.4725E-01

      20 0.3139E-02

      30 0.5314E-03

      40 0.5719E-04

      50 0.2009E-05

      60 0.4904E-06

      70 0.4335E-07

      80 0.1749E-08

      90 0.2213E-09

      98 0.9926E-10
ComputeChange: NS (ITER=1) (NRM,RELC): ( 0.27985351E-05  2.0000000     ) :: mgdyn

MGDynAssembly: Elapsed REAL time:     3.2150 (s)
DefUtils::DefaultDirichletBCs: Setting Dirichlet boundary conditions

DefUtils::DefaultDirichletBCs: Dirichlet boundary conditions set
CRS_IncompleteLU: ILU(0) (Real), Starting Factorization:

CRS_IncompleteLU: ILU(0) (Real), NOF nonzeros:   4302723
CRS_IncompleteLU: ILU(0) (Real), filling (%) :       100
CRS_IncompleteLU: ILU(0) (Real), Factorization ready at (s):     0.09
       1 0.7576E-10
ComputeChange: NS (ITER=2) (NRM,RELC): ( 0.27985351E-05 0.11223008E-11 ) :: mgdyn
Loading user function library: [MagnetoDynamics]...[WhitneyAVSolver_post]
ComputeChange: SS (ITER=1) (NRM,RELC): ( 0.27985351E-05  2.0000000     ) :: mgdyn

SingleSolver: Attempting to call solver
SingleSolver: Solver Equation string is: mgdynpost
MagnetoDynamicsCalcFields: Computing postprocessed fields
WARNING:: GetPermittivity: Permittivity not defined in material, defaulting to that of vacuum

CRS_IncompleteLU: ILU(0) (Real), Starting Factorization:

CRS_IncompleteLU: ILU(0) (Real), NOF nonzeros:    582129
CRS_IncompleteLU: ILU(0) (Real), filling (%) :       100
CRS_IncompleteLU: ILU(0) (Real), Factorization ready at (s):     0.02
       5 0.3783E-11
ComputeChange: NS (ITER=1) (NRM,RELC): ( 0.10064024      2.0000000     ) :: mgdynpost
       5 0.4138E-11
ComputeChange: NS (ITER=2) (NRM,RELC): ( 0.28682764     0.96104684     ) :: mgdynpost
       5 0.2846E-11
ComputeChange: NS (ITER=3) (NRM,RELC): ( 0.62167789E-01  1.2874659     ) :: mgdynpost

       5 0.3727E-11
ComputeChange: NS (ITER=4) (NRM,RELC): (  73921.307      1.9999966     ) :: mgdynpost
       5 0.3896E-11
ComputeChange: NS (ITER=5) (NRM,RELC): (  193490.62     0.89427059     ) :: mgdynpost
       5 0.2792E-11
ComputeChange: NS (ITER=6) (NRM,RELC): (  46163.342      1.2295000     ) :: mgdynpost
       5 0.3674E-11
ComputeChange: NS (ITER=7) (NRM,RELC): ( 0.98640331E-03  1.9999999     ) :: mgdynpost

       5 0.4255E-11
ComputeChange: NS (ITER=8) (NRM,RELC): ( 0.29531633E-03  1.0783746     ) :: mgdynpost
       5 0.3727E-11
ComputeChange: NS (ITER=9) (NRM,RELC): ( 0.16007241E-02  1.3769831     ) :: mgdynpost
MagnetoDynamicsCalcFields:  Eddy current power:    0.0000000000000000
MagnetoDynamicsCalcFields:  (Electro)Magnetic Field Energy:    7.1543214362065717
Loading user function library: [MagnetoDynamics]...[MagnetoDynamicsCalcFields_post]
ComputeChange: SS (ITER=1) (NRM,RELC): ( 0.16007241E-02  2.0000000     ) :: mgdynpost
SingleSolver: Attempting to call solver
SingleSolver: Solver Equation string is: resultoutput
ResultOutputSolver: -------------------------------------
ResultOutputSolve: Saving with prefix: step
ResultOutputSolver: Creating list for saving - if not present
CreateListForSaving: Field Variables for Saving
ResultOutputSolver: Saving in unstructured VTK XML (.vtu) format
VtuOutputSolver: Saving results in VTK XML format with prefix: step
VtuOutputSolver: Saving number of partitions: 1
WriteVtuFile: Writing variable: magnetic flux density e
WriteVtuFile: Writing variable: magnetic vector potential e
WriteVtuFile: Writing variable: magnetic field strength e
WriteVtuFile: Writing variable: nodal force e

ResultOutputSolver: -------------------------------------
Loading user function library: [ResultOutputSolve]...[ResultOutputSolver_post]
SingleSolver: Attempting to call solver
SingleSolver: Solver Equation string is: savescalars
SaveScalars: -----------------------------------------
SaveScalars: Saving scalar values of various kinds
SaveScalars: Saving names of values to file: results/results.dat.names
SaveScalars: Saving values to file: results/results.dat
Loading user function library: [SaveData]...[SaveScalars_post]
ElmerSolver: *** Elmer Solver: ALL DONE ***

ElmerSolver: The end
SOLVER TOTAL TIME(CPU,REAL):        20.47       20.47
ELMER SOLVER FINISHED AT: 2019/08/23 12:19:46


Re: WhitneyAVSolver – No Values for Variable AV

Posted: 28 Aug 2019, 12:06
by mzenker
Hi,

in your output, there is a warning:

Code: Select all

WARNING:: GetPermittivity: Permittivity not defined in material, defaulting to that of vacuum
Could this be the cause of your problem?

HTH,
Matthias

Re: WhitneyAVSolver – No Values for Variable AV

Posted: 28 Aug 2019, 15:28
by anton1ret
Hi Mathias,

thank you for your reply. I have now tested it with indication of permittivity with the same problem. It also works without specification in the two-dimensional calculation with the same warning.

Cheers, Anton.

Re: WhitneyAVSolver – No Values for Variable AV

Posted: 28 Aug 2019, 15:39
by mzenker
Hi,

I don't have any experience with magnetic simulation myself, so I cannot help much further.
Just a thought: Are you sure that the geometries are comparable? In 2D simulations Elmer normally assumes 1 m thickness for the 3rd dimension, so your 3D geometry should take that into account.
For the rest, someone with knowledge about the magnetic solvers has to take over...

Matthias

Re: WhitneyAVSolver – No Values for Variable AV

Posted: 28 Aug 2019, 15:57
by anton1ret
Hi Matthias,

thank you for trying to help me.

I have three-dimensional a thickness of 50mm and multiply the relevant results by 20.
For sure the values are not the same but nearby. It is also another idealization and net geometry.

Cheers, Anton.