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

Namespaces

namespace  circular
 
namespace  guenter
 Contains the Guenter type flux functions.
 
namespace  mod
 A modification flux function.
 
namespace  polynomial
 A polynomial approximation type flux function.
 
namespace  solovev
 Contains the solovev state type flux function.
 
namespace  taylor
 Contains the Cerfon Taylor state type flux functions (using boost)
 
namespace  toroidal
 
namespace  x
 

Classes

struct  aCylindricalFunctor
 Represent functions written in cylindrical coordinates that are independent of the angle phi serving as both 2d and 3d functions. More...
 
struct  aRealGenerator2d
 The abstract generator base class. More...
 
struct  aRealGeneratorX2d
 The abstract generator base class. More...
 
struct  BFieldP
 \( B^\varphi = R_0I/R^2\) More...
 
struct  BFieldR
 \( B^R = R_0\psi_Z /R\) More...
 
struct  BFieldT
 \( B^{\theta} = B^R\partial_R\theta + B^Z\partial_Z\theta\) More...
 
struct  BFieldZ
 \( B^Z = -R_0\psi_R /R\) More...
 
struct  BHatP
 \( \hat b^\varphi = B^\varphi/|B|\) More...
 
struct  BHatPR
 \( \partial_R \hat b^\varphi\) More...
 
struct  BHatPZ
 \( \partial_Z \hat b^\varphi\) More...
 
struct  BHatR
 \( b^R = B^R/|B|\) More...
 
struct  BHatRR
 \( \partial_R b^R\) More...
 
struct  BHatRZ
 \( \partial_Z b^R\) More...
 
struct  BHatZ
 \( b^Z = B^Z/|B|\) More...
 
struct  BHatZR
 \( \partial_R b^Z\) More...
 
struct  BHatZZ
 \( \partial_Z b^Z\) More...
 
struct  Bmodule
 \( |B| = R_0\sqrt{I^2+(\nabla\psi)^2}/R \) More...
 
struct  BR
 \( \frac{\partial |B| }{ \partial R} \) More...
 
struct  BZ
 \( \frac{\partial |B| }{ \partial Z} \) More...
 
struct  Constant
 \( f(x,y) = c\) More...
 
struct  CurvatureKappaR
 Approximate \( \mathcal{K}^{R}_{\vec{\kappa}}=0 \). More...
 
struct  CurvatureKappaZ
 Approximate \( \mathcal{K}^{Z}_{\vec{\kappa}} \). More...
 
struct  CurvatureNablaBR
 Approximate \( \mathcal{K}^{R}_{\nabla B} \). More...
 
struct  CurvatureNablaBZ
 Approximate \( \mathcal{K}^{Z}_{\nabla B} \). More...
 
struct  CylindricalFunctorsLvl1
 This struct bundles a function and its first derivatives. More...
 
struct  CylindricalFunctorsLvl2
 This struct bundles a function and its first and second derivatives. More...
 
struct  CylindricalSymmTensorLvl1
 
struct  CylindricalVectorLvl0
 
struct  CylindricalVectorLvl1
 This struct bundles a vector field and its divergence. More...
 
struct  Divb
 \( \nabla \cdot \vec b \) More...
 
struct  DivCurvatureKappa
 Approximate \( \vec{\nabla}\cdot \mathcal{K}_{\vec{\kappa}} \). More...
 
struct  DivCurvatureNablaB
 Approximate \( \vec{\nabla}\cdot \mathcal{K}_{\nabla B} \). More...
 
struct  DivLiseikinX
 The x-component of the divergence of the Liseikin monitor metric. More...
 
struct  DivLiseikinY
 The y-component of the divergence of the Liseikin monitor metric. More...
 
struct  DivVVP
 \( \nabla\cdot\left( \frac{ \hat b }{\hat b^\varphi}\right)\) More...
 
struct  DS
 Class for the evaluation of parallel derivatives. More...
 
struct  DSPGenerator
 A transformed field grid generator. More...
 
struct  Fieldaligned
 Create and manage interpolation matrices from fieldline integration. More...
 
struct  FluxGenerator
 A symmetry flux generator. More...
 
struct  FluxSurfaceAverage
 Flux surface average (differential volume average) over quantity \( \langle f\rangle(\psi_0) = \frac{1}{A} \int dR dZ \delta(\psi_p(R,Z)-\psi_0) f(R,Z)H(R,Z) \). More...
 
