0% found this document useful (0 votes)
118 views51 pages

02 ElmerWebinar Multiphysics

The document provides information about an Elmer FEM webinar series including: - Dates and times for 8 webinars in Spring 2021 on topics like introduction to Elmer, parallel computing, electrical circuits, solvers for solid mechanics, and industrial applications. - Guidelines for participation including using Q&A for questions and chat for discussion, and accessing presentation slides online. - The webinars will be recorded and available on YouTube.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
118 views51 pages

02 ElmerWebinar Multiphysics

The document provides information about an Elmer FEM webinar series including: - Dates and times for 8 webinars in Spring 2021 on topics like introduction to Elmer, parallel computing, electrical circuits, solvers for solid mechanics, and industrial applications. - Guidelines for participation including using Q&A for questions and chat for discussion, and accessing presentation slides online. - The webinars will be recorded and available on YouTube.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 51

Elmer FEM

Webinar Series
CSC, Espoo, Finland
via Zoom
Thursdays
15 EET, 14 CET, 8 ET, 22 JST
Spring 2021
Practical guidelines for the webinar

• For questions that you want answered use the Q&A


oWill be addressed at the end of the presentation

• Chat may be used for general discussion


oYou may write about your application area, geographic location etc.

• The presentation slides will be made available at


ohttps://www.nic.funet.fi/pub/sci/physics/elmer/webinar/

• This webinar will be recorded and will for most parts be available later on youtube
Elmer FEM webinar series - program
• 11.3. Peter Råback & Thomas Zwinger: Introduction to Elmer & How to teach yourself Elmer
• 18.3. Peter Råback & Jonathan Velasco: Overview of capabilities of Elmer - where to go from here?
• 25.3. Peter Råback & Thomas Zwinger: Parallel Computing with Elmer
• 1.4. Juris Vencels: Elmer-OpenFOAM library
• 8.4. Eelis Takala & Frederic Trillaud: Electrical circuits with Elmer with applications
• 15.4. Mika Malinen: Solvers for solid mechanics - Recent progress
• 22.4. Minhaj Zaheer:
Induction Machine Open-source FEA Computations comparison with Measurement and Commercial FEA
• 29.4. Arved Enders-Seidlitz: pyelmer - Python interface for Elmer workflow
• 13.5. Roman Szewczyk, Anna Ostaszewska-Liżewska, Dominika Kopala & Jakub Szałatkiewicz:
Industrial applications oriented, microwave modelling in Elmer
• Additional slots available: contact organizers if you’re interested!
Overview of capabilities of Elmer
Physical models and
some of their common features

ElmerTeam
CSC – IT Center for Science, Finland

Elmer FEM webinar


2021
Outline for today
• Overview of physical models
oFrom Models Manual
oExample: 12 Solvers

• Library features used by many/all models


oIteration scheme & coupling
oGenerality of fetching Real valued keywords
oExecutions of solver
oTime dependency modes
oBounday conditions
oMapping between boundaries and meshes
o…

• Where to go next?

8 18.3.2021
Example of minimal sif file
! Minimal sif file example Solver 1
Check Keywords "Warn" Equation = ”HeatEq"
Variable = ”Temperature"
Header :: Mesh DB "." "square" Procedure = ”HeatSolve" ”HeatSolver"
Linear System Solver = Direct
Simulation End
Max Output Level = 5
Coordinate System = Cartesian Material 1
Simulation Type = Steady Heat Conductivity = 1.0
Output Intervals(1) = 1 End
Steady State Max Iterations = 1 solver
Post File = "case.vtu" Boundary Condition 1 specific
End Name = ”Fixed” keywords
Target Boundaries(1) = 1
Body 1 Temperature = 0.0
Equation = 1 End
Material = 1
End Boundary Condition 2
Name = ”Flux”
Equation 1 Target Boundaries(1) = 2
Active Solvers(1) = 1 Heat Flux = 1.0
End End
Elmer – abstraction of Solvers
• High level of abstraction ensures flexibility in implementation and simulation
• Solver is an asbtract dynamically loaded object with standard API
o Solver may be developed and compiled without touching the main library
o No upper limit to the number of Solvers

• Solvers may be active in different domains, and even meshes


