OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
Loading...
Searching...
No Matches
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.
 
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
 

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_rngrandGen_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
 

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 237 of file BoundaryGeometry.h.

◆ DebugFlags

Enumerator
debug_isInside 
debug_fastIsInside 
debug_intersectRayBoundary 
debug_intersectLineSegmentBoundary 
debug_intersectTinyLineSegmentBoundary 
debug_PartInside 

Definition at line 150 of file BoundaryGeometry.h.

◆ INTERSECTION_TESTS

Enumerator
SEGMENT 
RAY 
LINE 

Definition at line 226 of file BoundaryGeometry.h.

Constructor & Destructor Documentation

◆ BoundaryGeometry() [1/3]

◆ ~BoundaryGeometry()

BoundaryGeometry::~BoundaryGeometry ( )
virtual

Definition at line 957 of file BoundaryGeometry.cpp.

References gsl_rng_free(), and randGen_m.

Here is the call graph for this function:

◆ BoundaryGeometry() [2/3]

BoundaryGeometry::BoundaryGeometry ( const BoundaryGeometry )
private

◆ BoundaryGeometry() [3/3]

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

Member Function Documentation

◆ canReplaceBy()

bool BoundaryGeometry::canReplaceBy ( Object object)
virtual

Test if replacement is allowed.

Reimplemented from Object.

Definition at line 959 of file BoundaryGeometry.cpp.

◆ clear()

void Object::clear ( )
inherited

Clear the occurrence counter.

Definition at line 285 of file Object.cpp.

References Object::occurrence.

◆ clone()

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

Return a clone.

Implements Object.

Definition at line 964 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 50 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 161 of file BoundaryGeometry.h.

References debugFlags_m.

◆ enableDebug()

void BoundaryGeometry::enableDebug ( enum DebugFlags  flags)
inline

Definition at line 159 of file BoundaryGeometry.h.

References debugFlags_m.

◆ execute()

void BoundaryGeometry::execute ( )
virtual

Execute the command.

Reimplemented from Object.

Definition at line 972 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 
)

◆ find()

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

Definition at line 981 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 63 of file Object.cpp.

References Object::itsAttr.

◆ findInsidePoint()

bool BoundaryGeometry::findInsidePoint ( void  )

Definition at line 1223 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:

◆ getA()

double BoundaryGeometry::getA ( )
inline

Definition at line 95 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 97 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 260 of file Object.cpp.

References Object::itsParent.

◆ getC()

double BoundaryGeometry::getC ( )
inline

Definition at line 99 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 26 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 117 of file BoundaryGeometry.h.

References voxelMesh_m.

◆ getInsidePoint()

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

Definition at line 132 of file BoundaryGeometry.h.

References haveInsidePoint_m, and insidePoint_m.

◆ getL1()

double BoundaryGeometry::getL1 ( )
inline

Definition at line 105 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 107 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 103 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 130 of file BoundaryGeometry.h.

References maxExtent_m.

◆ getmincoords()

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

Return the mincoords_m.

Definition at line 126 of file BoundaryGeometry.h.

References minExtent_m.

◆ getnr()

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

Return the nr_m.

Definition at line 121 of file BoundaryGeometry.h.

References voxelMesh_m.

◆ getNumBFaces()

size_t BoundaryGeometry::getNumBFaces ( )
inline

Return number of boundary faces.

Definition at line 112 of file BoundaryGeometry.h.

References Triangles_m.

◆ getOpalName()

◆ getParent()

Object * Object::getParent ( ) const
inherited

Return parent pointer.

Definition at line 269 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 101 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 86 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 287 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 1044 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 
)

Definition at line 1331 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

◆ intersectTriangleVoxel()

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

Definition at line 991 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 243 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 254 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 258 of file Object.cpp.

References Object::flagged.

◆ isInside()

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

Definition at line 1119 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 245 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 271 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 76 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 71 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 1395 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 1403 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 1374 of file BoundaryGeometry.cpp.

References voxelMesh_m.

Referenced by computeMeshVoxelization(), and intersectTinyLineSegmentBoundary().

◆ occurrenceCount()

int Object::occurrenceCount ( )
inherited

Return the occurrence counter.

Definition at line 289 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 113 of file Object.cpp.

