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

#include <BoundaryGeometry.h>

Inheritance diagram for BoundaryGeometry:
Inheritance graph
Collaboration diagram for BoundaryGeometry:
Collaboration graph

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. More...
 
virtual BoundaryGeometryclone (const std::string &name)
 Return a clone. More...
 
virtual void execute ()
 Execute the command. More...
 
virtual void update ()
 Update this object. More...
 
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)
 Determine whether a particle with position. More...
 
InformprintInfo (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 ()
 Return number of boundary faces. More...
 
Vector_t< double, 3 > gethr ()
 Return the hr_m. More...
 
Vector_t< int, 3 > getnr ()
 Return the nr_m. More...
 
Vector_t< double, 3 > getmincoords ()
 Return the mincoords_m. More...
 
Vector_t< double, 3 > getmaxcoords ()
 Return the maxcoords_m. More...
 
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. More...
 
virtual bool shouldTrace () const
 Trace flag. More...
 
virtual bool shouldUpdate () const
 Update flag. More...
 
void copyAttributes (const Object &)
 Copy attributes from another object. 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 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...
 
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
 
int addReference () const
 Increment reference count. More...
 
int removeReference () const
 Decrement the reference count. More...
 

Static Public Member Functions

static BoundaryGeometryfind (const std::string &name)
 

Public Attributes

std::vector< AttributeitsAttr
 The object attributes. More...
 

Protected Attributes

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

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::~BoundaryGeometry ( )
virtual

Definition at line 1037 of file BoundaryGeometry.cpp.

References randGen_m.

◆ BoundaryGeometry() [2/3]

BoundaryGeometry::BoundaryGeometry ( const BoundaryGeometry )
private

◆ BoundaryGeometry() [3/3]

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

Member Function Documentation

◆ addReference()

int RCObject::addReference ( ) const
inlineinherited

Increment reference count.

Definition at line 83 of file RCObject.h.

References RCObject::refCount.

Referenced by Pointer< Object >::operator=(), and Pointer< Object >::unique().

◆ canReplaceBy()

bool BoundaryGeometry::canReplaceBy ( Object object)
virtual

Test if replacement is allowed.

Reimplemented from Object.

Definition at line 1041 of file BoundaryGeometry.cpp.

◆ clear()

void Object::clear ( )
inherited

Clear the occurrence counter.

Definition at line 339 of file Object.cpp.

References Object::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:

◆ computeMeshVoxelization()

void BoundaryGeometry::computeMeshVoxelization ( void  )
inlineprivate

◆ copyAttributes()

void Object::copyAttributes ( const Object source)
inherited

Copy attributes from another object.

Definition at line 54 of file Object.cpp.

References Object::itsAttr.

Referenced by SequenceTemplate::makeInstance(), and LineTemplate::makeInstance().

◆ 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 IpplTimings::getTimer(), 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 
)

◆ find()

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

Definition at line 1064 of file BoundaryGeometry.cpp.

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

Referenced by TrackRun::setupBoundaryGeometry().

Here is the call graph for this function:

◆ findAttribute() [1/2]

◆ 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 Object::itsAttr.

◆ findInsidePoint()

bool BoundaryGeometry::findInsidePoint ( void  )

Definition at line 1308 of file BoundaryGeometry.cpp.

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

Referenced by initialize().

Here is the call 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 Object::itsParent.

◆ 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 Object::itsParent.

Referenced by OpalData::erase(), Object::print(), OpalElement::print(), OpalElement::registerOwnership(), and Object::registerOwnership().

◆ getPoint()

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

◆ 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:

◆ increment()

int Object::increment ( )
inherited

Increment and return the occurrence counter.

Definition at line 344 of file Object.cpp.

References Object::occurrence.

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

◆ initialize()

◆ 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

◆ 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:

◆ intersectRayBoundary()

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

◆ 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

◆ 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:

◆ 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 Object::builtin.

Referenced by OpalData::define(), and OpalData::getVariableNames().

◆ isDirty()

bool Object::isDirty ( ) const
inherited

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

