OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
TrimCoilBFit.cpp
Go to the documentation of this file.
2 
4  double rmin,
5  double rmax,
6  const std::vector<double>& coefnum,
7  const std::vector<double>& coefdenom,
8  const std::vector<double>& coefnumphi,
9  const std::vector<double>& coefdenomphi):
10  TrimCoilFit(bmax, rmin, rmax, coefnum, coefdenom, coefnumphi, coefdenomphi)
11 {}
12 
13 void TrimCoilBFit::doApplyField(const double r, const double z, const double phi_rad, double *br, double *bz)
14 {
15  // check range
16  if (r < rmin_m || r > rmax_m) return;
17 
18  double btr = 0.0, dr = 0.0;
19  calculateRationalFunction(RADIUS, r, btr, dr);
20  double phi = 0.0, dphi = 0.0;
21  calculateRationalFunction(PHI, phi_rad, phi, dphi);
22 
23  //std::cout << "r " << r << " dr " << dr << std::endl;
24 
25  *bz += bmax_m * btr * phi;
26  *br += bmax_m * (dr * phi + btr*dphi) * z;
27 }
double bmax_m
Maximum B field (kG)
Definition: TrimCoil.h:18
TrimCoilBFit()=delete
double rmax_m
Maximum radius (m)
Definition: TrimCoil.h:27
void calculateRationalFunction(FunctionType, double value, double &quot, double &der_quot) const
calculate rational function and its first derivative
Definition: TrimCoilFit.cpp:33
virtual void doApplyField(const double r, const double z, const double phi_rad, double *br, double *bz)
virtual implementation of applyField