Referenced by Call::parse(), Echo::parse(), Help::parse(), PSystem::parse(), System::parse(), Title::parse(), and Value::parse().

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

◆ printHelp()

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

Print help.

Definition at line 179 of file Object.cpp.

References gmsg, Object::itsAttr, and Object::itsHelp.

Referenced by Help::execute().

◆ printInfo()

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

Definition at line 2233 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:

◆ printValue()

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

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

Definition at line 270 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 165 of file Object.cpp.

References Object::references.

◆ replace()

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

Replace references.

Reimplemented in Line, and Sequence.

Definition at line 235 of file Object.cpp.

◆ setDirty()

void Object::setDirty ( bool  dirty)
inherited

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

Definition at line 249 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 256 of file Object.cpp.

References Object::flagged.

◆ setOpalName()

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

Set object name.

Definition at line 281 of file Object.cpp.

References Object::itsName.

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

◆ setParent()

void Object::setParent ( Object parent)
inherited

Set parent object.

Definition at line 283 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 247 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 28 of file Definition.cpp.

◆ shouldUpdate()

bool Definition::shouldUpdate ( ) const
virtualinherited

Update flag.

Implements Object.

Definition at line 30 of file Definition.cpp.

◆ unregisterReference()

void Object::unregisterReference ( Invalidator a)
inherited

Unegister a reference to this object.

Definition at line 167 of file Object.cpp.

References Object::references.

◆ update()

void BoundaryGeometry::update ( )
virtual

Update this object.

Reimplemented from Object.

Definition at line 968 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 989 of file BoundaryGeometry.cpp.

◆ writeGeomToVtk()

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

Definition at line 2201 of file BoundaryGeometry.cpp.

References PointID, Points_m, and Triangles_m.

Referenced by DataSink::writeGeomToVtk().

Member Data Documentation

◆ builtin

◆ debugFlags_m

◆ flagged

bool Object::flagged
protectedinherited

Object flag.

Definition at line 235 of file Object.h.

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

◆ h5FileName_m

std::string BoundaryGeometry::h5FileName_m
private

◆ haveInsidePoint_m

bool BoundaryGeometry::haveInsidePoint_m
private

Definition at line 204 of file BoundaryGeometry.h.

Referenced by getInsidePoint(), and initialize().

◆ insidePoint_m

Vector_t<double, 3> BoundaryGeometry::insidePoint_m
private

Definition at line 205 of file BoundaryGeometry.h.

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

◆ itsAttr

std::vector<Attribute> Object::itsAttr
inherited

The object attributes.

Definition at line 210 of file Object.h.

