R. Zanino, Edge-plasma modeling activities at PoliTo

Edge-Plasma Modeling
Activities at PoliTo
F. Subba and R. Zanino
Dipartimento di Energetica, Politecnico,
Torino, Italy
Ringberg Theory Meeting,
20Nov08
1
Outline
• Development of a far-SOL plasma code
• ITM-related activities
Ringberg Theory Meeting,
20Nov08
2
Traditional approach to edge
plasma modelling
Near SOL: well represented
by edge modelling codes
Far SOL: not included
Ringberg Theory Meeting,
20Nov08
3
Far SOL relevance
– Particle fluxes to/from the wall (erosion/redeposition, tritium inventory)
– Heat flux distribution on the wall
– Physics-based boundary conditions at the real
(physical) wall
– Design optimization of ICRH antennas
(foreseen collaboration with TOPICA code
team @ PoliTo)
–…
Ringberg Theory Meeting,
20Nov08
4
Far SOL modeling
• Modeling the wall requires geometrical
flexibility  Triangular mesh
• Conservative scheme gives robustness
CVFE
Baliga, B.; Pham, T. & Patankar, S. V., Solution of Some Two-Dimensional Incompressible Fluid Flow and Heat Transfer Problems, Using a Control
Volume Finite-Element Method, Numerical Heat Transfer, 1983, 6, 245-261
Ringberg Theory Meeting,
20Nov08
5
Control volumes in FV vs. CVFE
methods
CVFE
FV
Mesh nodes
FE sides
CV boundaries
Ringberg Theory Meeting,
20Nov08
6
Relation between CVs and FE cells
Once a plasma quantity (e.g. the temperature T)
is known at the three mesh nodes i, j, k it can be
interpolated over the whole triangular element
by means of proper interpolation functions
i
j
k
T(x,y) = Tifi(x,y) + Tjfj(x,y) + Tkfk(x,y)
This allows a consistent approximation of the
fluxes through the control volume boundaries.
Ringberg Theory Meeting,
20Nov08
7
Approximation of fluxes
q
i
5
ncVc Ti f i  T j f j  Tk f k    c Ti f i  T j f j  Tk f k 
2
c
j
k
Fluxes across the CV boundaries can be properly determined
We are sure that the flux leaving volume j towards i is the
same entering volume i from j: the scheme is conservative
There is obviously not a “best” choice for the interpolating functions fi. We choose them as
combinations of exponentials along x and y, because
(i)
(ii)
it is a well known choice in CFD [B. Baliga, Numer. Heat transf. 245 (1983)]
it allows to switch automatically between centred and upwind schemes, depending on the flow
conditions
Ringberg Theory Meeting,
20Nov08
8
FE interpolation
j
Vc
c
k
  y  yc  
  x  xc  
f i  x, y   Ai  Bi exp 

  Ci exp 




Pe
x

x
Pe
y

y
 y j
k 
k 
 x i

VC , x  xi  xk 
Pex 
Dx
y
x // B
i
Pey 
VC , y  y j  yk 
Dy
Vc: flow speed at the element center
Dx, Dy: diffusivity
One side aligned to B
Constants Ai, Bi Ci are determined by requiring fip = ip
High Peclet  f ~ constant
Low Peclet  f ~ linear
Ringberg Theory Meeting,
20Nov08
9
The ASPOEL code
• The CVFE scheme has been implemented in the
ASPOEL code, developed at PoliTo, using
unstructured triangular grids
• Pure plasma 2D fluid equations so far
• Coupling between different equations is done via
the SIMPLE scheme
• Applications completed so far:
– Limiter case, standalone
– Single-null (AUG) case, coupled with B2
Ringberg Theory Meeting,
20Nov08
10
ASPOEL model equations
n
   n V   S
t
i
i i
ni
Z i ni  ne
//,i
 

ˆ S
 e//    Vi i  pi Iˆ  
i
//,i
t
i  mi niVi
niVr ,i   Dr  r ni
 3

5

n
T



n
T
V

q
 e e
 e e e
e   S Ee  Qie
t  2

2

 3

5

 niTi      niTiVi  qi   S Ei  Qie
t  2

2

Ve  Vi
Ringberg Theory Meeting,
20Nov08
11
Stand-alone application to a
limiter case
V// [m/s] @ Top region
Z [m]
Z [m]
Te [eV] @ Top region
R [m]
R [m]
Details of the V// and Te
maps in the SOL of a
limiter machine
Ringberg Theory Meeting,
20Nov08
12
Coupling to near-SOL codes
• A far-SOL code can, in principle, work on
the near SOL as well.
• However, well known and successful
codes exist for the near-SOL (e.g., B2)
• To take advantage of this, it was decided
to couple ASPOEL with B2, as a first step
towards a global edge modeling tool.
Ringberg Theory Meeting,
20Nov08
13
Mesh Generation (I)
r
Wall nodes

