|
OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
|
The magnetic field of a multipole. More...
#include <BMultipoleField.h>
Classes | |
| struct | Pair |
Public Member Functions | |
| BMultipoleField () | |
| Default constructor. | |
| BMultipoleField (const BMultipoleField &) | |
| virtual | ~BMultipoleField () |
| BMultipoleField & | operator= (const BMultipoleField &) |
| virtual BVector | Bfield (const Point3D &P) const |
| Get field. | |
| virtual BVector | Bfield (const Point3D &P, double t) const |
| Get field. | |
| double | getNormalComponent (int n) const |
| Get component. | |
| double | getSkewComponent (int n) const |
| Get component. | |
| void | setNormalComponent (int n, double Bn) |
| Set component. | |
| void | setSkewComponent (int n, double Bn) |
| Set component. | |
| double | normal (int) const |
| Get component. | |
| double | skew (int) const |
| Get component. | |
| double & | normal (int) |
| Get component. | |
| double & | skew (int) |
| Get component. | |
| BMultipoleField & | addField (const BMultipoleField &field) |
| Add to field. | |
| BMultipoleField & | subtractField (const BMultipoleField &field) |
| Subtract from field. | |
| void | scale (double scalar) |
| Scale the field. | |
| int | order () const |
| Return order. | |
| virtual EVector | Efield (const Point3D &P) const |
| Get field. | |
| virtual EVector | Efield (const Point3D &P, double t) const |
| Get field. | |
| virtual EBVectors | EBfield (const Point3D &P) const |
| Get field. | |
| virtual EBVectors | EBfield (const Point3D &P, double t) const |
| Get field. | |
Static Public Attributes | |
| static const EVector | ZeroEfield |
| The constant representing a zero electric field. | |
| static const BVector | ZeroBfield |
| The constant representing a zero magnetic field. | |
| static const EBVectors | ZeroEBfield |
| The constant representing a zero electromagnetic field. | |
Private Member Functions | |
| void | reserve (int n) |
Private Attributes | |
| Pair * | pairs |
| int | itsOrder |
The magnetic field of a multipole.
Definition at line 36 of file BMultipoleField.h.
| BMultipoleField::BMultipoleField | ( | ) |
Default constructor.
Definition at line 85 of file BMultipoleField.cpp.
References itsOrder, and pairs.
Referenced by addField(), BMultipoleField(), operator=(), and subtractField().
| BMultipoleField::BMultipoleField | ( | const BMultipoleField & | rhs | ) |
Definition at line 91 of file BMultipoleField.cpp.
References BMultipoleField(), itsOrder, and pairs.
|
virtual |
Definition at line 104 of file BMultipoleField.cpp.
References pairs.
| BMultipoleField & BMultipoleField::addField | ( | const BMultipoleField & | field | ) |
Add to field.
Definition at line 166 of file BMultipoleField.cpp.
References BMultipoleField(), itsOrder, pairs, and reserve().
Get field.
Reimplemented from EMField.
Definition at line 126 of file BMultipoleField.cpp.
References Point3D::getX(), Point3D::getY(), itsOrder, pairs, and X.
Referenced by Bfield().
Get field.
Reimplemented from EMField.
Definition at line 139 of file BMultipoleField.cpp.
References Bfield().
Get field.
Definition at line 183 of file EMField.cpp.
References Bfield(), Efield(), and X.
Referenced by Component::EBfield(), Component::EBfield(), and EBfield().
Get field.
Reimplemented in ConstEzField, and OscillatingField< ConstEzField >.
Definition at line 163 of file EMField.cpp.
References ZeroEfield.
Referenced by EBfield(), Component::Efield(), Component::Efield(), and Efield().
Get field.
Reimplemented in ConstEzField, and OscillatingField< ConstEzField >.
Definition at line 173 of file EMField.cpp.
|
inline |
Get component.
Definition at line 161 of file BMultipoleField.h.
References itsOrder, and pairs.
Referenced by RBend::getNormalComponent(), SBend::getNormalComponent(), and ThickTracker::visitMultipole().
|
inline |
Get component.
Definition at line 170 of file BMultipoleField.h.
References itsOrder, and pairs.
Referenced by RBend::getSkewComponent(), and SBend::getSkewComponent().
|
inline |
|
inline |
Get component.
Definition at line 187 of file BMultipoleField.h.
References pairs.
Referenced by Tracker::applyThinMultipole(), Tracker::buildMultipoleVectorPotential(), Tracker::buildMultipoleVectorPotential2D(), Tracker::buildSBendVectorPotential(), Tracker::buildSBendVectorPotential2D(), and BMultipoleField::Pair::Pair().
| BMultipoleField & BMultipoleField::operator= | ( | const BMultipoleField & | rhs | ) |
Definition at line 109 of file BMultipoleField.cpp.
References BMultipoleField(), itsOrder, and pairs.
|
inline |
Return order.
Definition at line 156 of file BMultipoleField.h.
References itsOrder.
Referenced by Tracker::applyThinMultipole(), Tracker::buildMultipoleVectorPotential(), Tracker::buildMultipoleVectorPotential2D(), Tracker::buildSBendVectorPotential(), and Tracker::buildSBendVectorPotential2D().
|
private |
Definition at line 187 of file BMultipoleField.cpp.
References itsOrder, and pairs.
Referenced by addField(), setNormalComponent(), setSkewComponent(), and subtractField().
|
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*=().
| void BMultipoleField::setNormalComponent | ( | int | n, |
| double | Bn ) |
Set component.
Definition at line 144 of file BMultipoleField.cpp.
References itsOrder, pairs, and reserve().
Referenced by BSingleMultipoleField< order >::operator BMultipoleField(), RBend::setNormalComponent(), SBend::setNormalComponent(), OpalMultipole::update(), OpalOctupole::update(), OpalQuadrupole::update(), OpalRBend::update(), OpalSBend::update(), and OpalSextupole::update().
| void BMultipoleField::setSkewComponent | ( | int | n, |
| double | Bn ) |
Set component.
Definition at line 155 of file BMultipoleField.cpp.
References a, itsOrder, pairs, and reserve().
Referenced by BSingleMultipoleField< order >::operator BMultipoleField(), RBend::setSkewComponent(), SBend::setSkewComponent(), OpalMultipole::update(), OpalOctupole::update(), OpalQuadrupole::update(), OpalRBend::update(), OpalSBend::update(), and OpalSextupole::update().
|
inline |
|
inline |
Get component.
Definition at line 191 of file BMultipoleField.h.
References pairs.
Referenced by Tracker::applyThinMultipole(), Tracker::buildMultipoleVectorPotential(), Tracker::buildMultipoleVectorPotential2D(), Tracker::buildSBendVectorPotential(), and Tracker::buildSBendVectorPotential2D().
| BMultipoleField & BMultipoleField::subtractField | ( | const BMultipoleField & | field | ) |
Subtract from field.
Definition at line 173 of file BMultipoleField.cpp.
References BMultipoleField(), itsOrder, pairs, and reserve().
|
private |
Definition at line 149 of file BMultipoleField.h.
Referenced by addField(), Bfield(), BMultipoleField(), BMultipoleField(), getNormalComponent(), getSkewComponent(), operator=(), order(), reserve(), scale(), setNormalComponent(), setSkewComponent(), and subtractField().
|
private |
Definition at line 146 of file BMultipoleField.h.
Referenced by addField(), Bfield(), BMultipoleField(), BMultipoleField(), getNormalComponent(), getSkewComponent(), normal(), normal(), operator=(), reserve(), scale(), setNormalComponent(), setSkewComponent(), skew(), skew(), subtractField(), and ~BMultipoleField().
|
staticinherited |
|
staticinherited |
|
staticinherited |