o Automatic mapping of field values when requested!

• Solvers perform limited well defined tasks


o Solution of a PDE (roughly 50%)
o Computing some postprocessed fields
o Saving of results
o ….

• Solver may utilize a large selection of services from the library


oThe library has (almost) no knowledge of physical models
Physical Models of Elmer -> Elmer Models Manual
• Heat transfer • Electromagnetics
✓Heat equation ✓ Solvers for either scalar or vector potential
(nodal elements)
✓Radiation with view factors
✓ Edge element based AV solver for magnetic
✓convection and phase change
and electric fields
• Fluid mechanics
• Mesh movement (Lagrangian)
✓ Navier-Stokes (2D & 3D)
✓ Extending displacements in free surface
✓ RANS: SST k-, k-, v2-f problems
✓ LES: VMS ✓ ALE formulation
✓ Thin films: Reynolds (1D & 2D)
• Level set method (Eulerian)
• Structural mechanics ✓ Free surface defined by a function
✓ General elasticity (unisotropic, lin & nonlin)
✓ Plates & Shells • Electrokinetics
✓ Poisson-Boltzmann
• Acoustics
✓ Helmholtz • Thermoelectricity
✓ Linearized time-harmonic N-S • Quantum mechanics
✓ Monolithic thermal N-S
✓ DFT (Kohn Scham)
• Species transport
• Particle Tracker
✓ Generic convection-diffusion equation
Most important physical modules in Elmer?
Historically main solver in each field Solvers with unresolved potential
• HeatSolve • ShellSolver
o Heat equation o Enables economical treatment of thin
o Radiation with view factors structures
o convection and phase change o Now can be combined with 3D elasticity
• FlowSolve • VectorHelmholtz
o Robust solver for low Re-flows o Hcurl basis
o Nonlinear fluids, slip conditions,.. o Electromagnetics wave solver
o Key solver for Elmer/Ice community
• ModelMixedPoisson
• StressSolve o Hybrid solution employing Hdiv basis
o Versatile solver for linear elasticity
• ParticleAdvector
• WhitneyAVSolver o Uses particles to advect fields without
o Hcurl conforming elements diffusion
o Key solver for Elmer/EM community o Particles & finite elements often a good
combination
13 18.3.2021
Series 1. Question 1. (one choice)
• Number of solvers in your most complicated Elmer
simulation setup so far?
oZero
o1
o2-3
o4-6
o7-10
o>10

14 18.3.2021
Undocumented Models
AllocateSolver.F90 % just dummy solver for allocation OdeSolver.F90 % ordinary differential equation solver
CoordinateTransform.F90 % RotMSolver: using distances create direction PartitionMesh.F90 % partition mesh solver
CraigBamptonSolver.F90 % model reduction solver PoissonDG.F90
DCRComplexSolve.F90 % complex diffusion-convection-reaction Poisson.F90
DFTSolver.F90 % charge density using the eigenvectors RigidBodyReduction.F90 % reduction of rigid pieces
DirectionSolver.F90 SaveMesh.F90 % mesh saving
DistanceSolve.F90 % compute distance in two methods ScannedFieldSolver.F90 % treating scanned field solutions
DistributeSource.F90 % local to global mesh sources ShallowWaterNS.F90
ElementSizeSolver.F90 % element size with Galerkin ShearrateSolver.F90
EliminateDirichlet.F90 Spalart-Allmaras.F90 % turbulence
EliminatePeriodic.F90 SSTKomega.F90 % turbulence
EnergyRelease.F90 % energy release rate for crack propagation StatCurrentSolveVec.F90 % new version of StatCurrentSolve
FacetShellSolve.F90 ThermoElectricSolver.F90 % strongly coupled thermal & electrostatics
FDiffusion3D.F90 % Complex nodal equation for vector fields TransientCost.F90 % integral over cost
FDiffusion.F90 % Complex nodal equation for scalar fields UMATLib.F90
HeatSolveVec.F90 % new generation HeatSolve V2FSolver.F90 % turbulence
HelmholtzProjection.F90 % purifying vector potential WPotentialSolver.F90 % potential for directions
IncompressibleNSVec.F90 % new generation flowsolve
KESolver.F90 % turbulence • 76 models have been documented
Komega.F90 % turbulence • Tens of modules have not been documented!
Mesh2MeshSolver.F90 % interpolation
MeshChecksum.F90 % utility to check mesh consistency
• Some are of little use but might find users if people
ModelPDE.F90 % simple advection-diffusion-reaction would find them.
NormalSolver.F90 % calculate normal • 5 undocumented turbulence models exist but they
are not that robust…
15 3/18/2021
Example: TwelveSolvers2D

