OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
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 &r, const Vector_t &v, const double dt, Vector_t &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 gethr ()
 Return the hr_m. More...
 
Vektor< int, 3 > getnr ()
 Return the nr_m. More...
 
Vector_t getmincoords ()
 Return the mincoords_m. More...
 
Vector_t getmaxcoords ()
 Return the maxcoords_m. More...
 
bool getInsidePoint (Vector_t &pt)
 
bool findInsidePoint (void)
 
int intersectRayBoundary (const Vector_t &P, const Vector_t &v, Vector_t &I)
 
int fastIsInside (const Vector_t &reference_pt, const Vector_t &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 &P)
 
int intersectTriangleVoxel (const int triangle_id, const int i, const int j, const int k)
 
int intersectTinyLineSegmentBoundary (const Vector_t &, const Vector_t &, Vector_t &, int &)
 
int intersectLineSegmentBoundary (const Vector_t &P0, const Vector_t &P1, Vector_t &intersection_pt, int &triangle_id)
 
 BoundaryGeometry (const BoundaryGeometry &)
 
void operator= (const BoundaryGeometry &)
 
 BoundaryGeometry (const std::string &name, BoundaryGeometry *parent)
 
const Vector_tgetPoint (const int triangle_id, const int vertex_id)
 
int intersectLineTriangle (const enum INTERSECTION_TESTS kind, const Vector_t &P0, const Vector_t &P1, const int triangle_id, Vector_t &I)
 
int mapVoxelIndices2ID (const int i, const int j, const int k)
 
Vector_t mapIndices2Voxel (const int, const int, const int)
 
Vector_t mapPoint2Voxel (const Vector_t &)
 
void computeMeshVoxelization (void)
 

Private Attributes

std::string h5FileName_m
 
std::vector< Vector_tPoints_m
 
std::vector< std::array< unsigned int, 4 > > Triangles_m
 
std::vector< Vector_tTriNormals_m
 
std::vector< double > TriAreas_m
 
Vector_t minExtent_m
 
Vector_t maxExtent_m
 
struct {
Vector_t minExtent
 
Vector_t maxExtent
 
Vector_t sizeOfVoxel
 
Vektor< int, 3 > nr_m
 
std::unordered_map< int, std::unordered_set< int > > ids
 
voxelMesh_m
 
int debugFlags_m
 
bool haveInsidePoint_m
 
Vector_t 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 58 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 298 of file BoundaryGeometry.h.

◆ DebugFlags

Enumerator
debug_isInside 
debug_fastIsInside 
debug_intersectRayBoundary 
debug_intersectLineSegmentBoundary 
debug_intersectTinyLineSegmentBoundary 
debug_PartInside 

Definition at line 192 of file BoundaryGeometry.h.

◆ INTERSECTION_TESTS

Enumerator
SEGMENT 
RAY 
LINE 

Definition at line 280 of file BoundaryGeometry.h.

Constructor & Destructor Documentation

◆ BoundaryGeometry() [1/3]

◆ ~BoundaryGeometry()

BoundaryGeometry::~BoundaryGeometry ( )
virtual

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

◆ clear()

void Object::clear ( )
inherited

Clear the occurrence counter.

Definition at line 341 of file Object.cpp.

References Object::occurrence.

Referenced by FieldSolver::initSolver().

◆ clone()

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

Return a clone.

Implements Object.

Definition at line 1079 of file BoundaryGeometry.cpp.

References BoundaryGeometry(), and name.

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

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

References debugFlags_m.

◆ enableDebug()

void BoundaryGeometry::enableDebug ( enum DebugFlags  flags)
inline

Definition at line 201 of file BoundaryGeometry.h.

References debugFlags_m.

◆ execute()

void BoundaryGeometry::execute ( )
virtual

Execute the command.

Reimplemented from Object.

Definition at line 1088 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 reference_pt,
const Vector_t P 
)

◆ find()

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

◆ findAttribute() [1/2]

◆ findAttribute() [2/2]

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

Find an attribute by name.

Definition at line 74 of file Object.cpp.

References Object::itsAttr, and name.

◆ findInsidePoint()

bool BoundaryGeometry::findInsidePoint ( void  )

Definition at line 1363 of file BoundaryGeometry.cpp.

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

Referenced by initialize().

Here is the call graph for this function:

◆ getA()

double BoundaryGeometry::getA ( )
inline

Definition at line 111 of file BoundaryGeometry.h.

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