struct  FluxSurfaceIntegral
 Flux surface integral of the form \( \int dR dZ f(R,Z) \delta(\psi_p(R,Z)-\psi_0) g(R,Z) \). More...
 
struct  FluxVolumeIntegral
 Flux volume integral of the form \( \int dR dZ f(R,Z) \Theta(\psi_p(R,Z)-\psi_0) g(R,Z) \). More...
 
struct  GradLnB
 \( \nabla_\parallel \ln{(B)} \) More...
 
struct  Hector
 The High PrEcision Conformal grid generaTOR. More...
 
struct  Hoo
 Inertia factor \( \mathcal I_0 = B^2/(R_0^2|\nabla\psi_p|^2)\). More...
 
struct  InvB
 \( |B|^{-1} = R/R_0\sqrt{I^2+(\nabla\psi)^2} \) More...
 
struct  LaplacePsip
 \( \Delta\psi_p = \psi_R/R + \psi_{RR}+\psi_{ZZ} \) More...
 
struct  Liseikin_XX
 The xx-component of the Liseikin monitor metric. More...
 
struct  Liseikin_XY
 The xy-component of the Liseikin monitor metric. More...
 
struct  Liseikin_YY
 The yy-component of the Liseikin monitor metric. More...
 
struct  LnB
 \( \ln{|B|} \) More...
 
struct  LogPolarGenerator
 Log Polar coordinates (conformal) More...
 
struct  MagneticFieldParameters
 Meta-data about the magnetic field in particular the flux function. More...
 
struct  NablaPsiInv
 A weight function for the Hector algorithm. More...
 
struct  NablaPsiInvX
 Derivative of the weight function. More...
 
struct  NablaPsiInvY
 Derivative of the weight function. More...
 
struct  Periodify
 This function uses the dg::Grid2d::shift member to extend another function beyond the grid boundaries. More...
 
struct  PolarGenerator
 Polar coordinates. More...
 
struct  RealCurvilinearGrid2d
 A two-dimensional grid based on curvilinear coordinates. More...
 
struct  RealCurvilinearGridX2d
 A two-dimensional grid based on curvilinear coordinates. More...
 
struct  RealCurvilinearMPIGrid2d
 A two-dimensional MPI grid based on curvilinear coordinates. More...
 
struct  RealCurvilinearProductGrid3d
 A 2x1 curvilinear product space grid. More...
 
struct  RealCurvilinearProductGridX3d
 A three-dimensional grid based on curvilinear coordinates. More...
 
struct  RealCurvilinearProductMPIGrid3d
 A 2x1 curvilinear product space MPI grid. More...
 
struct  RealCurvilinearRefinedGridX2d
 A two-dimensional grid based on curvilinear coordinates. More...
 
struct  RealCurvilinearRefinedProductGridX3d
 A three-dimensional grid based on curvilinear coordinates. More...
 
struct  RealCylindricalFunctor
 Inject both 2d and 3d operator() to a 2d functor. More...
 
struct  RhoP
 
struct  Ribeiro
 A two-dimensional grid based on "almost-conformal" coordinates by Ribeiro and Scott 2010. More...
 
struct  RibeiroFluxGenerator
 Same as the Ribeiro class just but uses psi as a flux label directly. More...
 
struct  RibeiroX
 A two-dimensional grid based on "almost-conformal" coordinates by Ribeiro and Scott 2010. More...
 
struct  SafetyFactor
 Evaluation of the safety factor q based on direct integration of \( q(\psi_0) = \frac{1}{2\pi} \int d\Theta \frac{B^\varphi}{B^\Theta} \). More...
 
struct  SafetyFactorAverage
 Class for the evaluation of the safety factor q based on a flux-surface integral \( q(\psi_0) = \frac{1}{2\pi} \int dRdZ \frac{I(\psi_p)}{R} \delta(\psi_p - \psi_0)H(R,Z) \). More...
 
struct  ScalarProduct
 Return scalar product of two vector fields \( v_0w_0 + v_1w_1 + v_2w_2\). More...
 
struct  SeparatrixOrthogonal
 Choose points on separatrix and construct grid from there. More...
 
struct  SeparatrixOrthogonalAdaptor
 An Adaptor to use SeparatrixOrthogonal as aGenerator2d instead of aGeneratorX2d. More...
 
struct  SimpleOrthogonal
 Generate a simple orthogonal grid. More...
 