• The purpose of the example is to show how • Square with hot and cold walls
number of different solvers are used • Filled with viscous fluid
• Bouyancy modeled with Boussinesq approximation
• The users should not be afraid to add new • Temperature difference initiates a convection roll
atomistic solvers to perform specific tasks
• A case of 12 solvers is rather rare, yet not
totally unrealitistic
• Added now also as test case Cold Hot
wall wall

test case: TwelveSolvers2D


Example: the 12 solvers
1. HeatSolver
Weakly coupled system
iterated until convergence
2. FlowSolver
3. FluxSolver: solve the heat flux
4. StreamSolver: solve the stream function
5. VorticitySolver: solve the vorticity field (curl of vector field)
6. DivergenceSolver: solve the divergence
7. ShearrateSolver: calculate the shearrate
8. IsosurfaceSolver: generate an isosurface at given value
9. ResultOutputSolver: write data
Mesh of 10000 bilinear elements
10. SaveGridData: save data on uniform grid
11. SaveLine: save data on given lines
12. SaveScalars: save various reductions
Example: Primary fields for natural convection

Pressure Temperature Velocity


Example: Derived fields for Navier-Stokes solution

Shearrate field Stream function Vorticity field Divergence field


Example: Derived fields for heat equation
• Nodal loads only occur at
boundaries (nonzero heat source)
• Nodal loads are associated to
continuous heat flux by element
size factor

Heat flux Nodal heat loads


Example: Visualization in different postprocessors

gmsh

GiD Paraview
Example: total flux

• Saved by SaveScalars
• Two ways of computing the
total flux give different
approximations
• When convergence is reached
the agreement is good
Example: boundary flux

• Saved by SaveLine
• Three ways of computing the
boundary flux give different
approximations
• At the corner the nodal flux
should be normalized using
only h/2
Some common features for PDE solvers

• Iteration scheme & coupling: linear, nonlinear & steady state level
• Generalized fetching of keywords
• Execution of Solvers
• Time dependency modes
• Finite element basis
• Dirichlet BCs
• Nodal loads
• Shared boundary conditions
• Overlapping meshes
• …

24 18.3.2021
Nested iterations in Elmer as defined by the SIF file

25
Solution of linear system
• Keywords starting with ”Linear System”
• The lowest level operation
• Tens of different techqniques in serial and parallel
• We will go through these next week!

26 18.3.2021
Solution of nonlinear system
• Keywords starting with ”Nonlinear System”
• The level for iterating over one single nonlinear equation
oBy default ElmerGUI assumes nonlinear iteration => always two iterations

Solver i
Nonlinear System Max Iterations = Integer
Nonlinear System Convergence Tolerance = Real
Nonlinear System Relaxation Factor = Real ”norm”
Nonlinear System Convergence Measure = String
Nonlinear System Newton After Tolerance = Real
Nonlinear System Newton After Iterations = Real
Nonlinear system consistent norm = Logical ”solution”

”residual”

27 18.3.2021
Solution of coupled system
• Keywords starting with ”Steady State”
• The level for iterating over set of Solvers to find the solution satisfying all of
them

Simulation
Steady State Max Iterations = Integer
Steady State Min Iterations = Integer

Solver i
Steady State Convergence Tolerance = Real
Steady State Relaxation Factor = Real
Steady State Convergence Measure = Real

28 18.3.2021
Solution strategies for coupled problems

hierarchical

iterative

monolithic
Weak coupling in Elmer

• Parameters in equations depend on field values


oNonlinear iteration within on Solver
oCoupled system iteration among solvers

• Consistency in ensured within nested iterations


• E.g. case of natural convection
oForce on the Navier-Stokes depends on the temperature of the heat
equation
oConvection velocity in the heat equation depends on the solution of the
Navier-Stokes equation