Referenced by EllipticDomain::EllipticDomain(), FieldSolver::initSolver(), and MGPoissonSolver::MGPoissonSolver().

Here is the call graph for this function:

◆ getB()

double BoundaryGeometry::getB ( )
inline

Definition at line 115 of file BoundaryGeometry.h.

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

Referenced by EllipticDomain::EllipticDomain(), and MGPoissonSolver::MGPoissonSolver().

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 303 of file Object.cpp.

References Object::itsParent.

◆ getC()

double BoundaryGeometry::getC ( )
inline

Definition at line 119 of file BoundaryGeometry.h.

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

Referenced by MGPoissonSolver::MGPoissonSolver().

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

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

Referenced by MGPoissonSolver::MGPoissonSolver().

Here is the call graph for this function:

◆ gethr()

Vector_t BoundaryGeometry::gethr ( )
inline

Return the hr_m.

Definition at line 149 of file BoundaryGeometry.h.

References voxelMesh_m.

◆ getInsidePoint()

bool BoundaryGeometry::getInsidePoint ( Vector_t pt)
inline

Definition at line 172 of file BoundaryGeometry.h.

References haveInsidePoint_m, and insidePoint_m.

Referenced by ArbitraryDomain::ArbitraryDomain().

◆ getL1()

double BoundaryGeometry::getL1 ( )
inline

Definition at line 131 of file BoundaryGeometry.h.

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

Referenced by MGPoissonSolver::MGPoissonSolver().

Here is the call graph for this function:

◆ getL2()

double BoundaryGeometry::getL2 ( )
inline

Definition at line 135 of file BoundaryGeometry.h.

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

Referenced by MGPoissonSolver::MGPoissonSolver().

Here is the call graph for this function:

◆ getLength()

double BoundaryGeometry::getLength ( )
inline

Definition at line 127 of file BoundaryGeometry.h.

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

Referenced by EllipticDomain::EllipticDomain().

Here is the call graph for this function:

◆ getmaxcoords()

Vector_t BoundaryGeometry::getmaxcoords ( )
inline

Return the maxcoords_m.

Definition at line 168 of file BoundaryGeometry.h.

References maxExtent_m.

Referenced by ArbitraryDomain::ArbitraryDomain(), and MGPoissonSolver::MGPoissonSolver().

◆ getmincoords()

Vector_t BoundaryGeometry::getmincoords ( )
inline

Return the mincoords_m.

Definition at line 162 of file BoundaryGeometry.h.

References minExtent_m.

Referenced by ArbitraryDomain::ArbitraryDomain(), and MGPoissonSolver::MGPoissonSolver().

◆ getnr()

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

Return the nr_m.

Definition at line 155 of file BoundaryGeometry.h.

References voxelMesh_m.

◆ getNumBFaces()

size_t BoundaryGeometry::getNumBFaces ( )
inline

Return number of boundary faces.

Definition at line 142 of file BoundaryGeometry.h.

References Triangles_m.

◆ getOpalName()

const std::string & Object::getOpalName ( ) const
inherited

Return object name.

Definition at line 310 of file Object.cpp.

References Object::itsName.

Referenced by OpalOffset::OpalLocalCartesianOffset::clone(), OpalVariableRFCavity::clone(), OpalVariableRFCavityFringeField::clone(), Macro::clone(), OpalData::create(), OpalData::define(), ParallelCyclotronTracker::execute(), Sequence::findDriftLength(), SequenceParser::findNeighbourPositions(), ValueDefinition::getBool(), ValueDefinition::getBoolComponent(), ValueDefinition::getReal(), ValueDefinition::getRealComponent(), ValueDefinition::getString(), ValueDefinition::getStringComponent(), ParticleMatterInteraction::initParticleMatterInteractionHandler(), OpalWake::initWakefunction(), List::list(), Object::makeInstance(), SequenceTemplate::makeInstance(), LineTemplate::makeInstance(), Object::parse(), SequenceParser::parseMember(), SequenceParser::parsePosition(), OpalTrimCoil::print(), Object::print(), OpalElement::print(), Sequence::print(), BoolConstant::print(), RealConstant::print(), RealVariable::print(), RealVector::print(), StringConstant::print(), Beam::print(), OpalWake::print(), ParticleMatterInteraction::print(), OpalFilter::print(), Line::print(), printInfo(), FieldSolver::printInfo(), OpalElement::registerOwnership(), Object::registerOwnership(), Line::replace(), Sequence::replace(), OpalScalingFFAMagnet::setupDefaultEndField(), OpalTrimCoil::update(), OpalAsymmetricEnge::update(), OpalCavity::update(), OpalDrift::update(), OpalECollimator::update(), OpalEnge::update(), OpalFlexibleCollimator::update(), OpalOffset::OpalGlobalCartesianOffset::update(), OpalOffset::OpalGlobalCylindricalOffset::update(), OpalOffset::OpalLocalCartesianOffset::update(), OpalOffset::OpalLocalCylindricalOffset::update(), OpalPepperPot::update(), OpalPolynomialTimeDependence::update(), OpalProbe::update(), OpalRBend::update(), OpalRBend3D::update(), OpalRCollimator::update(), OpalSBend::update(), OpalSeptum::update(), OpalSlit::update(), OpalTravelingWave::update(), Beam::update(), update(), OpalWake::update(), ParticleMatterInteraction::update(), OpalFilter::update(), OpalSinusoidalTimeDependence::update(), OpalSplineTimeDependence::update(), and Distribution::writeOutFileHeader().

