OPAL (Object Oriented Parallel Accelerator Library) 2022.1
OPAL
Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
TrackRun Class Reference

#include <TrackRun.h>

Inheritance diagram for TrackRun:
Inheritance graph
[legend]
Collaboration diagram for TrackRun:
Collaboration graph
[legend]

Public Member Functions

 TrackRun ()
 Exemplar constructor. More...
 
virtual ~TrackRun ()
 
virtual TrackRunclone (const std::string &name)
 Make clone. More...
 
virtual void execute ()
 Execute the command. More...
 
Informprint (Inform &os) const
 
- Public Member Functions inherited from Action
virtual ~Action ()
 
virtual bool canReplaceBy (Object *object)
 Test if replacement is allowed. More...
 
virtual const std::string getCategory () const
 Return the object category as a string. More...
 
virtual bool shouldTrace () const
 Trace flag. More...
 
virtual bool shouldUpdate () const
 Update flag. More...
 
- Public Member Functions inherited from Object
virtual ~Object ()
 
virtual bool canReplaceBy (Object *object)
 Test if replacement is allowed. More...
 
virtual Objectclone (const std::string &name)=0
 Return a clone. More...
 
void copyAttributes (const Object &)
 Copy attributes from another object. More...
 
virtual void execute ()
 Execute the command. More...
 
virtual AttributefindAttribute (const std::string &name)
 Find an attribute by name. More...
 
virtual const AttributefindAttribute (const std::string &name) const
 Find an attribute by name. More...
 
virtual const std::string getCategory () const =0
 Return the object category as a string. More...
 
virtual bool shouldTrace () const =0
 Trace flag. More...
 
virtual bool shouldUpdate () const =0
 Update flag. More...
 
virtual ObjectmakeTemplate (const std::string &, TokenStream &, Statement &)
 Macro handler function. More...
 
virtual ObjectmakeInstance (const std::string &name, Statement &, const Parser *)
 Macro handler function. More...
 
virtual void parse (Statement &)
 Parse the object. More...
 
virtual void parseShortcut (Statement &, bool eval=true)
 Parser for single-attribute commands. More...
 
virtual void print (std::ostream &) const
 Print the object. More...
 
virtual void printValue (std::ostream &) const
 
virtual void printHelp (std::ostream &) const
 Print help. More...
 
virtual void replace (Object *oldObject, Object *newObject)
 Replace references. More...
 
virtual void update ()
 Update this object. More...
 
bool isBuiltin () const
 True, if [b]this[/b] is a built-in object. More...
 
virtual bool isShared () const
 Shared flag. More...
 
virtual void setShared (bool)
 Set/reset shared flag. More...
 
void setDirty (bool)
 Set/reset the [b]modified[/b] flag. More...
 
bool isDirty () const
 True, if the [b]modified[/b] flag is set. More...
 
void setFlag (bool)
 Flag/unflag this object, e. g. to control output of objects for. More...
 
bool isFlagged () const
 True, if [b]this[/b] is flagged by setFlag(true). More...
 
const ObjectgetBaseObject () const
 Return the object's base type object. More...
 
const std::string & getOpalName () const
 Return object name. More...
 
ObjectgetParent () const
 Return parent pointer. More...
 
bool isTreeMember (const Object *subTree) const
 Test for tree membership. More...
 
void setOpalName (const std::string &name)
 Set object name. More...
 
void setParent (Object *)
 Set parent object. More...
 
void clear ()
 Clear the occurrence counter. More...
 
int increment ()
 Increment and return the occurrence counter. More...
 
int occurrenceCount ()
 Return the occurrence counter. More...
 
void registerReference (Invalidator *a)
 Register a reference to this object. More...
 
void unregisterReference (Invalidator *a)
 Unegister a reference to this object. More...
 
void registerOwnership (const AttributeHandler::OwnerType &itsClass) const
 
- Public Member Functions inherited from RCObject
int addReference () const
 Increment reference count. More...
 
int removeReference () const
 Decrement the reference count. More...
 
bool isShared () const
 Test for sharing. More...
 

Static Public Member Functions

static std::shared_ptr< TrackergetTracker ()
 

Private Types

enum class  RunMethod : unsigned short { NONE , PARALLELT , CYCLOTRONT , THICK }
 

Private Member Functions

 TrackRun (const TrackRun &)
 
void operator= (const TrackRun &)
 
 TrackRun (const std::string &name, TrackRun *parent)
 
void setRunMethod ()
 
std::string getRunMethodName () const
 
void setupTTracker ()
 
void setupCyclotronTracker ()
 
void setupThickTracker ()
 
void setupFieldsolver ()
 
void initDataSink (const int &numBunch=1)
 
void setBoundaryGeometry ()
 