• Some dependencies have been ”coded in” while others take


use of the generic way to give Real valued keywords in Elmer

30 18.3.2021
Real valued keyword functions
1) Tables can be use to define a piecewise linear (or cubic) dependency of a variable
Density = Variable Temperature
Real cubic
173 990 Inside range: Interpolation
273 1000
373 1010
Outside range: Extrapolation!
End

2) MATC: a library for numerical evaluation of mathematical expressions


Density = Variable Temperature
MATC "1000*(1 - 1.0e-4*(tx(0)-273.0))"
or as constant expressions

3) LUA: external library, faster than MATC Four ways to present:


Density = Variable Temperature
LUA "1000*(1 - 1.0e-4*(tx[0]-273.0))"

4) User defined function


Density = Variable Temperature
Procedure “mymodule" “myproc”
31
Example of F90 User Function
File mymodule.F90:
FUNCTION myproc( Model, n, T ) RESULT(dens)
USE DefUtils
IMPLICIT None
TYPE(Model_t) :: Model
INTEGER :: n
REAL(KIND=dp) :: T, dens

dens = 1000*(1-1.0d-4 *(T-273.0_dp))

END FUNCTION myproc

Compilation script comes with installation: elmerf90

Linux
$ elmerf90 mymodule.F90 –o mymodule.so
Windows
$ elmerf90 mymodule.F90 –o mymodule.dll
32
ElmerSolver - Controlling execution order of Solvers
• By default each a Solver is executed in order of their numbering numbering
• ”Exec Solver” keyword can be used to alter this
o”always” – execute in the coupled system loop of the nested iteration
o”before all” or ”before simulation” -
o”after all” or ”after simulation” – perform something
o”before saving” – perform before saving sequence, maybe compute something for saving
o”after saving” – perform after saving sequence, maybe save someting
o”before timestep” – perform before timestep only
o”after timestep” – perform after timestep only
o”never” – skip solver for debugging etc.

• ”Slave solver” slots (rather new feature) may be used to have some master
Solver call other solvers within their execution.
oAdded flexibility to complex cases
34
ElmerSolver – Time dependency modes
• Transient simulation
o1st order PDEs: Simulation
o Backward differences formulae (BDF) up to 6th degree Simulation Type = Transient
o Newmark Beta (Cranck-Nicolsen with =0.5) Timestep Intervals = 100
Timestep Sizes = 0.1
o 2nd order Runge-Kutta
Timestepping Method = implicit euler
o Adaptive timestepping
o 2nd order PDEs:
o Bossak

• Steady-state simulation Simulation Type = Steady

• Scanning Simulation Type = Scanning


oSpecial mode for parametric studies etc.
• Harmonic simulation
• Eigenmode simulation
oUtilizes (P)Arpack library
Eigen Analysis
• Any 2nd order PDE may be solved as an eigen system
od/dt -> iω
• Example, eigenmodes from Smitc, the plate equation
Solver i
Eigen Analysis = True
Eigen System Values = 10
Eigen System Convergence Tolerance = 1.0e-6
Eigen System Select = Smallest Magnitude

36 18.3.2021
ElmerSolver – Finite element shapes
Element shapes are define already in the mesh files
0D: vertex
1D: edge
2D: triangles, quadrilateral
3D: tetrahedrons, prisms, pyramids, hexahedrons
ElmerSolver – Finite element basis functions

Element types and formulations are applied on elements


Solver-wise
Element families
Nodal (up to 2-4th degree)
p-elements (hierarchical basis)
Edge & face –elements
H(div) - often associated with”face” elements)
H(curl) - often associated with ”edge” elements)
Formulations
Galerkin, Discontinuous Galerkin
Stabilization
Residual free bubbles
Examples of FEM basis
• Different equations may require different basis functions beyond the standard
nodal finite element basis
• Solvers supporting p-elements (here 3rd order), e.g. ModelPDE
oElement = p:3

• Lowest order Hcurl elements for WhitneyAVSolver


oElement = n:1 e:1 ! Hidden from end-user

• Lowest order Hdiv elements for ModelMixedPoisson


