|
OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
|
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.
The static components are defined by the equation By + i * Bx = sum (Bn + i * An) (x + i * y) ** (n - 1)
where the index n runs from 0 (dipole) to N-1 (2(N+1)-pole)
Definition at line 16 of file BMultipoleField.h.
| BMultipoleField::BMultipoleField | ( | ) |
Default constructor.
Definition at line 81 of file BMultipoleField.cpp.
| BMultipoleField::BMultipoleField | ( | const BMultipoleField & | rhs | ) |
Definition at line 83 of file BMultipoleField.cpp.
|
virtual |
Definition at line 92 of file BMultipoleField.cpp.
References pairs.
| BMultipoleField & BMultipoleField::addField | ( | const BMultipoleField & | field | ) |
Add to field.
Definition at line 149 of file BMultipoleField.cpp.
References itsOrder, pairs, and reserve().

Get field.
Reimplemented from EMField.
Definition at line 109 of file BMultipoleField.cpp.
References Point3D::getX(), Point3D::getY(), itsOrder, and pairs.
Referenced by Bfield().

Get field.
Reimplemented from EMField.
Definition at line 121 of file BMultipoleField.cpp.
References Bfield().

Get field.
Definition at line 127 of file EMField.cpp.
References EMField::Bfield(), and EMField::Efield().
Referenced by Component::EBfield(), Component::EBfield(), and EMField::EBfield().

Get field.
Definition at line 129 of file EMField.cpp.
References EMField::EBfield().

Get field.
Reimplemented in ConstEzField, and OscillatingField< ConstEzField >.
Definition at line 119 of file EMField.cpp.
References EMField::ZeroEfield.
Referenced by EMField::EBfield(), Component::Efield(), Component::Efield(), and EMField::Efield().
Get field.
Reimplemented in ConstEzField, and OscillatingField< ConstEzField >.
Definition at line 123 of file EMField.cpp.
References EMField::Efield().

|
inline |
Get component.
Get normal component.
Definition at line 141 of file BMultipoleField.h.
References BMultipoleField::Pair::B, itsOrder, and pairs.
Referenced by BendBase::apply(), BendBase::computeFieldHost(), and BendBase::getB().
|
inline |
Get component.
Get skew component.
Definition at line 152 of file BMultipoleField.h.
References BMultipoleField::Pair::A, itsOrder, and pairs.
Referenced by BendBase::apply(), and BendBase::computeFieldHost().
|
inline |
Get component.
Definition at line 160 of file BMultipoleField.h.
References BMultipoleField::Pair::B, and pairs.
|
inline |
Get component.
Definition at line 164 of file BMultipoleField.h.
References BMultipoleField::Pair::B, and pairs.
Referenced by BMultipoleField::Pair::Pair().
| BMultipoleField & BMultipoleField::operator= | ( | const BMultipoleField & | rhs | ) |
Definition at line 94 of file BMultipoleField.cpp.
|
inline |
Return order.
Return the order of the multipole field.
Definition at line 136 of file BMultipoleField.h.
References itsOrder.
Referenced by BendBase::apply(), and BendBase::computeFieldHost().
|
private |
Definition at line 169 of file BMultipoleField.cpp.
References itsOrder, and pairs.
Referenced by addField(), setNormalComponent(), setSkewComponent(), and subtractField().
|
virtual |
Scale the field.
Implements EMField.
Definition at line 163 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 123 of file BMultipoleField.cpp.
References BMultipoleField::Pair::B, itsOrder, pairs, and reserve().
Referenced by BendBase::setB(), OpalMultipole::update(), OpalQuadrupole::update(), OpalRBend::update(), and OpalSBend::update().

| void BMultipoleField::setSkewComponent | ( | int | n, |
| double | Bn | ||
| ) |
Set component.
Definition at line 138 of file BMultipoleField.cpp.
References BMultipoleField::Pair::A, itsOrder, pairs, and reserve().
Referenced by OpalMultipole::update(), OpalQuadrupole::update(), OpalRBend::update(), and OpalSBend::update().

|
inline |
Get component.
Definition at line 162 of file BMultipoleField.h.
References BMultipoleField::Pair::A, and pairs.
|
inline |
Get component.
Definition at line 166 of file BMultipoleField.h.
References BMultipoleField::Pair::A, and pairs.
| BMultipoleField & BMultipoleField::subtractField | ( | const BMultipoleField & | field | ) |
Subtract from field.
Definition at line 156 of file BMultipoleField.cpp.
References itsOrder, pairs, and reserve().

|
private |
Definition at line 127 of file BMultipoleField.h.
Referenced by addField(), Bfield(), BMultipoleField(), getNormalComponent(), getSkewComponent(), operator=(), order(), reserve(), scale(), setNormalComponent(), setSkewComponent(), and subtractField().
|
private |
Definition at line 123 of file BMultipoleField.h.
Referenced by addField(), Bfield(), BMultipoleField(), getNormalComponent(), getSkewComponent(), normal(), normal(), operator=(), reserve(), scale(), setNormalComponent(), setSkewComponent(), skew(), skew(), subtractField(), and ~BMultipoleField().
|
staticinherited |
The constant representing a zero magnetic field.
Definition at line 220 of file EMField.h.
Referenced by EMField::Bfield().
|
staticinherited |
|
staticinherited |
The constant representing a zero electric field.
Definition at line 217 of file EMField.h.
Referenced by EMField::Efield().