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

#include <OpalBeamline.h>

Collaboration diagram for OpalBeamline:
Collaboration graph
[legend]

Public Member Functions

 OpalBeamline ()
 
 OpalBeamline (const Vector_t &origin, const Quaternion &rotation)
 
 ~OpalBeamline ()
 
void activateElements ()
 
std::set< std::shared_ptr
< Component > > 
getElements (const Vector_t &x)
 
Vector_t transformTo (const Vector_t &r) const
 
Vector_t transformFrom (const Vector_t &r) const
 
Vector_t rotateTo (const Vector_t &r) const
 
Vector_t rotateFrom (const Vector_t &r) const
 
Vector_t transformToLocalCS (const std::shared_ptr< Component > &comp, const Vector_t &r) const
 
Vector_t transformFromLocalCS (const std::shared_ptr< Component > &comp, const Vector_t &r) const
 
Vector_t rotateToLocalCS (const std::shared_ptr< Component > &comp, const Vector_t &r) const
 
Vector_t rotateFromLocalCS (const std::shared_ptr< Component > &comp, const Vector_t &r) const
 
CoordinateSystemTrafo getCSTrafoLab2Local (const std::shared_ptr< Component > &comp) const
 
CoordinateSystemTrafo getCSTrafoLab2Local () const
 
CoordinateSystemTrafo getMisalignment (const std::shared_ptr< Component > &comp) const
 
double getStart (const Vector_t &) const
 
double getEnd (const Vector_t &) const
 
void switchElements (const double &, const double &, const double &kineticEnergy, const bool &nomonitors=false)
 
void switchElementsOff (const double &, ElementBase::ElementType eltype=ElementBase::ANY)
 
void switchElementsOff ()
 
ParticleMatterInteractionHandlergetParticleMatterInteractionHandler (const unsigned int &)
 
BoundaryGeometrygetBoundaryGeometry (const unsigned int &)
 
unsigned long getFieldAt (const unsigned int &, const Vector_t &, const long &, const double &, Vector_t &, Vector_t &)
 
unsigned long getFieldAt (const Vector_t &, const Vector_t &, const double &, Vector_t &, Vector_t &)
 
template<class T >
void visit (const T &, BeamlineVisitor &, PartBunchBase< double, 3 > *)
 
void prepareSections ()
 
void compute3DLattice ()
 
void save3DLattice ()
 
void save3DInput ()
 
void print (Inform &) const
 
FieldList getElementByType (ElementBase::ElementType)
 
void swap (OpalBeamline &rhs)
 
void merge (OpalBeamline &rhs)
 
bool containsSource ()
 
template<>
void visit (const Source &element, BeamlineVisitor &, PartBunchBase< double, 3 > *bunch)
 
template<>
void visit (const AlignWrapper &wrap, BeamlineVisitor &visitor, PartBunchBase< double, 3 > *)
 
template<>
void visit (const BeamBeam &element, BeamlineVisitor &, PartBunchBase< double, 3 > *)
 
template<>
void visit (const Diagnostic &element, BeamlineVisitor &, PartBunchBase< double, 3 > *)
 
template<>
void visit (const Lambertson &element, BeamlineVisitor &, PartBunchBase< double, 3 > *)
 
template<>
void visit (const Marker &element, BeamlineVisitor &, PartBunchBase< double, 3 > *)
 
template<>
void visit (const RFQuadrupole &element, BeamlineVisitor &, PartBunchBase< double, 3 > *)
 
template<>
void visit (const Separator &element, BeamlineVisitor &, PartBunchBase< double, 3 > *)
 
template<>
void visit (const Septum &element, BeamlineVisitor &, PartBunchBase< double, 3 > *)
 

Private Attributes

FieldList elements_m
 
bool prepared_m
 
bool containsSource_m
 
CoordinateSystemTrafo coordTransformationTo_m
 

Detailed Description

Definition at line 32 of file OpalBeamline.h.

Constructor & Destructor Documentation

OpalBeamline::OpalBeamline ( )

Definition at line 13 of file OpalBeamline.cpp.

OpalBeamline::OpalBeamline ( const Vector_t origin,
const Quaternion rotation 
)

Definition at line 20 of file OpalBeamline.cpp.

OpalBeamline::~OpalBeamline ( )

Definition at line 29 of file OpalBeamline.cpp.

References elements_m.

Member Function Documentation

void OpalBeamline::activateElements ( )

Definition at line 580 of file OpalBeamline.cpp.

References Physics::e, elements_m, BendBase::getDesignEnergy(), ElementBase::RBEND, and ElementBase::SBEND.

Referenced by ParallelSliceTracker::execute(), and ParallelTTracker::execute().

Here is the call graph for this function:

void OpalBeamline::compute3DLattice ( )
bool OpalBeamline::containsSource ( )
inline
BoundaryGeometry* OpalBeamline::getBoundaryGeometry ( const unsigned int &  )
CoordinateSystemTrafo OpalBeamline::getCSTrafoLab2Local ( const std::shared_ptr< Component > &  comp) const
inline
CoordinateSystemTrafo OpalBeamline::getCSTrafoLab2Local ( ) const
inline

Definition at line 214 of file OpalBeamline.h.

References coordTransformationTo_m.

FieldList OpalBeamline::getElementByType ( ElementBase::ElementType  type)
std::set< std::shared_ptr< Component > > OpalBeamline::getElements ( const Vector_t x)
double OpalBeamline::getEnd ( const Vector_t ) const
unsigned long OpalBeamline::getFieldAt ( const unsigned int &  index,
const Vector_t pos,
const long &  sindex,
const double &  t,
Vector_t E,
Vector_t B 
)
unsigned long OpalBeamline::getFieldAt ( const Vector_t position,
const Vector_t momentum,
const double &  t,
Vector_t Ef,
Vector_t Bf 
)
CoordinateSystemTrafo OpalBeamline::getMisalignment ( const std::shared_ptr< Component > &  comp) const
inline
ParticleMatterInteractionHandler* OpalBeamline::getParticleMatterInteractionHandler ( const unsigned int &  )
double OpalBeamline::getStart ( const Vector_t ) const
void OpalBeamline::merge ( OpalBeamline rhs)

Definition at line 168 of file OpalBeamline.cpp.

References containsSource_m, elements_m, and prepared_m.

void OpalBeamline::prepareSections ( )
void OpalBeamline::print ( Inform msg) const

Definition at line 159 of file OpalBeamline.cpp.

Vector_t OpalBeamline::rotateFrom ( const Vector_t r) const
inline

Definition at line 180 of file OpalBeamline.h.

References coordTransformationTo_m, and CoordinateSystemTrafo::rotateFrom().

Here is the call graph for this function:

Vector_t OpalBeamline::rotateFromLocalCS ( const std::shared_ptr< Component > &  comp,
const Vector_t r 
) const
inline

Definition at line 203 of file OpalBeamline.h.

Referenced by getFieldAt(), and OrbitThreader::integrate().

Vector_t OpalBeamline::rotateTo ( const Vector_t r) const
inline

Definition at line 175 of file OpalBeamline.h.

References coordTransformationTo_m, and CoordinateSystemTrafo::rotateTo().

Here is the call graph for this function:

Vector_t OpalBeamline::rotateToLocalCS ( const std::shared_ptr< Component > &  comp,
const Vector_t r 
) const
inline
void OpalBeamline::save3DInput ( )
void OpalBeamline::save3DLattice ( )
void OpalBeamline::swap ( OpalBeamline rhs)
void OpalBeamline::switchElements ( const double &  min,
const double &  max,
const double &  kineticEnergy,
const bool &  nomonitors = false 
)

Definition at line 95 of file OpalBeamline.cpp.

References ElementBase::DEGRADER, elements_m, min(), and ElementBase::MONITOR.

Referenced by ParallelSliceTracker::switchElements().

Here is the call graph for this function:

void OpalBeamline::switchElementsOff ( const double &  min,
ElementBase::ElementType  eltype = ElementBase::ANY 
)

Definition at line 129 of file OpalBeamline.cpp.

References ElementBase::ANY, and elements_m.

Referenced by ParallelSliceTracker::execute(), and ParallelTTracker::execute().

void OpalBeamline::switchElementsOff ( )

Definition at line 146 of file OpalBeamline.cpp.

References elements_m.

Vector_t OpalBeamline::transformFrom ( const Vector_t r) const
inline

Definition at line 170 of file OpalBeamline.h.

References coordTransformationTo_m, and CoordinateSystemTrafo::transformFrom().

Here is the call graph for this function:

Vector_t OpalBeamline::transformFromLocalCS ( const std::shared_ptr< Component > &  comp,
const Vector_t r 
) const
inline

Definition at line 191 of file OpalBeamline.h.

Vector_t OpalBeamline::transformTo ( const Vector_t r) const
inline

Definition at line 165 of file OpalBeamline.h.

References coordTransformationTo_m, and CoordinateSystemTrafo::transformTo().

Here is the call graph for this function:

Vector_t OpalBeamline::transformToLocalCS ( const std::shared_ptr< Component > &  comp,
const Vector_t r 
) const
inline
template<class T >
void OpalBeamline::visit ( const T element,
BeamlineVisitor ,
PartBunchBase< double, 3 > *  bunch 
)
inline

Definition at line 98 of file OpalBeamline.h.

References elements_m.

