OPAL (Object Oriented Parallel Accelerator Library)
2.2.0
OPAL
|
#include <DumpFields.h>
Public Member Functions | |
DumpFields () | |
DumpFields (const std::string &name, DumpFields *parent) | |
virtual | ~DumpFields () |
virtual DumpFields * | clone (const std::string &name) |
virtual void | execute () |
![]() | |
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... | |
![]() | |
virtual | ~Object () |
void | copyAttributes (const Object &) |
Copy attributes from another object. More... | |
virtual Attribute * | findAttribute (const std::string &name) |
Find an attribute by name. More... | |
virtual const Attribute * | findAttribute (const std::string &name) const |
Find an attribute by name. More... | |
virtual Object * | makeTemplate (const std::string &, TokenStream &, Statement &) |
Macro handler function. More... | |
virtual Object * | makeInstance (const std::string &name, Statement &, const Parser *) |
Macro handler function. More... | |
virtual void | parse (Statement &) |
Parse the object. More... | |
virtual void | parseShortcut (Statement &) |
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 Object * | getBaseObject () const |
Return the object's base type object. More... | |
const std::string & | getOpalName () const |
Return object name. More... | |
Object * | getParent () 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 |
![]() | |
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 void | writeFields (Component *field) |
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 = NULL |
std::string | filename_m = "" |
Static Private Attributes | |
static std::unordered_set < DumpFields * > | dumpsSet_m |
static std::string | dumpfields_docstring |
Additional Inherited Members | |
![]() | |
std::vector< Attribute > | itsAttr |
The object attributes (see Attribute.hh). More... | |
![]() | |
Action (int size, const char *name, const char *help) | |
Constructor for exemplars. More... | |
Action (const std::string &name, Action *parent) | |
Constructor for cloning. More... | |
![]() | |
Object (int size, const char *name, const char *help) | |
Constructor for exemplars. More... | |
Object (const std::string &name, Object *parent) | |
Constructor for clones. More... | |
![]() | |
RCObject () | |
Default constructor. More... | |
RCObject (const RCObject &) | |
Copy constructor. More... | |
virtual | ~RCObject ()=0 |
RCObject & | operator= (const RCObject &right) |
![]() | |
bool | builtin |
Built-in flag. More... | |
bool | modified |
Dirty flag. More... | |
bool | flagged |
Object flag. More... | |
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 62 of file DumpFields.h.
DumpFields::DumpFields | ( | ) |
Constructor
Definition at line 44 of file DumpFields.cpp.
References Object::itsAttr, Attributes::makeReal(), Attributes::makeString(), Object::registerOwnership(), and AttributeHandler::STATEMENT.
Referenced by clone().
DumpFields::DumpFields | ( | const std::string & | name, |
DumpFields * | parent | ||
) |
Constructor
Definition at line 71 of file DumpFields.cpp.
|
virtual |
Destructor deletes grid_m and if in the dumps set, take it out
Definition at line 75 of file DumpFields.cpp.
References dumpsSet_m, and grid_m.
|
private |
|
privatevirtual |
Definition at line 101 of file DumpFields.cpp.
References checkInt(), filename_m, Attributes::getReal(), Attributes::getString(), grid_m, and Object::itsAttr.
Referenced by execute().
|
staticprivate |
Definition at line 133 of file DumpFields.cpp.
References fabs(), and floor().
Referenced by buildGrid().
|
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 80 of file DumpFields.cpp.
References interpolation::ThreeDGrid::clone(), DumpFields(), dumpsSet_m, filename_m, and grid_m.
Referenced by execute().
|
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 92 of file DumpFields.cpp.
References buildGrid(), clone(), and dumpsSet_m.
|
private |
|
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 126 of file DumpFields.cpp.
References dumpsSet_m.
Referenced by ParallelCyclotronTracker::execute().
|
privatevirtual |
Definition at line 145 of file DumpFields.cpp.
References Component::apply(), interpolation::ThreeDGrid::begin(), interpolation::ThreeDGrid::end(), endl(), filename_m, grid_m, and interpolation::Mesh::Iterator::toInteger().
|
staticprivate |
Definition at line 114 of file DumpFields.h.
|
staticprivate |
Definition at line 113 of file DumpFields.h.
Referenced by clone(), execute(), writeFields(), and ~DumpFields().
|
private |
Definition at line 111 of file DumpFields.h.
Referenced by buildGrid(), clone(), and writeFieldThis().
|
private |
Definition at line 110 of file DumpFields.h.
Referenced by buildGrid(), clone(), writeFieldThis(), and ~DumpFields().