struct  SquareNorm
 Return norm of scalar product of two vector fields \( \sqrt{v_0w_0 + v_1w_1 + v_2w_2}\). More...
 
struct  TokamakMagneticField
 A tokamak field as given by R0, Psi and Ipol plus Meta-data like shape and equilibrium. More...
 
struct  Topology1d
 Helper class for construction. More...
 
struct  TrueCurvatureKappaP
 True \( \mathcal{K}^\varphi_{\vec{\kappa}} \). More...
 
struct  TrueCurvatureKappaR
 True \( \mathcal{K}^R_{\vec{\kappa}} \). More...
 
struct  TrueCurvatureKappaZ
 True \( \mathcal{K}^Z_{\vec{\kappa}} \). More...
 
struct  TrueCurvatureNablaBP
 True \( \mathcal{K}^{\varphi}_{\nabla B} \). More...
 
struct  TrueCurvatureNablaBR
 True \( \mathcal{K}^{R}_{\nabla B} \). More...
 
struct  TrueCurvatureNablaBZ
 True \( \mathcal{K}^{Z}_{\nabla B} \). More...
 
struct  TrueDivCurvatureKappa
 True \( \vec{\nabla}\cdot \mathcal{K}_{\vec{\kappa}} \). More...
 
struct  TrueDivCurvatureNablaB
 True \( \vec{\nabla}\cdot \mathcal{K}_{\nabla B} \). More...
 
struct  WallDirection
 Determine if poloidal field points towards or away from the nearest wall. More...
 
struct  WallFieldlineCoordinate
 Normalized coordinate relative to wall along fieldline in phi or s coordinate. More...
 
struct  WallFieldlineDistance
 Distance to wall along fieldline in phi or s coordinate More...
 
struct  ZCutter
 \( f(R,Z)= \begin{cases} 0 \text{ if } Z < Z_X \\ 1 \text{ else } \end{cases} \) More...
 

Typedefs

using CurvilinearGrid2d = dg::geo::RealCurvilinearGrid2d< double >
 
using CurvilinearProductGrid3d = dg::geo::RealCurvilinearProductGrid3d< double >
 
using CurvilinearGridX2d = dg::geo::RealCurvilinearGridX2d< double >
 
using CurvilinearProductGridX3d = dg::geo::RealCurvilinearProductGridX3d< double >
 
typedef ONE FullLimiter
 Full Limiter means there is a limiter everywhere. More...
 
typedef ZERO NoLimiter
 No Limiter. More...
 
using CylindricalFunctor = RealCylindricalFunctor< double >
 Most of the times we use double. More...
 
using aGenerator2d = dg::geo::aRealGenerator2d< double >
 
using aGeneratorX2d = dg::geo::aRealGeneratorX2d< double >
 
using CurvilinearMPIGrid2d = dg::geo::RealCurvilinearMPIGrid2d< double >
 
using CurvilinearProductMPIGrid3d = dg::geo::RealCurvilinearProductMPIGrid3d< double >
 
using CurvilinearRefinedGridX2d = dg::geo::RealCurvilinearRefinedGridX2d< double >
 
using CurvilinearRefinedProductGridX3d = dg::geo::RealCurvilinearRefinedProductGridX3d< double >
 

Enumerations

enum  whichMatrix {
  einsPlus = 0 , einsPlusT , einsMinus , einsMinusT ,
  zeroPlus , zeroMinus , zeroPlusT , zeroMinusT ,
  zeroForw , einsPlus = 0 , einsPlusT , einsMinus ,
  einsMinusT , zeroPlus , zeroMinus , zeroPlusT ,
  zeroMinusT , zeroBack , einsPlus = 0 , einsPlusT ,
  einsMinus , einsMinusT , zeroPlus , zeroMinus ,
  zeroPlusT , zeroMinusT , zeroForw
}
 Enum for the use in Fieldaligned. More...
 
enum  whichMatrix {
  einsPlus = 0 , einsPlusT , einsMinus , einsMinusT ,
  zeroPlus , zeroMinus , zeroPlusT , zeroMinusT ,
  zeroForw , einsPlus = 0 , einsPlusT , einsMinus ,
  einsMinusT , zeroPlus , zeroMinus , zeroPlusT ,
  zeroMinusT , zeroBack , einsPlus = 0 , einsPlusT ,
  einsMinus , einsMinusT , zeroPlus , zeroMinus ,
  zeroPlusT , zeroMinusT , zeroForw
}
 Enum for the use in Fieldaligned. More...
 