Definition at line 287 of file Object.cpp.

References Object::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 Object::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:

◆ isShared()

bool Object::isShared ( ) const
virtualinherited

Shared flag.

Definition at line 271 of file Object.cpp.

References Object::sharedFlag.

Referenced by Sequence::print().

◆ isTreeMember()

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

Test for tree membership.

Definition at line 318 of file Object.cpp.

References Object::itsParent.

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

◆ makeInstance()

Object * Object::makeInstance ( const std::string &  name,
Statement ,
const Parser  
)
virtualinherited

Macro handler function.

Reimplemented in SequenceTemplate, MacroCmd, and LineTemplate.

Definition at line 89 of file Object.cpp.

References Object::getOpalName().

Referenced by OpalParser::parseDefine(), and OpalParser::parseMacro().

Here is the call graph for this function:

◆ makeTemplate()

Object * Object::makeTemplate ( const std::string &  name,
TokenStream ,
Statement  
)
virtualinherited

Macro handler function.

Reimplemented in LineTemplate, Sequence, MacroCmd, SequenceTemplate, and Line.

Definition at line 82 of file Object.cpp.

Referenced by OpalParser::parseMacro().

◆ 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().

◆ 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().

◆ occurrenceCount()

int Object::occurrenceCount ( )
inherited

Return the occurrence counter.

Definition at line 349 of file Object.cpp.

References Object::occurrence.

◆ operator=()

void BoundaryGeometry::operator= ( const BoundaryGeometry )
private

◆ parse()

void Object::parse ( Statement stat)
virtualinherited

◆ 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(), Object::findAttribute(), Object::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:

◆ 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(), endl(), gmsg, intersectTinyLineSegmentBoundary(), IpplTimings::startTimer(), IpplTimings::stopTimer(), and TPartInside_m.

Here is the call graph for this function:

◆ print()

◆ printHelp()

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

Print help.

Definition at line 199 of file Object.cpp.

References endl(), gmsg, Object::itsAttr, Object::itsHelp, and ippl::max().

Referenced by Help::execute().

Here is the call graph for this function:

◆ printInfo()

Inform & BoundaryGeometry::printInfo ( Inform os) const

Definition at line 2324 of file BoundaryGeometry.cpp.

References A, B, BOXCORNER, C, endl(), 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:

◆ 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 Object::print().

Here is the call graph for this function:

◆ registerOwnership()

◆ registerReference()

void Object::registerReference ( Invalidator a)
inherited

Register a reference to this object.

Definition at line 180 of file Object.cpp.

References Object::references.

◆ removeReference()

int RCObject::removeReference ( ) const
inlineinherited

Decrement the reference count.

Definition at line 88 of file RCObject.h.

References RCObject::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.

◆ setDirty()

void Object::setDirty ( bool  dirty)
inherited

Set/reset the [b]modified[/b] flag.

Definition at line 281 of file Object.cpp.

References Object::modified.

Referenced by OpalData::define(), OpalData::makeDirty(), and RealVariable::RealVariable().

◆ 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 Object::flagged.

◆ setOpalName()

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

Set object name.

Definition at line 329 of file Object.cpp.

References Object::itsName.

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

◆ setParent()

void Object::setParent ( Object parent)
inherited

Set parent object.

Definition at line 334 of file Object.cpp.

References Object::itsParent.

Referenced by OpalData::erase().

◆ setShared()

void Object::setShared ( bool  flag)
virtualinherited

Set/reset shared flag.

Reimplemented in Element.

Definition at line 276 of file Object.cpp.

References Object::sharedFlag.

Referenced by OpalParser::parseDefine(), and Element::setShared().

◆ 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 Object::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:

◆ 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 endl(), PAssert, PointID, Points_m, and Triangles_m.

Referenced by DataSink::writeGeomToVtk().

Here is the call 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 Object::isFlagged(), Object::Object(), and Object::setFlag().

◆ h5FileName_m

std::string BoundaryGeometry::h5FileName_m
private

Definition at line 206 of file BoundaryGeometry.h.

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

