OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
TrimCoilPhaseFit Class Reference

#include <TrimCoilPhaseFit.h>

Inheritance diagram for TrimCoilPhaseFit:
Collaboration diagram for TrimCoilPhaseFit:

Public Member Functions

 TrimCoilPhaseFit (double bmax, double rmin, double rmax, const std::vector< double > &coefnum, const std::vector< double > &coefdenom, const std::vector< double > &coefnumphi, const std::vector< double > &coefdenomphi)
virtual ~TrimCoilPhaseFit ()
void applyField (const double r, const double z, const double phi_rad, double *br, double *bz)
void setAzimuth (const double phimin, const double phimax)
 Set azimuthal range where trim coil acts: [phimin, phimax] (also when phimin > phimax).

Protected Types

enum  PolynomType { NUM , DENOM , NUMPHI , DENOMPHI }
enum  FunctionType { RADIUS =0 , PHI =2 }

Protected Member Functions

void calculateRationalFunction (FunctionType, double value, double &quot, double &der_quot) const
 calculate rational function and its first derivative
void calculateRationalFunction (FunctionType, double value, double &quot, double &der_quot, double &der2_quot) const
 calculate rational function and its first and second derivative

Protected Attributes

double bmax_m
 Maximum B field (kG).
double rmin_m
 Minimum radius (m).
double rmax_m
 Maximum radius (m).
double phimin_m = 0.0
 Minimal azimuth (rad).
double phimax_m = Physics::two_pi
 Maximal azimuth (rad).

Private Member Functions

 TrimCoilPhaseFit ()=delete
virtual void doApplyField (const double r, const double z, const double phi_rad, double *br, double *bz)
 virtual implementation of applyField

Private Attributes

std::vector< std::vector< double > > coefs
 rational function coefficients

Detailed Description

Definition at line 31 of file TrimCoilPhaseFit.h.

Member Enumeration Documentation

◆ FunctionType

enum TrimCoilFit::FunctionType
protectedinherited
Enumerator
RADIUS 
PHI 

Definition at line 47 of file TrimCoilFit.h.

◆ PolynomType

enum TrimCoilFit::PolynomType
protectedinherited
Enumerator
NUM 
DENOM 
NUMPHI 
DENOMPHI 

Definition at line 46 of file TrimCoilFit.h.

Constructor & Destructor Documentation

◆ TrimCoilPhaseFit() [1/2]

TrimCoilPhaseFit::TrimCoilPhaseFit ( double bmax,
double rmin,
double rmax,
const std::vector< double > & coefnum,
const std::vector< double > & coefdenom,
const std::vector< double > & coefnumphi,
const std::vector< double > & coefdenomphi )

Definition at line 26 of file TrimCoilPhaseFit.cpp.

References TrimCoilFit::TrimCoilFit().

Here is the call graph for this function:

◆ ~TrimCoilPhaseFit()

virtual TrimCoilPhaseFit::~TrimCoilPhaseFit ( )
inlinevirtual

Definition at line 42 of file TrimCoilPhaseFit.h.

◆ TrimCoilPhaseFit() [2/2]

TrimCoilPhaseFit::TrimCoilPhaseFit ( )
privatedelete

Member Function Documentation

◆ applyField()

void TrimCoil::applyField ( const double r,
const double z,
const double phi_rad,
double * br,
double * bz )
inherited

Apply the trim coil at position r and z to Bfields br and bz Calls virtual doApplyField

Definition at line 43 of file TrimCoil.cpp.

References Util::angle_0to2pi(), Util::angleBetweenAngles(), bmax_m, doApplyField(), phimax_m, and phimin_m.

Here is the call graph for this function:

◆ calculateRationalFunction() [1/2]

void TrimCoilFit::calculateRationalFunction ( FunctionType type,
double value,
double & quot,
double & der_quot ) const
protectedinherited

calculate rational function and its first derivative

Definition at line 57 of file TrimCoilFit.cpp.

References coefs.

Referenced by TrimCoilBFit::doApplyField(), and TrimCoilPhaseFit::doApplyField().

◆ calculateRationalFunction() [2/2]

void TrimCoilFit::calculateRationalFunction ( FunctionType type,
double value,
double & quot,
double & der_quot,
double & der2_quot ) const
protectedinherited

calculate rational function and its first and second derivative

Definition at line 90 of file TrimCoilFit.cpp.

References coefs.

◆ doApplyField()

void TrimCoilPhaseFit::doApplyField ( const double r,
const double z,
const double phi_rad,
double * br,
double * bz )
privatevirtual

virtual implementation of applyField

Implements TrimCoil.

Definition at line 36 of file TrimCoilPhaseFit.cpp.

References TrimCoil::bmax_m, TrimCoilFit::calculateRationalFunction(), TrimCoilFit::PHI, TrimCoilFit::RADIUS, and TrimCoil::rmax_m.

Here is the call graph for this function:

◆ setAzimuth()

void TrimCoil::setAzimuth ( const double phimin,
const double phimax )
inherited

Set azimuthal range where trim coil acts: [phimin, phimax] (also when phimin > phimax).

Definition at line 53 of file TrimCoil.cpp.

References Util::angle_0to2pi(), Units::deg2rad, phimax_m, and phimin_m.

Here is the call graph for this function:

Member Data Documentation

◆ bmax_m

double TrimCoil::bmax_m
protectedinherited

◆ coefs

std::vector<std::vector<double> > TrimCoilFit::coefs
privateinherited

rational function coefficients

Definition at line 58 of file TrimCoilFit.h.

Referenced by calculateRationalFunction(), calculateRationalFunction(), and TrimCoilFit().

◆ phimax_m

double TrimCoil::phimax_m = Physics::two_pi
protectedinherited

Maximal azimuth (rad).

Definition at line 53 of file TrimCoil.h.

Referenced by applyField(), and setAzimuth().

◆ phimin_m

double TrimCoil::phimin_m = 0.0
protectedinherited

Minimal azimuth (rad).

Definition at line 51 of file TrimCoil.h.

Referenced by applyField(), and setAzimuth().

◆ rmax_m

double TrimCoil::rmax_m
protectedinherited

Maximum radius (m).

Definition at line 49 of file TrimCoil.h.

Referenced by TrimCoilBFit::doApplyField(), TrimCoilMirrored::doApplyField(), TrimCoilPhaseFit::doApplyField(), and TrimCoil().

◆ rmin_m

double TrimCoil::rmin_m
protectedinherited

Minimum radius (m).

Definition at line 47 of file TrimCoil.h.

Referenced by TrimCoilMirrored::doApplyField(), and TrimCoil().


The documentation for this class was generated from the following files: