59inline const std::map<std::string, equilibrium> str2equilibrium{
67inline const std::map<std::string, modifier> str2modifier{
73inline const std::map<std::string, description> str2description{
99 m_a = 1, m_elongation = 1, m_triangularity = 0;
119 m_modifier(mod), m_description( des){}
125 double a()
const{
return m_a;}
170 ): m_R0(
R0), m_psip(
psip), m_ipol(
ipol), m_params(gp){}
180 double R0()
const {
return m_R0;}
217inline CylindricalFunctorsLvl1
periodify(
const CylindricalFunctorsLvl1& in,
double R0,
double R1,
double Z0,
double Z1,
bc bcx,
bc bcy)
219 return CylindricalFunctorsLvl1(
220 Periodify( in.f(), R0, R1, Z0, Z1, bcx, bcy),
221 Periodify( in.dfx(), R0, R1, Z0, Z1,
inverse(bcx), bcy),
222 Periodify( in.dfy(), R0, R1, Z0, Z1, bcx,
inverse(bcy)));
224inline CylindricalFunctorsLvl2
periodify(
const CylindricalFunctorsLvl2& in,
double R0,
double R1,
double Z0,
double Z1,
bc bcx,
bc bcy)
226 return CylindricalFunctorsLvl2(
227 Periodify( in.f(), R0, R1, Z0, Z1, bcx, bcy),
228 Periodify( in.dfx(), R0, R1, Z0, Z1,
inverse(bcx), bcy),
229 Periodify( in.dfy(), R0, R1, Z0, Z1, bcx,
inverse(bcy)),
230 Periodify( in.dfxx(), R0, R1, Z0, Z1, bcx, bcy),
231 Periodify( in.dfxy(), R0, R1, Z0, Z1,
inverse(bcx),
inverse(bcy)),
232 Periodify( in.dfyy(), R0, R1, Z0, Z1, bcx, bcy));
276 double psipR = m_mag.
psipR()(R,Z), psipZ = m_mag.
psipZ()(R,Z), ipol = m_mag.
ipol()(R,Z);
277 return m_mag.
R0()/R*sqrt(ipol*ipol+psipR*psipR +psipZ*psipZ);
295 double psipR = m_mag.
psipR()(R,Z), psipZ = m_mag.
psipZ()(R,Z), ipol = m_mag.
ipol()(R,Z);
296 return R/(m_mag.
R0()*sqrt(ipol*ipol + psipR*psipR +psipZ*psipZ)) ;
314 double psipR = m_mag.
psipR()(R,Z), psipZ = m_mag.
psipZ()(R,Z), ipol = m_mag.
ipol()(R,Z);
315 return log(m_mag.
R0()/R*sqrt(ipol*ipol + psipR*psipR +psipZ*psipZ)) ;
336 double Rn = R/m_mag.
R0();
337 double invB = m_invB(R,Z);
338 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));
358 double Rn = R/m_mag.
R0();
380 return -m_sign*m_invB(R,Z)*m_invB(R,Z)*m_bZ(R,Z);
402 return m_sign*m_invB(R,Z)*m_invB(R,Z)*m_bR(R,Z);
439 return -m_sign*m_invB(R,Z)/R;
460 return m_sign*m_bZ(R,Z)*m_invB(R,Z)*m_invB(R,Z)/R;
490 double invB = m_invB(R,Z), ipol = m_mag.
ipol()(R,Z);
491 return -invB*invB*invB*ipol*m_R0/R*m_bZ(R,Z);
508 double invB = m_invB(R,Z), ipol = m_mag.
ipol()(R,Z);
509 return invB*invB*invB*ipol*m_R0/R*m_bR(R,Z);
526 double invB = m_invB(R,Z);
527 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));
542 double invB = m_invB(R,Z);
543 return m_mag.
R0()*invB*invB/R*(m_mag.
ipolZ()(R,Z) - m_mag.
ipol()(R,Z)*invB*m_bZ(R,Z));
557 double invB = m_invB(R,Z);
558 return m_mag.
R0()*invB*invB/R*( - m_mag.
ipolR()(R,Z) + m_mag.
ipol()(R,Z)*invB*m_bR(R,Z));
571 double invB = m_invB(R,Z);
572 return m_mag.
R0()*invB*invB/R/R*(
573 + invB*m_mag.
psipZ()(R,Z)*m_bZ(R,Z) + invB *m_mag.
psipR()(R,Z)*m_bR(R,Z)
589 double invB = m_invB(R,Z);
590 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) );
620 double invB = m_invB(R,Z);
621 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 ;
640 return -m_gradLnB(R,Z);
652 return m_mag.
R0()*m_mag.
ipol()(R,Z)/R/R;
665 return m_mag.
R0()/R*m_mag.
psipZ()(R,Z);
678 return -m_mag.
R0()/R*m_mag.
psipR()(R,Z);
690 double r2 = (R-m_R0)*(R-m_R0) + Z*Z;
691 return m_fieldR(R,Z)*(-Z/r2) + m_fieldZ(R,Z)*(R-m_R0)/r2;
705 return m_invB(R,Z)*m_mag.
R0()/R*m_mag.
psipZ()(R,Z);
719 return -m_invB(R,Z)*m_mag.
R0()/R*m_mag.
psipR()(R,Z);
732 return m_invB(R,Z)*m_mag.
R0()*m_mag.
ipol()(R,Z)/R/R;
813 double psipZ = m_mag.
psipZ()(R,Z);
814 double psipRZ = m_mag.
psipRZ()(R,Z);
815 double binv = m_invB(R,Z);
816 return -psipZ*m_mag.
R0()*binv/R/R + psipRZ*binv*m_mag.
R0()/R
817 -psipZ*m_mag.
R0()/R*binv*binv*m_br(R,Z);
830 double psipZ = m_mag.
psipZ()(R,Z);
831 double psipZZ = m_mag.
psipZZ()(R,Z);
832 double binv = m_invB(R,Z);
833 return m_mag.
R0()/R*( psipZZ*binv -binv*binv*m_bz(R,Z)*psipZ );
846 double psipR = m_mag.
psipR()(R,Z);
847 double psipRR = m_mag.
psipRR()(R,Z);
848 double binv = m_invB(R,Z);
849 return +psipR*m_mag.
R0()*binv/R/R - psipRR*binv*m_mag.
R0()/R
850 +psipR*m_mag.
R0()/R*binv*binv*m_br(R,Z);
863 double psipR = m_mag.
psipR()(R,Z);
864 double psipRZ = m_mag.
psipRZ()(R,Z);
865 double binv = m_invB(R,Z);
866 return -m_mag.
R0()/R*( psipRZ*binv -binv*binv*m_bz(R,Z)*psipR );
879 double binv = m_invB(R,Z);
880 double ipol = m_mag.
ipol()(R,Z);
881 double ipolR = m_mag.
ipolR()(R,Z);
882 return -binv*binv*m_br(R,Z)*m_mag.
R0()*ipol/R/R
883 - 2./R/R/R*binv*m_mag.
R0()*ipol
884 + binv *m_mag.
R0()/R/R*ipolR;
897 double binv = m_invB(R,Z);
898 double ipol = m_mag.
ipol()(R,Z);
899 double ipolZ = m_mag.
ipolZ()(R,Z);
900 return -binv*binv*m_bz(R,Z)*m_mag.
R0()*ipol/R/R
901 + binv *m_mag.
R0()/R/R*ipolZ;
916 double ipol = m_mag.
ipol()(R,Z), ipolR = m_mag.
ipolR()(R,Z),
917 ipolZ = m_mag.
ipolZ()(R,Z);
918 double psipR = m_mag.
psipR()(R,Z), psipZ = m_mag.
psipZ()(R,Z);
919 double bphi = m_bhatP(R,Z);
920 return -(psipZ*(ipolR/R - 2.*ipol/R/R) - ipolZ/R*psipR)/
921 (ipol*ipol + psipR*psipR + psipZ*psipZ)/bphi/bphi;
949 double RO = m_mag.
R0(), ZO = 0;
952 m_psipmin = m_mag.
psip()(RO, ZO);
962 return sqrt( 1.-m_mag.
psip()(R,Z)/m_psipmin ) ;
976 double psipR = m_mag.
psipR()(R,Z), psipZ = m_mag.
psipZ()(R,Z), ipol = m_mag.
ipol()(R,Z);
977 double psip2 = psipR*psipR+psipZ*psipZ;
980 return (ipol*ipol + psip2)/R/R/psip2;
999 vertical, std::vector<double> horizontal) : m_vertical(vertical),
1000 m_horizontal(horizontal), m_BR( mag), m_BZ(mag){}
1009 m_horizontal({walls.y0(), walls.y1()}), m_BR( mag), m_BZ(mag){}
1012 std::vector<double> v_dist(1,1e100), h_dist(1,1e100);
1013 for(
auto v : m_vertical)
1014 v_dist.push_back( R-v );
1015 for(
auto h : m_horizontal)
1016 h_dist.push_back( Z-h );
1017 double v_min = *std::min_element( v_dist.begin(), v_dist.end(),
1018 [](
double a,
double b){ return fabs(a) < fabs(b);} );
1019 double h_min = *std::min_element( h_dist.begin(), h_dist.end(),
1020 [](
double a,
double b){ return fabs(a) < fabs(b);} );
1021 if( fabs(v_min) < fabs(h_min) )
1023 double br = m_BR( R,Z);
1024 return v_min*br < 0 ? +1 : -1;
1028 double bz = m_BZ( R,Z);
1029 return h_min*bz < 0 ? +1 : -1;
1033 std::vector<double> m_vertical, m_horizontal;
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:761
CylindricalVectorLvl0 createGradPsip(const TokamakMagneticField &mag)
Gradient Psip vector field (PsipR, PsipZ, 0)
Definition magnetic_field.h:802
CylindricalVectorLvl0 createTrueCurvatureNablaB(const TokamakMagneticField &mag)
True curvature vector field (TrueCurvatureNablaBR, TrueCurvatureNablaBZ, TrueCurvatureNablaBP)
Definition magnetic_field.h:792
CylindricalVectorLvl0 createTrueCurvatureKappa(const TokamakMagneticField &mag)
True curvature vector field (TrueCurvatureKappaR, TrueCurvatureKappaZ, TrueCurvatureKappaP)
Definition magnetic_field.h:782
CylindricalVectorLvl0 createCurvatureKappa(const TokamakMagneticField &mag, int sign)
Approximate curvature vector field (CurvatureKappaR, CurvatureKappaZ, Constant(0))
Definition magnetic_field.h:772
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:50
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:250
CylindricalVectorLvl1 createBHat(const TokamakMagneticField &mag)
Contravariant components of the magnetic unit vector field and its Divergence and derivative in cylin...
Definition magnetic_field.h:934
CylindricalVectorLvl1 createEPhi(int sign)
Contravariant components of the unit vector field (0, 0, ) and its Divergence and derivative (0,...
Definition magnetic_field.h:748
@ sol_pfr
Psip is dampened in the SOL and PFR regions but not in the closed field line region.
@ sol_pfr_2X
Psip is dampened in the SOL and PFR regions of each of 2 X-points but not in the closed field line re...
@ 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...
int findOpoint(const CylindricalFunctorsLvl2 &psi, double &RC, double &ZC)
This function finds O-points of psi.
Definition fluxfunctions.h:336
Definition magnetic_field.h:648
double do_compute(double R, double Z) const
Definition magnetic_field.h:650
BFieldP(const TokamakMagneticField &mag)
Definition magnetic_field.h:649
Definition magnetic_field.h:661
BFieldR(const TokamakMagneticField &mag)
Definition magnetic_field.h:662
double do_compute(double R, double Z) const
Definition magnetic_field.h:663
Definition magnetic_field.h:686
BFieldT(const TokamakMagneticField &mag)
Definition magnetic_field.h:687
double do_compute(double R, double Z) const
Definition magnetic_field.h:688
Definition magnetic_field.h:674
double do_compute(double R, double Z) const
Definition magnetic_field.h:676
BFieldZ(const TokamakMagneticField &mag)
Definition magnetic_field.h:675
Definition magnetic_field.h:728
double do_compute(double R, double Z) const
Definition magnetic_field.h:730
BHatP(const TokamakMagneticField &mag)
Definition magnetic_field.h:729
Definition magnetic_field.h:875
BHatPR(const TokamakMagneticField &mag)
Definition magnetic_field.h:876
double do_compute(double R, double Z) const
Definition magnetic_field.h:877
Definition magnetic_field.h:893
double do_compute(double R, double Z) const
Definition magnetic_field.h:895
BHatPZ(const TokamakMagneticField &mag)
Definition magnetic_field.h:894
Definition magnetic_field.h:701
BHatR(const TokamakMagneticField &mag)
Definition magnetic_field.h:702
double do_compute(double R, double Z) const
Definition magnetic_field.h:703
Definition magnetic_field.h:809
BHatRR(const TokamakMagneticField &mag)
Definition magnetic_field.h:810
double do_compute(double R, double Z) const
Definition magnetic_field.h:811
Definition magnetic_field.h:826
double do_compute(double R, double Z) const
Definition magnetic_field.h:828
BHatRZ(const TokamakMagneticField &mag)
Definition magnetic_field.h:827
Definition magnetic_field.h:715
BHatZ(const TokamakMagneticField &mag)
Definition magnetic_field.h:716
double do_compute(double R, double Z) const
Definition magnetic_field.h:717
Definition magnetic_field.h:842
BHatZR(const TokamakMagneticField &mag)
Definition magnetic_field.h:843
double do_compute(double R, double Z) const
Definition magnetic_field.h:844
Definition magnetic_field.h:859
double do_compute(double R, double Z) const
Definition magnetic_field.h:861
BHatZZ(const TokamakMagneticField &mag)
Definition magnetic_field.h:860
Definition magnetic_field.h:332
double do_compute(double R, double Z) const
Definition magnetic_field.h:334
BR(const TokamakMagneticField &mag)
Definition magnetic_field.h:333
Definition magnetic_field.h:354
BZ(const TokamakMagneticField &mag)
Definition magnetic_field.h:355
double do_compute(double R, double Z) const
Definition magnetic_field.h:356
Definition magnetic_field.h:272
Bmodule(const TokamakMagneticField &mag)
Definition magnetic_field.h:273
double do_compute(double R, double Z) const
Definition magnetic_field.h:274
Definition fluxfunctions.h:114
Approximate .
Definition magnetic_field.h:415
CurvatureKappaR(const TokamakMagneticField &mag, int sign=+1)
Definition magnetic_field.h:417
CurvatureKappaR()
Definition magnetic_field.h:416
double do_compute(double R, double Z) const
Definition magnetic_field.h:418
Approximate .
Definition magnetic_field.h:430
double do_compute(double R, double Z) const
Definition magnetic_field.h:437
CurvatureKappaZ(const TokamakMagneticField &mag, int sign)
Definition magnetic_field.h:431
Approximate .
Definition magnetic_field.h:371
CurvatureNablaBR(const TokamakMagneticField &mag, int sign)
Definition magnetic_field.h:372
double do_compute(double R, double Z) const
Definition magnetic_field.h:378
Approximate .
Definition magnetic_field.h:393
CurvatureNablaBZ(const TokamakMagneticField &mag, int sign)
Definition magnetic_field.h:394
double do_compute(double R, double Z) const
Definition magnetic_field.h:400
This struct bundles a function and its first derivatives.
Definition fluxfunctions.h:186
const CylindricalFunctor & dfx() const
Definition fluxfunctions.h:209
const CylindricalFunctor & f() const
Definition fluxfunctions.h:207
const CylindricalFunctor & dfy() const
Definition fluxfunctions.h:211
This struct bundles a function and its first and second derivatives.
Definition fluxfunctions.h:223
const CylindricalFunctor & dfxy() const
Definition fluxfunctions.h:255
const CylindricalFunctor & dfy() const
Definition fluxfunctions.h:251
const CylindricalFunctor & dfx() const
Definition fluxfunctions.h:249
const CylindricalFunctor & dfxx() const
Definition fluxfunctions.h:253
const CylindricalFunctor & f() const
Definition fluxfunctions.h:247
const CylindricalFunctor & dfyy() const
Definition fluxfunctions.h:257
Definition fluxfunctions.h:416
This struct bundles a vector field and its divergence.
Definition fluxfunctions.h:444
Approximate .
Definition magnetic_field.h:451
DivCurvatureKappa(const TokamakMagneticField &mag, int sign)
Definition magnetic_field.h:452
double do_compute(double R, double Z) const
Definition magnetic_field.h:458
Approximate .
Definition magnetic_field.h:473
double do_compute(double R, double Z) const
Definition magnetic_field.h:475
DivCurvatureNablaB(const TokamakMagneticField &mag, int sign)
Definition magnetic_field.h:474
Definition magnetic_field.h:911
double do_compute(double R, double Z) const
Definition magnetic_field.h:914
DivVVP(const TokamakMagneticField &mag)
Definition magnetic_field.h:912
Definition magnetic_field.h:636
double do_compute(double R, double Z) const
Definition magnetic_field.h:638
Divb(const TokamakMagneticField &mag)
Definition magnetic_field.h:637
Definition magnetic_field.h:616
GradLnB(const TokamakMagneticField &mag)
Definition magnetic_field.h:617
double do_compute(double R, double Z) const
Definition magnetic_field.h:618
Inertia factor .
Definition magnetic_field.h:972
Hoo(dg::geo::TokamakMagneticField mag)
Definition magnetic_field.h:973
double do_compute(double R, double Z) const
Definition magnetic_field.h:974
Definition magnetic_field.h:291
InvB(const TokamakMagneticField &mag)
Definition magnetic_field.h:292
double do_compute(double R, double Z) const
Definition magnetic_field.h:293
Definition magnetic_field.h:260
double do_compute(double R, double Z) const
Definition magnetic_field.h:262
LaplacePsip(const TokamakMagneticField &mag)
Definition magnetic_field.h:261
Definition magnetic_field.h:310
double do_compute(double R, double Z) const
Definition magnetic_field.h:312
LnB(const TokamakMagneticField &mag)
Definition magnetic_field.h:311
Meta-data about the magnetic field in particular the flux function.
Definition magnetic_field.h:94
double a() const
The minor radius.
Definition magnetic_field.h:125
modifier getModifier() const
the way the flux function is modified
Definition magnetic_field.h:141
MagneticFieldParameters(double a, double elongation, double triangularity, equilibrium equ, modifier mod, description des)
Constructor.
Definition magnetic_field.h:114
description getDescription() const
how the flux function looks
Definition magnetic_field.h:143
double elongation() const
Definition magnetic_field.h:131
double triangularity() const
Definition magnetic_field.h:137
equilibrium getEquilibrium() const
the way the flux function is computed
Definition magnetic_field.h:139
MagneticFieldParameters()
Default values are for a Toroidal field.
Definition magnetic_field.h:98
Definition magnetic_field.h:947
double do_compute(double R, double Z) const
Definition magnetic_field.h:960
RhoP(const TokamakMagneticField &mag)
Definition magnetic_field.h:948
A tokamak field as given by R0, Psi and Ipol plus Meta-data like shape and equilibrium.
Definition magnetic_field.h:165
const CylindricalFunctor & psipR() const
, where R, Z are cylindrical coordinates
Definition magnetic_field.h:184
const CylindricalFunctorsLvl2 & get_psip() const
Definition magnetic_field.h:200
const CylindricalFunctor & psipRR() const
, where R, Z are cylindrical coordinates
Definition magnetic_field.h:188
TokamakMagneticField()
as long as the field stays empty the access functions are undefined
Definition magnetic_field.h:167
const CylindricalFunctor & ipol() const
the current
Definition magnetic_field.h:194
const CylindricalFunctor & ipolR() const
Definition magnetic_field.h:196
const CylindricalFunctor & psipZZ() const
, where R, Z are cylindrical coordinates
Definition magnetic_field.h:192
const CylindricalFunctorsLvl1 & get_ipol() const
Definition magnetic_field.h:201
const MagneticFieldParameters & params() const
Access Meta-data of the field.
Definition magnetic_field.h:207
const CylindricalFunctor & psipZ() const
, where R, Z are cylindrical coordinates
Definition magnetic_field.h:186
double R0() const
Definition magnetic_field.h:180
const CylindricalFunctor & ipolZ() const
Definition magnetic_field.h:198
void set(double R0, const CylindricalFunctorsLvl2 &psip, const CylindricalFunctorsLvl1 &ipol, MagneticFieldParameters gp)
Definition magnetic_field.h:171
const CylindricalFunctor & psipRZ() const
, where R, Z are cylindrical coordinates
Definition magnetic_field.h:190
const CylindricalFunctor & psip() const
, where R, Z are cylindrical coordinates
Definition magnetic_field.h:182
TokamakMagneticField(double R0, const CylindricalFunctorsLvl2 &psip, const CylindricalFunctorsLvl1 &ipol, MagneticFieldParameters gp)
Definition magnetic_field.h:168
True .
Definition magnetic_field.h:567
TrueCurvatureKappaP(const TokamakMagneticField &mag)
Definition magnetic_field.h:568
double do_compute(double R, double Z) const
Definition magnetic_field.h:569
True .
Definition magnetic_field.h:538
double do_compute(double R, double Z) const
Definition magnetic_field.h:540
TrueCurvatureKappaR(const TokamakMagneticField &mag)
Definition magnetic_field.h:539
True .
Definition magnetic_field.h:553
TrueCurvatureKappaZ(const TokamakMagneticField &mag)
Definition magnetic_field.h:554
double do_compute(double R, double Z) const
Definition magnetic_field.h:555
True .
Definition magnetic_field.h:522
double do_compute(double R, double Z) const
Definition magnetic_field.h:524
TrueCurvatureNablaBP(const TokamakMagneticField &mag)
Definition magnetic_field.h:523
True .
Definition magnetic_field.h:486
double do_compute(double R, double Z) const
Definition magnetic_field.h:488
TrueCurvatureNablaBR(const TokamakMagneticField &mag)
Definition magnetic_field.h:487
True .
Definition magnetic_field.h:504
double do_compute(double R, double Z) const
Definition magnetic_field.h:506
TrueCurvatureNablaBZ(const TokamakMagneticField &mag)
Definition magnetic_field.h:505
True .
Definition magnetic_field.h:585
double do_compute(double R, double Z) const
Definition magnetic_field.h:587
TrueDivCurvatureKappa(const TokamakMagneticField &mag)
Definition magnetic_field.h:586
True .
Definition magnetic_field.h:601
double do_compute(double R, double Z) const
Definition magnetic_field.h:603
TrueDivCurvatureNablaB(const TokamakMagneticField &mag)
Definition magnetic_field.h:602
Determine if poloidal field points towards or away from the nearest wall.
Definition magnetic_field.h:990
WallDirection(dg::geo::TokamakMagneticField mag, std::vector< double > vertical, std::vector< double > horizontal)
Allocate lines.
Definition magnetic_field.h:998
WallDirection(dg::geo::TokamakMagneticField mag, dg::Grid2d walls)
Allocate lines.
Definition magnetic_field.h:1007
double do_compute(double R, double Z) const
Definition magnetic_field.h:1010
Represent functions written in cylindrical coordinates that are independent of the angle phi serving ...
Definition fluxfunctions.h:66