oElement = n:0 -tetra b:1 -brick b:25 -quad_face b:4 -tri_face b:1 ! Hidded from end-user

•…

39 18.3.2021
ElmerSolver: Exported Variables
• Any solver may allocate additional variables called
”Exported Variables”
• These may be used for various uses, for example
create derived fields easily
#R=8.31
oMay be used in the same way for ”Initial Condition” as #Ea=123.4
regular variables. #A=5.67e-3
oMay be updated if defined in ”Body Force” section and
”Update Exported Variables” is requested. Solver i
Exported Variable 1 = Rate
• Often defined inside the code Updated Exported Variables = True

• Exported variables may be of different types Body Force j


Rate = Variable ”Tempeture”
o-nodal, -elem, -dg, -ip
Real LUA ”A0*exp(-Eact/(R*tx[0]))”

42 18.3.2021
ElmerSolver - Dirichlet Conditions
• Dirichlet keywords are set by the library for ”Varname”
oTemperature = 273.0
oVelocity = Variable ”Coordinate 2”; Real LUA ”4*tx[0]*(1-tx[0])”
oAV {e} = 0.0 ! For edge degree of freedom

• Conditional Dirichelt conditions ”Varname Condition”


oApplied only when condition is positive
oTemperature = 273.0
Temperature Condition = Equals ”Velocity 1” ! Set temperature for inflow only

• Boundary Condition i
• Body Force i
oEnables bodywise Dirichlet conditions also

43 18.3.2021
ElmerSolver – Computing nodal forces

• ElmerSolver allows for automatic computation of nodal


forces from matrix equation: f=A0x-b
Solver i
• These are reactions to Dirichlet conditions that give Calculate Loads = True
equivalent r.h.s. terms that would result in exactly the
same solution
oHeatSolver: nodal heat flux (Joule)
oFlowSolve: nodal force (Newton)
oStressSolve: nodal force (Newton)
oStatElecSolve: nodal charge (Coulomb)
oStatCurrentSolve: nodal current (Ampere)

• Coupling between two solvers may be done either on


the continuous or discrete level
44 18.3.2021
ElmerSolver – Setting nodal forces
fsolid=-ffluid
• ElmerSolver allows for automatic setting of nodal
forces to matrix equation r.h.s. Test case: fsi_beam_nodalforce
Setting FSI conditions on the discrete level
• The name is derived from the primary variable name
Displacement 1 Load = Opposes "Flow Solution Loads 1"
o HeatSolver: Temperature Load Displacement 2 Load = Opposes "Flow Solution Loads 2"
o FlowSolve: Flow Solution i Load
o StressSolve: Displacement i Load
o StatElecSolve: Potential Load
o…

• Coupling between two solvers may be done either on


the continuous or discrete (matrix) level
• Discrete level can often be done without any
Test case: fsi_beam
additional coding and it is at least as accurate! Setting FSI internally on continuous level
Fsi Bc = True
45 18.3.2021
Example: Dirichlet-Neumann Domain Decomposition
tests: DirichletNeumann

• Two equations for temperature: TempA and TempB TempA

• We iterate on convergence solution such that


oSame temperatures: Ta = Tb
oSame fluxes: -kdTa/dn = kdTb/dn
TempB
• We use library functionalities
oDirichlet conditions
oComputing nodal loads
oSetting nodal loads Boundary Condition 3
Name = "Interface"
oSteady state iteration Target Boundaries = 3
oNo coding required!
TempB = Equals TempA
TempA Load = Opposes "TempB Loads"
46 18.3.2021
End
Periodic Boundary Conditions (node-to-surface )
• BC 2D periodic LES simulation using VMS, by Juha Ruokolainen
o Periodic BC = Integer
! Give the corresponding master boundary
o Periodic BC Varname = Logical True
! Enforce periodicity for given variable
o Periodic BC Offset Varname = Real
! Enforce desired constant offset in values
o…

• Creates surface-to-node mapping and keeps the size of the


linear system the same
Periodic BC = 2
• Accuracy optimal for conforming meshes only
Periodic BC Pressure = Logical True
• Accuracy not optiomal for non-conforming meshes Periodic BC Offset Pressure = Real 10.0
Periodic BC Velocity 1 = Logical True
o Mortar Finite Elements
Periodic BC Velocity 2 = Logical True

