Extension: Geometries
#include "dg/geometries/geometries.h"

\( H(\psi_p(R,Z))\), dg::geo::createModifiedField More...

Collaboration diagram for Modification of any expansion:

Classes

struct  dg::geo::mod::Psip
 \( \psi_{mod} := \begin{cases} H(\psi_p(R,Z))\text{ for } P(R,Z) \\ \psi_p(R,Z) \text { else } \end{cases} \) More...
 
struct  dg::geo::mod::PsipR
 
struct  dg::geo::mod::PsipZ
 
struct  dg::geo::mod::PsipZZ
 
struct  dg::geo::mod::PsipRR
 
struct  dg::geo::mod::PsipRZ
 

Functions

static dg::geo::CylindricalFunctorsLvl2 dg::geo::mod::createPsip (const std::function< bool(double, double)> predicate, const CylindricalFunctorsLvl2 &psip, double psi0, double alpha, double sign=-1)
 \( \psi_{mod} := \begin{cases} H(\psi_p(R,Z))\text{ for } P(R,Z) \\ \psi_p(R,Z) \text { else } \end{cases} \) More...
 

Detailed Description

\( H(\psi_p(R,Z))\), dg::geo::createModifiedField

Function Documentation

◆ createPsip()

static dg::geo::CylindricalFunctorsLvl2 dg::geo::mod::createPsip ( const std::function< bool(double, double)>  predicate,
const CylindricalFunctorsLvl2 psip,
double  psi0,
double  alpha,
double  sign = -1 
)
inlinestatic

\( \psi_{mod} := \begin{cases} H(\psi_p(R,Z))\text{ for } P(R,Z) \\ \psi_p(R,Z) \text { else } \end{cases} \)

where H is the integrated dg::IPolynomialHeaviside function and P is a predicate that returns either true or false.

Note
the predicate can usually be true everywhere, the idea for the predicate is to be able to selectively target the private flux region(s) for modification.
This is a helper function used in the implementation of dg::geo::createModifiedField
Parameters
predicateP(R,Z) indicates the positions where Psi is to be modified (true) or not (false)
psipthe flux function to be modified
psi0parameter for dg::PolynomialHeaviside function
alphaparameter for dg::PolynomialHeaviside function
signparameter for dg::PolynomialHeaviside function
See also
createModifiedField
Returns
the modified flux function