double setDistributionParallelT (Beam *beam)
 

Private Attributes

Distributiondist
 
std::vector< Distribution * > distrs_m
 
FieldSolverfs
 
DataSinkds
 
H5PartWrapperphaseSpaceSink_m
 
OpalDataopal
 
bool isFollowupTrack_m
 
RunMethod method_m
 
double macromass_m
 
double macrocharge_m
 

Static Private Attributes

static std::shared_ptr< TrackeritsTracker = nullptr
 
static const std::string defaultDistribution
 
static const boost::bimap< RunMethod, std::string > stringMethod_s
 

Additional Inherited Members

- Public Attributes inherited from Object
std::vector< AttributeitsAttr
 The object attributes. More...
 
- Protected Member Functions inherited from Action
 Action (int size, const char *name, const char *help)
 Constructor for exemplars. More...
 
 Action (const std::string &name, Action *parent)
 Constructor for cloning. More...
 
- Protected Member Functions inherited from Object
 Object (int size, const char *name, const char *help)
 Constructor for exemplars. More...
 
 Object (const std::string &name, Object *parent)
 Constructor for clones. More...
 
- Protected Member Functions inherited from RCObject
 RCObject ()
 Default constructor. More...
 
 RCObject (const RCObject &)
 Copy constructor. More...
 
virtual ~RCObject ()=0
 
RCObjectoperator= (const RCObject &right)
 
- Protected Attributes inherited from Object
bool builtin
 Built-in flag. More...
 
bool modified
 Dirty flag. More...
 
bool flagged
 Object flag. More...
 

Detailed Description

Definition at line 38 of file TrackRun.h.

Member Enumeration Documentation

◆ RunMethod

enum class TrackRun::RunMethod : unsigned short
strongprivate
Enumerator
NONE 
PARALLELT 
CYCLOTRONT 
THICK 

Definition at line 58 of file TrackRun.h.

Constructor & Destructor Documentation

◆ TrackRun() [1/3]

TrackRun::TrackRun ( )

◆ ~TrackRun()

TrackRun::~TrackRun ( )
virtual

Definition at line 160 of file TrackRun.cpp.

References phaseSpaceSink_m.

◆ TrackRun() [2/3]

TrackRun::TrackRun ( const TrackRun )
private

◆ TrackRun() [3/3]

TrackRun::TrackRun ( const std::string &  name,
TrackRun parent 
)
private

Definition at line 146 of file TrackRun.cpp.

References OpalData::getInstance(), and opal.

Here is the call graph for this function:

Member Function Documentation

◆ clone()

TrackRun * TrackRun::clone ( const std::string &  name)
virtual

Make clone.

Implements Object.

Definition at line 165 of file TrackRun.cpp.

References name, and TrackRun().

Here is the call graph for this function:

◆ execute()

void TrackRun::execute ( )
virtual

◆ getRunMethodName()

std::string TrackRun::getRunMethodName ( ) const
private

Definition at line 265 of file TrackRun.cpp.

References method_m, and stringMethod_s.

Referenced by print().

◆ getTracker()

std::shared_ptr< Tracker > TrackRun::getTracker ( )
static

Definition at line 737 of file TrackRun.cpp.

References itsTracker.

Referenced by PyOpal::Field::get_field_value().

◆ initDataSink()

void TrackRun::initDataSink ( const int &  numBunch = 1)
private

◆ operator=()

void TrackRun::operator= ( const TrackRun )
private

◆ print()

Inform & TrackRun::print ( Inform os) const

◆ setBoundaryGeometry()

void TrackRun::setBoundaryGeometry ( )
private

◆ setDistributionParallelT()

double TrackRun::setDistributionParallelT ( Beam beam)
private

◆ setRunMethod()

void TrackRun::setRunMethod ( )
private

Definition at line 253 of file TrackRun.cpp.

References Attributes::getString(), Object::itsAttr, method_m, and stringMethod_s.

Referenced by execute().

Here is the call graph for this function:

◆ setupCyclotronTracker()

void TrackRun::setupCyclotronTracker ( )
private

getFrequency() gets RF frequency [MHz], NOT isochronous revolution frequency of particle! getCurrent() gets beamcurrent [A]

Definition at line 454 of file TrackRun.cpp.