Referenced by ParallelSliceTracker::visitAlignWrapper(), ParallelTTracker::visitAlignWrapper(), ParallelSliceTracker::visitBeamBeam(), ParallelTTracker::visitBeamBeam(), ParallelTTracker::visitBeamStripping(), ThickTracker::visitBeamStripping(), ParallelTTracker::visitCCollimator(), ParallelSliceTracker::visitCorrector(), ParallelTTracker::visitCorrector(), ParallelTTracker::visitCyclotronValley(), ParallelSliceTracker::visitDegrader(), ParallelTTracker::visitDegrader(), ParallelSliceTracker::visitDiagnostic(), ParallelTTracker::visitDiagnostic(), ParallelSliceTracker::visitDrift(), ParallelTTracker::visitDrift(), ThickTracker::visitDrift(), ParallelTTracker::visitFlexibleCollimator(), ParallelSliceTracker::visitLambertson(), ParallelTTracker::visitLambertson(), ParallelSliceTracker::visitMarker(), ParallelTTracker::visitMarker(), ParallelSliceTracker::visitMonitor(), ParallelTTracker::visitMonitor(), ParallelSliceTracker::visitMultipole(), ParallelTTracker::visitMultipole(), ThickTracker::visitMultipole(), ParallelTTracker::visitMultipoleT(), ParallelTTracker::visitParallelPlate(), ParallelSliceTracker::visitProbe(), ParallelTTracker::visitProbe(), ParallelTTracker::visitRBend(), ParallelTTracker::visitRBend3D(), ParallelSliceTracker::visitRFCavity(), ParallelTTracker::visitRFCavity(), ParallelSliceTracker::visitRFQuadrupole(), ParallelTTracker::visitRFQuadrupole(), ParallelTTracker::visitSBend(), ThickTracker::visitSBend(), ParallelSliceTracker::visitSeparator(), ParallelTTracker::visitSeparator(), ParallelSliceTracker::visitSeptum(), ParallelTTracker::visitSeptum(), ParallelSliceTracker::visitSolenoid(), ParallelTTracker::visitSolenoid(), ParallelSliceTracker::visitSource(), ParallelTTracker::visitSource(), ParallelSliceTracker::visitTravelingWave(), and ParallelTTracker::visitTravelingWave().

template<>
void OpalBeamline::visit ( const Source element,
BeamlineVisitor ,
PartBunchBase< double, 3 > *  bunch 
)
inline

Definition at line 112 of file OpalBeamline.h.

template<>
void OpalBeamline::visit ( const AlignWrapper wrap,
BeamlineVisitor visitor,
PartBunchBase< double, 3 > *   
)
inline

Definition at line 126 of file OpalBeamline.h.

template<>
void OpalBeamline::visit ( const BeamBeam element,
BeamlineVisitor ,
PartBunchBase< double, 3 > *   
)
inline

Definition at line 131 of file OpalBeamline.h.

References endl(), and WARNMSG.

Here is the call graph for this function:

template<>
void OpalBeamline::visit ( const Diagnostic element,
BeamlineVisitor ,
PartBunchBase< double, 3 > *   
)
inline

Definition at line 136 of file OpalBeamline.h.

References endl(), and WARNMSG.

Here is the call graph for this function:

template<>
void OpalBeamline::visit ( const Lambertson element,
BeamlineVisitor ,
PartBunchBase< double, 3 > *   
)
inline

Definition at line 141 of file OpalBeamline.h.

References endl(), and WARNMSG.

Here is the call graph for this function:

template<>
void OpalBeamline::visit ( const Marker element,
BeamlineVisitor ,
PartBunchBase< double, 3 > *   
)
inline

Definition at line 146 of file OpalBeamline.h.

template<>
void OpalBeamline::visit ( const RFQuadrupole element,
BeamlineVisitor ,
PartBunchBase< double, 3 > *   
)
inline

Definition at line 150 of file OpalBeamline.h.

References endl(), and WARNMSG.

Here is the call graph for this function:

template<>
void OpalBeamline::visit ( const Separator element,
BeamlineVisitor ,
PartBunchBase< double, 3 > *   
)
inline

Definition at line 155 of file OpalBeamline.h.

References endl(), and WARNMSG.

Here is the call graph for this function:

template<>
void OpalBeamline::visit ( const Septum element,
BeamlineVisitor ,
PartBunchBase< double, 3 > *   
)
inline

Definition at line 160 of file OpalBeamline.h.

References endl(), and WARNMSG.

Here is the call graph for this function:

Member Data Documentation

bool OpalBeamline::containsSource_m
private

Definition at line 92 of file OpalBeamline.h.

Referenced by containsSource(), and merge().

CoordinateSystemTrafo OpalBeamline::coordTransformationTo_m
private
FieldList OpalBeamline::elements_m
private
bool OpalBeamline::prepared_m
private

Definition at line 91 of file OpalBeamline.h.

Referenced by merge(), prepareSections(), and swap().


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