OPALX (Object Oriented Parallel Accelerator Library for Exascal) MINIorX
OPALX
BoundaryGeometry Class Reference

#include <BoundaryGeometry.h>

Inheritance diagram for BoundaryGeometry:
Collaboration diagram for BoundaryGeometry:

Public Types

enum  DebugFlags {
  debug_isInside = 0x0001 , debug_fastIsInside = 0x0002 , debug_intersectRayBoundary = 0x0004 , debug_intersectLineSegmentBoundary = 0x0008 ,
  debug_intersectTinyLineSegmentBoundary = 0x0010 , debug_PartInside = 0x0020
}

Public Member Functions

 BoundaryGeometry ()
virtual ~BoundaryGeometry ()
virtual bool canReplaceBy (Object *object)
 Test if replacement is allowed.
virtual BoundaryGeometryclone (const std::string &name)
 Return a clone.
virtual void execute ()
 Execute the command.
virtual void update ()
 Update this object.
void updateElement (ElementBase *element)
void initialize ()
int partInside (const Vector_t< double, 3 > &r, const Vector_t< double, 3 > &v, const double dt, Vector_t< double, 3 > &intecoords, int &triId)
Inform & printInfo (Inform &os) const
void writeGeomToVtk (std::string fn)
std::string getFilename () const
Topology getTopology () const
double getA ()
double getB ()
double getC ()
double getS ()
double getLength ()
double getL1 ()
double getL2 ()
size_t getNumBFaces ()
Vector_t< double, 3 > gethr ()
Vector_t< int, 3 > getnr ()
Vector_t< double, 3 > getmincoords ()
Vector_t< double, 3 > getmaxcoords ()
bool getInsidePoint (Vector_t< double, 3 > &pt)
bool findInsidePoint (void)
int intersectRayBoundary (const Vector_t< double, 3 > &P, const Vector_t< double, 3 > &v, Vector_t< double, 3 > &I)
int fastIsInside (const Vector_t< double, 3 > &reference_pt, const Vector_t< double, 3 > &P)
void enableDebug (enum DebugFlags flags)
void disableDebug (enum DebugFlags flags)
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 AttributefindAttribute (const std::string &name)
 Find an attribute by name.
virtual const AttributefindAttribute (const std::string &name) const
 Find an attribute by name.
virtual ObjectmakeTemplate (const std::string &, TokenStream &, Statement &)
 Macro handler function.