• Select the desired
wall nodes  fix the
magnetic surfaces to
build the mesh
• Project radially the
wall nodes to the
near SOL interface 
complete the mesh
Near SOL interface
nodes (B2 mesh)
Accurate wall representation
Poor matching with B2 mesh
Ringberg Theory Meeting,
20Nov08
14
ASPOEL+B2 grids
• ASPOEL (far SOL)
• ~ 6000 elements
• Triangular
Z (m)
• B2 (near SOL)
• ~ 3700 cells
• Quadrilateral
R (m)
Ringberg Theory Meeting,
20Nov08
15
B2-ASPOEL coupling loop
B2 single
iteration
n, V, T profiles
along the
interface
Fluxes across
the interface
ASPOEL single
iteration
Ringberg Theory Meeting,
20Nov08
16
Application to ASDEX Upgrade
Density map across
the whole SOL
(private region
excluded at present)
Ringberg Theory Meeting,
20Nov08
17
B2+ASPOEL “validation”
Density profile @ outer mid-plane (AUG shot # 18737)
Excellent
agreement with
experimental data
Ringberg Theory Meeting,
20Nov08
18
Next steps
• Neutrals (short term ~ 3 months)
– Modification of the mesh generator
• Enforce one-to-one near-far SOL nodes matching at the
interface (needed for Monte Carlo particle history
computations)
• Handle the upper (secondary) X point (for ITER)
– Coupling to EIRENE
• Validation and application to ITER (medium
term ~ 6 months)
– Select suitable database/shots (AUG, TCV, …)
– FW shaping issues
• Impurities (long term ≳ 1 year)
Ringberg Theory Meeting,
20Nov08
19
Mesh Generation (II)
• Select the desired
wall nodes  fix the
magnetic surfaces to
build the mesh
Wall nodes
• Project radially the
near SOL interface
nodes towards the
wall  complete the
mesh
Near SOL interface
nodes (B2 mesh)
Accurate matching with B2 mesh
Poor wall representation
Ringberg Theory Meeting,
20Nov08
20
Preliminary application to ITER
4
Z(m)
2
0
-2
-4
Near+far SOL mesh for B2/ASPOEL
including the upper (secondary) X point
Ringberg Theory Meeting,
20Nov08
4
8
6
R(m)
21
Mesh Generation (III)
• Two strategies for mesh generation tested
so far
• Both are relatively simple to code, but
force to choose between good wall
resolution OR good interface matching
• There are some ideas for optimized
procedures to be developed
Ringberg Theory Meeting,
20Nov08
22
Near-SOL
plasma state +
target fluxes (B2)
n
n
T
E
V
V
Far-SOL
plasma state +
wall fluxes
(ASPOEL)
Split sources
Combine into a
global SOL
plasma
Ringberg Theory Meeting,
20Nov08
Compute ionization,
recombination, chargeexchange sources
(EIRENE)
B2-ASPOEL-EIRENE coupling
23
ITM Related Activities
• EFDA is supporting the development of a
suite of Integrated Tokamak Modeling
(ITM) tools
• The ITM project relies on the Kepler
software. Scope:
– Run different plasma codes in an integrated
framework (workflow)
– Include serial (pre/main run/post) and coupled
(e.g. near-far SOL codes) workflows
Ringberg Theory Meeting,
20Nov08
24
Workflow example (ETS)
ICRH
EQsetup
NBI
TRANSPORT
VIS
EQUIL
COMBINER
ETS
DIAG
Ringberg Theory Meeting,
20Nov08
FEEDB
25
[D. Coster, ITM 08]
Consistent Physical Objects
• A key requirement for the ITM project is
the development of standard Consistent
Physical Objects (CPOs)
– CPO = Data structure to convey the I/O data
flows of all codes
– Examples already developed for main plasma
(1D) codes
– CPOs for edge-plasma codes not available
yet
Ringberg Theory Meeting,
20Nov08
26
PoliTo involvement in ITM
Related Activities
• IMP3 (Transport)
– Definition of edge-related CPOs (activity
leader)
– Preparation of modules for handling boundary
conditions for edge codes (in collaboration
with Innsbruck University)
– Implementation of ITM 2d data structures in at
least 1 edge plasma code (not started)
– Preparation of diagnostics CPOs (transferred
to EDRG group)
Ringberg Theory Meeting,
20Nov08
27
Constraints for Edge CPOs
• Many code-coupling combinations
(plasma-plasma, plasma-neutrals,
equilibrium-turbulence, fluid-kinetic, …)
• Many physical conditions / geometries
(1D, 2D, 3D; steady-state, transients, …)
• Many computational approaches (FV, FE,
CVFE, Monte-Carlo, PIC, FD, structured
grids, unstructured grids, …)
Ringberg Theory Meeting,
20Nov08
28
Codes involved in edge CPOs
design so far
•
•
•
•
•
•
•
•
ASPOEL (F. Subba)
BIT-1 (D. Tskhakaya)
B2.5 (D. Coster, X. Bonnin)
B2.6 (X. Bonnin, H. Hirnish)
EIRENE (D. Reiter, P. Boerner, S. Wiesen)
ELENA (C. Kontz)
FINDIF (R. Zagorski)
JOREK (G. Huysmans)
Ringberg Theory Meeting,
20Nov08
29
Edge CPO structure
• Grid CPO
– Specify the domain geometry, a (set of)
computational grid(s), and related information
(e.g. metric tensor, Christoffel symbols, …)
• Plasma CPO
– Provide a common structure to specify a set
of code-dependent plasma data
– Requires the grid CPO to be developed first
Ringberg Theory Meeting,
20Nov08
30
Main ideas for Grid CPO
• Describe a general geometry by a hierarchical chain
from low to high-dimension objects
–
–
–
–
Use nodes to build segments (1d cells)
Use segments to build faces (2d cells)
Use faces to build volumes (3d cells)
…
• Take as much advantage as possible from the (possible)
existence of structured meshes (e.g. reducing the
specification of a 2D grid to the specification of two 1D
objects)
• Do not force any assumption on the used system of coordinates: any code should be able to specify the
geometry using its natural co-ordinate system (cartesian,
toroidal, magnetic, …)
Ringberg Theory Meeting,
20Nov08
31
Nodes specification
• Nodes are the fundamental brick to build all
subsequent geometrical objects
• Each node is identified by a set of real numbers
(the node coordinates)
• A coordinate system must be associated to each
set of nodes (e.g. cartesian, toroidal, magnetic,
…)  to be specified separately
• A number of auxiliary (redundant) coordinates
may be associated with nodes (e.g.: (x, y, z)
main coordinates, (r, θ, φ) auxiliary coordinates)
Ringberg Theory Meeting,
20Nov08
32
Grid will be built upon cells
1D cells
• GRID: a set of CELLS with
associated information
• CELLs:
2D cell
– Built starting from nodes
– Many possible set of co-ordinates (not
necessarily X, Y, Z, Vx, Vy, Vz, t)
– May have different dimensions in the
same geometry description. 2D
example:
• 2D cells for the domain interior
• 1D cell for the boundaries
3D cell
– Organized according to a hierarchical
structure
• Nodes are boundaries of 1D cells
• 1D cells are boundaries of 2D cells
• …
Ringberg Theory Meeting,
20Nov08
33
Multiple grids on a single geometry
t3
t2
Different grids can be used to
specify a mesh evolving with
time:
t1
Different grids may specify
different discretizations of
the same geometry
Ringberg Theory Meeting,
20Nov08
34
Structured vs. unstructured meshes
Fully structured mesh
j
Various levels of mesh
structuring may be present
 (partial) simplifications
may be possible
Mixed
i
Fully un-structured
mesh
Ringberg Theory Meeting,
20Nov08
35
Conclusions
• Edge-plasma modeling activities at PoliTo
have been reviewed
• Main emphasis is on the development,
validation and application of the ASPOEL
code for far-SOL analysis  Target: ITER
relevance in 1 year
• Involvement in the ITM activities expected
to increase
Ringberg Theory Meeting,
20Nov08
36
Spaces vs. Grids
• Space
– A collection of cells (with some additional information)
involving a subset of coordinates only (e.g. only
“position” coordinates)
– Key elements to take advantage of possible grid
structuring: build a grid by combining N≥1 spaces
– Stored as elements of a derived type array
• Grid
– A collection of cells (with additional information)
involving ALL the mesh coordinates
– Obtain a grid cell by combining a number of space
cells
• Identify a grid cell by a set of integer numbers
• Many grid cell properties are derived implicitly by the
composing spaceRingberg
cells:Theory
saveMeeting,
memory
20Nov08
37
Subgrids
• Each grid cell may be marked as belonging to an individual
subgrid
• Subgrids may be used to specify separate individual
regions
• Typical expected application: use different subgrids to
specify the domain boundaries or the interior
Example: mesh on a 3D rectangular domain
Full domain
Boundaries: 6
subgrids of 2D
cells
Ringberg Theory Meeting,
20Nov08
Interior: 1
subgrid of 3D
cells
38
Subgrids example
The CVFE method may
require a double
discretization of the same
computational domain:
Identify different
discretizations using
different subgrids
Z

Ringberg Theory Meeting,
20Nov08
R
39
Proposed Grid CPO description
• Grid
– Section with global information
– Array of spaces
– Array of grid_nodes
– Array of grid_cells
The detailed definition of the data structures is currently being discussed. It will
change before release
Ringberg Theory Meeting,
20Nov08
40
GEOMETRY CPO DATA
STRUCTURES
Ringberg Theory Meeting,
20Nov08
41
Proposed CPO data structures:
GRID
Current status: may change before release
• Grid
– General specifications for array sizes
– Some quantities characterize spaces. Stored here for technical
reasons
• maxnumcor [integer, scalar] Maximum number of coordinates in a
single space
• maxnmfxcr [integer, scalar] Maximum number of fixed (ignorable)
coordinates in a single space
• maxceldim [integer, scalar] Maximum dimension for grid cells
• maxcelbou [integer, scalar] Maximum number of boundaries for grid
cells
• maxnumnod [integer, scalar] Maximum number of nodes in any
individual space
• maxnumcel [integer, scalar] Maximum number of cells in any individual
space
Ringberg Theory Meeting,
20Nov08
42
Proposed CPO data structures:
GRID I
– Array-size and data specific to the grid
•
•
•
•
•
•
•
grddim [integer, scalar] Global domain dimensionality
numgrdspc [integer, scalar] number of spaces in the grid
numgrdnod [integer, scalar] number of nodes in the grid
numgrdcel [integer, scalar] number of cells in the grid
numsgr [integer, scalar] number of subgrids
nmaxcr [integer, scalar] number of auxiliary coordinates
numngh(1:grddim) [integer, array] number of neighbors for grid cells of
different dimension
• axcrtp(1:nmaxcr) [integer, array] type of auxiliary coordinates. E.g. type=1
for x, type=2 for y, …
– List of spaces, grid nodes and cells
• spaces(1:numgrdspc) [derived type space, array] stores the spaces
composing the grid
• grdnod(1:numgrdnog) [derived type grid_node, array] stores the grid nodes
• grdcel(1:numgrdcel) [derived type grid_cell, array] stores the grid cells
Ringberg Theory Meeting,
20Nov08
43
Proposed CPO data structures:
GRID_SPACE
•
Grid_space
–
–
–
–
–
–
–
–
–
–
–
–
numcor [integer, scalar] number of coordinates specified in the space
typcor(1:numcor) [integer, array] type coordinates specified in the space
nmfxcr [integer, scalar] number of fixed (igonrable) coordinates involved in the space
fxcrls [integer, array] list of the fixed (ignorable) coordinates involved in the space
fxcrvl [double, array] values of the fixed (ignorable) coordinates involved in the space
celdim [integegr, scalar] dimensionality of the space (it will contain cells of any dimension ≤
celdim)
numnod [integer, scalar] number of nodes in the space
numcel(1:celdim) [integer, array] number of cells of different dimension in the space
celbou(1:celdim) [integer, array] number of boundaries for cells of different dimension
nodes(1:numnod, 1:numcor-nmfxcr) [double, array] list of the nodes in the space
cell(1:celdim, 1:numcel, 1:celbou) [integer, array] list of the cells in the space. Every cell is
specified by listing its boundaries
nghlst(1:celdim, 1:numcel, 1:celbou) [integer, array] For each cell in the space, list the
neighbors
Ringberg Theory Meeting,
20Nov08
44
Proposed CPO data structures:
GRID_NODE
• grid_node
– Node identification
• indexes(1:numspc) [integer, array] pointer to field “nodes” in the
composing spaces
– Node additional information
• metric(1:(grddim*(grddim+1)/2) [double, array] components of the
metric tensor at node locations
• axcrls(1:nmaxcr) [double, array] list of auxiliary coordinates
• alias [integer, scalar] alias for the node. Used to specify, e.g.,
domain periodicity
• …
Ringberg Theory Meeting,
20Nov08
45
Proposed CPO data structures:
GRID_CELL
• grid_cell
– Cell identification
• indexes(1:2*numgrdspc) [integer, array] Two indexes per each space, used
to identify an individual cell
– Additional cell information
•
•
•
•
celdim [integer, scalar] cell dimension
subgrid [integer, scalar] subgrid marker
neighbors(1:numngh(celdim)) [integer, array] list of cell neighbors
measure [double, scalar] cell measure (length, area, volume, … according to
the dimension)
• metric(1:(grddim*(grddim+1)/2) [double, array] (metric tensor associated with
the cell)
• center [integer, scalar] (pointer to a node located at the cell center)
• …
Ringberg Theory Meeting,
20Nov08
46