Referenced by Beam::Beam(), BinningCmd::BinningCmd(), BoolConstant::BoolConstant(), BoundaryGeometry(), BoundaryGeometry(), DumpEMFields::buildGrid(), Call::Call(), FieldSolverCmd::constructBCHandler(), Object::copyAttributes(), Distribution::Distribution(), BinningCmd::dumpBinsToFile(), DumpEMFields::DumpEMFields(), Echo::Echo(), EmissionSource::EmissionSource(), 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(), Object::findAttribute(), getA(), BinningCmd::getAdaptiveBinning(), OpalElement::getApert(), getB(), BinningCmd::getBinningAlpha(), BinningCmd::getBinningBeta(), FieldSolverCmd::getBinsName(), BoolConstant::getBool(), FieldSolverCmd::getBoxIncr(), Beam::getBunchCharge(), getC(), Beam::getCharge(), Beam::getCurrent(), Beam::getDaughterBeamName(), BinningCmd::getDesiredWidth(), EmissionSource::getDistributionName(), FieldSolverCmd::getDomDec(), TrackCmd::getDT(), TrackCmd::getDTAU(), TrackCmd::getDTSCINIT(), BinningCmd::getDumpBinsFileName(), BinningCmd::getDumpBinsFrequency(), EmissionSource::getEmissionModel(), Beam::getEmissionSourceListName(), Distribution::getEmissionSteps(), Distribution::getFilename(), getFilename(), Beam::getFrequency(), Beam::getGlobalProcessNames(), getL1(), getL2(), getLength(), OpalElement::getLength(), Line::getLength(), Sequence::getLength(), Beam::getMass(), BinningCmd::getMaxBins(), TrackCmd::getMaxSteps(), Beam::getNumAlloc(), FieldSolverCmd::getNX(), FieldSolverCmd::getNY(), FieldSolverCmd::getNZ(), EmissionSource::getP0(), BinningCmd::getParameter(), Beam::getParticleName(), Beam::getPolarization(), EmissionSource::getR0(), RealConstant::getReal(), RealVariable::getReal(), RealVector::getRealComponent(), Sequence::getReference(), getS(), EmissionSource::getShiftedGreensFunction(), TrackCmd::getStepsPerTurn(), StringConstant::getString(), EmissionSource::getT0(), TrackCmd::getT0(), BinningCmd::getTablePrintFrequency(), TrackCmd::getTimeIntegrator(), getTopology(), FieldSolverCmd::getType(), EmissionSource::getZerofaceMaxSteps(), EmissionSource::getZeroFacePlaneDumpFrequency(), EmissionSource::getZeroFaceR0Z(), TrackCmd::getZStart(), TrackCmd::getZStop(), Beam::hasExplicitEnergy(), Beam::hasPolarization(), Help::Help(), initialize(), OpalFilter::initOpalFilter(), Beam::isPhoton(), Line::Line(), OpalBend::OpalBend(), OpalCavity::OpalCavity(), OpalConstantEFieldCavity::OpalConstantEFieldCavity(), OpalDrift::OpalDrift(), OpalElement::OpalElement(), OpalFilter::OpalFilter(), OpalLaser::OpalLaser(), OpalMultipole::OpalMultipole(), OpalMultipoleT::OpalMultipoleT(), OpalPolynomialTimeDependence::OpalPolynomialTimeDependence(), OpalProbe::OpalProbe(), OpalQuadrupole::OpalQuadrupole(), OpalRingDefinition::OpalRingDefinition(), OpalSinusoidalTimeDependence::OpalSinusoidalTimeDependence(), OpalSolenoid::OpalSolenoid(), OpalSplineTimeDependence::OpalSplineTimeDependence(), OpalTravelingWave::OpalTravelingWave(), OpalVacuum::OpalVacuum(), OpalVariableRFCavity::OpalVariableRFCavity(), OpalVerticalFFAMagnet::OpalVerticalFFAMagnet(), Option::Option(), Option::Option(), Sequence::parse(), Line::parse(), DumpEMFields::parseCoordinateSystem(), Object::print(), Sequence::print(), BoolConstant::print(), RealConstant::print(), RealVariable::print(), RealVector::print(), StringConstant::print(), Beam::print(), OpalFilter::print(), DumpEMFields::print(), Object::printHelp(), 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(), OpalElement::registerOwnership(), Object::registerOwnership(), Select::Select(), Select::select(), Sequence::Sequence(), TestableBinningCmd::setAdaptiveBinning(), Distribution::setAttributes(), TestMultipoleT::TestableFieldSolverCmd::setBCX(), TestMultipoleTCurvedConstRadius::TestableFieldSolverCmd::setBCX(), TestMultipoleTStraight::TestableFieldSolverCmd::setBCX(), SolenoidPlacementTest::TestableFieldSolverCmd::setBCX(), TestVariableRFCavity::TestableFieldSolverCmd::setBCX(), OrbitThreaderTest::TestableFieldSolverCmd::setBCX(), OpalBeamlinePlacementTest::TestableFieldSolverCmd::setBCX(), TestMultipoleT::TestableFieldSolverCmd::setBCY(), TestMultipoleTCurvedConstRadius::TestableFieldSolverCmd::setBCY(), TestMultipoleTStraight::TestableFieldSolverCmd::setBCY(), SolenoidPlacementTest::TestableFieldSolverCmd::setBCY(), TestVariableRFCavity::TestableFieldSolverCmd::setBCY(), OrbitThreaderTest::TestableFieldSolverCmd::setBCY(), OpalBeamlinePlacementTest::TestableFieldSolverCmd::setBCY(), TestMultipoleT::TestableFieldSolverCmd::setBCZ(), TestMultipoleTCurvedConstRadius::TestableFieldSolverCmd::setBCZ(), TestMultipoleTStraight::TestableFieldSolverCmd::setBCZ(), SolenoidPlacementTest::TestableFieldSolverCmd::setBCZ(), TestVariableRFCavity::TestableFieldSolverCmd::setBCZ(), OrbitThreaderTest::TestableFieldSolverCmd::setBCZ(), OpalBeamlinePlacementTest::TestableFieldSolverCmd::setBCZ(), TestableBinningCmd::setBinningAlpha(), TestableBinningCmd::setBinningBeta(), TestableBinningCmd::setDesiredWidth(), Distribution::setDistParametersFlatTop(), Distribution::setDistParametersMultiVariateGauss(), Distribution::setDistType(), TestableBinningCmd::setDumpBinsFile(), TestableBinningCmd::setDumpBinsFreq(), TestableBinningCmd::setMaxBins(), FieldSolverCmd::setNX(), FieldSolverCmd::setNY(), FieldSolverCmd::setNZ(), TestableBinningCmd::setParameterString(), TrackRun::setRunMethod(), Distribution::setSigmaP_m(), Distribution::setSigmaR_m(), TestableBinningCmd::setTablePrintFrequency(), TestMultipoleT::TestableFieldSolverCmd::setType(), TestMultipoleTCurvedConstRadius::TestableFieldSolverCmd::setType(), TestMultipoleTStraight::TestableFieldSolverCmd::setType(), SolenoidPlacementTest::TestableFieldSolverCmd::setType(), TestVariableRFCavity::TestableFieldSolverCmd::setType(), OrbitThreaderTest::TestableFieldSolverCmd::setType(), OpalBeamlinePlacementTest::TestableFieldSolverCmd::setType(), TrackRun::setupBoundaryGeometry(), StringConstant::StringConstant(), StringConstant::StringConstant(), System::System(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), Title::Title(), TrackCmd::TrackCmd(), TrackRun::TrackRun(), OpalCavity::update(), OpalConstantEFieldCavity::update(), OpalDrift::update(), OpalElement::update(), OpalMonitor::update(), OpalMultipole::update(), OpalProbe::update(), OpalQuadrupole::update(), OpalRBend::update(), OpalRingDefinition::update(), OpalSBend::update(), OpalSolenoid::update(), OpalTravelingWave::update(), OpalVacuum::update(), OpalVerticalFFAMagnet::update(), Beam::update(), BinningCmd::update(), FieldSolverCmd::update(), OpalLaser::update(), OpalMultipoleT::update(), OpalPolynomialTimeDependence::update(), OpalSinusoidalTimeDependence::update(), OpalSplineTimeDependence::update(), OpalVariableRFCavity::update(), Option::update(), OpalElement::updateUnknown(), Beam::validatePolarization(), ValueDefinition::value(), Value::Value(), and ValueDefinition::value().