◆ 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(), DumpEMFields::buildGrid(), DumpFields::buildGrid(), Call::Call(), FieldSolverCmd::constructBCHandler(), Object::copyAttributes(), Distribution::Distribution(), DumpEMFields::DumpEMFields(), DumpFields::DumpFields(), Echo::Echo(), Call::execute(), Echo::execute(), Help::execute(), Option::execute(), PSystem::execute(), Select::execute(), System::execute(), Title::execute(), Value::execute(), Beam::execute(), TrackCmd::execute(), TrackRun::execute(), FieldSolverCmd::FieldSolverCmd(), Object::findAttribute(), getA(), OpalElement::getApert(), getB(), BoolConstant::getBool(), FieldSolverCmd::getBoxIncr(), getC(), Beam::getCharge(), Beam::getCurrent(), FieldSolverCmd::getDomDec(), TrackCmd::getDT(), TrackCmd::getDTAU(), TrackCmd::getDTSCINIT(), getFilename(), Beam::getFrequency(), getL1(), getL2(), getLength(), OpalElement::getLength(), Line::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(), getS(), TrackCmd::getStepsPerTurn(), StringConstant::getString(), TrackCmd::getT0(), TrackCmd::getTimeIntegrator(), getTopology(), FieldSolverCmd::getType(), TrackCmd::getZStart(), TrackCmd::getZStop(), Help::Help(), initialize(), OpalFilter::initOpalFilter(), Line::Line(), 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(), Sequence::parse(), Line::parse(), DumpEMFields::parseCoordinateSystem(), TrackRun::print(), Object::print(), Sequence::print(), BoolConstant::print(), RealConstant::print(), RealVariable::print(), RealVector::print(), StringConstant::print(), DumpEMFields::print(), DumpFields::print(), Beam::print(), OpalFilter::print(), Object::printHelp(), printInfo(), FieldSolverCmd::printInfo(), BoolConstant::printValue(), RealConstant::printValue(), RealVariable::printValue(), RealVector::printValue(), StringConstant::printValue(), PSystem::PSystem(), RealConstant::RealConstant(), RealVariable::RealVariable(), RealVector::RealVector(), OpalElement::registerOwnership(), Object::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(), System::System(), Title::Title(), TrackCmd::TrackCmd(), TrackRun::TrackRun(), 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(), Beam::update(), FieldSolverCmd::update(), Option::update(), OpalElement::updateUnknown(), ValueDefinition::value(), and Value::Value().

◆ itsHelp

std::string Object::itsHelp
privateinherited

Definition at line 258 of file Object.h.

Referenced by Object::printHelp().

◆ itsName

std::string Object::itsName
privateinherited

Definition at line 255 of file Object.h.

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

◆ itsParent

Object* Object::itsParent
privateinherited

◆ 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 Object::isDirty(), Object::Object(), and Object::setDirty().

◆ occurrence

int Object::occurrence
privateinherited

Definition at line 261 of file Object.h.

Referenced by Object::clear(), Object::increment(), and Object::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

Definition at line 236 of file BoundaryGeometry.h.

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

◆ refCount

int RCObject::refCount
mutableprivateinherited

◆ references

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

◆ sharedFlag

bool Object::sharedFlag
privateinherited

Definition at line 271 of file Object.h.

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

◆ TfastIsInside_m

IpplTimings::TimerRef BoundaryGeometry::TfastIsInside_m
private

Definition at line 240 of file BoundaryGeometry.h.

Referenced by 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(), execute(), and initialize().

◆ TisInside_m

IpplTimings::TimerRef BoundaryGeometry::TisInside_m
private

Definition at line 239 of file BoundaryGeometry.h.

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

◆ TPartInside_m

IpplTimings::TimerRef BoundaryGeometry::TPartInside_m
private

Definition at line 242 of file BoundaryGeometry.h.

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

◆ TRayTrace_m

IpplTimings::TimerRef BoundaryGeometry::TRayTrace_m
private

Definition at line 241 of file BoundaryGeometry.h.

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

◆ 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().

◆ 


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