|
OPALX (Object Oriented Parallel Accelerator Library for Exascal) MINIorX
OPALX
|
#include <DumpFields.h>
Public Types | |
| enum | { FILE_NAME , X_START , DX , X_STEPS , Y_START , DY , Y_STEPS , Z_START , DZ , Z_STEPS , SIZE } |
| The common attributes of DumpFields. More... | |
Public Member Functions | |
| DumpFields () | |
| DumpFields (const std::string &name, DumpFields *parent) | |
| virtual | ~DumpFields () |
| virtual DumpFields * | clone (const std::string &name) |
| virtual void | execute () |
| void | print (std::ostream &os) const |
| virtual bool | canReplaceBy (Object *object) |
| Test if replacement is allowed. | |
| virtual const std::string | getCategory () const |
| Return the object category as a string. | |
| virtual bool | shouldTrace () const |
| Trace flag. | |
| virtual bool | shouldUpdate () const |
| Update flag. | |
| void | copyAttributes (const Object &) |
| Copy attributes from another object. | |
| virtual Attribute * | findAttribute (const std::string &name) |
| Find an attribute by name. | |
| virtual const Attribute * | findAttribute (const std::string &name) const |
| Find an attribute by name. | |
| virtual Object * | makeTemplate (const std::string &, TokenStream &, Statement &) |
| Macro handler function. | |
| virtual Object * | makeInstance (const std::string &name, Statement &, const Parser *) |
| Macro handler function. | |
| virtual void | parse (Statement &) |
| Parse the object. | |
| virtual void | parseShortcut (Statement &, bool eval=true) |
| Parser for single-attribute commands. | |
| virtual void | printValue (std::ostream &) const |
| virtual void | printHelp (std::ostream &) const |
| Print help. | |
| virtual void | replace (Object *oldObject, Object *newObject) |
| Replace references. | |
| virtual void | update () |
| Update this object. | |
| bool | isBuiltin () const |
| True, if [b]this[/b] is a built-in object. | |
| virtual bool | isShared () const |
| Shared flag. | |
| virtual void | setShared (bool) |
| Set/reset shared flag. | |
| void | setDirty (bool) |
| Set/reset the [b]modified[/b] flag. | |
| bool | isDirty () const |
| True, if the [b]modified[/b] flag is set. | |
| void | setFlag (bool) |
| Flag/unflag this object, e. g. to control output of objects for. | |
| bool | isFlagged () const |
| True, if [b]this[/b] is flagged by setFlag(true). | |
| const Object * | getBaseObject () const |
| Return the object's base type object. | |
| const std::string & | getOpalName () const |
| Return object name. | |
| Object * | getParent () const |
| Return parent pointer. | |
| bool | isTreeMember (const Object *subTree) const |
| Test for tree membership. | |
| void | setOpalName (const std::string &name) |
| Set object name. | |
| void | setParent (Object *) |
| Set parent object. | |
| void | clear () |
| Clear the occurrence counter. | |
| int | increment () |
| Increment and return the occurrence counter. | |
| int | occurrenceCount () |
| Return the occurrence counter. | |
| void | registerReference (Invalidator *a) |
| Register a reference to this object. | |
| void | unregisterReference (Invalidator *a) |
| Unegister a reference to this object. | |
| void | registerOwnership (const AttributeHandler::OwnerType &itsClass) const |
| int | addReference () const |
| Increment reference count. | |
| int | removeReference () const |
| Decrement the reference count. | |
Static Public Member Functions | |
| static void | writeFields (Component *field) |
Public Attributes | |
| std::vector< Attribute > | itsAttr |
| The object attributes. | |
Protected Attributes | |
| bool | builtin |
| Built-in flag. | |
| bool | modified |
| Dirty flag. | |
| bool | flagged |
| Object flag. | |
Private Member Functions | |
| virtual void | writeFieldThis (Component *field) |
| virtual void | buildGrid () |
| DumpFields (const DumpFields &dump) | |
| DumpFields & | operator= (const DumpFields &dump) |
Static Private Member Functions | |
| static void | checkInt (double value, std::string name, double tolerance=1e-9) |
Private Attributes | |
| interpolation::ThreeDGrid * | grid_m = nullptr |
| std::string | filename_m |
| Object * | itsParent |
| std::string | itsName |
| std::string | itsHelp |
| int | occurrence |
| double | timeStamp |
| std::set< Invalidator * > | references |
| bool | sharedFlag |
| int | refCount |
Static Private Attributes | |
| static std::unordered_set< DumpFields * > | dumpsSet_m |
DumpFields dumps the static magnetic field of a Ring in a user-defined grid
The idea is to print out the field map across a grid in space for debugging purposes. The problem is to manage the DumpFields object through three phases of program execution; initial construction, parsing and then actual field map writing (where we need to somehow let DumpFields know what the field maps are). So for each DumpFields object created, we store in a set. When the execute() method is called, DumpFields builds a grid using the parsed information.
When the ParallelCyclotronTracker is about to start tracking, it calls writeFields method which loops over the static set of DumpFields and writes each one. It is not the cleanest implementation, but I can't see a better way.
The DumpFields themselves operate by iterating over a ThreeDGrid object and looking up the field/writing it out on each grid point.
In order to dump time dependent fields, for example RF, see the DumpEMFields action.
Definition at line 54 of file DumpFields.h.
| anonymous enum |
The common attributes of DumpFields.
| Enumerator | |
|---|---|
| FILE_NAME | |
| X_START | |
| DX | |
| X_STEPS | |
| Y_START | |
| DY | |
| Y_STEPS | |
| Z_START | |
| DZ | |
| Z_STEPS | |
| SIZE | |
Definition at line 58 of file DumpFields.h.
| DumpFields::DumpFields | ( | ) |
Constructor
Definition at line 35 of file DumpFields.cpp.
References Action::Action(), DX, DY, DZ, FILE_NAME, Object::itsAttr, Attributes::makeReal(), Attributes::makeString(), Object::registerOwnership(), SIZE, AttributeHandler::STATEMENT, X_START, X_STEPS, Y_START, Y_STEPS, Z_START, and Z_STEPS.
Referenced by clone(), DumpFields(), DumpFields(), and operator=().
| DumpFields::DumpFields | ( | const std::string & | name, |
| DumpFields * | parent ) |
Constructor
Definition at line 74 of file DumpFields.cpp.
References Action::Action(), and DumpFields().
|
virtual |
Destructor deletes grid_m and if in the dumps set, take it out
Definition at line 78 of file DumpFields.cpp.
References dumpsSet_m, and grid_m.
|
private |
|
inlineinherited |
Increment reference count.
Definition at line 83 of file RCObject.h.
References refCount.
Referenced by Pointer< Object >::operator=(), Pointer< Object >::operator=(), and Pointer< Object >::unique().
|
privatevirtual |
Definition at line 104 of file DumpFields.cpp.
References checkInt(), DX, DY, DZ, FILE_NAME, filename_m, Attributes::getReal(), Attributes::getString(), grid_m, Object::itsAttr, X_START, X_STEPS, Y_START, Y_STEPS, Z_START, and Z_STEPS.
Referenced by execute().
|
virtualinherited |
Test if replacement is allowed.
Reimplemented from Object.
Definition at line 29 of file Action.cpp.
References Object::Object().
|
staticprivate |
Definition at line 136 of file DumpFields.cpp.
Referenced by buildGrid().
|
inherited |
|
virtual |
Make a clone (overloadable copy-constructor).
| name | not used If this is in the dumpsSet_m, so will the clone. Not sure how the itsAttr stuff works, so this may not get properly copied? |
Implements Object.
Definition at line 83 of file DumpFields.cpp.
References DumpFields(), dumpsSet_m, filename_m, and grid_m.
Referenced by execute().
|
inherited |
Copy attributes from another object.
Definition at line 54 of file Object.cpp.
References itsAttr, and Object().
Referenced by LineTemplate::makeInstance(), and SequenceTemplate::makeInstance().
|
virtual |
Builds the grid but does not write the field map
Builds a grid of points in x-y-z space using the ThreeDGrid algorithm. Checks that X_STEPS, Y_STEPS, Z_STEPS are integers or throws OpalException.
Reimplemented from Object.
Definition at line 95 of file DumpFields.cpp.
References buildGrid(), clone(), and dumpsSet_m.
|
virtualinherited |
Find an attribute by name.
Definition at line 64 of file Object.cpp.
References itsAttr.
Referenced by OpalElement::getParticleMatterInteraction(), OpalElement::getTypeName(), OpalElement::getWakeF(), Line::parse(), parse(), OpalElement::parse(), OpalParser::parseAssign(), SequenceParser::parsePosition(), and parseShortcut().
|
virtualinherited |
|
inherited |
Return the object's base type object.
Definition at line 301 of file Object.cpp.
References itsParent, and Object().
|
virtualinherited |
Return the object category as a string.
Implements Object.
Definition at line 34 of file Action.cpp.
|
inherited |
Return object name.
Definition at line 308 of file Object.cpp.
References itsName.
Referenced by Macro::clone(), OpalOffset::OpalLocalCartesianOffset::clone(), OpalData::create(), OpalData::define(), Sequence::findDriftLength(), ValueDefinition::getBool(), ValueDefinition::getBoolComponent(), ValueDefinition::getReal(), ValueDefinition::getRealComponent(), ValueDefinition::getString(), ValueDefinition::getStringComponent(), LineTemplate::makeInstance(), makeInstance(), SequenceTemplate::makeInstance(), parse(), SequenceParser::parsePosition(), parseShortcut(), Beam::print(), BoolConstant::print(), Line::print(), print(), OpalElement::print(), OpalFilter::print(), RealConstant::print(), RealVariable::print(), RealVector::print(), Sequence::print(), StringConstant::print(), BoundaryGeometry::printInfo(), FieldSolverCmd::printInfo(), registerOwnership(), OpalElement::registerOwnership(), Line::replace(), Sequence::replace(), Beam::update(), BoundaryGeometry::update(), OpalFilter::update(), OpalOffset::OpalGlobalCartesianOffset::update(), OpalOffset::OpalGlobalCylindricalOffset::update(), OpalOffset::OpalLocalCartesianOffset::update(), and OpalOffset::OpalLocalCylindricalOffset::update().
|
inherited |
Return parent pointer.
Definition at line 313 of file Object.cpp.
References itsParent, and Object().
Referenced by OpalData::erase(), print(), OpalElement::print(), registerOwnership(), and OpalElement::registerOwnership().
|
inherited |
Increment and return the occurrence counter.
Definition at line 344 of file Object.cpp.
References occurrence.
Referenced by Line::parse(), and Sequence::storeLine().
|
inherited |
True, if [b]this[/b] is a built-in object.
Definition at line 266 of file Object.cpp.
References builtin.
Referenced by OpalData::define(), and OpalData::getVariableNames().
|
inherited |
True, if the [b]modified[/b] flag is set.
Definition at line 287 of file Object.cpp.
References modified.
|
inherited |
True, if [b]this[/b] is flagged by setFlag(true).
Definition at line 297 of file Object.cpp.
References flagged.
|
virtualinherited |
Shared flag.
Definition at line 271 of file Object.cpp.
References sharedFlag.
Referenced by Sequence::print().
|
inherited |
Test for tree membership.
Definition at line 318 of file Object.cpp.
References Object().
Referenced by Selector::handleElement(), and OpalParser::parseAssign().
|
virtualinherited |
Macro handler function.
Reimplemented in LineTemplate, MacroCmd, and SequenceTemplate.
Definition at line 89 of file Object.cpp.
References getOpalName(), and Object().
Referenced by OpalParser::parseDefine(), and OpalParser::parseMacro().
|
virtualinherited |
Macro handler function.
Reimplemented in Line, LineTemplate, MacroCmd, Sequence, and SequenceTemplate.
Definition at line 82 of file Object.cpp.
References Object().
Referenced by OpalParser::parseMacro().
|
inherited |
|
private |
|
virtualinherited |
Parse the object.
Reimplemented in Call, Echo, Help, Line, OpalElement, PSystem, Sequence, System, Title, and Value.
Definition at line 95 of file Object.cpp.
References Statement::delimiter(), findAttribute(), getOpalName(), Expressions::parseDelimiter(), Expressions::parseRealConst(), and Expressions::parseString().
Referenced by Sequence::parse(), OpalParser::parseAction(), OpalParser::parseDefine(), and SequenceTemplate::parseTemplate().
|
virtualinherited |
Parser for single-attribute commands.
Definition at line 127 of file Object.cpp.
References Statement::delimiter(), findAttribute(), getOpalName(), Statement::mark(), and Statement::word().
Referenced by Call::parse(), Echo::parse(), Help::parse(), PSystem::parse(), System::parse(), Title::parse(), and Value::parse().
|
virtual |
Print the attributes of DumpFields to standard out
Reimplemented from Object.
Definition at line 204 of file DumpFields.cpp.
References DX, DY, DZ, filename_m, Attributes::getReal(), Object::itsAttr, X_START, X_STEPS, Y_START, Y_STEPS, Z_START, and Z_STEPS.
Referenced by operator<<().
|
virtualinherited |
Print help.
Definition at line 199 of file Object.cpp.
References gmsg, itsAttr, and itsHelp.
Referenced by Help::execute(), and main().
|
inlinevirtualinherited |
Reimplemented in BoolConstant, RealConstant, RealVariable, RealVector, and StringConstant.
Definition at line 280 of file Object.h.
References print().
|
inherited |
Definition at line 189 of file Object.cpp.
References AttributeHandler::addAttributeOwner(), end(), getOpalName(), getParent(), and itsAttr.
Referenced by Beam::Beam(), BoolConstant::BoolConstant(), BoundaryGeometry::BoundaryGeometry(), Call::Call(), Distribution::Distribution(), DumpEMFields::DumpEMFields(), DumpFields::DumpFields(), Echo::Echo(), Help::Help(), Line::Line(), OpalFilter::OpalFilter(), Option::Option(), PSystem::PSystem(), RealConstant::RealConstant(), RealVariable::RealVariable(), RealVector::RealVector(), Select::Select(), Sequence::Sequence(), StringConstant::StringConstant(), System::System(), Title::Title(), TrackCmd::TrackCmd(), TrackRun::TrackRun(), and Value::Value().
|
inherited |
Register a reference to this object.
Definition at line 180 of file Object.cpp.
References references.
|
inlineinherited |
Replace references.
Reimplemented in Line, and Sequence.
Definition at line 256 of file Object.cpp.
References Object().
|
inherited |
Set/reset the [b]modified[/b] flag.
Definition at line 281 of file Object.cpp.
References modified.
Referenced by OpalData::define(), OpalData::makeDirty(), and RealVariable::RealVariable().
|
inherited |
Flag/unflag this object, e. g. to control output of objects for.
Definition at line 292 of file Object.cpp.
References flagged.
|
inherited |
Set object name.
Definition at line 329 of file Object.cpp.
References itsName.
Referenced by Beam::update(), BoundaryGeometry::update(), and OpalFilter::update().
|
inherited |
Set parent object.
Definition at line 334 of file Object.cpp.
References itsParent, and Object().
Referenced by OpalData::erase().
|
virtualinherited |
Set/reset shared flag.
Reimplemented in Element.
Definition at line 276 of file Object.cpp.
References sharedFlag.
Referenced by OpalParser::parseDefine(), and Element::setShared().
|
virtualinherited |
|
virtualinherited |
|
inherited |
Unegister a reference to this object.
Definition at line 185 of file Object.cpp.
References references.
|
virtualinherited |
Update this object.
Reimplemented in Beam, BoundaryGeometry, Distribution, FieldSolverCmd, OpalCavity, OpalDrift, OpalElement, OpalFilter, OpalMarker, OpalMonitor, OpalMultipole, OpalMultipoleT, OpalOffset::OpalGlobalCartesianOffset, OpalOffset::OpalGlobalCylindricalOffset, OpalOffset::OpalLocalCartesianOffset, OpalOffset::OpalLocalCylindricalOffset, OpalProbe, OpalRingDefinition, OpalSolenoid, OpalSource, OpalTravelingWave, OpalVacuum, OpalVerticalFFAMagnet, Option, and Sequence.
Definition at line 261 of file Object.cpp.
|
static |
Write the fields for all defined DumpFields objects
| field | borrowed reference to the Component object that holds the field map; caller owns the memory. Iterates over the DumpFields in the dumpsSet_m and calls writeFieldThis on each DumpFields. This writes each field map in turn. Format is: <number of rows> <column 1> <units> <column 2> <units> <column 3> <units> <column 4> <units> <column 5> <units> <column 6> <units> 0 <field map data> |
Definition at line 129 of file DumpFields.cpp.
References dumpsSet_m.
|
privatevirtual |
Definition at line 148 of file DumpFields.cpp.
References Component::apply(), Util::combineFilePath(), end(), filename_m, OpalData::getAuxiliaryOutputDirectory(), OpalData::getInstance(), gmsg, and grid_m.
|
protectedinherited |
Built-in flag.
Definition at line 233 of file Object.h.
Referenced by Beam::Beam(), BoundaryGeometry::BoundaryGeometry(), isBuiltin(), Object(), Object(), OpalFilter::OpalFilter(), OpalMarker::OpalMarker(), RealConstant::RealConstant(), StringConstant::StringConstant(), and Table::~Table().
|
staticprivate |
Definition at line 125 of file DumpFields.h.
Referenced by clone(), execute(), writeFields(), and ~DumpFields().
|
private |
Definition at line 123 of file DumpFields.h.
Referenced by buildGrid(), clone(), print(), and writeFieldThis().
|
protectedinherited |
|
private |
Definition at line 121 of file DumpFields.h.
Referenced by buildGrid(), clone(), writeFieldThis(), and ~DumpFields().
|
inherited |
The object attributes.
Definition at line 216 of file Object.h.
Referenced by Beam::Beam(), BoolConstant::BoolConstant(), BoundaryGeometry::BoundaryGeometry(), BoundaryGeometry::BoundaryGeometry(), DumpEMFields::buildGrid(), DumpFields::buildGrid(), Call::Call(), copyAttributes(), Distribution::Distribution(), DumpEMFields::DumpEMFields(), DumpFields::DumpFields(), Echo::Echo(), Beam::execute(), Call::execute(), Echo::execute(), Help::execute(), Option::execute(), PSystem::execute(), Select::execute(), System::execute(), Title::execute(), TrackCmd::execute(), TrackRun::execute(), Value::execute(), FieldSolverCmd::FieldSolverCmd(), findAttribute(), findAttribute(), BoundaryGeometry::getA(), OpalElement::getApert(), BoundaryGeometry::getB(), BoolConstant::getBool(), FieldSolverCmd::getBoxIncr(), BoundaryGeometry::getC(), Beam::getCharge(), Beam::getCurrent(), FieldSolverCmd::getDomDec(), TrackCmd::getDT(), TrackCmd::getDTAU(), TrackCmd::getDTSCINIT(), BoundaryGeometry::getFilename(), Beam::getFrequency(), BoundaryGeometry::getL1(), BoundaryGeometry::getL2(), BoundaryGeometry::getLength(), Line::getLength(), OpalElement::getLength(), Sequence::getLength(), Beam::getMass(), TrackCmd::getMaxSteps(), Beam::getNumberOfParticles(), FieldSolverCmd::getNX(), FieldSolverCmd::getNY(), FieldSolverCmd::getNZ(), Beam::getParticleName(), RealConstant::getReal(), RealVariable::getReal(), RealVector::getRealComponent(), Sequence::getReference(), BoundaryGeometry::getS(), TrackCmd::getStepsPerTurn(), StringConstant::getString(), TrackCmd::getT0(), TrackCmd::getTimeIntegrator(), BoundaryGeometry::getTopology(), FieldSolverCmd::getType(), TrackCmd::getZStart(), TrackCmd::getZStop(), Help::Help(), BoundaryGeometry::initialize(), OpalFilter::initOpalFilter(), Line::Line(), Object(), Object(), OpalCavity::OpalCavity(), OpalDrift::OpalDrift(), OpalElement::OpalElement(), OpalFilter::OpalFilter(), OpalOffset::OpalGlobalCartesianOffset::OpalGlobalCartesianOffset(), OpalOffset::OpalGlobalCylindricalOffset::OpalGlobalCylindricalOffset(), OpalOffset::OpalLocalCartesianOffset::OpalLocalCartesianOffset(), OpalOffset::OpalLocalCylindricalOffset::OpalLocalCylindricalOffset(), OpalMultipole::OpalMultipole(), OpalMultipoleT::OpalMultipoleT(), OpalProbe::OpalProbe(), OpalRingDefinition::OpalRingDefinition(), OpalSolenoid::OpalSolenoid(), OpalTravelingWave::OpalTravelingWave(), OpalVacuum::OpalVacuum(), OpalVerticalFFAMagnet::OpalVerticalFFAMagnet(), Option::Option(), Option::Option(), Line::parse(), Sequence::parse(), DumpEMFields::parseCoordinateSystem(), Beam::print(), BoolConstant::print(), DumpEMFields::print(), DumpFields::print(), print(), OpalFilter::print(), RealConstant::print(), RealVariable::print(), RealVector::print(), Sequence::print(), StringConstant::print(), TrackRun::print(), printHelp(), BoundaryGeometry::printInfo(), FieldSolverCmd::printInfo(), BoolConstant::printValue(), RealConstant::printValue(), RealVariable::printValue(), RealVector::printValue(), StringConstant::printValue(), PSystem::PSystem(), RealConstant::RealConstant(), RealConstant::RealConstant(), RealVariable::RealVariable(), RealVariable::RealVariable(), RealVector::RealVector(), registerOwnership(), OpalElement::registerOwnership(), Select::Select(), Select::select(), Sequence::Sequence(), Distribution::setDistParametersFlatTop(), Distribution::setDistParametersMultiVariateGauss(), Distribution::setDistType(), FieldSolverCmd::setNX(), FieldSolverCmd::setNY(), FieldSolverCmd::setNZ(), TrackRun::setRunMethod(), Distribution::setSigmaP_m(), Distribution::setSigmaR_m(), TrackRun::setupBoundaryGeometry(), StringConstant::StringConstant(), StringConstant::StringConstant(), System::System(), Title::Title(), TrackCmd::TrackCmd(), TrackRun::TrackRun(), Beam::update(), FieldSolverCmd::update(), OpalCavity::update(), OpalDrift::update(), OpalElement::update(), OpalMonitor::update(), OpalMultipole::update(), OpalMultipoleT::update(), OpalOffset::OpalGlobalCartesianOffset::update(), OpalOffset::OpalGlobalCylindricalOffset::update(), OpalOffset::OpalLocalCartesianOffset::update(), OpalOffset::OpalLocalCylindricalOffset::update(), OpalProbe::update(), OpalRingDefinition::update(), OpalSolenoid::update(), OpalTravelingWave::update(), OpalVacuum::update(), OpalVerticalFFAMagnet::update(), Option::update(), OpalElement::updateUnknown(), Value::Value(), ValueDefinition::value(), and ValueDefinition::value().
|
privateinherited |
Definition at line 258 of file Object.h.
Referenced by Object(), Object(), and printHelp().
|
privateinherited |
Definition at line 255 of file Object.h.
Referenced by getOpalName(), Object(), Object(), and setOpalName().
|
privateinherited |
Definition at line 252 of file Object.h.
Referenced by getBaseObject(), getParent(), Object(), Object(), and setParent().
|
protectedinherited |
|
privateinherited |
Definition at line 261 of file Object.h.
Referenced by clear(), increment(), Object(), Object(), and occurrenceCount().
|
mutableprivateinherited |
Definition at line 76 of file RCObject.h.
Referenced by addReference(), isShared(), RCObject(), RCObject(), and removeReference().
|
privateinherited |
Definition at line 268 of file Object.h.
Referenced by registerReference(), unregisterReference(), and ~Object().
|
privateinherited |
Definition at line 271 of file Object.h.
Referenced by isShared(), Object(), Object(), and setShared().