enum  whichMatrix {
  einsPlus = 0 , einsPlusT , einsMinus , einsMinusT ,
  zeroPlus , zeroMinus , zeroPlusT , zeroMinusT ,
  zeroForw , einsPlus = 0 , einsPlusT , einsMinus ,
  einsMinusT , zeroPlus , zeroMinus , zeroPlusT ,
  zeroMinusT , zeroBack , einsPlus = 0 , einsPlusT ,
  einsMinus , einsMinusT , zeroPlus , zeroMinus ,
  zeroPlusT , zeroMinusT , zeroForw
}
 Enum for the use in Fieldaligned. More...
 
enum class  equilibrium {
  equilibrium::solovev , equilibrium::taylor , equilibrium::polynomial , equilibrium::guenter ,
  equilibrium::toroidal , equilibrium::circular
}
 How flux-function is computed. Decides how to construct magnetic field. More...
 
enum class  modifier { modifier::none , modifier::heaviside , modifier::sol_pfr }
 How flux-function is modified. More...
 
enum class  description {
  description::standardO , description::standardX , description::doubleX , description::none ,
  description::square , description::centeredX
}
 How flux function looks like. Decider on whether and what flux aligned grid to construct. More...
 

Functions

static CylindricalFunctorsLvl1 make_NablaPsiInvCollective (const CylindricalFunctorsLvl2 &psi)
 A container class that contains all NablaPsiInv functors. More...
 
static CylindricalSymmTensorLvl1 make_LiseikinCollective (const CylindricalFunctorsLvl2 &psi, double k, double eps)
 
template<class FieldAligned , class container >
void assign_bc_along_field_2nd (const FieldAligned &fa, const container &fm, const container &f, const container &fp, container &fmg, container &fpg, dg::bc bound, std::array< double, 2 > boundary_value={0, 0})
 Assign boundary conditions along magnetic field lines interpolating a 2nd order polynomial. More...
 
template<class FieldAligned , class container >
void assign_bc_along_field_1st (const FieldAligned &fa, const container &fm, const container &fp, container &fmg, container &fpg, dg::bc bound, std::array< double, 2 > boundary_value={0, 0})
 Assign boundary conditions along magnetic field lines interpolating a 1st order polynomial (a line) More...
 
template<class FieldAligned , class container >
void swap_bc_perp (const FieldAligned &fa, const container &fm, const container &fp, container &fmg, container &fpg)
 Swap the perp boundary condition. More...
 
template<class FieldAligned , class container >
void ds_forward (const FieldAligned &fa, double alpha, const container &f, const container &fp, double beta, container &g)
 forward derivative \( g = \alpha \vec v \cdot \nabla f + \beta g\) More...
 
template<class FieldAligned , class container >
void ds_forward2 (const FieldAligned &fa, double alpha, const container &f, const container &fp, const container &fpp, double beta, container &g)
 2nd order forward derivative \( g = \alpha \vec v \cdot \nabla f + \beta g\) More...
 
template<class FieldAligned , class container >
void ds_backward (const FieldAligned &fa, double alpha, const container &fm, const container &f, double beta, container &g)
 backward derivative \( g = \alpha \vec v \cdot \nabla f + \beta g\) More...
 
template<class FieldAligned , class container >
void ds_backward2 (const FieldAligned &fa, double alpha, const container &fmm, const container &fm, const container &f, double beta, container &g)
 2nd order backward derivative \( g = \alpha \vec v \cdot \nabla f + \beta g\) More...
 
template<class FieldAligned , class container >
void ds_centered (const FieldAligned &fa, double alpha, const container &fm, const container &fp, double beta, container &g)
 centered derivative \( g = \alpha \vec v \cdot \nabla f + \beta g\) More...
 
template<class FieldAligned , class container >
void dss_centered (const FieldAligned &fa, double alpha, const container &fm, const container &f, const container &fp, double beta, container &g)
 Centered derivative \( g = \alpha (\vec v\cdot \nabla)^2 f + \beta g \). More...
 
template<class FieldAligned , class container >
void dssd_centered (const FieldAligned &fa, double alpha, const container &fm, const container &f, const container &fp, double beta, container &g)
 Centered derivative \( g = \alpha \nabla\cdot(\vec v \vec v\cdot \nabla) f + \beta g \). More...
 
