OPAL (Object Oriented Parallel Accelerator Library)
2.2.0
OPAL
|
#include <DumpEMFields.h>
Public Types | |
enum | CoordinateSystem { CYLINDRICAL, CARTESIAN } |
Public Member Functions | |
DumpEMFields () | |
virtual | ~DumpEMFields () |
virtual DumpEMFields * | 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 () |
void | parseCoordinateSystem () |
void | writeHeader (std::ofstream &fout) const |
void | writeFieldLine (Component *field, const Vector_t &point, const double &time, std::ofstream &fout) const |
DumpEMFields (const DumpEMFields &dump) | |
DumpEMFields & | operator= (const DumpEMFields &dump) |
Static Private Member Functions | |
static void | checkInt (double value, std::string name, double tolerance=1e-9) |
Private Attributes | |
interpolation::NDGrid * | grid_m |
std::string | filename_m |
CoordinateSystem | coordinates_m = CARTESIAN |
Static Private Attributes | |
static std::unordered_set < DumpEMFields * > | dumpsSet_m |
static std::string | dumpemfields_docstring |
static constexpr double | DEGREE = 180./M_PI |
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... | |
DumpEMFields dumps the dynamically changing fields of a Ring in a user- defined grid.
The idea is to print out the field map across a 4D grid in space-time for debugging purposes. The problem is to manage the DumpEMFields 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 DumpEMFields themselves operate by iterating over a NDGrid object and looking up the field/writing it out on each grid point.
Definition at line 61 of file DumpEMFields.h.
Enumerator | |
---|---|
CYLINDRICAL | |
CARTESIAN |
Definition at line 63 of file DumpEMFields.h.
DumpEMFields::DumpEMFields | ( | ) |
Constructor
Definition at line 46 of file DumpEMFields.cpp.
References Object::itsAttr, Attributes::makeReal(), and Attributes::makeString().
Referenced by clone().
|
virtual |
Destructor deletes grid_m and if in the dumps set, take it out
Definition at line 92 of file DumpEMFields.cpp.
References dumpsSet_m, and grid_m.
|
private |
|
privatevirtual |
Definition at line 139 of file DumpEMFields.cpp.
References checkInt(), coordinates_m, CYLINDRICAL, filename_m, Attributes::getReal(), Attributes::getString(), grid_m, Object::itsAttr, nr, and parseCoordinateSystem().
Referenced by execute().
|
staticprivate |
Definition at line 198 of file DumpEMFields.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 97 of file DumpEMFields.cpp.
References interpolation::NDGrid::clone(), coordinates_m, DumpEMFields(), 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 NDGrid algorithm. Checks that X_STEPS, Y_STEPS, Z_STEPS are integers or throws OpalException.
Reimplemented from Object.
Definition at line 130 of file DumpEMFields.cpp.
References buildGrid(), clone(), and dumpsSet_m.
|
private |
|
private |
Definition at line 110 of file DumpEMFields.cpp.
References CARTESIAN, coordinates_m, CYLINDRICAL, Attributes::getString(), and Object::itsAttr.
Referenced by buildGrid().
|
private |
Definition at line 240 of file DumpEMFields.cpp.
References Component::apply(), coordinates_m, cos(), CYLINDRICAL, DEGREE, and sin().
Referenced by writeFieldThis().
|
static |
Write the fields for all defined DumpEMFields objects
field | borrowed reference to the Component object that holds the field map; caller owns the memory. Iterates over the DumpEMFields in the dumpsSet_m and calls writeFieldThis on each DumpEMFields. 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 191 of file DumpEMFields.cpp.
References dumpsSet_m.
Referenced by ParallelCyclotronTracker::execute().
|
privatevirtual |
Definition at line 272 of file DumpEMFields.cpp.
References interpolation::NDGrid::begin(), interpolation::NDGrid::end(), filename_m, grid_m, writeFieldLine(), and writeHeader().
|
private |
Definition at line 211 of file DumpEMFields.cpp.
References coordinates_m, CYLINDRICAL, interpolation::NDGrid::end(), endl(), grid_m, and interpolation::Mesh::Iterator::toInteger().
Referenced by writeFieldThis().
|
private |
Definition at line 116 of file DumpEMFields.h.
Referenced by buildGrid(), clone(), parseCoordinateSystem(), writeFieldLine(), and writeHeader().
|
staticprivate |
Definition at line 121 of file DumpEMFields.h.
Referenced by writeFieldLine().
|
staticprivate |
Definition at line 119 of file DumpEMFields.h.
|
staticprivate |
Definition at line 118 of file DumpEMFields.h.
Referenced by clone(), execute(), writeFields(), and ~DumpEMFields().
|
private |
Definition at line 115 of file DumpEMFields.h.
Referenced by buildGrid(), clone(), and writeFieldThis().
|
private |
Definition at line 114 of file DumpEMFields.h.
Referenced by buildGrid(), clone(), writeFieldThis(), writeHeader(), and ~DumpEMFields().