OPALX (Object Oriented Parallel Accelerator Library for Exascale) MINIorX
OPALX
BMultipoleField Class Reference

The magnetic field of a multipole. More...

#include <BMultipoleField.h>

Inheritance diagram for BMultipoleField:
Inheritance graph
Collaboration diagram for BMultipoleField:
Collaboration graph

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...
 
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...
 

Static Public Attributes

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...
 

Private Member Functions

void reserve (int n)
 

Private Attributes

Pairpairs
 
int itsOrder
 

Detailed Description

The magnetic field of a multipole.

Definition at line 36 of file BMultipoleField.h.

Constructor & Destructor Documentation

◆ BMultipoleField() [1/2]

BMultipoleField::BMultipoleField ( )

Default constructor.

Definition at line 85 of file BMultipoleField.cpp.

◆ BMultipoleField() [2/2]

BMultipoleField::BMultipoleField ( const BMultipoleField rhs)

Definition at line 91 of file BMultipoleField.cpp.

References itsOrder, and pairs.

◆ ~BMultipoleField()

BMultipoleField::~BMultipoleField ( )
virtual

Definition at line 104 of file BMultipoleField.cpp.

References pairs.

Member Function Documentation

◆ addField()

BMultipoleField & BMultipoleField::addField ( const BMultipoleField field)

Add to field.

Definition at line 166 of file BMultipoleField.cpp.

References itsOrder, pairs, and reserve().

Here is the call graph for this function:

◆ Bfield() [1/2]

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

Get field.

Reimplemented from EMField.

Definition at line 126 of file BMultipoleField.cpp.

References Point3D::getX(), Point3D::getY(), itsOrder, and pairs.

Referenced by Bfield().

Here is the call graph for this function:

◆ Bfield() [2/2]

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:

◆ EBfield() [1/2]

EBVectors EMField::EBfield ( const Point3D P) const
virtualinherited

Get field.

Definition at line 183 of file EMField.cpp.

References EMField::Bfield(), and EMField::Efield().

Referenced by Component::EBfield(), and EMField::EBfield().

Here is the call graph for this function:

◆ EBfield() [2/2]

EBVectors EMField::EBfield ( const Point3D P,
double  t 
) const
virtualinherited

Get field.

Definition at line 188 of file EMField.cpp.

References EMField::EBfield().

Here is the call graph for this function:

◆ Efield() [1/2]

EVector EMField::Efield ( const Point3D P) const
virtualinherited

Get field.

Reimplemented in ConstEzField, and OscillatingField< ConstEzField >.

Definition at line 163 of file EMField.cpp.

References EMField::ZeroEfield.

Referenced by EMField::EBfield(), Component::Efield(), and EMField::Efield().

◆ Efield() [2/2]

EVector EMField::Efield ( const Point3D P,
double  t 
) const
virtualinherited

Get field.

Reimplemented in ConstEzField, and OscillatingField< ConstEzField >.

Definition at line 173 of file EMField.cpp.

References EMField::Efield().

Here is the call graph for this function:

◆ getNormalComponent()

double BMultipoleField::getNormalComponent ( int  n) const
inline

Get component.

Definition at line 161 of file BMultipoleField.h.

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

◆ getSkewComponent()

double BMultipoleField::getSkewComponent ( int  n) const
inline

Get component.

Definition at line 170 of file BMultipoleField.h.

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

◆ normal() [1/2]

double & BMultipoleField::normal ( int  n)
inline

Get component.

Definition at line 179 of file BMultipoleField.h.

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

◆ normal() [2/2]

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 BMultipoleField::Pair::Pair().

◆ operator=()

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

Definition at line 109 of file BMultipoleField.cpp.

References itsOrder, and pairs.

◆ order()

int BMultipoleField::order ( ) const
inline

Return order.

Definition at line 156 of file BMultipoleField.h.

References itsOrder.

◆ reserve()

void BMultipoleField::reserve ( int  n)
private

Definition at line 187 of file BMultipoleField.cpp.

References itsOrder, and pairs.

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

◆ scale()

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*(), and BMultipoleField::Pair::operator*=().

◆ setNormalComponent()

void BMultipoleField::setNormalComponent ( int  n,
double  Bn 
)

Set component.

Definition at line 144 of file BMultipoleField.cpp.

References BMultipoleField::Pair::B, itsOrder, pairs, and reserve().

Referenced by BSingleMultipoleField< order >::operator BMultipoleField(), and OpalMultipole::update().

Here is the call graph for this function:

◆ setSkewComponent()

void BMultipoleField::setSkewComponent ( int  n,
double  Bn 
)

Set component.

Definition at line 155 of file BMultipoleField.cpp.

References BMultipoleField::Pair::A, itsOrder, pairs, and reserve().

Referenced by BSingleMultipoleField< order >::operator BMultipoleField(), and OpalMultipole::update().

Here is the call graph for this function:

◆ skew() [1/2]

double & BMultipoleField::skew ( int  n)
inline

Get component.

Definition at line 183 of file BMultipoleField.h.

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

◆ skew() [2/2]

double BMultipoleField::skew ( int  n) const
inline

Get component.

Definition at line 191 of file BMultipoleField.h.

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

◆ subtractField()

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

◆ itsOrder

◆ pairs

◆ ZeroBfield

const BVector EMField::ZeroBfield
staticinherited

The constant representing a zero magnetic field.

Definition at line 239 of file EMField.h.

Referenced by EMField::Bfield().

◆ ZeroEBfield

const EBVectors EMField::ZeroEBfield
staticinherited

The constant representing a zero electromagnetic field.

Definition at line 242 of file EMField.h.

◆ ZeroEfield

const EVector EMField::ZeroEfield
staticinherited

The constant representing a zero electric field.

Definition at line 236 of file EMField.h.

Referenced by EMField::Efield().


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