template<class FieldAligned , class container >
void ds_divBackward (const FieldAligned &fa, double alpha, const container &fm, const container &f, double beta, container &g)
 backward derivative \( g = \alpha \nabla \cdot \vec v f + \beta g\) More...
 
template<class FieldAligned , class container >
void ds_divForward (const FieldAligned &fa, double alpha, const container &f, const container &fp, double beta, container &g)
 forward derivative \( g = \alpha \nabla \cdot \vec v f + \beta g\) More...
 
template<class FieldAligned , class container >
void ds_divCentered (const FieldAligned &fa, double alpha, const container &fm, const container &fp, double beta, container &g)
 centered derivative \( g = \alpha \nabla \cdot \vec v f + \beta g\) More...
 
template<class FieldAligned , class container >
void ds_average (const FieldAligned &fa, double alpha, const container &fm, const container &fp, double beta, container &g)
 Compute average along a fieldline \( g = \alpha \frac{f_{k+1} + f_{k-1}}{2} + \beta g\). More...
 
template<class FieldAligned , class container >
void ds_slope (const FieldAligned &fa, double alpha, const container &fm, const container &fp, double beta, container &g)
 Compute simple slope along a fieldline \( g = \alpha v^\varphi\frac{f_{k+1} - f_{k-1}}{2\Delta\varphi} + \beta g\). More...
 
template<class BinaryOp , class UnaryOp >
thrust::host_vector< double > fieldaligned_evaluate (const aProductGeometry3d &grid, const CylindricalVectorLvl0 &vec, const BinaryOp &binary, const UnaryOp &unary, unsigned p0, unsigned rounds, double eps=1e-5)
 Evaluate a 2d functor and transform to all planes along the fieldlines More...
 
static int findCriticalPoint (const CylindricalFunctorsLvl2 &psi, double &RC, double &ZC)
 This function finds critical points of psi (any point with vanishing gradient, including the X-point or O-point) via Newton iteration applied to the gradient of psi. More...
 
static int findOpoint (const CylindricalFunctorsLvl2 &psi, double &RC, double &ZC)
 This function finds O-points of psi. More...
 
static void findXpoint (const CylindricalFunctorsLvl2 &psi, double &RC, double &ZC)
 This function finds X-points of psi. More...
 
template<class Geometry3d >
dg::SparseTensor< dg::get_host_vector< Geometry3d > > createAlignmentTensor (const dg::geo::CylindricalVectorLvl0 &bhat, const Geometry3d &g)
 \( \chi^{ij} = b^ib^j\) More...
 
template<class Geometry3d >
dg::SparseTensor< dg::get_host_vector< Geometry3d > > createProjectionTensor (const dg::geo::CylindricalVectorLvl0 &bhat, const Geometry3d &g)
 \( h^{ij} = g^{ij} - b^ib^j\) More...
 
static dg::geo::TokamakMagneticField createGuenterField (double R_0, double I_0)
 Create a Guenter Magnetic field. More...
 
static TokamakMagneticField periodify (const TokamakMagneticField &mag, double R0, double R1, double Z0, double Z1, dg::bc bcx, dg::bc bcy)
 Use dg::geo::Periodify to periodify every function in the magnetic field. More...
 
CylindricalVectorLvl1 createEPhi (int sign)
 Contravariant components of the unit vector field (0, 0, +/- 1/R) and its Divergence and derivative (0,0) in cylindrical coordinates. More...
 
CylindricalVectorLvl0 createCurvatureNablaB (const TokamakMagneticField &mag, int sign)
 Approximate curvature vector field (CurvatureNablaBR, CurvatureNablaBZ, Constant(0)) More...
 
CylindricalVectorLvl0 createCurvatureKappa (const TokamakMagneticField &mag, int sign)
 Approximate curvature vector field (CurvatureKappaR, CurvatureKappaZ, Constant(0)) More...
 
CylindricalVectorLvl0 createTrueCurvatureKappa (const TokamakMagneticField &mag)
 True curvature vector field (TrueCurvatureKappaR, TrueCurvatureKappaZ, TrueCurvatureKappaP) More...
 
CylindricalVectorLvl0 createTrueCurvatureNablaB (const TokamakMagneticField &mag)
 True curvature vector field (TrueCurvatureNablaBR, TrueCurvatureNablaBZ, TrueCurvatureNablaBP) More...
 
CylindricalVectorLvl0 createGradPsip (const TokamakMagneticField &mag)
 Gradient Psip vector field (PsipR, PsipZ, 0) More...
 
