OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
Classes | Public Member Functions | Private Member Functions | Private Attributes | List of all members
BMultipoleField Class Reference

The magnetic field of a multipole. More...

#include <BMultipoleField.h>

Inheritance diagram for BMultipoleField:
Inheritance graph
[legend]
Collaboration diagram for BMultipoleField:
Collaboration graph
[legend]

Classes

struct  Pair
 

Public Member Functions

 BMultipoleField ()
 Default constructor. More...
 
 BMultipoleField (const BMultipoleField &)
 
virtual ~BMultipoleField ()
 
BMultipoleFieldoperator= (const BMultipoleField &)
 
virtual BVector Bfield (const Point3D &P) const
 Get field. More...
 
virtual BVector Bfield (const Point3D &P, double t) const
 Get field. More...
 
double getNormalComponent (int n) const
 Get component. More...
 
double getSkewComponent (int n) const
 Get component. More...
 
void setNormalComponent (int n, double Bn)
 Set component. More...
 
void setSkewComponent (int n, double Bn)
 Set component. More...
 
double normal (int) const
 Get component. More...
 
double skew (int) const
 Get component. More...
 
double & normal (int)
 Get component. More...
 
double & skew (int)
 Get component. More...
 
BMultipoleFieldaddField (const BMultipoleField &field)
 Add to field. More...
 
BMultipoleFieldsubtractField (const BMultipoleField &field)
 Subtract from field. More...
 
void scale (double scalar)
 Scale the field. More...
 
int order () const
 Return order. More...
 
- Public Member Functions inherited from StaticMagneticField
 StaticMagneticField ()
 
virtual ~StaticMagneticField ()
 
- Public Member Functions inherited from EMField
 EMField ()
 Default constructor. More...
 
 EMField (const EMField &right)
 
virtual ~EMField ()
 
const EMFieldoperator= (const EMField &right)
 
virtual EVector Efield (const Point3D &P) const
 Get field. More...
 
virtual EVector Efield (const Point3D &P, double t) const
 Get field. More...
 
virtual EBVectors EBfield (const Point3D &P) const
 Get field. More...
 
virtual EBVectors EBfield (const Point3D &P, double t) const
 Get field. More...
 

Private Member Functions

void reserve (int n)
 

Private Attributes

Pairpairs
 
int itsOrder
 

Additional Inherited Members

- Static Public Attributes inherited from EMField
static const EVector ZeroEfield
 The constant representing a zero electric field. More...
 
static const BVector ZeroBfield
 The constant representing a zero magnetic field. More...
 
static const EBVectors ZeroEBfield
 The constant representing a zero electromagnetic field. More...
 

Detailed Description

The magnetic field of a multipole.

Definition at line 36 of file BMultipoleField.h.

Constructor & Destructor Documentation

BMultipoleField::BMultipoleField ( )

Default constructor.

Definition at line 85 of file BMultipoleField.cpp.

BMultipoleField::BMultipoleField ( const BMultipoleField rhs)

Definition at line 91 of file BMultipoleField.cpp.

References itsOrder, and pairs.

BMultipoleField::~BMultipoleField ( )
virtual

Definition at line 104 of file BMultipoleField.cpp.

References pairs.

Member Function Documentation

BMultipoleField & BMultipoleField::addField ( const BMultipoleField field)

Add to field.

Definition at line 166 of file BMultipoleField.cpp.

References itsOrder, pairs, and reserve().

Referenced by MultipoleWrapper::getField(), SBendWrapper::getField(), and RBendWrapper::getField().

Here is the call graph for this function:

BVector BMultipoleField::Bfield ( const Point3D P) const
virtual

Get field.

Reimplemented from EMField.

Definition at line 126 of file BMultipoleField.cpp.

References BMultipoleField::Pair::A, BMultipoleField::Pair::B, Point3D::getX(), Point3D::getY(), imag(), itsOrder, pairs, real(), and X.

Referenced by Bfield().

Here is the call graph for this function:

BVector BMultipoleField::Bfield ( const Point3D P,
double  t 
) const
virtual

Get field.

Reimplemented from EMField.

Definition at line 139 of file BMultipoleField.cpp.

References Bfield().

Here is the call graph for this function:

double BMultipoleField::getNormalComponent ( int  n) const
inline
double BMultipoleField::getSkewComponent ( int  n) const
inline