47 18.3.2021
Mortar Boundary conditions (surface-to-surface)

• Solver • Mapping of accuracy is optimal


o Apply Mortar BCs = Logical o Adds lagrange multipliers to the system
! Should the solver apply the conditions? o Convergence of linear system becomes more challenging
• BC • Provides a framework for many complicated problems
o Mortar BC = Integer o Rotating boundary conditions
! Give the corresponding master boundary o Contact mechanics
o Galerkin Projector = Logical o Symmetric & nonconforming
!This enforces the weak projector for all dofs
o Mortar BC Static = Logical • Also antiperiodic systems supported
! Projectors may be assumed to be static
o…

Periodic conditions (strong): 𝑥𝑙 = 𝑃𝑥𝑟


Mortar conditions (weak): 𝑄𝑥𝑙 − 𝑅𝑥𝑟 = 0
Example: continuity with mortar projector in 2D
test case: MortarPoisson2Dsum
• Multiple mortar BCs possible at the same time
oWeights may be summed up

Boundary Condition 6
Target Boundaries(1) = 7
Name = "Mortar Left Master"
Mortar BC = Integer 7
Galerkin Projector = Logical True
Plane Projector = Logical True
End

Boundary Condition 7
Target Boundaries(1) = 6
Name = "Mortar Left Target"
End

….
Example: toy model for temperature between 2D rotor and stator

50 18.3.2021
Example: Rotating 2D and 3D ”machines”

51 18.3.2021
Comparison of shared boundary conditions in Elmer

BC type Mortar BC Periodic BC Conforming BC

also known as surface-to-surface node-to-surface elimination

Non-confoming YES YES NO


BCs
Matrix size N+M N N-M
Spoils the matrix YES yes NO
Edges possible YES NO YES

54 18.3.2021
Soft Limiters in Elmer (Inequality Constraints)
test case: LimitDisplacement2
• General way to ensure min/max limit of solution
• A priori contact surface => soft limiters
• Uses two consepts
oNodal load evaluation Solver 1
oContact set Apply Limiter = True

• Applicable to
oHeat equation
Boundary Condition 2
oElasticity Name = "Contact"
oRichards equation Target Boundaries(1) = 6
o…
Displacement 3 Upper Limit = Variable time
Real Procedure "ContactBC" "SphereBottom" Hertz problem
End
55 18.3.2021
Contact mechanics in Elmer
• Utilizes the optimal mortar methods +
contact sets of soft limiters
• Results to difficult linear systems
oElimination by using dual basis test functions

• Some challenges in general cases i.e. with


conflicting normals

59 18.3.2021
Consistency between meshes (as opposed to boundaries)
• Consistency between different meshes may only be
enforced explicitely
test case: multimesh
• Mapping is done automatically when variables is needed
o Octree search – optimal in speed
Boundary Condition 2
Name = "Local2Global"
localT Target Boundaries = 2
globalT
globalT = Equals localT
End
Triggers
mesh-to-mesh Boundary Condition 3
interpolation Name = "Global2Local"
Target Boundaries = 3
localT = Equals globalT
End

60 18.3.2021
Summary
• ~100 Solvers that try to do some specific
tasks
oElmerModels Manual

• ~200,000 lines of code in the library


providing a wide variety of services
oElmerSolver Manual

• Many undocumented features still exist!

61 18.3.2021
Discussion: where to go from here?
• Current focus in Elmer/Ice and electromechanics +
some smaller projects
• Architectures change as a driver
oThreading and GPU developments
oNeeded to take use of supercomputers

• Open source ecosystem


oFocus to where there software shines
oTake use of other tools when suitable -> interfaces

• Comments?

62 18.3.2021
Most important Elmer resources
• http://www.csc.fi/elmer
o Official Homepage of Elmer at CSC

• http://www.elmerfem.org
o Discussion forum, wiki, elmerice community

• https://github.com/elmercsc/elmerfem
o GIT version control

• http://youtube.com/elmerfem
o Youtube channel for Elmer animations

• http://www.nic.funet.fi/pub/sci/physics/elmer/
o Download repository

• Further information: [email protected]

You might also like