◆ getParent()

Object * Object::getParent ( ) const
inherited

Return parent pointer.

Definition at line 315 of file Object.cpp.

References Object::itsParent.

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

◆ getPoint()

const Vector_t & BoundaryGeometry::getPoint ( const int  triangle_id,
const int  vertex_id 
)
inlineprivate

◆ getS()

double BoundaryGeometry::getS ( )
inline

Definition at line 123 of file BoundaryGeometry.h.

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

Referenced by EllipticDomain::EllipticDomain().

Here is the call graph for this function:

◆ getTopology()

Topology BoundaryGeometry::getTopology ( ) const
inline

Definition at line 101 of file BoundaryGeometry.h.

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

Referenced by MGPoissonSolver::MGPoissonSolver(), and printInfo().

Here is the call graph for this function:

◆ increment()

int Object::increment ( )
inherited

Increment and return the occurrence counter.

Definition at line 346 of file Object.cpp.

References Object::occurrence.

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

◆ initialize()

◆ intersectLineSegmentBoundary()

int BoundaryGeometry::intersectLineSegmentBoundary ( const Vector_t P0,
const Vector_t P1,
Vector_t intersection_pt,
int &  triangle_id 
)
private

◆ intersectLineTriangle()

int BoundaryGeometry::intersectLineTriangle ( const enum INTERSECTION_TESTS  kind,
const Vector_t P0,
const Vector_t P1,
const int  triangle_id,
Vector_t I 
)
private

◆ intersectRayBoundary()

int BoundaryGeometry::intersectRayBoundary ( const Vector_t P,
const Vector_t v,
Vector_t I 
)

◆ intersectTinyLineSegmentBoundary()

