OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
TrimCoil.cpp
Go to the documentation of this file.
1 #include "TrimCoil.h"
2 
3 #include <cmath>
4 
5 #include "Physics/Physics.h"
6 
7 TrimCoil::TrimCoil(double bmax,
8  double rmin,
9  double rmax)
10 {
11  // convert to m
12  const double mm2m = 0.001;
13  rmin_m = rmin * mm2m;
14  rmax_m = rmax * mm2m;
15  // convert to kG
16  bmax_m = bmax * 10.0;
17 }
18 
19 void TrimCoil::applyField(const double r, const double z, const double phi_rad, double *br, double *bz)
20 {
21  if (std::abs(bmax_m) < 1e-20) return;
22  if ((phimin_m <= phimax_m && (phi_rad < phimin_m || phi_rad > phimax_m)) ||
23  (phimin_m > phimax_m && (phi_rad < phimin_m && phi_rad > phimax_m)) ) return;
24 
25  doApplyField(r,z,phi_rad,br,bz);
26 }
27 
28 void TrimCoil::setAzimuth(const double phimin, const double phimax)
29 {
30  // phi convert to rad in [0,two pi]
31  if (phimin_m < 0) phimin_m += 360;
32  if (phimax_m < 0) phimax_m += 360;
33 
34  phimin_m = phimin * Physics::deg2rad;
35  phimax_m = phimax * Physics::deg2rad;
36 }
double phimax_m
Maximal azimuth (rad)
Definition: TrimCoil.h:31
PETE_TUTree< FnAbs, typename T::PETE_Expr_t > abs(const PETE_Expr< T > &l)
constexpr double e
The value of .
Definition: Physics.h:40
double bmax_m
Maximum B field (kG)
Definition: TrimCoil.h:18
TrimCoil(double bmax, double rmin, double rmax)
Definition: TrimCoil.cpp:7
double rmax_m
Maximum radius (m)
Definition: TrimCoil.h:27
void setAzimuth(const double phimin, const double phimax)
Set azimuthal range.
Definition: TrimCoil.cpp:28
void applyField(const double r, const double z, const double phi_rad, double *br, double *bz)
Definition: TrimCoil.cpp:19
double rmin_m
Minimum radius (m)
Definition: TrimCoil.h:25
double phimin_m
Minimal azimuth (rad)
Definition: TrimCoil.h:29
virtual void doApplyField(const double r, const double z, const double phi_rad, double *br, double *bz)=0
virtual implementation of applyField
constexpr double deg2rad
The conversion factor from degrees to radians.
Definition: Physics.h:49