CylindricalVectorLvl1 createBHat (const TokamakMagneticField &mag)
 Contravariant components of the magnetic unit vector field and its Divergence and derivative in cylindrical coordinates. More...
 
static TokamakMagneticField createMagneticField (dg::file::WrappedJsonValue gs)
 Create a Magnetic field based on the given parameters. More...
 
static TokamakMagneticField createModifiedField (dg::file::WrappedJsonValue gs, dg::file::WrappedJsonValue jsmod, CylindricalFunctor &wall, CylindricalFunctor &transition)
 Modify Magnetic Field and create wall above or below certain Psi values according to given parameters. More...
 
static CylindricalFunctor createWallRegion (dg::file::WrappedJsonValue gs, dg::file::WrappedJsonValue jsmod)
 A convenience function call for dg::geo::createModifiedField that ignores the transition parameter and returns the wall. More...
 
static void createSheathRegion (dg::file::WrappedJsonValue jsmod, TokamakMagneticField mag, CylindricalFunctor wall, dg::Grid2d &sheath_walls, CylindricalFunctor &sheath)
 Create the sheath region where fieldlines intersect the boundary. More...
 
template<class BinaryOp , class UnaryOp >
MPI_Vector< thrust::host_vector< double > > fieldaligned_evaluate (const aProductMPIGeometry3d &grid, const CylindricalVectorLvl0 &vec, const BinaryOp &binary, const UnaryOp &unary, unsigned p0, unsigned rounds, double eps=1e-5)
 Evaluate a 2d functor and transform to all planes along the fieldlines (MPI Version) More...
 
static dg::geo::TokamakMagneticField createPolynomialField (dg::geo::polynomial::Parameters gp)
 Create a Polynomial Magnetic field. More...
 
static dg::geo::TokamakMagneticField createSolovevField (dg::geo::solovev::Parameters gp)
 Create a Solovev Magnetic field. More...
 
static dg::geo::TokamakMagneticField createModifiedSolovevField (dg::geo::solovev::Parameters gp, double psi0, double alpha, double sign=-1)
 DEPRECATED Create a modified Solovev Magnetic field. More...
 
static dg::geo::TokamakMagneticField createTaylorField (dg::geo::solovev::Parameters gp)
 Create a Taylor Magnetic field. More...
 
static dg::geo::TokamakMagneticField createToroidalField (double R0)
 Create a Toroidal Magnetic field. More...
 
static dg::geo::TokamakMagneticField createCircularField (double R0, double I0, double a=1, double b=1)
 \( \psi_p = 1- \left(\frac{R-R_0}{a}\right)^2 - \left( \frac{Z}{b}\right)^2,\quad I(\psi_p) = I_0 \) More...
 
static CylindricalSymmTensorLvl1 make_Xbump_monitor (const CylindricalFunctorsLvl2 &psi, double &R_X, double &Z_X, double radiusX, double radiusY)
 construct a monitor metric in which the Laplacian vanishes at the X-point More...
 
static CylindricalSymmTensorLvl1 make_Xconst_monitor (const CylindricalFunctorsLvl2 &psi, double &R_X, double &Z_X)
 construct a monitor metric in which the Laplacian vanishes at the X-point More...
 

Typedef Documentation

◆ aGenerator2d

◆ aGeneratorX2d

Function Documentation

◆ make_Xbump_monitor()

static CylindricalSymmTensorLvl1 dg::geo::make_Xbump_monitor ( const CylindricalFunctorsLvl2 psi,
double &  R_X,
double &  Z_X,
double  radiusX,
double  radiusY 
)
inlinestatic

construct a monitor metric in which the Laplacian vanishes at the X-point

calls the findXpoint function to find the X-point

Parameters
psithe flux functions
R_Xstart value on input, X-point on output
Z_Xstart value on input, X-point on output
radiusXsize of bump in x direction
radiusYsize of bump in y-direction
Returns
a metric tensor and its derivatives

◆ make_Xconst_monitor()

static CylindricalSymmTensorLvl1 dg::geo::make_Xconst_monitor ( const CylindricalFunctorsLvl2 psi,
double &  R_X,
double &  Z_X 
)
inlinestatic

construct a monitor metric in which the Laplacian vanishes at the X-point

calls the findXpoint function to find the X-point

Parameters
psithe flux functions
R_Xstart value on input, X-point on output
Z_Xstart value on input, X-point on output
Returns
a metric tensor and its derivatives