int BoundaryGeometry::intersectTinyLineSegmentBoundary ( const Vector_t P,
const Vector_t Q,
Vector_t 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 1111 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 268 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 289 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 299 of file Object.cpp.

References Object::flagged.

◆ isInside()

bool BoundaryGeometry::isInside ( const Vector_t P)
private

Definition at line 1257 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 273 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 320 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 91 of file Object.cpp.

References Object::getOpalName().

Referenced by OpalParser::parseDefine(), Line::parseList(), OpalParser::parseMacro(), and SequenceParser::parseMember().

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 84 of file Object.cpp.

References name.

Referenced by OpalParser::parseMacro().

◆ mapIndices2Voxel()

Vector_t BoundaryGeometry::mapIndices2Voxel ( const int  i,
const int  j,
const int  k 
)
inlineprivate

Definition at line 1562 of file BoundaryGeometry.cpp.

References voxelMesh_m.

Referenced by intersectTinyLineSegmentBoundary(), and mapPoint2Voxel().

◆ mapPoint2Voxel()

Vector_t BoundaryGeometry::mapPoint2Voxel ( const Vector_t pt)
inlineprivate

Definition at line 1574 of file BoundaryGeometry.cpp.

References floor(), 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 1530 of file BoundaryGeometry.cpp.

References voxelMesh_m.

Referenced by computeMeshVoxelization(), and intersectTinyLineSegmentBoundary().

◆ occurrenceCount()

int Object::occurrenceCount ( )
inherited

Return the occurrence counter.

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

References Statement::delimiter(), Object::findAttribute(), Statement::mark(), name, 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 r,
const Vector_t v,
const double  dt,
Vector_t 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 2382 of file BoundaryGeometry.cpp.

References Physics::c, debug_intersectTinyLineSegmentBoundary, debug_PartInside, debugFlags_m, dot(), endl(), gmsg, intersectTinyLineSegmentBoundary(), sqrt(), IpplTimings::startTimer(), IpplTimings::stopTimer(), and TPartInside_m.

Referenced by ParallelCyclotronTracker::bgf_main_collision_test().

Here is the call graph for this function:

◆ print()

◆ printHelp()

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

Print help.

Definition at line 201 of file Object.cpp.

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

Referenced by Help::execute().

Here is the call graph for this function:

◆ printInfo()

Inform & BoundaryGeometry::printInfo ( Inform os) const

◆ 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 182 of file Object.cpp.

References Hypervolume::ref, and 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 258 of file Object.cpp.

◆ setDirty()

void Object::setDirty ( bool  dirty)
inherited

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

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

References Object::flagged.

◆ setOpalName()

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

◆ setParent()

void Object::setParent ( Object parent)
inherited

Set parent object.

Definition at line 336 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 278 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 187 of file Object.cpp.

References Hypervolume::ref, and Object::references.

◆ update()

void BoundaryGeometry::update ( )
virtual

Update this object.

Reimplemented from Object.

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

Referenced by ElementBase::ElementBase().

◆ writeGeomToVtk()

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

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

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

◆ haveInsidePoint_m

bool BoundaryGeometry::haveInsidePoint_m
private

Definition at line 258 of file BoundaryGeometry.h.

Referenced by getInsidePoint(), and initialize().

◆ insidePoint_m

Vector_t BoundaryGeometry::insidePoint_m
private

Definition at line 259 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 Distribution::adjustPhaseSpace(), Beam::Beam(), BoolConstant::BoolConstant(), BoundaryGeometry(), DumpEMFields::buildGrid(), DumpFields::buildGrid(), Distribution::calcPartPerDist(), Call::Call(), Distribution::checkEmissionParameters(), Distribution::checkIfEmitted(), Distribution::chooseInputMomentumUnits(), Constraint::Constraint(), Object::copyAttributes(), Distribution::create(), Distribution::createDistributionFromFile(), Distribution::createDistributionMultiGauss(), Distribution::createMatchedGaussDistribution(), Distribution::createOpalT(), DumpEMFields::DumpEMFields(), DumpFields::DumpFields(), DVar::DVar(), Echo::Echo(), Call::execute(), Echo::execute(), Help::execute(), Option::execute(), PSystem::execute(), Select::execute(), System::execute(), Title::execute(), Value::execute(), OptimizeCmd::execute(), SampleCmd::execute(), Beam::execute(), List::execute(), TrackCmd::execute(), TrackRun::execute(), FieldSolver::FieldSolver(), Object::findAttribute(), Distribution::generateAstraFlattopT(), Distribution::generateBinomial(), Distribution::generateFlattopLaserProfile(), Distribution::generateFlattopT(), Distribution::generateFlattopZ(), Distribution::generateGaussZ(), Distribution::generateLongFlattopT(), Distribution::generateMatchedGauss(), Distribution::generateTransverseGauss(), getA(), OpalElement::getApert(), getB(), BoolConstant::getBool(), getC(), Beam::getCharge(), Beam::getCurrent(), TrackCmd::getDT(), TrackCmd::getDTAU(), TrackCmd::getDTSCINIT(), Distribution::getEmissionTimeShift(), Constraint::getExpression(), Objective::getExpression(), getFilename(), Beam::getFrequency(), ParticleMatterInteraction::getInteractionType(), getL1(), getL2(), getLength(), OpalElement::getLength(), Line::getLength(), Sequence::getLength(), DVar::getLowerBound(), Beam::getMass(), TrackCmd::getMaxSteps(), FieldSolver::getMT(), FieldSolver::getMX(), FieldSolver::getMY(), OpalWake::getNumberOfBins(), Beam::getNumberOfParticles(), Distribution::getNumberOfParticlesInFile(), Beam::getParticleName(), RealConstant::getReal(), RealVariable::getReal(), RealVector::getRealComponent(), Sequence::getReference(), getS(), TrackCmd::getStepsPerTurn(), StringConstant::getString(), TrackCmd::getT0(), FieldSolver::getTagging_m(), Distribution::getTEmission(), TrackCmd::getTimeIntegrator(), getTopology(), OpalTrimCoil::getTrimCoilType(), FieldSolver::getType(), DVar::getUpperBound(), DVar::getVariable(), OpalSample::getVariable(), Distribution::getWeight(), TrackCmd::getZStart(), TrackCmd::getZStop(), FieldSolver::hasPeriodicZ(), Help::Help(), FieldSolver::initAmrObject_m(), FieldSolver::initAmrSolver_m(), FieldSolver::initCartesianFields(), initialize(), OpalSample::initialize(), OpalFilter::initOpalFilter(), OpalTrimCoil::initOpalTrimCoil(), ParticleMatterInteraction::initParticleMatterInteractionHandler(), FieldSolver::initSolver(), OpalWake::initWakefunction(), Distribution::injectBeam(), Line::Line(), List::List(), List::list(), Objective::Objective(), OpalAsymmetricEnge::OpalAsymmetricEnge(), OpalBend::OpalBend(), OpalCavity::OpalCavity(), OpalCCollimator::OpalCCollimator(), OpalCyclotron::OpalCyclotron(), OpalDegrader::OpalDegrader(), OpalDrift::OpalDrift(), OpalECollimator::OpalECollimator(), OpalElement::OpalElement(), OpalEnge::OpalEnge(), OpalFilter::OpalFilter(), OpalFlexibleCollimator::OpalFlexibleCollimator(), OpalOffset::OpalGlobalCartesianOffset::OpalGlobalCartesianOffset(), OpalOffset::OpalGlobalCylindricalOffset::OpalGlobalCylindricalOffset(), OpalHKicker::OpalHKicker(), OpalKicker::OpalKicker(), OpalOffset::OpalLocalCartesianOffset::OpalLocalCartesianOffset(), OpalOffset::OpalLocalCylindricalOffset::OpalLocalCylindricalOffset(), OpalMultipole::OpalMultipole(), OpalMultipoleT::OpalMultipoleT(), OpalOctupole::OpalOctupole(), OpalOutputPlane::OpalOutputPlane(), OpalPepperPot::OpalPepperPot(), OpalPolynomialTimeDependence::OpalPolynomialTimeDependence(), OpalProbe::OpalProbe(), OpalQuadrupole::OpalQuadrupole(), OpalRBend3D::OpalRBend3D(), OpalRCollimator::OpalRCollimator(), OpalRingDefinition::OpalRingDefinition(), OpalSample::OpalSample(), OpalSBend3D::OpalSBend3D(), OpalScalingFFAMagnet::OpalScalingFFAMagnet(), OpalSeptum::OpalSeptum(), OpalSextupole::OpalSextupole(), OpalSinusoidalTimeDependence::OpalSinusoidalTimeDependence(), OpalSlit::OpalSlit(), OpalSolenoid::OpalSolenoid(), OpalSource::OpalSource(), OpalSplineTimeDependence::OpalSplineTimeDependence(), OpalStripper::OpalStripper(), OpalTravelingWave::OpalTravelingWave(), OpalTrimCoil::OpalTrimCoil(), OpalUndulator::OpalUndulator(), OpalVacuum::OpalVacuum(), OpalVariableRFCavity::OpalVariableRFCavity(), OpalVariableRFCavityFringeField::OpalVariableRFCavityFringeField(), OpalVerticalFFAMagnet::OpalVerticalFFAMagnet(), OpalVKicker::OpalVKicker(), OpalWake::OpalWake(), OptimizeCmd::OptimizeCmd(), Option::Option(), Sequence::parse(), Line::parse(), DumpEMFields::parseCoordinateSystem(), ParticleMatterInteraction::ParticleMatterInteraction(), OpalTrimCoil::print(), TrackRun::print(), Object::print(), Sequence::print(), BoolConstant::print(), RealConstant::print(), RealVariable::print(), RealVector::print(), StringConstant::print(), DumpEMFields::print(), DumpFields::print(), Beam::print(), OpalWake::print(), ParticleMatterInteraction::print(), OpalFilter::print(), Distribution::printDistFlattop(), Distribution::printDistFromFile(), Distribution::printDistGauss(), Distribution::printEmissionModelAstra(), Distribution::printEmissionModelNone(), Object::printHelp(), Distribution::printInfo(), printInfo(), FieldSolver::printInfo(), BoolConstant::printValue(), RealConstant::printValue(), RealVariable::printValue(), RealVector::printValue(), StringConstant::printValue(), PSystem::PSystem(), RealConstant::RealConstant(), RealVariable::RealVariable(), RealVector::RealVector(), OpalElement::registerOwnership(), Object::registerOwnership(), OptimizeCmd::run(), SampleCmd::SampleCmd(), Distribution::scaleDistCoordinates(), Select::Select(), Select::select(), Sequence::Sequence(), Distribution::setAttributes(), TrackRun::setBoundaryGeometry(), Distribution::setDistParametersBinomial(), Distribution::setDistParametersFlattop(), Distribution::setDistParametersGauss(), Distribution::setDistParametersMultiGauss(), TrackRun::setDistributionParallelT(), Distribution::setDistType(), FieldSolver::setMT(), FieldSolver::setMX(), FieldSolver::setMY(), TrackRun::setRunMethod(), Distribution::setSigmaP_m(), Distribution::setSigmaR_m(), TrackRun::setupCyclotronTracker(), OpalScalingFFAMagnet::setupDefaultEndField(), Distribution::setupEmissionModel(), Distribution::setupEmissionModelAstra(), Distribution::setupEmissionModelNone(), Distribution::setupEmissionModelNonEquil(), TrackRun::setupFieldsolver(), OpalScalingFFAMagnet::setupNamedEndField(), Distribution::setupParticleBins(), TrackRun::setupThickTracker(), TrackRun::setupTTracker(), Distribution::shiftDistCoordinates(), StringConstant::StringConstant(), System::System(), Title::Title(), TrackCmd::TrackCmd(), TrackRun::TrackRun(), OpalAsymmetricEnge::update(), OpalCavity::update(), OpalCCollimator::update(), OpalCyclotron::update(), OpalDegrader::update(), OpalDrift::update(), OpalECollimator::update(), OpalElement::update(), OpalEnge::update(), OpalFlexibleCollimator::update(), OpalHKicker::update(), OpalKicker::update(), OpalMonitor::update(), OpalMultipole::update(), OpalOctupole::update(), OpalOffset::OpalGlobalCartesianOffset::update(), OpalOffset::OpalGlobalCylindricalOffset::update(), OpalOffset::OpalLocalCartesianOffset::update(), OpalOffset::OpalLocalCylindricalOffset::update(), OpalOutputPlane::update(), OpalPepperPot::update(), OpalPolynomialTimeDependence::update(), OpalProbe::update(), OpalQuadrupole::update(), OpalRBend::update(), OpalRBend3D::update(), OpalRCollimator::update(), OpalRingDefinition::update(), OpalSBend::update(), OpalSBend3D::update(), OpalScalingFFAMagnet::update(), OpalSeptum::update(), OpalSextupole::update(), OpalSlit::update(), OpalSolenoid::update(), OpalSource::update(), OpalStripper::update(), OpalTravelingWave::update(), OpalUndulator::update(), OpalVacuum::update(), OpalVariableRFCavity::update(), OpalVariableRFCavityFringeField::update(), OpalVerticalFFAMagnet::update(), OpalVKicker::update(), Beam::update(), OpalMultipoleT::update(), OpalSinusoidalTimeDependence::update(), OpalSplineTimeDependence::update(), Option::update(), OpalElement::updateUnknown(), ValueDefinition::value(), Value::Value(), Distribution::writeOutFileEmission(), Distribution::writeOutFileHeader(), and Distribution::writeOutFileInjection().

◆ 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 BoundaryGeometry::maxExtent_m
private

◆ minExtent_m

Vector_t BoundaryGeometry::minExtent_m
private

◆ 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> BoundaryGeometry::Points_m
private

Definition at line 236 of file BoundaryGeometry.h.

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

◆ randGen_m

gsl_rng* BoundaryGeometry::randGen_m
private

Definition at line 261 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 265 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 263 of file BoundaryGeometry.h.

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

◆ TisInside_m

IpplTimings::TimerRef BoundaryGeometry::TisInside_m
private

Definition at line 264 of file BoundaryGeometry.h.

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

◆ TPartInside_m

IpplTimings::TimerRef BoundaryGeometry::TPartInside_m
private

Definition at line 267 of file BoundaryGeometry.h.

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

◆ TRayTrace_m

IpplTimings::TimerRef BoundaryGeometry::TRayTrace_m
private

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

Referenced by initialize().

◆ TriNormals_m

std::vector<Vector_t> BoundaryGeometry::TriNormals_m
private

Definition at line 240 of file BoundaryGeometry.h.

Referenced by initialize().

◆ 


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