18
MHD simulations with Open Source software* 2 February 2017, Riga * Elmer + OpenFOAM coupler

MHD simulations with Open Source software - Elmer and OpenFOAM coupler

Embed Size (px)

Citation preview

MHD simulations with Open Source software*

2 February 2017, Riga

* Elmer + OpenFOAM coupler

Multiphysics software like

or

but without license fees

Efficient coupling b/w

● Electromagnetics● Free surface fluids● Heat transfer

Extra

● Solidification● Melting

2

Motivation

3

Our requirements

● 3D, time-dependent

● Complex A−V magnetic vector potential formulation

● High Reynolds turbulence models

● Volume of Fluid (VOF) for free surface

● Conductivity and viscosity dependence on temperature

● Complex geometries, multi-regions

● MPI parallelization with good scaling

4

Existing codes

FEM FVM

getDP OpenFOAM

Elmer SU2

Best forElectromagnetics (EM)

Best forFluid dynamics (FD)

5

No one code solves our problem

.., but two codes coupled together can!

Elmer + OpenFOAM

● Both can simulate real stuff● Straight-forward mesh interpolation● Common pre/post processing (Salome, Paraview)● Efficient, parallel coupling is very feasible

Elmer by CSC (Finland)

6

+ Multiphysics out-of-the-box+ Extensive documentation and forum+ Active, responsive developers+ 40+ solvers, 400+ tests+ Flexible meshes (tetra, pyramids, wedges, hexa)+ Meshes from Salome (.unv)+ Results to Paraview (.vtu)

- Complex code (Fortran), steep learning curve

Notable use cases for Elmer

7

● Electromagnetics

● Structural mechanics

● Ice sheet modelling

wikipedia.org

Credit F. Gillet-Chaulet

OpenFOAM.org

This slide is intentionally left blank

9

Elmer OpenFOAM

Two-way coupling

File based

● SLOW and does not SCALE on parallel computers

MPI based

● Both codes already use MPI for parallelization

● Probably the most EFFICIENT coupling solution

10

MPI - Message Passing Interface

Elmer(2 processes)

OpenFOAM(2 processes)

Run both codes simultaneously

mpirun -n 2 Elmer : -n 2 OpenFOAM

“application that starts other

applications in parallel”

MPI_SEND(data,type,size,

to whom)

MPI_RECV(data,type,size,

from whom)

11

Interpolation between meshes

Efficient interpolation between parallel meshes is critical

● EM domain ≥ FD domain● EM mesh coarser than FD mesh

Elmer => OF (≥1st order accuracy)● Interpolation matrix, uses basis functions

OF => Elmer (0th order accuracy)● Saves OF cell numbers for found Elmer nodes

12

Adaptive coupling interval

● FD require smaller Δt than EM● In steady regime no need to solve EM● For low Re one OF t-step computes 5-10 times faster

Example: for fluid ratio α=[0,1] we can use condition

max(abs(αold-α))>0.2

to find out whether surface has changed significantly

enough to call Elmer and update EM fields

13

Relatively easy to set-up

Coupler consists of● 2 OpenFOAM libraries● 2 Elmer libraries

These libs take care of MPI communication

User specifies which variables to send/recv

User prepares simulation and runs it

Video (14min)

14

2D cold crucible

Air

Coils

Melt

Elmer OpenFOAM

OpenFOAM α - fluid fraction [0,1] T - temperature σ(α,T*) - electric conductivity

Elmer JxB - Lorentz force P* - Joule heating

15

Variables

Interpolated and communicated variables

* Not implemented yet

16

17

Conclusions

Elmer + OpenFOAM coupler● Based on MPI, low level● Presumably good parallel scaling● Basic tests for 2D/3D free surface MHD done● It can be used for other Elmer/OpenFOAM solvers

TODO: Joule heating P, parametric σ(α,T), melting, …

Q: Where else it could be useful?

Simulation video

Thank you!

[email protected]

Elmer + OpenFOAM coupler

Laboratory for mathematical modelling of environmental and technological processes

University of Latvia

https://github.com/jvencels/OpenFOAM_Elmer