References abs(), Track::block, Track::bunch, PartBunchBase< T, Dim >::calcBeamParameters(), defaultDistribution, dist, Attrib::Legacy::Distribution::DISTRIBUTION, Distribution::doRestartOpalCycl(), ds, endl(), Physics::epsilon_0, BeamSequence::fetchLine(), Distribution::find(), Beam::find(), fs, H5PartWrapperForPC::getAzimuth(), Beam::getCharge(), Beam::getChargePerParticle(), Beam::getCurrent(), H5PartWrapperForPC::getElevation(), Beam::getFrequency(), OpalData::getInputBasename(), OpalData::getInstance(), Beam::getMass(), Beam::getMassPerParticle(), H5PartWrapperForPC::getMeanMomentum(), Beam::getNumberOfParticles(), Beam::getParticleName(), H5PartWrapperForPC::getPreviousH5Local(), Attributes::getReal(), H5PartWrapperForPC::getReferencePr(), H5PartWrapperForPC::getReferencePt(), H5PartWrapperForPC::getReferencePz(), H5PartWrapperForPC::getReferenceR(), H5PartWrapperForPC::getReferenceT(), H5PartWrapperForPC::getReferenceZ(), OpalData::getRestartFileName(), OpalData::getRestartStep(), Attributes::getString(), Attributes::getStringArray(), gmsg, initDataSink(), OpalData::inRestartRun(), isFollowupTrack_m, Object::itsAttr, itsTracker, Track::localTimeSteps, macrocharge_m, macromass_m, Units::MHz2Hz, opal, phaseSpaceSink_m, Physics::pi, PartBunchBase< T, Dim >::POrigin, Physics::q_e, Track::reference, REGULAR, ParallelCyclotronTracker::setBeGa(), setBoundaryGeometry(), PartBunchBase< T, Dim >::setCharge(), PartBunchBase< T, Dim >::setCouplingConstant(), PartBunchBase< T, Dim >::setDistribution(), PartBunchBase< T, Dim >::setdT(), OpalData::setInOPALCyclMode(), ParallelCyclotronTracker::setLastDumpedStep(), PartBunchBase< T, Dim >::setMass(), ParallelCyclotronTracker::setPhi(), ParallelCyclotronTracker::setPr(), ParallelCyclotronTracker::setPreviousH5Local(), ParallelCyclotronTracker::setPsi(), ParallelCyclotronTracker::setPt(), PartBunchBase< T, Dim >::setPType(), ParallelCyclotronTracker::setPz(), ParallelCyclotronTracker::setR(), PartBunchBase< T, Dim >::setStepsPerTurn(), ParallelCyclotronTracker::setTheta(), setupFieldsolver(), ParallelCyclotronTracker::setZ(), Track::timeIntegrator, and Track::use.

Referenced by execute().

◆ setupFieldsolver()

void TrackRun::setupFieldsolver ( )
private

◆ setupThickTracker()

void TrackRun::setupThickTracker ( )
private

◆ setupTTracker()

void TrackRun::setupTTracker ( )
private

Member Data Documentation

◆ defaultDistribution

const std::string TrackRun::defaultDistribution
staticprivate

Definition at line 106 of file TrackRun.h.

Referenced by setDistributionParallelT(), and setupCyclotronTracker().

◆ dist

Distribution* TrackRun::dist
private

◆ distrs_m

std::vector<Distribution*> TrackRun::distrs_m
private

Definition at line 94 of file TrackRun.h.

Referenced by setDistributionParallelT().

◆ ds

DataSink* TrackRun::ds
private

Definition at line 98 of file TrackRun.h.

Referenced by initDataSink(), setupCyclotronTracker(), setupThickTracker(), and setupTTracker().

◆ fs

FieldSolver* TrackRun::fs
private

◆ isFollowupTrack_m

bool TrackRun::isFollowupTrack_m
private

◆ itsTracker

std::shared_ptr< Tracker > TrackRun::itsTracker = nullptr
staticprivate

◆ macrocharge_m

double TrackRun::macrocharge_m
private

Definition at line 113 of file TrackRun.h.

Referenced by print(), setupCyclotronTracker(), setupThickTracker(), and setupTTracker().

◆ macromass_m

double TrackRun::macromass_m
private

Definition at line 112 of file TrackRun.h.

Referenced by print(), setupCyclotronTracker(), and setupTTracker().

◆ method_m

RunMethod TrackRun::method_m
private

Definition at line 108 of file TrackRun.h.

Referenced by execute(), getRunMethodName(), print(), and setRunMethod().

◆ opal

OpalData* TrackRun::opal
private

◆ phaseSpaceSink_m

H5PartWrapper* TrackRun::phaseSpaceSink_m
private

◆ stringMethod_s

const boost::bimap< TrackRun::RunMethod, std::string > TrackRun::stringMethod_s
staticprivate
Initial value:
=
boost::assign::list_of<const boost::bimap<TrackRun::RunMethod, std::string>::relation>
(RunMethod::PARALLELT, "PARALLEL-T")
(RunMethod::CYCLOTRONT, "CYCLOTRON-T")
(RunMethod::THICK, "THICK")

Definition at line 109 of file TrackRun.h.

Referenced by getRunMethodName(), and setRunMethod().


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