virtual ObjectmakeInstance (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 print (std::ostream &) const
 Print the object.
virtual void printValue (std::ostream &) const
virtual void printHelp (std::ostream &) const
 Print help.
virtual void replace (Object *oldObject, Object *newObject)
 Replace references.
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 ObjectgetBaseObject () const
 Return the object's base type object.
const std::string & getOpalName () const
 Return object name.
ObjectgetParent () 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 BoundaryGeometryfind (const std::string &name)

Public Attributes

std::vector< AttributeitsAttr
 The object attributes.

Protected Attributes

bool builtin
 Built-in flag.
bool modified
 Dirty flag.
bool flagged
 Object flag.

Private Types

enum  INTERSECTION_TESTS { SEGMENT , RAY , LINE }
enum  {
  FGEOM , LENGTH , S , L1 ,
  L2 , A , B , C ,
  TOPO , ZSHIFT , XYZSCALE , XSCALE ,
  YSCALE , ZSCALE , INSIDEPOINT , SIZE
}

Private Member Functions

bool isInside (const Vector_t< double, 3 > &P)
int intersectTriangleVoxel (const int triangle_id, const int i, const int j, const int k)
int intersectTinyLineSegmentBoundary (const Vector_t< double, 3 > &, const Vector_t< double, 3 > &, Vector_t< double, 3 > &, int &)
int intersectLineSegmentBoundary (const Vector_t< double, 3 > &P0, const Vector_t< double, 3 > &P1, Vector_t< double, 3 > &intersection_pt, int &triangle_id)
 BoundaryGeometry (const BoundaryGeometry &)
void operator= (const BoundaryGeometry &)
 BoundaryGeometry (const std::string &name, BoundaryGeometry *parent)
const Vector_t< double, 3 > & getPoint (const int triangle_id, const int vertex_id)
int intersectLineTriangle (const enum INTERSECTION_TESTS kind, const Vector_t< double, 3 > &P0, const Vector_t< double, 3 > &P1, const int triangle_id, Vector_t< double, 3 > &I)
int mapVoxelIndices2ID (const int i, const int j, const int k)
Vector_t< double, 3 > mapIndices2Voxel (const int, const int, const int)
Vector_t< double, 3 > mapPoint2Voxel (const Vector_t< double, 3 > &)
void computeMeshVoxelization (void)

Private Attributes

std::string h5FileName_m
std::vector< Vector_t< double, 3 > > Points_m
std::vector< std::array< unsigned int, 4 > > Triangles_m
std::vector< Vector_t< double, 3 > > TriNormals_m
std::vector< double > TriAreas_m
Vector_t< double, 3 > minExtent_m
Vector_t< double, 3 > maxExtent_m
struct { 
Vector_t< double, 3 > minExtent
Vector_t< double, 3 > maxExtent
Vector_t< double, 3 > sizeOfVoxel
Vector_t< int, 3 > nr_m
std::unordered_map< int, std::unordered_set< int > > ids
voxelMesh_m
int debugFlags_m
bool haveInsidePoint_m
Vector_t< double, 3 > insidePoint_m
gsl_rng * randGen_m
IpplTimings::TimerRef Tinitialize_m
IpplTimings::TimerRef TisInside_m
IpplTimings::TimerRef TfastIsInside_m
IpplTimings::TimerRef TRayTrace_m
IpplTimings::TimerRef TPartInside_m
ObjectitsParent
std::string itsName
std::string itsHelp
int occurrence
double timeStamp
std::set< Invalidator * > references
bool sharedFlag
int refCount

Detailed Description

Definition at line 54 of file BoundaryGeometry.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
private
Enumerator
FGEOM 
LENGTH 
L1 
L2 
TOPO 
ZSHIFT 
XYZSCALE 
XSCALE 
YSCALE 
ZSCALE 
INSIDEPOINT 
SIZE 

Definition at line 266 of file BoundaryGeometry.h.

◆ DebugFlags

Enumerator
debug_isInside 
debug_fastIsInside 
debug_intersectRayBoundary 
debug_intersectLineSegmentBoundary 
debug_intersectTinyLineSegmentBoundary 
debug_PartInside 

Definition at line 176 of file BoundaryGeometry.h.

◆ INTERSECTION_TESTS

Enumerator
SEGMENT 
RAY 
LINE 

Definition at line 255 of file BoundaryGeometry.h.

Constructor & Destructor Documentation

◆ BoundaryGeometry() [1/3]

BoundaryGeometry::BoundaryGeometry ( )

Definition at line 950 of file BoundaryGeometry.cpp.

References A, B, BoundaryGeometry(), Object::builtin, C, clone(), OpalData::define(), Definition::Definition(), FGEOM, OpalData::getInstance(), Attributes::getString(), h5FileName_m, initialize(), INSIDEPOINT, Object::itsAttr, L1, L2, LENGTH, Attributes::makePredefinedString(), Attributes::makeReal(), Attributes::makeRealArray(), Attributes::makeString(), randGen_m, Object::registerOwnership(), S, SIZE, AttributeHandler::STATEMENT, TfastIsInside_m, Tinitialize_m, TisInside_m, TOPO, TPartInside_m, TRayTrace_m, update(), XSCALE, XYZSCALE, YSCALE, ZSCALE, and ZSHIFT.

Referenced by BoundaryGeometry(), BoundaryGeometry(), BoundaryGeometry(), clone(), find(), initialize(), and operator=().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ~BoundaryGeometry()

BoundaryGeometry::~BoundaryGeometry ( )
virtual

Definition at line 1037 of file BoundaryGeometry.cpp.

References randGen_m.

◆ BoundaryGeometry() [2/3]

BoundaryGeometry::BoundaryGeometry ( const BoundaryGeometry & )
private

References BoundaryGeometry().

Here is the call graph for this function:

◆ BoundaryGeometry() [3/3]

BoundaryGeometry::BoundaryGeometry ( const std::string & name,
BoundaryGeometry * parent )
private

Definition at line 1021 of file BoundaryGeometry.cpp.

References BoundaryGeometry(), Definition::Definition(), FGEOM, Attributes::getString(), h5FileName_m, initialize(), Object::itsAttr, randGen_m, TfastIsInside_m, Tinitialize_m, TisInside_m, TPartInside_m, and TRayTrace_m.

Here is the call graph for this function:

Member Function Documentation

◆ addReference()

int RCObject::addReference ( ) const
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().

Here is the caller graph for this function:

◆ canReplaceBy()

bool BoundaryGeometry::canReplaceBy ( Object * object)
virtual

Test if replacement is allowed.

Reimplemented from Object.

Definition at line 1041 of file BoundaryGeometry.cpp.

References Object::Object().

Here is the call graph for this function:

◆ clear()

void Object::clear ( )
inherited

Clear the occurrence counter.

Definition at line 339 of file Object.cpp.

References occurrence.

◆ clone()

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

Return a clone.

Implements Object.

Definition at line 1046 of file BoundaryGeometry.cpp.

References BoundaryGeometry().

Referenced by BoundaryGeometry(), and TrackRun::setupBoundaryGeometry().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ computeMeshVoxelization()

void BoundaryGeometry::computeMeshVoxelization ( void )
inlineprivate

Definition at line 1496 of file BoundaryGeometry.cpp.

References Util::combineFilePath(), Options::enableVTK, OpalData::getAuxiliaryOutputDirectory(), OpalData::getInstance(), getPoint(), gmsg, h5FileName_m, INSIDE, intersectTriangleVoxel(), mapPoint2VoxelIndices, mapVoxelIndices2ID(), Triangles_m, and voxelMesh_m.

Referenced by initialize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ copyAttributes()

void Object::copyAttributes ( const Object & source)
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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ disableDebug()

void BoundaryGeometry::disableDebug ( enum DebugFlags flags)
inline

Definition at line 189 of file BoundaryGeometry.h.

References debugFlags_m.

◆ enableDebug()

void BoundaryGeometry::enableDebug ( enum DebugFlags flags)
inline

Definition at line 185 of file BoundaryGeometry.h.

References debugFlags_m.

◆ execute()

void BoundaryGeometry::execute ( )
virtual

Execute the command.

Reimplemented from Object.

Definition at line 1055 of file BoundaryGeometry.cpp.

References TfastIsInside_m, Tinitialize_m, TisInside_m, TPartInside_m, TRayTrace_m, and update().

Here is the call graph for this function:

◆ fastIsInside()

int BoundaryGeometry::fastIsInside ( const Vector_t< double, 3 > & reference_pt,
const Vector_t< double, 3 > & P )

Definition at line 1365 of file BoundaryGeometry.cpp.

References debug_fastIsInside, debug_intersectTinyLineSegmentBoundary, debugFlags_m, gmsg, intersectTinyLineSegmentBoundary(), maxExtent_m, minExtent_m, TfastIsInside_m, and voxelMesh_m.

Referenced by findInsidePoint(), and isInside().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ find()

BoundaryGeometry * BoundaryGeometry::find ( const std::string & name)
static

Definition at line 1064 of file BoundaryGeometry.cpp.

References BoundaryGeometry(), OpalData::find(), and OpalData::getInstance().

Referenced by TrackRun::setupBoundaryGeometry().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ findAttribute() [1/2]

Attribute * Object::findAttribute ( const std::string & name)
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().

Here is the caller graph for this function:

◆ findAttribute() [2/2]

const Attribute * Object::findAttribute ( const std::string & name) const
virtualinherited

Find an attribute by name.

Definition at line 72 of file Object.cpp.

References itsAttr.

◆ findInsidePoint()

bool BoundaryGeometry::findInsidePoint ( void )

Definition at line 1308 of file BoundaryGeometry.cpp.

References B, fastIsInside(), gmsg, insidePoint_m, maxExtent_m, and minExtent_m.

Referenced by initialize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getA()

double BoundaryGeometry::getA ( )
inline

Definition at line 97 of file BoundaryGeometry.h.

References A, Attributes::getReal(), and Object::itsAttr.

Here is the call graph for this function:

◆ getB()

double BoundaryGeometry::getB ( )
inline

Definition at line 101 of file BoundaryGeometry.h.

References B, Attributes::getReal(), and Object::itsAttr.

Here is the call graph for this function:

◆ getBaseObject()

const Object * Object::getBaseObject ( ) const
inherited

Return the object's base type object.

Definition at line 301 of file Object.cpp.

References itsParent, and Object().

Here is the call graph for this function:

◆ getC()

double BoundaryGeometry::getC ( )
inline

Definition at line 105 of file BoundaryGeometry.h.

References C, Attributes::getReal(), and Object::itsAttr.

Here is the call graph for this function:

◆ getCategory()

const std::string Definition::getCategory ( ) const
virtualinherited

Return the object category as a string.

Implements Object.

Definition at line 29 of file Definition.cpp.

◆ getFilename()

std::string BoundaryGeometry::getFilename ( ) const
inline

Definition at line 84 of file BoundaryGeometry.h.

References FGEOM, Attributes::getString(), and Object::itsAttr.

Here is the call graph for this function:

◆ gethr()

Vector_t< double, 3 > BoundaryGeometry::gethr ( )
inline

Return the hr_m.

Definition at line 135 of file BoundaryGeometry.h.

References voxelMesh_m.

◆ getInsidePoint()

bool BoundaryGeometry::getInsidePoint ( Vector_t< double, 3 > & pt)
inline

Definition at line 158 of file BoundaryGeometry.h.

References haveInsidePoint_m, and insidePoint_m.

◆ getL1()

double BoundaryGeometry::getL1 ( )
inline

Definition at line 117 of file BoundaryGeometry.h.

References Attributes::getReal(), Object::itsAttr, and L1.

Here is the call graph for this function:

◆ getL2()

double BoundaryGeometry::getL2 ( )
inline

Definition at line 121 of file BoundaryGeometry.h.

References Attributes::getReal(), Object::itsAttr, and L2.

Here is the call graph for this function:

◆ getLength()

double BoundaryGeometry::getLength ( )
inline

Definition at line 113 of file BoundaryGeometry.h.

References Attributes::getReal(), Object::itsAttr, and LENGTH.

Here is the call graph for this function:

◆ getmaxcoords()

Vector_t< double, 3 > BoundaryGeometry::getmaxcoords ( )
inline

Return the maxcoords_m.

Definition at line 154 of file BoundaryGeometry.h.

References maxExtent_m.

◆ getmincoords()

Vector_t< double, 3 > BoundaryGeometry::getmincoords ( )
inline

Return the mincoords_m.

Definition at line 148 of file BoundaryGeometry.h.

References minExtent_m.

◆ getnr()

Vector_t< int, 3 > BoundaryGeometry::getnr ( )
inline

Return the nr_m.

Definition at line 141 of file BoundaryGeometry.h.

References voxelMesh_m.

◆ getNumBFaces()

size_t BoundaryGeometry::getNumBFaces ( )
inline

Return number of boundary faces.

Definition at line 128 of file BoundaryGeometry.h.

References Triangles_m.

◆ getOpalName()

◆ getParent()

Object * Object::getParent ( ) const
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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getPoint()

const Vector_t< double, 3 > & BoundaryGeometry::getPoint ( const int triangle_id,
const int vertex_id )
inlineprivate

Definition at line 250 of file BoundaryGeometry.h.

References Points_m, and Triangles_m.

Referenced by computeMeshVoxelization(), initialize(), intersectLineTriangle(), intersectTinyLineSegmentBoundary(), and intersectTriangleVoxel().

Here is the caller graph for this function:

◆ getS()

double BoundaryGeometry::getS ( )
inline

Definition at line 109 of file BoundaryGeometry.h.

References Attributes::getReal(), Object::itsAttr, and S.

Here is the call graph for this function:

◆ getTopology()

Topology BoundaryGeometry::getTopology ( ) const
inline

Definition at line 88 of file BoundaryGeometry.h.

References BOXCORNER, ELLIPTIC, Attributes::getString(), Object::itsAttr, RECTANGULAR, and TOPO.

Referenced by printInfo().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ increment()

int Object::increment ( )
inherited

Increment and return the occurrence counter.

Definition at line 344 of file Object.cpp.

References occurrence.

Referenced by Line::parse(), and Sequence::storeLine().

Here is the caller graph for this function:

◆ initialize()

void BoundaryGeometry::initialize ( )

Definition at line 1549 of file BoundaryGeometry.cpp.

References A, B, BoundaryGeometry(), C, computeMeshVoxelization(), debugFlags_m, dot(), findInsidePoint(), getPoint(), Attributes::getReal(), Attributes::getRealArray(), gmsg, h5FileName_m, haveInsidePoint_m, INSIDEPOINT, insidePoint_m, intersectLineTriangle(), isInside(), Object::itsAttr, maxExtent_m, minExtent_m, PointID, Points_m, randGen_m, SEGMENT, SQR, Tinitialize_m, TisInside_m, Triangles_m, TriAreas_m, TriNormals_m, voxelMesh_m, XSCALE, XYZSCALE, YSCALE, ZSCALE, and ZSHIFT.

Referenced by BoundaryGeometry(), and BoundaryGeometry().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ intersectLineSegmentBoundary()

int BoundaryGeometry::intersectLineSegmentBoundary ( const Vector_t< double, 3 > & P0,
const Vector_t< double, 3 > & P1,
Vector_t< double, 3 > & intersection_pt,
int & triangle_id )
private

Definition at line 2180 of file BoundaryGeometry.cpp.

References debug_intersectLineSegmentBoundary, debug_intersectTinyLineSegmentBoundary, debugFlags_m, gmsg, intersectTinyLineSegmentBoundary(), and mapPoint2VoxelIndices.

Referenced by intersectRayBoundary().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ intersectLineTriangle()

int BoundaryGeometry::intersectLineTriangle ( const enum INTERSECTION_TESTS kind,
const Vector_t< double, 3 > & P0,
const Vector_t< double, 3 > & P1,
const int triangle_id,
Vector_t< double, 3 > & I )
private

Definition at line 1128 of file BoundaryGeometry.cpp.

References cross(), dot(), cmp_ulp::eq_zero(), cmp_ulp::ge_zero(), getPoint(), cmp_ulp::gt(), cmp_ulp::le(), LINE, cmp_ulp::lt(), cmp_ulp::lt_zero(), RAY, and SEGMENT.

Referenced by initialize(), and intersectTinyLineSegmentBoundary().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ intersectRayBoundary()

int BoundaryGeometry::intersectRayBoundary ( const Vector_t< double, 3 > & P,
const Vector_t< double, 3 > & v,
Vector_t< double, 3 > & I )

Definition at line 1416 of file BoundaryGeometry.cpp.

References debug_intersectLineSegmentBoundary, debug_intersectRayBoundary, debugFlags_m, gmsg, intersectLineSegmentBoundary(), TRayTrace_m, and voxelMesh_m.

Here is the call graph for this function:

◆ intersectTinyLineSegmentBoundary()

int BoundaryGeometry::intersectTinyLineSegmentBoundary ( const Vector_t< double, 3 > & P,
const Vector_t< double, 3 > & Q,
Vector_t< double, 3 > & intersect_pt,
int & triangle_id )
private

Definition at line 2049 of file BoundaryGeometry.cpp.

References debug_intersectTinyLineSegmentBoundary, debugFlags_m, cmp_ulp::eq_zero(), getPoint(), gmsg, Voxel::intersect(), intersectLineTriangle(), LINE, mapIndices2Voxel(), mapPoint2VoxelIndices, mapVoxelIndices2ID(), Voxel::pts, and voxelMesh_m.

Referenced by fastIsInside(), intersectLineSegmentBoundary(), and partInside().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ intersectTriangleVoxel()

int BoundaryGeometry::intersectTriangleVoxel ( const int triangle_id,
const int i,
const int j,
const int k )
private

Definition at line 1075 of file BoundaryGeometry.cpp.

References getPoint(), Voxel::intersect(), and voxelMesh_m.

Referenced by computeMeshVoxelization().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ isBuiltin()

bool Object::isBuiltin ( ) const
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().

Here is the caller graph for this function:

◆ isDirty()

bool Object::isDirty ( ) const
inherited

True, if the [b]modified[/b] flag is set.

Definition at line 287 of file Object.cpp.

References modified.

◆ isFlagged()

bool Object::isFlagged ( ) const
inherited

True, if [b]this[/b] is flagged by setFlag(true).

Definition at line 297 of file Object.cpp.

References flagged.

◆ isInside()

bool BoundaryGeometry::isInside ( const Vector_t< double, 3 > & P)
private

Definition at line 1205 of file BoundaryGeometry.cpp.

References fastIsInside(), cmp_ulp::lt(), maxExtent_m, and minExtent_m.

Referenced by initialize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ isShared()

bool Object::isShared ( ) const
virtualinherited

Shared flag.

Definition at line 271 of file Object.cpp.

References sharedFlag.

Referenced by Sequence::print().

Here is the caller graph for this function:

◆ isTreeMember()

bool Object::isTreeMember ( const Object * subTree) const
inherited

Test for tree membership.

Definition at line 318 of file Object.cpp.

References Object().

Referenced by Selector::handleElement(), and OpalParser::parseAssign().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ makeInstance()

Object * Object::makeInstance ( const std::string & name,
Statement & ,
const Parser *  )
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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ makeTemplate()

Object * Object::makeTemplate ( const std::string & name,
TokenStream & ,
Statement &  )
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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mapIndices2Voxel()

Vector_t< double, 3 > BoundaryGeometry::mapIndices2Voxel ( const int i,
const int j,
const int k )
inlineprivate

Definition at line 1480 of file BoundaryGeometry.cpp.

References voxelMesh_m.

Referenced by intersectTinyLineSegmentBoundary(), and mapPoint2Voxel().

Here is the caller graph for this function:

◆ mapPoint2Voxel()

Vector_t< double, 3 > BoundaryGeometry::mapPoint2Voxel ( const Vector_t< double, 3 > & pt)
inlineprivate

Definition at line 1488 of file BoundaryGeometry.cpp.

References mapIndices2Voxel(), and voxelMesh_m.

Here is the call graph for this function:

◆ mapVoxelIndices2ID()

int BoundaryGeometry::mapVoxelIndices2ID ( const int i,
const int j,
const int k )
inlineprivate

Definition at line 1459 of file BoundaryGeometry.cpp.

References voxelMesh_m.

Referenced by computeMeshVoxelization(), and intersectTinyLineSegmentBoundary().

Here is the caller graph for this function:

◆ occurrenceCount()

int Object::occurrenceCount ( )
inherited

Return the occurrence counter.

Definition at line 349 of file Object.cpp.

References occurrence.

◆ operator=()

void BoundaryGeometry::operator= ( const BoundaryGeometry & )
private

References BoundaryGeometry().

Here is the call graph for this function:

◆ parse()

void Object::parse ( Statement & stat)
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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ parseShortcut()

void Object::parseShortcut ( Statement & stat,
bool eval = true )
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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ partInside()

int BoundaryGeometry::partInside ( const Vector_t< double, 3 > & r,
const Vector_t< double, 3 > & v,
const double dt,
Vector_t< double, 3 > & intersect_pt,
int & triangle_id )

Determine whether a particle with position

Parameters
r,momenta

param v , and time step

Parameters
dtwill hit the boundary.

return value: -1 no collison with boundary 0 particle will collide with boundary in next time step

Definition at line 2240 of file BoundaryGeometry.cpp.

References Physics::c, debug_intersectTinyLineSegmentBoundary, debug_PartInside, debugFlags_m, dot(), gmsg, intersectTinyLineSegmentBoundary(), and TPartInside_m.

Here is the call graph for this function:

◆ print()

void Object::print ( std::ostream & msg) const
virtualinherited

Print the object.

Reimplemented in Beam, BoolConstant, DumpEMFields, DumpFields, Line, OpalElement, OpalFilter, OpalMarker, OpalMultipole, OpalMultipoleT, OpalOffset::OpalGlobalCartesianOffset, OpalOffset::OpalGlobalCylindricalOffset, OpalOffset::OpalLocalCartesianOffset, OpalOffset::OpalLocalCylindricalOffset, OpalRingDefinition, RealConstant, RealVariable, RealVector, Sequence, and StringConstant.

Definition at line 159 of file Object.cpp.

References getOpalName(), getParent(), itsAttr, and Object().

Referenced by printValue().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ printHelp()

void Object::printHelp ( std::ostream & ) const
virtualinherited

Print help.

Definition at line 199 of file Object.cpp.

References gmsg, itsAttr, and itsHelp.

Referenced by Help::execute(), and main().

Here is the caller graph for this function:

◆ printInfo()

Inform & BoundaryGeometry::printInfo ( Inform & os) const

Definition at line 2324 of file BoundaryGeometry.cpp.

References A, B, BOXCORNER, C, FGEOM, Object::getOpalName(), Attributes::getReal(), Attributes::getString(), getTopology(), Object::itsAttr, L1, L2, LENGTH, S, TOPO, XSCALE, XYZSCALE, YSCALE, and ZSCALE.

Referenced by operator<<().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ printValue()

void Object::printValue ( std::ostream & os) const
inlinevirtualinherited

Reimplemented in BoolConstant, RealConstant, RealVariable, RealVector, and StringConstant.

Definition at line 280 of file Object.h.

References print().

Here is the call graph for this function:

◆ registerOwnership()

void Object::registerOwnership ( const AttributeHandler::OwnerType & itsClass) const
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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ registerReference()

void Object::registerReference ( Invalidator * a)
inherited

Register a reference to this object.

Definition at line 180 of file Object.cpp.

References references.

◆ removeReference()

int RCObject::removeReference ( ) const
inlineinherited

Decrement the reference count.

Definition at line 88 of file RCObject.h.

References refCount.

◆ replace()

void Object::replace ( Object * oldObject,
Object * newObject )
virtualinherited

Replace references.

Reimplemented in Line, and Sequence.

Definition at line 256 of file Object.cpp.

References Object().

Here is the call graph for this function:

◆ setDirty()

void Object::setDirty ( bool dirty)
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().

Here is the caller graph for this function:

◆ setFlag()

void Object::setFlag ( bool flag)
inherited

Flag/unflag this object, e. g. to control output of objects for.

Definition at line 292 of file Object.cpp.

References flagged.

◆ setOpalName()

void Object::setOpalName ( const std::string & name)
inherited

Set object name.

Definition at line 329 of file Object.cpp.

References itsName.

Referenced by Beam::update(), BoundaryGeometry::update(), and OpalFilter::update().

Here is the caller graph for this function:

◆ setParent()

void Object::setParent ( Object * parent)
inherited

Set parent object.

Definition at line 334 of file Object.cpp.

References itsParent, and Object().

Referenced by OpalData::erase().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setShared()

void Object::setShared ( bool flag)
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().

Here is the caller graph for this function:

◆ shouldTrace()

bool Definition::shouldTrace ( ) const
virtualinherited

Trace flag.

Implements Object.

Definition at line 34 of file Definition.cpp.

◆ shouldUpdate()

bool Definition::shouldUpdate ( ) const
virtualinherited

Update flag.

Implements Object.

Definition at line 39 of file Definition.cpp.

◆ unregisterReference()

void Object::unregisterReference ( Invalidator * a)
inherited

Unegister a reference to this object.

Definition at line 185 of file Object.cpp.

References references.

◆ update()

void BoundaryGeometry::update ( )
virtual

Update this object.

Reimplemented from Object.

Definition at line 1050 of file BoundaryGeometry.cpp.

References Object::getOpalName(), and Object::setOpalName().

Referenced by BoundaryGeometry(), and execute().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ updateElement()

void BoundaryGeometry::updateElement ( ElementBase * element)

Definition at line 1072 of file BoundaryGeometry.cpp.

◆ writeGeomToVtk()

void BoundaryGeometry::writeGeomToVtk ( std::string fn)

Definition at line 2292 of file BoundaryGeometry.cpp.

References PointID, Points_m, and Triangles_m.

Referenced by DataSink::writeGeomToVtk().

Here is the caller graph for this function:

Member Data Documentation

◆ builtin

◆ debugFlags_m

◆ flagged

bool Object::flagged
protectedinherited

Object flag.

Definition at line 242 of file Object.h.

Referenced by isFlagged(), Object(), Object(), and setFlag().

◆ h5FileName_m

std::string BoundaryGeometry::h5FileName_m
private

◆ haveInsidePoint_m

bool BoundaryGeometry::haveInsidePoint_m
private

Definition at line 233 of file BoundaryGeometry.h.

Referenced by getInsidePoint(), and initialize().

◆ insidePoint_m

Vector_t<double, 3> BoundaryGeometry::insidePoint_m
private

Definition at line 234 of file BoundaryGeometry.h.

Referenced by findInsidePoint(), getInsidePoint(), and initialize().

◆ itsAttr

std::vector<Attribute> Object::itsAttr
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().

◆ itsHelp

std::string Object::itsHelp
privateinherited

Definition at line 258 of file Object.h.

Referenced by Object(), Object(), and printHelp().

◆ itsName

std::string Object::itsName
privateinherited

Definition at line 255 of file Object.h.

Referenced by getOpalName(), Object(), Object(), and setOpalName().

◆ itsParent

Object* Object::itsParent
privateinherited

Definition at line 252 of file Object.h.

Referenced by getBaseObject(), getParent(), Object(), Object(), and setParent().

◆ maxExtent_m

Vector_t<double, 3> BoundaryGeometry::maxExtent_m
private

Definition at line 217 of file BoundaryGeometry.h.

Referenced by fastIsInside(), findInsidePoint(), getmaxcoords(), initialize(), and isInside().

◆ minExtent_m

Vector_t<double, 3> BoundaryGeometry::minExtent_m
private

Definition at line 216 of file BoundaryGeometry.h.

Referenced by fastIsInside(), findInsidePoint(), getmincoords(), initialize(), and isInside().

◆ modified

bool Object::modified
protectedinherited

Dirty flag.

Definition at line 238 of file Object.h.

Referenced by isDirty(), Object(), Object(), and setDirty().

◆ occurrence

int Object::occurrence
privateinherited

Definition at line 261 of file Object.h.

Referenced by clear(), increment(), Object(), Object(), and occurrenceCount().

◆ Points_m

std::vector<Vector_t<double, 3> > BoundaryGeometry::Points_m
private

Definition at line 208 of file BoundaryGeometry.h.

Referenced by getPoint(), initialize(), and writeGeomToVtk().

◆ randGen_m

gsl_rng* BoundaryGeometry::randGen_m
private

◆ refCount

int RCObject::refCount
mutableprivateinherited

Definition at line 76 of file RCObject.h.

Referenced by addReference(), isShared(), RCObject(), RCObject(), and removeReference().

◆ references

std::set<Invalidator *> Object::references
privateinherited

Definition at line 268 of file Object.h.

Referenced by registerReference(), unregisterReference(), and ~Object().

◆ sharedFlag

bool Object::sharedFlag
privateinherited

Definition at line 271 of file Object.h.

Referenced by isShared(), Object(), Object(), and setShared().

◆ TfastIsInside_m

IpplTimings::TimerRef BoundaryGeometry::TfastIsInside_m
private

Definition at line 240 of file BoundaryGeometry.h.

Referenced by BoundaryGeometry(), BoundaryGeometry(), execute(), and fastIsInside().

◆ timeStamp

double Object::timeStamp
privateinherited

Definition at line 264 of file Object.h.

◆ Tinitialize_m

IpplTimings::TimerRef BoundaryGeometry::Tinitialize_m
private

Definition at line 238 of file BoundaryGeometry.h.

Referenced by BoundaryGeometry(), BoundaryGeometry(), execute(), and initialize().

◆ TisInside_m

IpplTimings::TimerRef BoundaryGeometry::TisInside_m
private

Definition at line 239 of file BoundaryGeometry.h.

Referenced by BoundaryGeometry(), BoundaryGeometry(), execute(), and initialize().

◆ TPartInside_m

IpplTimings::TimerRef BoundaryGeometry::TPartInside_m
private

Definition at line 242 of file BoundaryGeometry.h.

Referenced by BoundaryGeometry(), BoundaryGeometry(), execute(), and partInside().

◆ TRayTrace_m

IpplTimings::TimerRef BoundaryGeometry::TRayTrace_m
private

◆ Triangles_m

std::vector<std::array<unsigned int, 4> > BoundaryGeometry::Triangles_m
private

◆ TriAreas_m

std::vector<double> BoundaryGeometry::TriAreas_m
private

Definition at line 214 of file BoundaryGeometry.h.

Referenced by initialize().

◆ TriNormals_m

std::vector<Vector_t<double, 3> > BoundaryGeometry::TriNormals_m
private

Definition at line 213 of file BoundaryGeometry.h.

Referenced by initialize().

◆ [struct]


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