66inline const std::map<std::string, equilibrium> str2equilibrium{
74inline const std::map<std::string, modifier> str2modifier{
80inline const std::map<std::string, description> str2description{
106 m_a = 1, m_elongation = 1, m_triangularity = 0;
126 m_modifier(mod), m_description( des){}
132 double a()
const{
return m_a;}
177 ): m_R0(
R0), m_psip(
psip), m_ipol(
ipol), m_params(gp){}
187 double R0()
const {
return m_R0;}
224inline CylindricalFunctorsLvl1
periodify(
const CylindricalFunctorsLvl1& in,
double R0,
double R1,
double Z0,
double Z1,
bc bcx,
bc bcy)
226 return CylindricalFunctorsLvl1(
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)));
231inline CylindricalFunctorsLvl2
periodify(
const CylindricalFunctorsLvl2& in,
double R0,
double R1,
double Z0,
double Z1,
bc bcx,
bc bcy)
233 return CylindricalFunctorsLvl2(
234 Periodify( in.f(), R0, R1, Z0, Z1, bcx, bcy),
235 Periodify( in.dfx(), R0, R1, Z0, Z1,
inverse(bcx), bcy),
236 Periodify( in.dfy(), R0, R1, Z0, Z1, bcx,
inverse(bcy)),
237 Periodify( in.dfxx(), R0, R1, Z0, Z1, bcx, bcy),
238 Periodify( in.dfxy(), R0, R1, Z0, Z1,
inverse(bcx),
inverse(bcy)),
239 Periodify( in.dfyy(), R0, R1, Z0, Z1, bcx, bcy));
283 double psipR = m_mag.
psipR()(R,Z), psipZ = m_mag.
psipZ()(R,Z), ipol = m_mag.
ipol()(R,Z);
284 return m_mag.
R0()/R*sqrt(ipol*ipol+psipR*psipR +psipZ*psipZ);
297 double ipol = m_mag.
ipol()(R,Z);
298 return m_mag.
R0()*ipol/R;
317 double psipR = m_mag.
psipR()(R,Z), psipZ = m_mag.
psipZ()(R,Z), ipol = m_mag.
ipol()(R,Z);
318 return R/(m_mag.
R0()*sqrt(ipol*ipol + psipR*psipR +psipZ*psipZ)) ;
331 double ipol = m_mag.
ipol()(R,Z);
332 return R/m_mag.
R0()/ipol;
350 double psipR = m_mag.
psipR()(R,Z), psipZ = m_mag.
psipZ()(R,Z), ipol = m_mag.
ipol()(R,Z);
351 return log(m_mag.
R0()/R*sqrt(ipol*ipol + psipR*psipR +psipZ*psipZ)) ;
372 double Rn = R/m_mag.
R0();
373 double invB = m_invB(R,Z);
374 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));
394 double Rn = R/m_mag.
R0();
413 return m_mag.
R0() / R *m_mag.
ipolR()(R,Z) - m_mag.
R0() * m_mag.
ipol()(R,Z)/ R / R;
430 return m_mag.
R0() / R *m_mag.
ipolZ()(R,Z);
450 return -m_sign*m_invB(R,Z)*m_invB(R,Z)*m_bZ(R,Z);
472 return m_sign*m_invB(R,Z)*m_invB(R,Z)*m_bR(R,Z);
509 return -m_sign*m_invB(R,Z)/R;
530 return m_sign*m_bZ(R,Z)*m_invB(R,Z)*m_invB(R,Z)/R;
560 double invB = m_invB(R,Z), ipol = m_mag.
ipol()(R,Z);
561 return -invB*invB*invB*ipol*m_R0/R*m_bZ(R,Z);
578 double invB = m_invB(R,Z), ipol = m_mag.
ipol()(R,Z);
579 return invB*invB*invB*ipol*m_R0/R*m_bR(R,Z);
596 double invB = m_invB(R,Z);
597 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));
612 double invB = m_invB(R,Z);
613 return m_mag.
R0()*invB*invB/R*(m_mag.
ipolZ()(R,Z) - m_mag.
ipol()(R,Z)*invB*m_bZ(R,Z));
627 double invB = m_invB(R,Z);
628 return m_mag.
R0()*invB*invB/R*( - m_mag.
ipolR()(R,Z) + m_mag.
ipol()(R,Z)*invB*m_bR(R,Z));
641 double invB = m_invB(R,Z);
642 return m_mag.
R0()*invB*invB/R/R*(
643 + invB*m_mag.
psipZ()(R,Z)*m_bZ(R,Z) + invB *m_mag.
psipR()(R,Z)*m_bR(R,Z)
659 double invB = m_invB(R,Z);
660 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) );
689 double ipol = m_mag.
ipol()(R,Z), ipolZ = m_mag.
ipolZ()(R,Z);
690 return -R*ipolZ/m_mag.
R0()/ipol/ipol;
705 double ipol = m_mag.
ipol()(R,Z), ipolR = m_mag.
ipolR()(R,Z);
706 return +R*ipolR/m_mag.
R0()/ipol/ipol - 1./m_mag.
R0()/ipol;
736 double ipol = m_mag.
ipol()(R,Z);
737 return -1/m_mag.
R0()/ipol;
752 double ipol = m_mag.
ipol()(R,Z), ipolZ = m_mag.
ipolZ()(R,Z);
753 return ipolZ / m_mag.
R0()/ ipol/ipol;
770 double invB = m_invB(R,Z);
771 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 ;
790 return -m_gradLnB(R,Z);
806 double ipol = m_mag.
ipol()(R,Z), ipolR = m_mag.
ipolR()(R,Z), psipZ = m_mag.
psipZ()(R,Z);
807 return ipolR * psipZ / ipol /ipol - psipZ/ipol/R;
823 return -m_torgradLnB(R,Z);
835 return m_mag.
R0()*m_mag.
ipol()(R,Z)/R/R;
848 return m_mag.
R0()/R*m_mag.
psipZ()(R,Z);
861 return -m_mag.
R0()/R*m_mag.
psipR()(R,Z);
873 double r2 = (R-m_R0)*(R-m_R0) + Z*Z;
874 return m_fieldR(R,Z)*(-Z/r2) + m_fieldZ(R,Z)*(R-m_R0)/r2;
888 return m_invB(R,Z)*m_mag.
R0()/R*m_mag.
psipZ()(R,Z);
902 return -m_invB(R,Z)*m_mag.
R0()/R*m_mag.
psipR()(R,Z);
915 return m_invB(R,Z)*m_mag.
R0()*m_mag.
ipol()(R,Z)/R/R;
928 return m_mag.
psipZ()(R,Z)/m_mag.
ipol()(R,Z);
941 return -m_mag.
psipR()(R,Z)/m_mag.
ipol()(R,Z);
1033 double psipZ = m_mag.
psipZ()(R,Z);
1034 double psipRZ = m_mag.
psipRZ()(R,Z);
1035 double binv = m_invB(R,Z);
1036 return -psipZ*m_mag.
R0()*binv/R/R + psipRZ*binv*m_mag.
R0()/R
1037 -psipZ*m_mag.
R0()/R*binv*binv*m_br(R,Z);
1050 double psipZ = m_mag.
psipZ()(R,Z);
1051 double psipZZ = m_mag.
psipZZ()(R,Z);
1052 double binv = m_invB(R,Z);
1053 return m_mag.
R0()/R*( psipZZ*binv -binv*binv*m_bz(R,Z)*psipZ );
1066 double psipR = m_mag.
psipR()(R,Z);
1067 double psipRR = m_mag.
psipRR()(R,Z);
1068 double binv = m_invB(R,Z);
1069 return +psipR*m_mag.
R0()*binv/R/R - psipRR*binv*m_mag.
R0()/R
1070 +psipR*m_mag.
R0()/R*binv*binv*m_br(R,Z);
1083 double psipR = m_mag.
psipR()(R,Z);
1084 double psipRZ = m_mag.
psipRZ()(R,Z);
1085 double binv = m_invB(R,Z);
1086 return -m_mag.
R0()/R*( psipRZ*binv -binv*binv*m_bz(R,Z)*psipR );
1099 double binv = m_invB(R,Z);
1100 double ipol = m_mag.
ipol()(R,Z);
1101 double ipolR = m_mag.
ipolR()(R,Z);
1102 return -binv*binv*m_br(R,Z)*m_mag.
R0()*ipol/R/R
1103 - 2./R/R/R*binv*m_mag.
R0()*ipol
1104 + binv *m_mag.
R0()/R/R*ipolR;
1117 double binv = m_invB(R,Z);
1118 double ipol = m_mag.
ipol()(R,Z);
1119 double ipolZ = m_mag.
ipolZ()(R,Z);
1120 return -binv*binv*m_bz(R,Z)*m_mag.
R0()*ipol/R/R
1121 + binv *m_mag.
R0()/R/R*ipolZ;
1136 double ipol = m_mag.
ipol()(R,Z), ipolR = m_mag.
ipolR()(R,Z),
1137 ipolZ = m_mag.
ipolZ()(R,Z);
1138 double psipR = m_mag.
psipR()(R,Z), psipZ = m_mag.
psipZ()(R,Z);
1139 double bphi = m_bhatP(R,Z);
1140 return -(psipZ*(ipolR/R - 2.*ipol/R/R) - ipolZ/R*psipR)/
1141 (ipol*ipol + psipR*psipR + psipZ*psipZ)/bphi/bphi;
1180 double RO = m_mag.
R0(), ZO = 0;
1183 m_psipmin = m_mag.
psip()(RO, ZO);
1193 return sqrt( 1.-m_mag.
psip()(R,Z)/m_psipmin ) ;
1207 double psipR = m_mag.
psipR()(R,Z), psipZ = m_mag.
psipZ()(R,Z), ipol = m_mag.
ipol()(R,Z);
1208 double psip2 = psipR*psipR+psipZ*psipZ;
1211 return (ipol*ipol + psip2)/R/R/psip2;
1230 vertical, std::vector<double> horizontal) : m_vertical(vertical),
1231 m_horizontal(horizontal), m_BR( mag), m_BZ(mag){}
1240 m_horizontal({walls.y0(), walls.y1()}), m_BR( mag), m_BZ(mag){}
1243 std::vector<double> v_dist(1,1e100), h_dist(1,1e100);
1244 for(
auto v : m_vertical)
1245 v_dist.push_back( R-v );
1246 for(
auto h : m_horizontal)
1247 h_dist.push_back( Z-h );
1248 double v_min = *std::min_element( v_dist.begin(), v_dist.end(),
1249 [](
double a,
double b){ return fabs(a) < fabs(b);} );
1250 double h_min = *std::min_element( h_dist.begin(), h_dist.end(),
1251 [](
double a,
double b){ return fabs(a) < fabs(b);} );
1252 if( fabs(v_min) < fabs(h_min) )
1254 double br = m_BR( R,Z);
1255 return v_min*br < 0 ? +1 : -1;
1259 double bz = m_BZ( R,Z);
1260 return h_min*bz < 0 ? +1 : -1;
1264 std::vector<double> m_vertical, m_horizontal;
modifier
How flux-function is modified.
Definition magnetic_field.h:43
CylindricalVectorLvl0 createCurvatureNablaB(const TokamakMagneticField &mag, int sign)
Approximate curvature vector field (CurvatureNablaBR, CurvatureNablaBZ, Constant(0))
Definition magnetic_field.h:981
CylindricalVectorLvl0 createGradPsip(const TokamakMagneticField &mag)
Gradient Psip vector field (PsipR, PsipZ, 0)
Definition magnetic_field.h:1022
CylindricalVectorLvl0 createTrueCurvatureNablaB(const TokamakMagneticField &mag)
True curvature vector field (TrueCurvatureNablaBR, TrueCurvatureNablaBZ, TrueCurvatureNablaBP)
Definition magnetic_field.h:1012
CylindricalVectorLvl0 createTrueCurvatureKappa(const TokamakMagneticField &mag)
True curvature vector field (TrueCurvatureKappaR, TrueCurvatureKappaZ, TrueCurvatureKappaP)
Definition magnetic_field.h:1002
CylindricalVectorLvl0 createCurvatureKappa(const TokamakMagneticField &mag, int sign)
Approximate curvature vector field (CurvatureKappaR, CurvatureKappaZ, Constant(0))
Definition magnetic_field.h:992
equilibrium
How flux-function is computed. Decides how to construct magnetic field.
Definition magnetic_field.h:33
description
How flux function looks like. Decider on whether and what flux aligned grid to construct.
Definition magnetic_field.h:57
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:257
CylindricalVectorLvl1 createToroidalBHat(const TokamakMagneticField &mag)
Contravariant components of the magnetic toroidal unit vector field and its Divergence and derivative...
Definition magnetic_field.h:1165
CylindricalVectorLvl1 createBHat(const TokamakMagneticField &mag)
Contravariant components of the magnetic unit vector field and its Divergence and derivative in cylin...
Definition magnetic_field.h:1154
CylindricalVectorLvl1 createEPhi(int sign)
Contravariant components of the unit vector field (0, 0, ) and its Divergence and derivative (0,...
Definition magnetic_field.h:968
@ 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:335
Definition magnetic_field.h:831
double do_compute(double R, double Z) const
Definition magnetic_field.h:833
BFieldP(const TokamakMagneticField &mag)
Definition magnetic_field.h:832
Definition magnetic_field.h:844
BFieldR(const TokamakMagneticField &mag)
Definition magnetic_field.h:845
double do_compute(double R, double Z) const
Definition magnetic_field.h:846
Definition magnetic_field.h:869
BFieldT(const TokamakMagneticField &mag)
Definition magnetic_field.h:870
double do_compute(double R, double Z) const
Definition magnetic_field.h:871
Definition magnetic_field.h:857
double do_compute(double R, double Z) const
Definition magnetic_field.h:859
BFieldZ(const TokamakMagneticField &mag)
Definition magnetic_field.h:858
Definition magnetic_field.h:911
double do_compute(double R, double Z) const
Definition magnetic_field.h:913
BHatP(const TokamakMagneticField &mag)
Definition magnetic_field.h:912
Definition magnetic_field.h:1095
BHatPR(const TokamakMagneticField &mag)
Definition magnetic_field.h:1096
double do_compute(double R, double Z) const
Definition magnetic_field.h:1097
Definition magnetic_field.h:1113
double do_compute(double R, double Z) const
Definition magnetic_field.h:1115
BHatPZ(const TokamakMagneticField &mag)
Definition magnetic_field.h:1114
Definition magnetic_field.h:884
BHatR(const TokamakMagneticField &mag)
Definition magnetic_field.h:885
double do_compute(double R, double Z) const
Definition magnetic_field.h:886
Definition magnetic_field.h:1029
BHatRR(const TokamakMagneticField &mag)
Definition magnetic_field.h:1030
double do_compute(double R, double Z) const
Definition magnetic_field.h:1031
Definition magnetic_field.h:1046
double do_compute(double R, double Z) const
Definition magnetic_field.h:1048
BHatRZ(const TokamakMagneticField &mag)
Definition magnetic_field.h:1047
Definition magnetic_field.h:898
BHatZ(const TokamakMagneticField &mag)
Definition magnetic_field.h:899
double do_compute(double R, double Z) const
Definition magnetic_field.h:900
Definition magnetic_field.h:1062
BHatZR(const TokamakMagneticField &mag)
Definition magnetic_field.h:1063
double do_compute(double R, double Z) const
Definition magnetic_field.h:1064
Definition magnetic_field.h:1079
double do_compute(double R, double Z) const
Definition magnetic_field.h:1081
BHatZZ(const TokamakMagneticField &mag)
Definition magnetic_field.h:1080
Definition magnetic_field.h:368
double do_compute(double R, double Z) const
Definition magnetic_field.h:370
BR(const TokamakMagneticField &mag)
Definition magnetic_field.h:369
Definition magnetic_field.h:390
BZ(const TokamakMagneticField &mag)
Definition magnetic_field.h:391
double do_compute(double R, double Z) const
Definition magnetic_field.h:392
Definition magnetic_field.h:279
Bmodule(const TokamakMagneticField &mag)
Definition magnetic_field.h:280
double do_compute(double R, double Z) const
Definition magnetic_field.h:281
Definition magnetic_field.h:293
double do_compute(double R, double Z) const
Definition magnetic_field.h:295
Btor(const TokamakMagneticField &mag)
Definition magnetic_field.h:294
Definition fluxfunctions.h:113
Approximate .
Definition magnetic_field.h:485
CurvatureKappaR()
Definition magnetic_field.h:486
double do_compute(double, double) const
Definition magnetic_field.h:488
CurvatureKappaR(const TokamakMagneticField &, int=+1)
Definition magnetic_field.h:487
Approximate .
Definition magnetic_field.h:500
double do_compute(double R, double Z) const
Definition magnetic_field.h:507
CurvatureKappaZ(const TokamakMagneticField &mag, int sign)
Definition magnetic_field.h:501
Approximate .
Definition magnetic_field.h:441
CurvatureNablaBR(const TokamakMagneticField &mag, int sign)
Definition magnetic_field.h:442
double do_compute(double R, double Z) const
Definition magnetic_field.h:448
Approximate .
Definition magnetic_field.h:463
CurvatureNablaBZ(const TokamakMagneticField &mag, int sign)
Definition magnetic_field.h:464
double do_compute(double R, double Z) const
Definition magnetic_field.h:470
This struct bundles a function and its first derivatives.
Definition fluxfunctions.h:185
const CylindricalFunctor & dfx() const
Definition fluxfunctions.h:208
const CylindricalFunctor & f() const
Definition fluxfunctions.h:206
const CylindricalFunctor & dfy() const
Definition fluxfunctions.h:210
This struct bundles a function and its first and second derivatives.
Definition fluxfunctions.h:222
const CylindricalFunctor & dfxy() const
Definition fluxfunctions.h:254
const CylindricalFunctor & dfy() const
Definition fluxfunctions.h:250
const CylindricalFunctor & dfx() const
Definition fluxfunctions.h:248
const CylindricalFunctor & dfxx() const
Definition fluxfunctions.h:252
const CylindricalFunctor & f() const
Definition fluxfunctions.h:246
const CylindricalFunctor & dfyy() const
Definition fluxfunctions.h:256
Definition fluxfunctions.h:415
This struct bundles a vector field and its divergence.
Definition fluxfunctions.h:443
Approximate .
Definition magnetic_field.h:521
DivCurvatureKappa(const TokamakMagneticField &mag, int sign)
Definition magnetic_field.h:522
double do_compute(double R, double Z) const
Definition magnetic_field.h:528
Approximate .
Definition magnetic_field.h:543
double do_compute(double R, double Z) const
Definition magnetic_field.h:545
DivCurvatureNablaB(const TokamakMagneticField &mag, int sign)
Definition magnetic_field.h:544
Definition magnetic_field.h:1131
double do_compute(double R, double Z) const
Definition magnetic_field.h:1134
DivVVP(const TokamakMagneticField &mag)
Definition magnetic_field.h:1132
Definition magnetic_field.h:786
double do_compute(double R, double Z) const
Definition magnetic_field.h:788
Divb(const TokamakMagneticField &mag)
Definition magnetic_field.h:787
Definition magnetic_field.h:766
GradLnB(const TokamakMagneticField &mag)
Definition magnetic_field.h:767
double do_compute(double R, double Z) const
Definition magnetic_field.h:768
Inertia factor .
Definition magnetic_field.h:1203
Hoo(dg::geo::TokamakMagneticField mag)
Definition magnetic_field.h:1204
double do_compute(double R, double Z) const
Definition magnetic_field.h:1205
Definition magnetic_field.h:313
InvB(const TokamakMagneticField &mag)
Definition magnetic_field.h:314
double do_compute(double R, double Z) const
Definition magnetic_field.h:315
Definition magnetic_field.h:327
double do_compute(double R, double Z) const
Definition magnetic_field.h:329
InvBtor(const TokamakMagneticField &mag)
Definition magnetic_field.h:328
Definition magnetic_field.h:267
double do_compute(double R, double Z) const
Definition magnetic_field.h:269
LaplacePsip(const TokamakMagneticField &mag)
Definition magnetic_field.h:268
Definition magnetic_field.h:346
double do_compute(double R, double Z) const
Definition magnetic_field.h:348
LnB(const TokamakMagneticField &mag)
Definition magnetic_field.h:347
Meta-data about the magnetic field in particular the flux function.
Definition magnetic_field.h:101
double a() const
The minor radius.
Definition magnetic_field.h:132
modifier getModifier() const
the way the flux function is modified
Definition magnetic_field.h:148
MagneticFieldParameters(double a, double elongation, double triangularity, equilibrium equ, modifier mod, description des)
Constructor.
Definition magnetic_field.h:121
description getDescription() const
how the flux function looks
Definition magnetic_field.h:150
double elongation() const
Definition magnetic_field.h:138
double triangularity() const
Definition magnetic_field.h:144
equilibrium getEquilibrium() const
the way the flux function is computed
Definition magnetic_field.h:146
MagneticFieldParameters()
Default values are for a Toroidal field.
Definition magnetic_field.h:105
Definition magnetic_field.h:1178
double do_compute(double R, double Z) const
Definition magnetic_field.h:1191
RhoP(const TokamakMagneticField &mag)
Definition magnetic_field.h:1179
A tokamak field as given by R0, Psi and Ipol plus Meta-data like shape and equilibrium.
Definition magnetic_field.h:172
const CylindricalFunctor & psipR() const
, where R, Z are cylindrical coordinates
Definition magnetic_field.h:191
const CylindricalFunctorsLvl2 & get_psip() const
Definition magnetic_field.h:207
const CylindricalFunctor & psipRR() const
, where R, Z are cylindrical coordinates
Definition magnetic_field.h:195
TokamakMagneticField()
as long as the field stays empty the access functions are undefined
Definition magnetic_field.h:174
const CylindricalFunctor & ipol() const
the current
Definition magnetic_field.h:201
const CylindricalFunctor & ipolR() const
Definition magnetic_field.h:203
const CylindricalFunctor & psipZZ() const
, where R, Z are cylindrical coordinates
Definition magnetic_field.h:199
const CylindricalFunctorsLvl1 & get_ipol() const
Definition magnetic_field.h:208
const MagneticFieldParameters & params() const
Access Meta-data of the field.
Definition magnetic_field.h:214
const CylindricalFunctor & psipZ() const
, where R, Z are cylindrical coordinates
Definition magnetic_field.h:193
double R0() const
Definition magnetic_field.h:187
const CylindricalFunctor & ipolZ() const
Definition magnetic_field.h:205
void set(double R0, const CylindricalFunctorsLvl2 &psip, const CylindricalFunctorsLvl1 &ipol, MagneticFieldParameters gp)
Definition magnetic_field.h:178
const CylindricalFunctor & psipRZ() const
, where R, Z are cylindrical coordinates
Definition magnetic_field.h:197
const CylindricalFunctor & psip() const
, where R, Z are cylindrical coordinates
Definition magnetic_field.h:189
TokamakMagneticField(double R0, const CylindricalFunctorsLvl2 &psip, const CylindricalFunctorsLvl1 &ipol, MagneticFieldParameters gp)
Definition magnetic_field.h:175
Definition magnetic_field.h:949
double do_compute(double R, double) const
Definition magnetic_field.h:951
ToroidalBHatP(const TokamakMagneticField &mag)
Definition magnetic_field.h:950
Definition magnetic_field.h:924
double do_compute(double R, double Z) const
Definition magnetic_field.h:926
ToroidalBHatR(const TokamakMagneticField &mag)
Definition magnetic_field.h:925
Definition magnetic_field.h:937
double do_compute(double R, double Z) const
Definition magnetic_field.h:939
ToroidalBHatZ(const TokamakMagneticField &mag)
Definition magnetic_field.h:938
Definition magnetic_field.h:409
ToroidalBR(const TokamakMagneticField &mag)
Definition magnetic_field.h:410
double do_compute(double R, double Z) const
Definition magnetic_field.h:411
Definition magnetic_field.h:426
double do_compute(double R, double Z) const
Definition magnetic_field.h:428
ToroidalBZ(const TokamakMagneticField &mag)
Definition magnetic_field.h:427
Toroidal Approximate .
Definition magnetic_field.h:717
ToroidalCurvatureKappaR()
Definition magnetic_field.h:718
ToroidalCurvatureKappaR(const TokamakMagneticField &)
Definition magnetic_field.h:719
double do_compute(double, double) const
Definition magnetic_field.h:720
Toroidal Approximate .
Definition magnetic_field.h:732
ToroidalCurvatureKappaZ(const TokamakMagneticField &mag)
Definition magnetic_field.h:733
double do_compute(double R, double Z) const
Definition magnetic_field.h:734
Toroidal Approximate .
Definition magnetic_field.h:685
ToroidalCurvatureNablaBR(const TokamakMagneticField &mag)
Definition magnetic_field.h:686
double do_compute(double R, double Z) const
Definition magnetic_field.h:687
Toroidal Approximate .
Definition magnetic_field.h:701
double do_compute(double R, double Z) const
Definition magnetic_field.h:703
ToroidalCurvatureNablaBZ(const TokamakMagneticField &mag)
Definition magnetic_field.h:702
Toroidal Approximate .
Definition magnetic_field.h:748
double do_compute(double R, double Z) const
Definition magnetic_field.h:750
ToroidalDivCurvatureKappa(const TokamakMagneticField &mag)
Definition magnetic_field.h:749
Definition magnetic_field.h:819
ToroidalDivb(const TokamakMagneticField &mag)
Definition magnetic_field.h:820
double do_compute(double R, double Z) const
Definition magnetic_field.h:821
Definition magnetic_field.h:802
double do_compute(double R, double Z) const
Definition magnetic_field.h:804
ToroidalGradLnB(const TokamakMagneticField &mag)
Definition magnetic_field.h:803
True .
Definition magnetic_field.h:637
TrueCurvatureKappaP(const TokamakMagneticField &mag)
Definition magnetic_field.h:638
double do_compute(double R, double Z) const
Definition magnetic_field.h:639
True .
Definition magnetic_field.h:608
double do_compute(double R, double Z) const
Definition magnetic_field.h:610
TrueCurvatureKappaR(const TokamakMagneticField &mag)
Definition magnetic_field.h:609
True .
Definition magnetic_field.h:623
TrueCurvatureKappaZ(const TokamakMagneticField &mag)
Definition magnetic_field.h:624
double do_compute(double R, double Z) const
Definition magnetic_field.h:625
True .
Definition magnetic_field.h:592
double do_compute(double R, double Z) const
Definition magnetic_field.h:594
TrueCurvatureNablaBP(const TokamakMagneticField &mag)
Definition magnetic_field.h:593
True .
Definition magnetic_field.h:556
double do_compute(double R, double Z) const
Definition magnetic_field.h:558
TrueCurvatureNablaBR(const TokamakMagneticField &mag)
Definition magnetic_field.h:557
True .
Definition magnetic_field.h:574
double do_compute(double R, double Z) const
Definition magnetic_field.h:576
TrueCurvatureNablaBZ(const TokamakMagneticField &mag)
Definition magnetic_field.h:575
True .
Definition magnetic_field.h:655
double do_compute(double R, double Z) const
Definition magnetic_field.h:657
TrueDivCurvatureKappa(const TokamakMagneticField &mag)
Definition magnetic_field.h:656
True .
Definition magnetic_field.h:671
double do_compute(double R, double Z) const
Definition magnetic_field.h:673
TrueDivCurvatureNablaB(const TokamakMagneticField &mag)
Definition magnetic_field.h:672
Determine if poloidal field points towards or away from the nearest wall.
Definition magnetic_field.h:1221
WallDirection(dg::geo::TokamakMagneticField mag, std::vector< double > vertical, std::vector< double > horizontal)
Allocate lines.
Definition magnetic_field.h:1229
WallDirection(dg::geo::TokamakMagneticField mag, dg::Grid2d walls)
Allocate lines.
Definition magnetic_field.h:1238
double do_compute(double R, double Z) const
Definition magnetic_field.h:1241
Represent functions written in cylindrical coordinates that are independent of the angle phi serving ...
Definition fluxfunctions.h:66