Get component.

Definition at line 170 of file BMultipoleField.h.

References BMultipoleField::Pair::A, itsOrder, and pairs.

Referenced by SBendRep::getImage(), SBend::getSkewComponent(), and RBend::getSkewComponent().

double BMultipoleField::normal ( int  n) const
inline

Get component.

Definition at line 187 of file BMultipoleField.h.

References BMultipoleField::Pair::B, and pairs.

Referenced by OrbitTracker::applyEntranceFringe(), ThickMapper::applyEntranceFringe(), LinearMapper::applyEntranceFringe(), TransportMapper::applyEntranceFringe(), OrbitTracker::applyExitFringe(), ThickMapper::applyExitFringe(), LinearMapper::applyExitFringe(), TransportMapper::applyExitFringe(), MPSplitIntegrator::applyMultipole(), IdealMapper::applyMultipoleBody(), OrbitTracker::applyMultipoleBody(), LinearMapper::applyMultipoleBody(), TransportMapper::applyMultipoleBody(), IdealMapper::applySBendBody(), IdealMapper::applyThinMultipole(), Mapper::applyThinMultipole(), Tracker::applyThinMultipole(), OrbitTracker::applyThinMultipole(), LinearMapper::applyThinMultipole(), TransportMapper::applyThinMultipole(), IdealMapper::applyThinSBend(), AbstractMapper::buildMultipoleVectorPotential(), Tracker::buildMultipoleVectorPotential(), Tracker::buildMultipoleVectorPotential2D(), AbstractMapper::buildSBendVectorPotential(), Tracker::buildSBendVectorPotential(), OrbitTracker::buildSBendVectorPotential(), LinearMapper::buildSBendVectorPotential(), TransportMapper::buildSBendVectorPotential(), Tracker::buildSBendVectorPotential2D(), OpalSBend::fillRegisteredAttributes(), OpalRBend::fillRegisteredAttributes(), OpalMultipole::fillRegisteredAttributes(), OpalSextupole::fillRegisteredAttributes(), OpalOctupole::fillRegisteredAttributes(), OpalQuadrupole::fillRegisteredAttributes(), RbendMap::getEntranceFringeMap(), RbendMap::getExitFringeMap(), RbendMap::getMultipoleMap(), RbendMap::getThinMultipoleMap(), BMultipoleField::Pair::Pair(), MSplit::visitMultipole(), Aperture::visitMultipole(), ThinMapper::visitRBend(), MSplit::visitRBend(), ThinTracker::visitRBend(), Aperture::visitRBend(), MSplit::visitSBend(), ThinMapper::visitSBend(), ThinTracker::visitSBend(), and Aperture::visitSBend().

double & BMultipoleField::normal ( int  n)
inline

Get component.

Definition at line 179 of file BMultipoleField.h.

References BMultipoleField::Pair::B, and pairs.

BMultipoleField & BMultipoleField::operator= ( const BMultipoleField rhs)

Definition at line 109 of file BMultipoleField.cpp.

References itsOrder, and pairs.

int BMultipoleField::order ( ) const
inline
void BMultipoleField::reserve ( int  n)
private

Definition at line 187 of file BMultipoleField.cpp.

References itsOrder, Hypervolume::n, and pairs.

Referenced by addField(), setNormalComponent(), setSkewComponent(), and subtractField().

void BMultipoleField::scale ( double  scalar)
virtual

Scale the field.

Implements EMField.

Definition at line 180 of file BMultipoleField.cpp.

References itsOrder, and pairs.

Referenced by BMultipoleField::Pair::operator*=().

void BMultipoleField::setNormalComponent ( int  n,
double  Bn 
)
void BMultipoleField::setSkewComponent ( int  n,
double  Bn 
)
double BMultipoleField::skew ( int  n) const
inline
double & BMultipoleField::skew ( int  n)
inline

Get component.

Definition at line 183 of file BMultipoleField.h.

References BMultipoleField::Pair::A, and pairs.

BMultipoleField & BMultipoleField::subtractField ( const BMultipoleField field)

Subtract from field.

Definition at line 173 of file BMultipoleField.cpp.

References itsOrder, pairs, and reserve().

Here is the call graph for this function:

Member Data Documentation

int BMultipoleField::itsOrder
private
Pair* BMultipoleField::pairs
private

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