◆ itsHelp

std::string Object::itsHelp
privateinherited

Definition at line 250 of file Object.h.

Referenced by Object::printHelp().

◆ itsName

std::string Object::itsName
privateinherited

Definition at line 247 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 188 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 187 of file BoundaryGeometry.h.

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

◆ modified

bool Object::modified
protectedinherited

Dirty flag.

Definition at line 231 of file Object.h.

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

◆ occurrence

int Object::occurrence
privateinherited

Definition at line 253 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 179 of file BoundaryGeometry.h.

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

◆ randGen_m

gsl_rng* BoundaryGeometry::randGen_m
private

◆ references

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

◆ sharedFlag

bool Object::sharedFlag
privateinherited

Definition at line 263 of file Object.h.

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

◆ TfastIsInside_m

IpplTimings::TimerRef BoundaryGeometry::TfastIsInside_m
private

Definition at line 211 of file BoundaryGeometry.h.

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

◆ timeStamp

double Object::timeStamp
privateinherited

Definition at line 256 of file Object.h.

◆ Tinitialize_m

IpplTimings::TimerRef BoundaryGeometry::Tinitialize_m
private

Definition at line 209 of file BoundaryGeometry.h.

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

◆ TisInside_m

IpplTimings::TimerRef BoundaryGeometry::TisInside_m
private

Definition at line 210 of file BoundaryGeometry.h.

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

◆ TPartInside_m

IpplTimings::TimerRef BoundaryGeometry::TPartInside_m
private

Definition at line 213 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 185 of file BoundaryGeometry.h.

Referenced by initialize().

◆ TriNormals_m

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

Definition at line 184 of file BoundaryGeometry.h.

Referenced by initialize().

◆ [struct]


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