57static const std::map<std::string, equilibrium> str2equilibrium{
65static const std::map<std::string, modifier> str2modifier{
70static const std::map<std::string, description> str2description{
96 m_a = 1, m_elongation = 1, m_triangularity = 0;
116 m_modifier(mod), m_description( des){}
122 double a()
const{
return m_a;}
167 ): m_R0(
R0), m_psip(
psip), m_ipol(
ipol), m_params(gp){}
177 double R0()
const {
return m_R0;}
214static inline CylindricalFunctorsLvl1
periodify(
const CylindricalFunctorsLvl1& in,
double R0,
double R1,
double Z0,
double Z1,
bc bcx,
bc bcy)
216 return CylindricalFunctorsLvl1(
217 Periodify( in.f(), R0, R1, Z0, Z1, bcx, bcy),
218 Periodify( in.dfx(), R0, R1, Z0, Z1,
inverse(bcx), bcy),
219 Periodify( in.dfy(), R0, R1, Z0, Z1, bcx,
inverse(bcy)));
221static inline CylindricalFunctorsLvl2
periodify(
const CylindricalFunctorsLvl2& in,
double R0,
double R1,
double Z0,
double Z1,
bc bcx,
bc bcy)
223 return CylindricalFunctorsLvl2(
224 Periodify( in.f(), R0, R1, Z0, Z1, bcx, bcy),
225 Periodify( in.dfx(), R0, R1, Z0, Z1,
inverse(bcx), bcy),
226 Periodify( in.dfy(), R0, R1, Z0, Z1, bcx,
inverse(bcy)),
227 Periodify( in.dfxx(), R0, R1, Z0, Z1, bcx, bcy),
228 Periodify( in.dfxy(), R0, R1, Z0, Z1,
inverse(bcx),
inverse(bcy)),
229 Periodify( in.dfyy(), R0, R1, Z0, Z1, bcx, bcy));
273 double psipR = m_mag.
psipR()(R,Z), psipZ = m_mag.
psipZ()(R,Z), ipol = m_mag.
ipol()(R,Z);
274 return m_mag.
R0()/R*sqrt(ipol*ipol+psipR*psipR +psipZ*psipZ);
292 double psipR = m_mag.
psipR()(R,Z), psipZ = m_mag.
psipZ()(R,Z), ipol = m_mag.
ipol()(R,Z);
293 return R/(m_mag.
R0()*sqrt(ipol*ipol + psipR*psipR +psipZ*psipZ)) ;
311 double psipR = m_mag.
psipR()(R,Z), psipZ = m_mag.
psipZ()(R,Z), ipol = m_mag.
ipol()(R,Z);
312 return log(m_mag.
R0()/R*sqrt(ipol*ipol + psipR*psipR +psipZ*psipZ)) ;
333 double Rn = R/m_mag.
R0();
334 double invB = m_invB(R,Z);
335 return -1./R/invB + invB/Rn/Rn*(m_mag.
ipol()(R,Z)*m_mag.
ipolR()(R,Z) + m_mag.
psipR()(R,Z)*m_mag.
psipRR()(R,Z) + m_mag.
psipZ()(R,Z)*m_mag.
psipRZ()(R,Z));
355 double Rn = R/m_mag.
R0();
377 return -m_sign*m_invB(R,Z)*m_invB(R,Z)*m_bZ(R,Z);
399 return m_sign*m_invB(R,Z)*m_invB(R,Z)*m_bR(R,Z);
436 return -m_sign*m_invB(R,Z)/R;
457 return m_sign*m_bZ(R,Z)*m_invB(R,Z)*m_invB(R,Z)/R;
487 double invB = m_invB(R,Z), ipol = m_mag.
ipol()(R,Z);
488 return -invB*invB*invB*ipol*m_R0/R*m_bZ(R,Z);
505 double invB = m_invB(R,Z), ipol = m_mag.
ipol()(R,Z);
506 return invB*invB*invB*ipol*m_R0/R*m_bR(R,Z);
523 double invB = m_invB(R,Z);
524 return m_mag.
R0()*invB*invB*invB/R/R*(m_mag.
psipZ()(R,Z)*m_bZ(R,Z) + m_mag.
psipR()(R,Z)*m_bR(R,Z));
539 double invB = m_invB(R,Z);
540 return m_mag.
R0()*invB*invB/R*(m_mag.
ipolZ()(R,Z) - m_mag.
ipol()(R,Z)*invB*m_bZ(R,Z));
554 double invB = m_invB(R,Z);
555 return m_mag.
R0()*invB*invB/R*( - m_mag.
ipolR()(R,Z) + m_mag.
ipol()(R,Z)*invB*m_bR(R,Z));
568 double invB = m_invB(R,Z);
569 return m_mag.
R0()*invB*invB/R/R*(
570 + invB*m_mag.
psipZ()(R,Z)*m_bZ(R,Z) + invB *m_mag.
psipR()(R,Z)*m_bR(R,Z)
586 double invB = m_invB(R,Z);
587 return m_mag.
R0()*invB*invB*invB/R*( m_mag.
ipolR()(R,Z)*m_bZ(R,Z) - m_mag.
ipolZ()(R,Z)*m_bR(R,Z) );
617 double invB = m_invB(R,Z);
618 return m_mag.
R0()*invB*invB*(m_bR(R,Z)*m_mag.
psipZ()(R,Z)-m_bZ(R,Z)*m_mag.
psipR()(R,Z))/R ;
637 return -m_gradLnB(R,Z);
649 return m_mag.
R0()*m_mag.
ipol()(R,Z)/R/R;
662 return m_mag.
R0()/R*m_mag.
psipZ()(R,Z);
675 return -m_mag.
R0()/R*m_mag.
psipR()(R,Z);
687 double r2 = (R-m_R0)*(R-m_R0) + Z*Z;
688 return m_fieldR(R,Z)*(-Z/r2) + m_fieldZ(R,Z)*(R-m_R0)/r2;
702 return m_invB(R,Z)*m_mag.
R0()/R*m_mag.
psipZ()(R,Z);
716 return -m_invB(R,Z)*m_mag.
R0()/R*m_mag.
psipR()(R,Z);
729 return m_invB(R,Z)*m_mag.
R0()*m_mag.
ipol()(R,Z)/R/R;
810 double psipZ = m_mag.
psipZ()(R,Z);
811 double psipRZ = m_mag.
psipRZ()(R,Z);
812 double binv = m_invB(R,Z);
813 return -psipZ*m_mag.
R0()*binv/R/R + psipRZ*binv*m_mag.
R0()/R
814 -psipZ*m_mag.
R0()/R*binv*binv*m_br(R,Z);
827 double psipZ = m_mag.
psipZ()(R,Z);
828 double psipZZ = m_mag.
psipZZ()(R,Z);
829 double binv = m_invB(R,Z);
830 return m_mag.
R0()/R*( psipZZ*binv -binv*binv*m_bz(R,Z)*psipZ );
843 double psipR = m_mag.
psipR()(R,Z);
844 double psipRR = m_mag.
psipRR()(R,Z);
845 double binv = m_invB(R,Z);
846 return +psipR*m_mag.
R0()*binv/R/R - psipRR*binv*m_mag.
R0()/R
847 +psipR*m_mag.
R0()/R*binv*binv*m_br(R,Z);
860 double psipR = m_mag.
psipR()(R,Z);
861 double psipRZ = m_mag.
psipRZ()(R,Z);
862 double binv = m_invB(R,Z);
863 return -m_mag.
R0()/R*( psipRZ*binv -binv*binv*m_bz(R,Z)*psipR );
876 double binv = m_invB(R,Z);
877 double ipol = m_mag.
ipol()(R,Z);
878 double ipolR = m_mag.
ipolR()(R,Z);
879 return -binv*binv*m_br(R,Z)*m_mag.
R0()*ipol/R/R
880 - 2./R/R/R*binv*m_mag.
R0()*ipol
881 + binv *m_mag.
R0()/R/R*ipolR;
894 double binv = m_invB(R,Z);
895 double ipol = m_mag.
ipol()(R,Z);
896 double ipolZ = m_mag.
ipolZ()(R,Z);
897 return -binv*binv*m_bz(R,Z)*m_mag.
R0()*ipol/R/R
898 + binv *m_mag.
R0()/R/R*ipolZ;
913 double ipol = m_mag.
ipol()(R,Z), ipolR = m_mag.
ipolR()(R,Z),
914 ipolZ = m_mag.
ipolZ()(R,Z);
915 double psipR = m_mag.
psipR()(R,Z), psipZ = m_mag.
psipZ()(R,Z);
916 double bphi = m_bhatP(R,Z);
917 return -(psipZ*(ipolR/R - 2.*ipol/R/R) - ipolZ/R*psipR)/
918 (ipol*ipol + psipR*psipR + psipZ*psipZ)/bphi/bphi;
945 double RO = m_mag.
R0(), ZO = 0;
948 m_psipmin = m_mag.
psip()(RO, ZO);
958 return sqrt( 1.-m_mag.
psip()(R,Z)/m_psipmin ) ;
972 double psipR = m_mag.
psipR()(R,Z), psipZ = m_mag.
psipZ()(R,Z), ipol = m_mag.
ipol()(R,Z);
973 double psip2 = psipR*psipR+psipZ*psipZ;
976 return (ipol*ipol + psip2)/R/R/psip2;
995 vertical, std::vector<double> horizontal) : m_vertical(vertical),
996 m_horizontal(horizontal), m_BR( mag), m_BZ(mag){}
1005 m_horizontal({walls.y0(), walls.y1()}), m_BR( mag), m_BZ(mag){}
1008 std::vector<double> v_dist(1,1e100), h_dist(1,1e100);
1009 for(
auto v : m_vertical)
1010 v_dist.push_back( R-v );
1011 for(
auto h : m_horizontal)
1012 h_dist.push_back( Z-h );
1013 double v_min = *std::min_element( v_dist.begin(), v_dist.end(),
1014 [](
double a,
double b){ return fabs(a) < fabs(b);} );
1015 double h_min = *std::min_element( h_dist.begin(), h_dist.end(),
1016 [](
double a,
double b){ return fabs(a) < fabs(b);} );
1017 if( fabs(v_min) < fabs(h_min) )
1019 double br = m_BR( R,Z);
1020 return v_min*br < 0 ? +1 : -1;
1024 double bz = m_BZ( R,Z);
1025 return h_min*bz < 0 ? +1 : -1;
1029 std::vector<double> m_vertical, m_horizontal;
static bc inverse(bc bound)
modifier
How flux-function is modified.
Definition: magnetic_field.h:36
CylindricalVectorLvl0 createCurvatureNablaB(const TokamakMagneticField &mag, int sign)
Approximate curvature vector field (CurvatureNablaBR, CurvatureNablaBZ, Constant(0))
Definition: magnetic_field.h:758
CylindricalVectorLvl0 createGradPsip(const TokamakMagneticField &mag)
Gradient Psip vector field (PsipR, PsipZ, 0)
Definition: magnetic_field.h:799
CylindricalVectorLvl0 createTrueCurvatureNablaB(const TokamakMagneticField &mag)
True curvature vector field (TrueCurvatureNablaBR, TrueCurvatureNablaBZ, TrueCurvatureNablaBP)
Definition: magnetic_field.h:789
CylindricalVectorLvl0 createTrueCurvatureKappa(const TokamakMagneticField &mag)
True curvature vector field (TrueCurvatureKappaR, TrueCurvatureKappaZ, TrueCurvatureKappaP)
Definition: magnetic_field.h:779
CylindricalVectorLvl0 createCurvatureKappa(const TokamakMagneticField &mag, int sign)
Approximate curvature vector field (CurvatureKappaR, CurvatureKappaZ, Constant(0))
Definition: magnetic_field.h:769
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.
Definition: magnetic_field.h:247
equilibrium
How flux-function is computed. Decides how to construct magnetic field.
Definition: magnetic_field.h:26
description
How flux function looks like. Decider on whether and what flux aligned grid to construct.
Definition: magnetic_field.h:48
CylindricalVectorLvl1 createBHat(const TokamakMagneticField &mag)
Contravariant components of the magnetic unit vector field and its Divergence and derivative in cylin...
Definition: magnetic_field.h:931
CylindricalVectorLvl1 createEPhi(int sign)
Contravariant components of the unit vector field (0, 0, +/- 1/R) and its Divergence and derivative (...
Definition: magnetic_field.h:745
@ sol_pfr
Psip is dampened in the SOL and PFR regions but not in the closed field line region.
@ heaviside
Psip is dampened to a constant outside a critical value.
@ solovev
dg::geo::solovev::Psip
@ taylor
dg::geo::taylor::Psip
@ polynomial
dg::geo::polynomial::Psip
@ guenter
dg::geo::guenter::Psip
@ toroidal
dg::geo::createToroidalField
@ circular
dg::geo::circular::Psip
@ square
closed flux surfaces centered around an O-point and bordered by a square with four X-points in the co...
@ none
no shaping: Purely toroidal magnetic field
@ standardO
closed flux surfaces centered around an O-point located near (R_0, 0); flux-aligned grids can be cons...
@ doubleX
closed flux surfaces centered around an O-point located near (R_0, 0) and bordered by a separatrix wi...
@ centeredX
one X-point in the middle, no O-point, only open flux surfaces, X-grids cannot be constructed
@ standardX
closed flux surfaces centered around an O-point located near (R_0, 0) and bordered by a separatrix wi...
static int findOpoint(const CylindricalFunctorsLvl2 &psi, double &RC, double &ZC)
This function finds O-points of psi.
Definition: fluxfunctions.h:332
Definition: magnetic_field.h:645
double do_compute(double R, double Z) const
Definition: magnetic_field.h:647
BFieldP(const TokamakMagneticField &mag)
Definition: magnetic_field.h:646
Definition: magnetic_field.h:658
BFieldR(const TokamakMagneticField &mag)
Definition: magnetic_field.h:659
double do_compute(double R, double Z) const
Definition: magnetic_field.h:660
Definition: magnetic_field.h:683
BFieldT(const TokamakMagneticField &mag)
Definition: magnetic_field.h:684
double do_compute(double R, double Z) const
Definition: magnetic_field.h:685
Definition: magnetic_field.h:671
double do_compute(double R, double Z) const
Definition: magnetic_field.h:673
BFieldZ(const TokamakMagneticField &mag)
Definition: magnetic_field.h:672
Definition: magnetic_field.h:725
double do_compute(double R, double Z) const
Definition: magnetic_field.h:727
BHatP(const TokamakMagneticField &mag)
Definition: magnetic_field.h:726
Definition: magnetic_field.h:872
BHatPR(const TokamakMagneticField &mag)
Definition: magnetic_field.h:873
double do_compute(double R, double Z) const
Definition: magnetic_field.h:874
Definition: magnetic_field.h:890
double do_compute(double R, double Z) const
Definition: magnetic_field.h:892
BHatPZ(const TokamakMagneticField &mag)
Definition: magnetic_field.h:891
Definition: magnetic_field.h:698
BHatR(const TokamakMagneticField &mag)
Definition: magnetic_field.h:699
double do_compute(double R, double Z) const
Definition: magnetic_field.h:700
Definition: magnetic_field.h:806
BHatRR(const TokamakMagneticField &mag)
Definition: magnetic_field.h:807
double do_compute(double R, double Z) const
Definition: magnetic_field.h:808
Definition: magnetic_field.h:823
double do_compute(double R, double Z) const
Definition: magnetic_field.h:825
BHatRZ(const TokamakMagneticField &mag)
Definition: magnetic_field.h:824
Definition: magnetic_field.h:712
BHatZ(const TokamakMagneticField &mag)
Definition: magnetic_field.h:713
double do_compute(double R, double Z) const
Definition: magnetic_field.h:714
Definition: magnetic_field.h:839
BHatZR(const TokamakMagneticField &mag)
Definition: magnetic_field.h:840
double do_compute(double R, double Z) const
Definition: magnetic_field.h:841
Definition: magnetic_field.h:856
double do_compute(double R, double Z) const
Definition: magnetic_field.h:858
BHatZZ(const TokamakMagneticField &mag)
Definition: magnetic_field.h:857
Definition: magnetic_field.h:329
double do_compute(double R, double Z) const
Definition: magnetic_field.h:331
BR(const TokamakMagneticField &mag)
Definition: magnetic_field.h:330
Definition: magnetic_field.h:351
BZ(const TokamakMagneticField &mag)
Definition: magnetic_field.h:352
double do_compute(double R, double Z) const
Definition: magnetic_field.h:353
Definition: magnetic_field.h:269
Bmodule(const TokamakMagneticField &mag)
Definition: magnetic_field.h:270
double do_compute(double R, double Z) const
Definition: magnetic_field.h:271
Definition: fluxfunctions.h:114
Approximate .
Definition: magnetic_field.h:412
CurvatureKappaR(const TokamakMagneticField &mag, int sign=+1)
Definition: magnetic_field.h:414
CurvatureKappaR()
Definition: magnetic_field.h:413
double do_compute(double R, double Z) const
Definition: magnetic_field.h:415
Approximate .
Definition: magnetic_field.h:427
double do_compute(double R, double Z) const
Definition: magnetic_field.h:434
CurvatureKappaZ(const TokamakMagneticField &mag, int sign)
Definition: magnetic_field.h:428
Approximate .
Definition: magnetic_field.h:368
CurvatureNablaBR(const TokamakMagneticField &mag, int sign)
Definition: magnetic_field.h:369
double do_compute(double R, double Z) const
Definition: magnetic_field.h:375
Approximate .
Definition: magnetic_field.h:390
CurvatureNablaBZ(const TokamakMagneticField &mag, int sign)
Definition: magnetic_field.h:391
double do_compute(double R, double Z) const
Definition: magnetic_field.h:397
This struct bundles a function and its first derivatives.
Definition: fluxfunctions.h:182
const CylindricalFunctor & dfx() const
Definition: fluxfunctions.h:205
const CylindricalFunctor & f() const
Definition: fluxfunctions.h:203
const CylindricalFunctor & dfy() const
Definition: fluxfunctions.h:207
This struct bundles a function and its first and second derivatives.
Definition: fluxfunctions.h:219
const CylindricalFunctor & dfxy() const
Definition: fluxfunctions.h:251
const CylindricalFunctor & dfy() const
Definition: fluxfunctions.h:247
const CylindricalFunctor & dfx() const
Definition: fluxfunctions.h:245
const CylindricalFunctor & dfxx() const
Definition: fluxfunctions.h:249
const CylindricalFunctor & f() const
Definition: fluxfunctions.h:243
const CylindricalFunctor & dfyy() const
Definition: fluxfunctions.h:253
Definition: fluxfunctions.h:412
This struct bundles a vector field and its divergence.
Definition: fluxfunctions.h:440
Approximate .
Definition: magnetic_field.h:448
DivCurvatureKappa(const TokamakMagneticField &mag, int sign)
Definition: magnetic_field.h:449
double do_compute(double R, double Z) const
Definition: magnetic_field.h:455
Approximate .
Definition: magnetic_field.h:470
double do_compute(double R, double Z) const
Definition: magnetic_field.h:472
DivCurvatureNablaB(const TokamakMagneticField &mag, int sign)
Definition: magnetic_field.h:471
Definition: magnetic_field.h:908
double do_compute(double R, double Z) const
Definition: magnetic_field.h:911
DivVVP(const TokamakMagneticField &mag)
Definition: magnetic_field.h:909
Definition: magnetic_field.h:633
double do_compute(double R, double Z) const
Definition: magnetic_field.h:635
Divb(const TokamakMagneticField &mag)
Definition: magnetic_field.h:634
Definition: magnetic_field.h:613
GradLnB(const TokamakMagneticField &mag)
Definition: magnetic_field.h:614
double do_compute(double R, double Z) const
Definition: magnetic_field.h:615
Inertia factor .
Definition: magnetic_field.h:968
Hoo(dg::geo::TokamakMagneticField mag)
Definition: magnetic_field.h:969
double do_compute(double R, double Z) const
Definition: magnetic_field.h:970
Definition: magnetic_field.h:288
InvB(const TokamakMagneticField &mag)
Definition: magnetic_field.h:289
double do_compute(double R, double Z) const
Definition: magnetic_field.h:290
Definition: magnetic_field.h:257
double do_compute(double R, double Z) const
Definition: magnetic_field.h:259
LaplacePsip(const TokamakMagneticField &mag)
Definition: magnetic_field.h:258
Definition: magnetic_field.h:307
double do_compute(double R, double Z) const
Definition: magnetic_field.h:309
LnB(const TokamakMagneticField &mag)
Definition: magnetic_field.h:308
Meta-data about the magnetic field in particular the flux function.
Definition: magnetic_field.h:91
double a() const
The minor radius.
Definition: magnetic_field.h:122
modifier getModifier() const
the way the flux function is modified
Definition: magnetic_field.h:138
MagneticFieldParameters(double a, double elongation, double triangularity, equilibrium equ, modifier mod, description des)
Constructor.
Definition: magnetic_field.h:111
description getDescription() const
how the flux function looks
Definition: magnetic_field.h:140
double elongation() const
Definition: magnetic_field.h:128
double triangularity() const
Definition: magnetic_field.h:134
equilibrium getEquilibrium() const
the way the flux function is computed
Definition: magnetic_field.h:136
MagneticFieldParameters()
Default values are for a Toroidal field.
Definition: magnetic_field.h:95
Definition: magnetic_field.h:943
double do_compute(double R, double Z) const
Definition: magnetic_field.h:956
RhoP(const TokamakMagneticField &mag)
Definition: magnetic_field.h:944
A tokamak field as given by R0, Psi and Ipol plus Meta-data like shape and equilibrium.
Definition: magnetic_field.h:162
const CylindricalFunctor & psipR() const
, where R, Z are cylindrical coordinates
Definition: magnetic_field.h:181
const CylindricalFunctorsLvl2 & get_psip() const
Definition: magnetic_field.h:197
const CylindricalFunctor & psipRR() const
, where R, Z are cylindrical coordinates
Definition: magnetic_field.h:185
TokamakMagneticField()
as long as the field stays empty the access functions are undefined
Definition: magnetic_field.h:164
const CylindricalFunctor & ipol() const
the current
Definition: magnetic_field.h:191
const CylindricalFunctor & ipolR() const
Definition: magnetic_field.h:193
const CylindricalFunctor & psipZZ() const
, where R, Z are cylindrical coordinates
Definition: magnetic_field.h:189
const CylindricalFunctorsLvl1 & get_ipol() const
Definition: magnetic_field.h:198
const MagneticFieldParameters & params() const
Access Meta-data of the field.
Definition: magnetic_field.h:204
const CylindricalFunctor & psipZ() const
, where R, Z are cylindrical coordinates
Definition: magnetic_field.h:183
double R0() const
Definition: magnetic_field.h:177
const CylindricalFunctor & ipolZ() const
Definition: magnetic_field.h:195
void set(double R0, const CylindricalFunctorsLvl2 &psip, const CylindricalFunctorsLvl1 &ipol, MagneticFieldParameters gp)
Definition: magnetic_field.h:168
const CylindricalFunctor & psipRZ() const
, where R, Z are cylindrical coordinates
Definition: magnetic_field.h:187
const CylindricalFunctor & psip() const
, where R, Z are cylindrical coordinates
Definition: magnetic_field.h:179
TokamakMagneticField(double R0, const CylindricalFunctorsLvl2 &psip, const CylindricalFunctorsLvl1 &ipol, MagneticFieldParameters gp)
Definition: magnetic_field.h:165
True .
Definition: magnetic_field.h:564
TrueCurvatureKappaP(const TokamakMagneticField &mag)
Definition: magnetic_field.h:565
double do_compute(double R, double Z) const
Definition: magnetic_field.h:566
True .
Definition: magnetic_field.h:535
double do_compute(double R, double Z) const
Definition: magnetic_field.h:537
TrueCurvatureKappaR(const TokamakMagneticField &mag)
Definition: magnetic_field.h:536
True .
Definition: magnetic_field.h:550
TrueCurvatureKappaZ(const TokamakMagneticField &mag)
Definition: magnetic_field.h:551
double do_compute(double R, double Z) const
Definition: magnetic_field.h:552
True .
Definition: magnetic_field.h:519
double do_compute(double R, double Z) const
Definition: magnetic_field.h:521
TrueCurvatureNablaBP(const TokamakMagneticField &mag)
Definition: magnetic_field.h:520
True .
Definition: magnetic_field.h:483
double do_compute(double R, double Z) const
Definition: magnetic_field.h:485
TrueCurvatureNablaBR(const TokamakMagneticField &mag)
Definition: magnetic_field.h:484
True .
Definition: magnetic_field.h:501
double do_compute(double R, double Z) const
Definition: magnetic_field.h:503
TrueCurvatureNablaBZ(const TokamakMagneticField &mag)
Definition: magnetic_field.h:502
True .
Definition: magnetic_field.h:582
double do_compute(double R, double Z) const
Definition: magnetic_field.h:584
TrueDivCurvatureKappa(const TokamakMagneticField &mag)
Definition: magnetic_field.h:583
True .
Definition: magnetic_field.h:598
double do_compute(double R, double Z) const
Definition: magnetic_field.h:600
TrueDivCurvatureNablaB(const TokamakMagneticField &mag)
Definition: magnetic_field.h:599
Determine if poloidal field points towards or away from the nearest wall.
Definition: magnetic_field.h:986
WallDirection(dg::geo::TokamakMagneticField mag, std::vector< double > vertical, std::vector< double > horizontal)
Allocate lines.
Definition: magnetic_field.h:994
WallDirection(dg::geo::TokamakMagneticField mag, dg::Grid2d walls)
Allocate lines.
Definition: magnetic_field.h:1003
double do_compute(double R, double Z) const
Definition: magnetic_field.h:1006
Represent functions written in cylindrical coordinates that are independent of the angle phi serving ...
Definition: fluxfunctions.h:66