Extension: Geometries
#include "dg/geometries/geometries.h"
dg::geo::SeparatrixOrthogonal Struct Reference

Choose points on separatrix and construct grid from there. More...

Inheritance diagram for dg::geo::SeparatrixOrthogonal:
[legend]

Public Member Functions

 SeparatrixOrthogonal (const CylindricalFunctorsLvl2 &psi, const CylindricalSymmTensorLvl1 &chi, double psi_0, double xX, double yX, double x0, double y0, int firstline, bool verbose=false)
 Construct. More...
 
virtual SeparatrixOrthogonalclone () const override final
 Abstract clone method that returns a copy on the heap. More...
 
- Public Member Functions inherited from dg::geo::aRealGeneratorX2d< real_type >
real_type zeta0 (real_type fx) const
 
real_type zeta1 (real_type fx) const
 
real_type eta0 (real_type fy) const
 
real_type eta1 (real_type fy) const
 
bool isOrthogonal () const
 sparsity pattern for metric More...
 
void generate (const thrust::host_vector< real_type > &zeta1d, const thrust::host_vector< real_type > &eta1d, unsigned nodeX0, unsigned nodeX1, thrust::host_vector< real_type > &x, thrust::host_vector< real_type > &y, thrust::host_vector< real_type > &zetaX, thrust::host_vector< real_type > &zetaY, thrust::host_vector< real_type > &etaX, thrust::host_vector< real_type > &etaY) const
 Generate grid points and elements of the Jacobian. More...
 
virtual aRealGeneratorX2dclone () const =0
 Abstract clone method that returns a copy on the heap. More...
 
virtual ~aRealGeneratorX2d ()
 

Additional Inherited Members

- Protected Member Functions inherited from dg::geo::aRealGeneratorX2d< real_type >
 aRealGeneratorX2d ()
 
 aRealGeneratorX2d (const aRealGeneratorX2d &src)
 
aRealGeneratorX2doperator= (const aRealGeneratorX2d &src)
 

Detailed Description

Choose points on separatrix and construct grid from there.

This is the algorithm described in: "M. Wiesenberger, M. Held, L. Einkemmer, A. Kendl Streamline integration as a method for structured grid generation in X-point geometry Journal of Computational Physics 373, 370-384 (2018)"

Note
The resulting coordinate transformation for \( \zeta\) will by linear in \( \psi\)
Attention
Assumes that the separatrix is given by \( \psi = 0\). If this is not the case, then use the normalize_solovev_t program to change the parameters. Further, it is assumed that closed flux surfaces inside of the separatrix exist.

Constructor & Destructor Documentation

◆ SeparatrixOrthogonal()

dg::geo::SeparatrixOrthogonal::SeparatrixOrthogonal ( const CylindricalFunctorsLvl2 psi,
const CylindricalSymmTensorLvl1 chi,
double  psi_0,
double  xX,
double  yX,
double  x0,
double  y0,
int  firstline,
bool  verbose = false 
)
inline

Construct.

Parameters
psithe flux function, the separatrix must be at \( \psi = 0\)
chithe monitor tensor, see dg::geo::make_Xconst_monitor or dg::geo::make_Xbump_monitor
psi_0The left boundary of the grid this generator will generate. Must be a closed flux surface.
xXthe X-point x - coordinate
yXthe X-point y - coordinate
x0a point in the inside of the separatrix (can be the O-point, defines the angle for initial separatrix integration)
y0a point in the inside of the separatrix (can be the O-point, defines the angle for initial separatrix integration)
firstline=0 means conformal, =1 means equalarc discretization of the separatrix
verboseif true the integrators will write additional information to std::cout

Member Function Documentation

◆ clone()

virtual SeparatrixOrthogonal * dg::geo::SeparatrixOrthogonal::clone ( ) const
inlinefinaloverridevirtual

Abstract clone method that returns a copy on the heap.

Returns
a copy of *this on the heap

Implements dg::geo::aRealGeneratorX2d< real_type >.


The documentation for this struct was generated from the following file: