OPAL (Object Oriented Parallel Accelerator Library)
2.2.0
OPAL
|
Interface for a single beam element. More...
#include <Component.h>
Public Member Functions | |
Component (const std::string &name) | |
Constructor with given name. More... | |
Component () | |
Component (const Component &right) | |
virtual | ~Component () |
virtual EMField & | getField ()=0 |
Return field. More... | |
virtual const EMField & | getField () const =0 |
Return field. More... | |
EVector | Efield (const Point3D &P) const |
Return the field in a point. More... | |
BVector | Bfield (const Point3D &P) const |
Return the field in a point. More... | |
EVector | Efield (const Point3D &P, double t) const |
Return the field in a point. More... | |
BVector | Bfield (const Point3D &P, double t) const |
Return the field in a point. More... | |
EBVectors | EBfield (const Point3D &P) const |
Return the field in a point. More... | |
EBVectors | EBfield (const Point3D &P, double t) const |
Return the field in a point. More... | |
virtual void | addKR (int i, double t, Vector_t &K) |
virtual void | addKT (int i, double t, Vector_t &K) |
virtual bool | apply (const size_t &i, const double &t, Vector_t &E, Vector_t &B) |
virtual bool | apply (const Vector_t &R, const Vector_t &P, const double &t, Vector_t &E, Vector_t &B) |
virtual bool | applyToReferenceParticle (const Vector_t &R, const Vector_t &P, const double &t, Vector_t &E, Vector_t &B) |
virtual bool | getPotential (const Vector_t &R, const double &t, Vector_t &A, double &phi) |
virtual double | getDesignEnergy () const |
virtual void | setDesignEnergy (const double &energy, bool changeable) |
virtual void | initialise (PartBunchBase< double, 3 > *bunch, double &startField, double &endField)=0 |
virtual void | finalise ()=0 |
virtual bool | bends () const =0 |
virtual void | goOnline (const double &kineticEnergy) |
virtual void | goOffline () |
virtual bool | Online () |
virtual void | getDimensions (double &zBegin, double &zEnd) const =0 |
virtual ElementBase::ElementType | getType () const |
Get element type std::string. More... | |
virtual void | setComponentType (std::string) |
virtual std::string | getComponentType () const |
virtual const ElementBase & | getDesign () const |
Return design element. More... | |
virtual void | trackBunch (PartBunchBase< double, 3 > *bunch, const PartData &, bool revBeam, bool revTrack) const |
Track particle bunch. More... | |
virtual void | trackMap (FVps< double, 6 > &map, const PartData &, bool revBeam, bool revTrack) const |
Track a map. More... | |
void | setExitFaceSlope (const double &) |
![]() | |
ElementBase (const std::string &name) | |
Constructor with given name. More... | |
ElementBase () | |
ElementBase (const ElementBase &) | |
virtual | ~ElementBase () |
virtual const std::string & | getName () const |
Get element name. More... | |
virtual void | setName (const std::string &name) |
Set element name. More... | |
std::string | getTypeString () const |
virtual BGeometryBase & | getGeometry ()=0 |
Get geometry. More... | |
virtual const BGeometryBase & | getGeometry () const =0 |
Get geometry. More... | |
virtual double | getArcLength () const |
Get arc length. More... | |
virtual double | getElementLength () const |
Get design length. More... | |
virtual void | setElementLength (double length) |
Set design length. More... | |
virtual void | getElementDimensions (double &begin, double &end) const |
virtual double | getOrigin () const |
Get origin position. More... | |
virtual double | getEntrance () const |
Get entrance position. More... | |
virtual double | getExit () const |
Get exit position. More... | |
virtual Euclid3D | getTransform (double fromS, double toS) const |
Get transform. More... | |
virtual Euclid3D | getTransform (double s) const |
Get transform. More... | |
virtual Euclid3D | getTotalTransform () const |
Get transform. More... | |
virtual Euclid3D | getEntranceFrame () const |
Get transform. More... | |
virtual Euclid3D | getExitFrame () const |
Get transform. More... | |
virtual Euclid3D | getEntrancePatch () const |
Get patch. More... | |
virtual Euclid3D | getExitPatch () const |
Get patch. More... | |
virtual double | getAttribute (const std::string &aKey) const |
Get attribute value. More... | |
virtual bool | hasAttribute (const std::string &aKey) const |
Test for existence of an attribute. More... | |
virtual void | removeAttribute (const std::string &aKey) |
Remove an existing attribute. More... | |
virtual void | setAttribute (const std::string &aKey, double val) |
Set value of an attribute. More... | |
virtual Channel * | getChannel (const std::string &aKey, bool create=false) |
Construct a read/write channel. More... | |
virtual const ConstChannel * | getConstChannel (const std::string &aKey) const |
Construct a read-only channel. More... | |
virtual ElementImage * | getImage () const |
Construct an image. More... | |
virtual void | accept (BeamlineVisitor &visitor) const =0 |
Apply visitor. More... | |
virtual ElementBase * | clone () const =0 |
Return clone. More... | |
virtual ElementBase * | copyStructure () |
Make a structural copy. More... | |
bool | isSharable () const |
Test if the element can be shared. More... | |
virtual void | makeSharable () |
Set sharable flag. More... | |
virtual ElementBase * | makeAlignWrapper () |
Allow misalignment. More... | |
virtual ElementBase * | makeFieldWrapper () |
Allow field errors. More... | |
virtual ElementBase * | makeWrappers () |
Allow errors. More... | |
virtual ElementBase * | removeAlignWrapper () |
Remove align wrapper. More... | |
virtual const ElementBase * | removeAlignWrapper () const |
Remove align wrapper. More... | |
virtual ElementBase * | removeFieldWrapper () |
Remove field wrapper. More... | |
virtual const ElementBase * | removeFieldWrapper () const |
Remove field wrapper. More... | |
virtual ElementBase * | removeWrappers () |
Return the design element. More... | |
virtual const ElementBase * | removeWrappers () const |
Return the design element. More... | |
bool | update (const AttributeSet &) |
Update element. More... | |
virtual void | setBoundaryGeometry (BoundaryGeometry *geo) |
virtual BoundaryGeometry * | getBoundaryGeometry () const |
return the attached boundary geometrt object if there is any More... | |
virtual bool | hasBoundaryGeometry () const |
virtual void | setWake (WakeFunction *wf) |
attach a wake field to the element More... | |
virtual WakeFunction * | getWake () const |
return the attached wake object if there is any More... | |
virtual bool | hasWake () const |
virtual void | setParticleMatterInteraction (ParticleMatterInteractionHandler *spys) |
virtual ParticleMatterInteractionHandler * | getParticleMatterInteraction () const |
virtual bool | hasParticleMatterInteraction () const |
ElemType | getElType () const |
returns element type as enumeration needed in the envelope tracker More... | |
void | setElType (ElemType elt) |
set the element type as enumeration needed in the envelope tracker More... | |
void | setCSTrafoGlobal2Local (const CoordinateSystemTrafo &ori) |
CoordinateSystemTrafo | getCSTrafoGlobal2Local () const |
void | releasePosition () |
void | fixPosition () |
bool | isPositioned () const |
virtual CoordinateSystemTrafo | getEdgeToBegin () const |
virtual CoordinateSystemTrafo | getEdgeToEnd () const |
void | setAperture (const ApertureType &type, const std::vector< double > &args) |
std::pair < ElementBase::ApertureType, std::vector< double > > | getAperture () const |
virtual bool | isInside (const Vector_t &r) const |
void | setMisalignment (double x, double y, double s) |
void | setMisalignment (const CoordinateSystemTrafo &cst) |
void | getMisalignment (double &x, double &y, double &s) const |
CoordinateSystemTrafo | getMisalignment () const |
void | setActionRange (const std::queue< std::pair< double, double > > &range) |
void | setCurrentSCoordinate (double s) |
void | setRotationAboutZ (double rotation) |
Set rotation about z axis in bend frame. More... | |
double | getRotationAboutZ () const |
void | setElementPosition (double elemedge) |
Access to ELEMEDGE attribute. More... | |
double | getElementPosition () const |
bool | isElementPositionSet () const |
![]() | |
int | addReference () const |
Increment reference count. More... | |
int | removeReference () const |
Decrement the reference count. More... | |
bool | isShared () const |
Test for sharing. More... | |
Protected Attributes | |
double | exit_face_slope_m |
PartBunchBase< double, 3 > * | RefPartBunch_m |
bool | online_m |
![]() | |
bool | shareFlag |
CoordinateSystemTrafo | csTrafoGlobal2Local_m |
CoordinateSystemTrafo | misalignment_m |
std::pair< ApertureType, std::vector< double > > | aperture_m |
double | elementEdge_m |
double | rotationZAxis_m |
Static Protected Attributes | |
static const std::vector< double > | defaultAperture_m |
Interface for a single beam element.
Definition at line 51 of file Component.h.
|
explicit |
Constructor with given name.
Definition at line 53 of file Component.cpp.
References defaultAperture_m, ElementBase::ELLIPTICAL, and ElementBase::setAperture().
Component::Component | ( | ) |
Definition at line 40 of file Component.cpp.
Component::Component | ( | const Component & | right | ) |
Definition at line 45 of file Component.cpp.
|
virtual |
Definition at line 63 of file Component.cpp.
|
inlinevirtual |
|
inlinevirtual |
Reimplemented in Cyclotron, MultipoleT, MultipoleTBase, Multipole, RFCavity, Ring, VariableRFCavityFringeField, VariableRFCavity, Monitor, TravelingWave, Corrector, Bend2D, SBend3D, BeamStripping, RBend3D, ParallelPlate, Degrader, CyclotronValley, ScalingFFAMagnet, Solenoid, VerticalFFAMagnet, PluginElement, FlexibleCollimator, Source, and SectorFieldMapComponent.
Definition at line 99 of file Component.cpp.
References ElementBase::getElementLength(), ElementBase::isInsideTransverse(), Attrib::Distribution::R, PartBunchBase< T, Dim >::R, and RefPartBunch_m.
Referenced by RingSection::getFieldValue(), DumpEMFields::writeFieldLine(), and DumpFields::writeFieldThis().
|
virtual |
Reimplemented in Cyclotron, Multipole, RFCavity, MultipoleT, Ring, MultipoleTBase, VariableRFCavityFringeField, VariableRFCavity, SBend3D, Bend2D, Corrector, TravelingWave, BeamStripping, RBend3D, ParallelPlate, ScalingFFAMagnet, CyclotronValley, Solenoid, VerticalFFAMagnet, and SectorFieldMapComponent.
Definition at line 110 of file Component.cpp.
References ElementBase::getElementLength(), ElementBase::isInsideTransverse(), and Attrib::Distribution::R.
|
virtual |
Reimplemented in RFCavity, Multipole, VariableRFCavityFringeField, VariableRFCavity, Bend2D, TravelingWave, Monitor, RBend3D, ParallelPlate, CyclotronValley, Degrader, Solenoid, PluginElement, and FlexibleCollimator.
Definition at line 121 of file Component.cpp.
References ElementBase::getElementLength(), ElementBase::isInsideTransverse(), and Attrib::Distribution::R.
|
pure virtual |
Implemented in Cyclotron, Offset, MultipoleT, Ring, RFCavity, MultipoleTBase, Multipole, VariableRFCavity, ScalingFFAMagnet, SBend3D, VerticalFFAMagnet, Corrector, Monitor, TravelingWave, BeamStripping, ParallelPlate, RBend3D, Degrader, CyclotronValley, BeamBeam, Solenoid, Separator, Patch, Drift, Lambertson, Diagnostic, Marker, RFQuadrupole, FlexibleCollimator, Source, PluginElement, SectorFieldMapComponent, and BendBase.
Return the field in a point.
Definition at line 211 of file Component.h.
References EMField::Bfield(), and getField().
Return the field in a point.
Definition at line 217 of file Component.h.
References EMField::Bfield(), and getField().
Return the field in a point.
Definition at line 220 of file Component.h.
References EMField::EBfield(), and getField().
Return the field in a point.
Definition at line 223 of file Component.h.
References EMField::EBfield(), and getField().
Return the field in a point.
Definition at line 208 of file Component.h.
References EMField::Efield(), and getField().
Return the field in a point.
Definition at line 214 of file Component.h.
References EMField::Efield(), and getField().
|
pure virtual |
Implemented in Cyclotron, Offset, MultipoleT, Ring, RFCavity, MultipoleTBase, Multipole, VariableRFCavity, ScalingFFAMagnet, Bend2D, SBend3D, Corrector, Monitor, VerticalFFAMagnet, TravelingWave, BeamStripping, ParallelPlate, RBend3D, Degrader, CyclotronValley, BeamBeam, Solenoid, Separator, Patch, Drift, Lambertson, Diagnostic, Marker, RFQuadrupole, FlexibleCollimator, Source, PluginElement, and SectorFieldMapComponent.
|
inlinevirtual |
Reimplemented in RFCavity.
Definition at line 170 of file Component.h.
|
virtual |
Return design element.
Reimplemented in RBendWrapper, SBendWrapper, CyclotronWrapper, CorrectorWrapper, and MultipoleWrapper.
Definition at line 67 of file Component.cpp.
|
inlinevirtual |
Reimplemented in RFCavity, and BendBase.
Definition at line 240 of file Component.h.
|
pure virtual |
Implemented in MultipoleTBase, RFCavity, Offset, Ring, Multipole, VariableRFCavity, Cyclotron, ScalingFFAMagnet, MultipoleT, SBend3D, Monitor, Corrector, VerticalFFAMagnet, Bend2D, TravelingWave, RBend3D, BeamStripping, Degrader, Solenoid, CyclotronValley, BeamBeam, Separator, Patch, Drift, Lambertson, Diagnostic, Marker, ParallelPlate, RFQuadrupole, FlexibleCollimator, Source, PluginElement, SectorFieldMapComponent, and CCollimator.
|
pure virtual |
Return field.
Implemented in VariableRFCavity, Offset, Ring, ScalingFFAMagnet, SBend3D, VerticalFFAMagnet, RBend, MultipoleT, SBend, MultipoleTBase, BeamBeamRep, CyclotronRep, CorrectorRep, CyclotronWrapper, RBendWrapper, SBendWrapper, CorrectorWrapper, MultipoleWrapper, SingleMultipole< order >, Corrector, Multipole, RBend3D, RBendRep, SBendRep, BeamStrippingRep, PatchRep, CCollimatorRep, CyclotronValleyRep, DegraderRep, DriftRep, FlexibleCollimatorRep, MonitorRep, ParallelPlateRep, RFCavityRep, SeparatorRep, SolenoidRep, SourceRep, TravelingWaveRep, MultipoleRep, ProbeRep, SeptumRep, StripperRep, MarkerRep, and SectorFieldMapComponent.
|
pure virtual |
Return field.
Implemented in VariableRFCavity, Offset, Ring, ScalingFFAMagnet, SBend3D, VerticalFFAMagnet, RBend, SBend, MultipoleT, MultipoleTBase, BeamBeamRep, CyclotronRep, CorrectorRep, CyclotronWrapper, RBendWrapper, SBendWrapper, CorrectorWrapper, MultipoleWrapper, SingleMultipole< order >, Corrector, Multipole, RBend3D, RBendRep, SBendRep, BeamStrippingRep, PatchRep, CCollimatorRep, CyclotronValleyRep, DegraderRep, DriftRep, FlexibleCollimatorRep, MonitorRep, ParallelPlateRep, RFCavityRep, SeparatorRep, SolenoidRep, SourceRep, TravelingWaveRep, MultipoleRep, ProbeRep, SeptumRep, StripperRep, MarkerRep, and SectorFieldMapComponent.
|
inlinevirtual |
Calculate the four-potential at some position relative to the component
R | position in the local coordinate system of the component |
t | time |
A | filled with the calculated magnetic vector potential |
phi | filled with the calculated electric potential Note that any existing values in A and phi may be overwritten by this method. |
Definition at line 135 of file Component.h.
|
virtual |
Get element type std::string.
Implements ElementBase.
Reimplemented in RFCavity, RBend, SBend, Multipole, Cyclotron, RBendWrapper, SBendWrapper, Bend2D, Monitor, Corrector, TravelingWave, RBend3D, CyclotronWrapper, BeamStripping, CorrectorWrapper, MultipoleWrapper, Degrader, Solenoid, BeamBeam, CyclotronValley, Separator, Patch, ParallelPlate, Drift, Lambertson, Diagnostic, Marker, RFQuadrupole, FlexibleCollimator, Source, Probe, CCollimator, Septum, and Stripper.
Definition at line 95 of file Component.cpp.
References ElementBase::ANY.
|
virtual |
Reimplemented in RFCavity, Monitor, TravelingWave, BeamStripping, RBend3D, Degrader, CyclotronValley, Solenoid, FlexibleCollimator, Source, and PluginElement.
Definition at line 87 of file Component.cpp.
References online_m.
|
virtual |
Reimplemented in RFCavity, Bend2D, Monitor, Corrector, TravelingWave, BeamStripping, RBend3D, Degrader, CyclotronValley, Solenoid, FlexibleCollimator, Source, and CCollimator.
Definition at line 83 of file Component.cpp.
References online_m.
Referenced by PluginElement::initialise().
|
pure virtual |
Implemented in Cyclotron, Offset, VariableRFCavityFringeField, MultipoleT, RFCavity, MultipoleTBase, Multipole, Ring, MultipoleTCurvedVarRadius, MultipoleTCurvedConstRadius, VariableRFCavity, MultipoleTStraight, Bend2D, ScalingFFAMagnet, SBend3D, Corrector, Monitor, TravelingWave, BeamStripping, VerticalFFAMagnet, RBend3D, ParallelPlate, Degrader, CyclotronValley, BeamBeam, Solenoid, Separator, Patch, Drift, Lambertson, Diagnostic, Marker, RFQuadrupole, FlexibleCollimator, Source, PluginElement, SectorFieldMapComponent, and Septum.
|
virtual |
Definition at line 91 of file Component.cpp.
References online_m.
|
inlinevirtual |
Reimplemented in RFCavity.
Definition at line 169 of file Component.h.
|
inlinevirtual |
Reimplemented in RFCavity, Corrector, and BendBase.
Definition at line 237 of file Component.h.
|
inline |
Definition at line 234 of file Component.h.
References exit_face_slope_m.
|
virtual |
Track particle bunch.
Definition at line 71 of file Component.cpp.
References ElementBase::getName().
Referenced by OrbitTracker::visitComponent(), and Tracker::visitComponent().
|
virtual |
Track a map.
Definition at line 78 of file Component.cpp.
References ElementBase::getName().
Referenced by LinearMapper::visitComponent(), TransportMapper::visitComponent(), and Mapper::visitComponent().
|
staticprotected |
Definition at line 196 of file Component.h.
Referenced by Component().
|
protected |
Definition at line 198 of file Component.h.
Referenced by setExitFaceSlope().
|
protected |
Definition at line 201 of file Component.h.
Referenced by Source::apply(), Monitor::apply(), Probe::doGoOffline(), PluginElement::finalise(), FlexibleCollimator::finalise(), BeamStripping::finalise(), Bend2D::finalise(), Multipole::finalise(), Ring::finalise(), Cyclotron::finalise(), PluginElement::goOffline(), Source::goOffline(), FlexibleCollimator::goOffline(), Solenoid::goOffline(), CyclotronValley::goOffline(), Degrader::goOffline(), RBend3D::goOffline(), BeamStripping::goOffline(), RFCavity::goOffline(), goOffline(), CCollimator::goOnline(), Source::goOnline(), FlexibleCollimator::goOnline(), Solenoid::goOnline(), CyclotronValley::goOnline(), Degrader::goOnline(), RBend3D::goOnline(), TravelingWave::goOnline(), Corrector::goOnline(), Monitor::goOnline(), Bend2D::goOnline(), RFCavity::goOnline(), goOnline(), Multipole::initialise(), Ring::initialise(), Cyclotron::initialise(), Online(), BeamStripping::~BeamStripping(), Degrader::~Degrader(), FlexibleCollimator::~FlexibleCollimator(), and PluginElement::~PluginElement().
|
protected |
Definition at line 200 of file Component.h.
Referenced by Solenoid::addKR(), TravelingWave::addKR(), RFCavity::addKR(), Multipole::addKR(), RBend::addKR(), Solenoid::addKT(), TravelingWave::addKT(), RFCavity::addKT(), Multipole::addKT(), RBend::addKT(), Source::apply(), FlexibleCollimator::apply(), VerticalFFAMagnet::apply(), Solenoid::apply(), ScalingFFAMagnet::apply(), CyclotronValley::apply(), Degrader::apply(), ParallelPlate::apply(), RBend3D::apply(), SBend3D::apply(), Bend2D::apply(), Corrector::apply(), TravelingWave::apply(), Monitor::apply(), VariableRFCavity::apply(), VariableRFCavityFringeField::apply(), apply(), RFCavity::apply(), Multipole::apply(), MultipoleTBase::apply(), MultipoleT::apply(), Cyclotron::apply(), Degrader::applyToReferenceParticle(), Monitor::applyToReferenceParticle(), Bend2D::calculateBendAngle(), Bend2D::calculateRefTrajectory(), VerticalFFAMagnet::finalise(), SBend3D::finalise(), ScalingFFAMagnet::finalise(), VariableRFCavity::finalise(), MultipoleTBase::finalise(), MultipoleT::finalise(), Offset::finalise(), RBend::findChordLength(), Bend2D::findIdealBendParameters(), Degrader::goOnline(), Corrector::goOnline(), PluginElement::initialise(), Source::initialise(), FlexibleCollimator::initialise(), RFQuadrupole::initialise(), Diagnostic::initialise(), Marker::initialise(), Drift::initialise(), Lambertson::initialise(), Patch::initialise(), Separator::initialise(), Solenoid::initialise(), BeamBeam::initialise(), CyclotronValley::initialise(), Degrader::initialise(), ParallelPlate::initialise(), RBend3D::initialise(), VerticalFFAMagnet::initialise(), BeamStripping::initialise(), TravelingWave::initialise(), Monitor::initialise(), Corrector::initialise(), SBend3D::initialise(), ScalingFFAMagnet::initialise(), MultipoleTStraight::initialise(), VariableRFCavity::initialise(), MultipoleTCurvedConstRadius::initialise(), MultipoleTCurvedVarRadius::initialise(), Multipole::initialise(), RFCavity::initialise(), MultipoleT::initialise(), Offset::initialise(), Cyclotron::initialise(), VariableRFCavity::initNull(), Multipole::isFocusing(), MultipoleT::MultipoleT(), MultipoleTBase::MultipoleTBase(), MultipoleTCurvedConstRadius::MultipoleTCurvedConstRadius(), MultipoleTCurvedVarRadius::MultipoleTCurvedVarRadius(), MultipoleTStraight::MultipoleTStraight(), CCollimator::print(), FlexibleCollimator::print(), SBend3D::SBend3D(), ScalingFFAMagnet::ScalingFFAMagnet(), Bend2D::setBendStrength(), Corrector::setDesignEnergy(), Ring::setRefPartBunch(), Bend2D::setupPusher(), RFCavity::trackOnAxisParticle(), RBend3D::trackRefParticleThrough(), Bend2D::treatAsDrift(), and VerticalFFAMagnet::VerticalFFAMagnet().