|
OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
|
#include <BoundaryGeometry.h>


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 BoundaryGeometry * | clone (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... | |
| 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 () |
| 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 Attribute * | findAttribute (const std::string &name) |
| Find an attribute by name. More... | |
| virtual const Attribute * | findAttribute (const std::string &name) const |
| Find an attribute by name. More... | |
| virtual Object * | makeTemplate (const std::string &, TokenStream &, Statement &) |
| Macro handler function. More... | |
| virtual Object * | makeInstance (const std::string &name, Statement &, const Parser *) |
| Macro handler function. More... | |
| virtual void | parse (Statement &) |
| Parse the object. More... | |
| virtual void | parseShortcut (Statement &, 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 Object * | getBaseObject () const |
| Return the object's base type object. More... | |
| const std::string & | getOpalName () const |
| Return object name. More... | |
| Object * | getParent () const |
| Return parent pointer. More... | |
| bool | isTreeMember (const Object *subTree) const |
| Test for tree membership. More... | |
| void | setOpalName (const std::string &name) |
| Set object name. More... | |
| void | setParent (Object *) |
| Set parent object. More... | |
| void | clear () |
| Clear the occurrence counter. More... | |
| int | increment () |
| Increment and return the occurrence counter. More... | |
| int | occurrenceCount () |
| Return the occurrence counter. More... | |
| void | registerReference (Invalidator *a) |
| Register a reference to this object. More... | |
| void | unregisterReference (Invalidator *a) |
| Unegister a reference to this object. More... | |
| void | registerOwnership (const AttributeHandler::OwnerType &itsClass) const |
| int | addReference () const |
| Increment reference count. More... | |
| int | removeReference () const |
| Decrement the reference count. More... | |
Static Public Member Functions | |
| static BoundaryGeometry * | find (const std::string &name) |
Public Attributes | |
| std::vector< Attribute > | itsAttr |
| 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_t & | getPoint (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_t > | Points_m |
| std::vector< std::array< unsigned int, 4 > > | Triangles_m |
| std::vector< Vector_t > | TriNormals_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 |
| Object * | itsParent |
| std::string | itsName |
| std::string | itsHelp |
| int | occurrence |
| double | timeStamp |
| std::set< Invalidator * > | references |
| bool | sharedFlag |
| int | refCount |
Definition at line 58 of file BoundaryGeometry.h.
|
private |
| Enumerator | |
|---|---|
| FGEOM | |
| LENGTH | |
| S | |
| L1 | |
| L2 | |
| A | |
| B | |
| C | |
| TOPO | |
| ZSHIFT | |
| XYZSCALE | |
| XSCALE | |
| YSCALE | |
| ZSCALE | |
| INSIDEPOINT | |
| SIZE | |
Definition at line 298 of file BoundaryGeometry.h.
| Enumerator | |
|---|---|
| debug_isInside | |
| debug_fastIsInside | |
| debug_intersectRayBoundary | |
| debug_intersectLineSegmentBoundary | |
| debug_intersectTinyLineSegmentBoundary | |
| debug_PartInside | |
Definition at line 192 of file BoundaryGeometry.h.
|
private |
| Enumerator | |
|---|---|
| SEGMENT | |
| RAY | |
| LINE | |
Definition at line 280 of file BoundaryGeometry.h.
| BoundaryGeometry::BoundaryGeometry | ( | ) |
Definition at line 948 of file BoundaryGeometry.cpp.
References A, B, Object::builtin, C, clone(), OpalData::define(), FGEOM, OpalData::getInstance(), Attributes::getString(), IpplTimings::getTimer(), h5FileName_m, initialize(), INSIDEPOINT, Object::itsAttr, L1, L2, LENGTH, Attributes::makePredefinedString(), Attributes::makeReal(), Attributes::makeRealArray(), Attributes::makeString(), randGen_m, Object::registerOwnership(), S, AttributeHandler::STATEMENT, TfastIsInside_m, Tinitialize_m, TisInside_m, TOPO, TPartInside_m, TRayTrace_m, update(), XSCALE, XYZSCALE, YSCALE, ZSCALE, and ZSHIFT.
Referenced by clone().

|
virtual |
Definition at line 1070 of file BoundaryGeometry.cpp.
References randGen_m.
|
private |
|
private |
Definition at line 1052 of file BoundaryGeometry.cpp.
References FGEOM, Attributes::getString(), IpplTimings::getTimer(), h5FileName_m, initialize(), Object::itsAttr, randGen_m, TfastIsInside_m, Tinitialize_m, TisInside_m, TPartInside_m, and TRayTrace_m.

|
inlineinherited |
Increment reference count.
Definition at line 83 of file RCObject.h.
References RCObject::refCount.
Referenced by Pointer< Object >::operator=(), and Pointer< Object >::unique().
|
virtual |
Test if replacement is allowed.
Reimplemented from Object.
Definition at line 1074 of file BoundaryGeometry.cpp.
|
inherited |
Clear the occurrence counter.
Definition at line 341 of file Object.cpp.
References Object::occurrence.
Referenced by FieldSolver::initSolver().
|
virtual |
Return a clone.
Implements Object.
Definition at line 1079 of file BoundaryGeometry.cpp.
References BoundaryGeometry(), and name.
Referenced by BoundaryGeometry(), and TrackRun::setBoundaryGeometry().

|
inlineprivate |
Definition at line 1586 of file BoundaryGeometry.cpp.
References Util::combineFilePath(), Options::enableVTK, endl(), OpalData::getAuxiliaryOutputDirectory(), OpalData::getInstance(), getPoint(), gmsg, h5FileName_m, INSIDE, intersectTriangleVoxel(), level2(), mapPoint2VoxelIndices, mapVoxelIndices2ID(), max(), min(), IpplInfo::myNode(), Triangles_m, and voxelMesh_m.
Referenced by initialize().

|
inherited |
Copy attributes from another object.
Definition at line 54 of file Object.cpp.
References Object::itsAttr.
Referenced by SequenceTemplate::makeInstance(), and LineTemplate::makeInstance().
|
inline |
Definition at line 205 of file BoundaryGeometry.h.
References debugFlags_m.
|
inline |
Definition at line 201 of file BoundaryGeometry.h.
References debugFlags_m.
|
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().

Definition at line 1427 of file BoundaryGeometry.cpp.
References Physics::c, ceil(), debug_fastIsInside, debug_intersectTinyLineSegmentBoundary, debugFlags_m, endl(), gmsg, intersectTinyLineSegmentBoundary(), magnitude(), maxExtent_m, min(), minExtent_m, IpplTimings::startTimer(), IpplTimings::stopTimer(), TfastIsInside_m, and voxelMesh_m.
Referenced by ArbitraryDomain::compute(), findInsidePoint(), and isInside().

|
static |
Definition at line 1097 of file BoundaryGeometry.cpp.
References OpalData::find(), OpalData::getInstance(), and name.
Referenced by FieldSolver::initSolver(), TrackRun::setBoundaryGeometry(), OpalCavity::update(), OpalCyclotron::update(), and OpalDrift::update().

|
virtualinherited |
Find an attribute by name.
Definition at line 64 of file Object.cpp.
References Object::itsAttr, and name.
Referenced by SequenceParser::findNeighbourPositions(), OpalElement::getParticleMatterInteraction(), OpalElement::getTypeName(), OpalElement::getWakeF(), Object::parse(), OpalElement::parse(), Line::parse(), OpalParser::parseAssign(), SequenceParser::parsePosition(), and Object::parseShortcut().
|
virtualinherited |
Find an attribute by name.
Definition at line 74 of file Object.cpp.
References Object::itsAttr, and name.
| 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().

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

|
inline |
Definition at line 115 of file BoundaryGeometry.h.
References B, Attributes::getReal(), and Object::itsAttr.
Referenced by EllipticDomain::EllipticDomain(), and MGPoissonSolver::MGPoissonSolver().

|
inherited |
Return the object's base type object.
Definition at line 303 of file Object.cpp.
References Object::itsParent.
|
inline |
Definition at line 119 of file BoundaryGeometry.h.
References C, Attributes::getReal(), and Object::itsAttr.
Referenced by MGPoissonSolver::MGPoissonSolver().

|
virtualinherited |
Return the object category as a string.
Implements Object.
Definition at line 29 of file Definition.cpp.
|
inline |
Definition at line 97 of file BoundaryGeometry.h.
References FGEOM, Attributes::getString(), and Object::itsAttr.
Referenced by MGPoissonSolver::MGPoissonSolver().

|
inline |
|
inline |
Definition at line 172 of file BoundaryGeometry.h.
References haveInsidePoint_m, and insidePoint_m.
Referenced by ArbitraryDomain::ArbitraryDomain().
|
inline |
Definition at line 131 of file BoundaryGeometry.h.
References Attributes::getReal(), Object::itsAttr, and L1.
Referenced by MGPoissonSolver::MGPoissonSolver().

|
inline |
Definition at line 135 of file BoundaryGeometry.h.
References Attributes::getReal(), Object::itsAttr, and L2.
Referenced by MGPoissonSolver::MGPoissonSolver().

|
inline |
Definition at line 127 of file BoundaryGeometry.h.
References Attributes::getReal(), Object::itsAttr, and LENGTH.
Referenced by EllipticDomain::EllipticDomain().

|
inline |
Return the maxcoords_m.
Definition at line 168 of file BoundaryGeometry.h.
References maxExtent_m.
Referenced by ArbitraryDomain::ArbitraryDomain(), and MGPoissonSolver::MGPoissonSolver().
|
inline |
Return the mincoords_m.
Definition at line 162 of file BoundaryGeometry.h.
References minExtent_m.
Referenced by ArbitraryDomain::ArbitraryDomain(), and MGPoissonSolver::MGPoissonSolver().
|
inline |
|
inline |
Return number of boundary faces.
Definition at line 142 of file BoundaryGeometry.h.
References Triangles_m.
|
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().
|
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().
|
inlineprivate |
Definition at line 275 of file BoundaryGeometry.h.
References PAssert, Points_m, and Triangles_m.
Referenced by computeMeshVoxelization(), initialize(), intersectLineTriangle(), intersectTinyLineSegmentBoundary(), and intersectTriangleVoxel().
|
inline |
Definition at line 123 of file BoundaryGeometry.h.
References Attributes::getReal(), Object::itsAttr, and S.
Referenced by EllipticDomain::EllipticDomain().

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

|
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().
| void BoundaryGeometry::initialize | ( | ) |
Definition at line 1649 of file BoundaryGeometry.cpp.
References A, B, Communicate::barrier(), C, IpplInfo::Comm, computeArea(), computeMeshVoxelization(), debugFlags_m, dot(), endl(), findInsidePoint(), floor(), IpplInfo::getComm(), getPoint(), Attributes::getReal(), Attributes::getRealArray(), gmsg, h5FileName_m, haveInsidePoint_m, INSIDEPOINT, insidePoint_m, intersectLineTriangle(), isInside(), Object::itsAttr, level2(), max(), maxExtent_m, minExtent_m, Hypervolume::n, normalVector(), PAssert, PointID, Points_m, randGen_m, SEGMENT, SQR, sqrt(), IpplTimings::startTimer(), IpplTimings::stopTimer(), Tinitialize_m, TisInside_m, Triangles_m, TriAreas_m, TriNormals_m, voxelMesh_m, XSCALE, XYZSCALE, YSCALE, ZSCALE, and ZSHIFT.
Referenced by BoundaryGeometry().

|
private |
Definition at line 2312 of file BoundaryGeometry.cpp.
References debug_intersectLineSegmentBoundary, debug_intersectTinyLineSegmentBoundary, debugFlags_m, endl(), gmsg, intersectTinyLineSegmentBoundary(), mapPoint2VoxelIndices, max(), min(), and Hypervolume::n.
Referenced by intersectRayBoundary().

|
private |
Definition at line 1174 of file BoundaryGeometry.cpp.
References a, 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(), Hypervolume::n, RAY, and SEGMENT.
Referenced by initialize(), and intersectTinyLineSegmentBoundary().

Definition at line 1478 of file BoundaryGeometry.cpp.
References Physics::c, debug_intersectLineSegmentBoundary, debug_intersectRayBoundary, debugFlags_m, endl(), gmsg, intersectLineSegmentBoundary(), IpplTimings::startTimer(), IpplTimings::stopTimer(), TRayTrace_m, and voxelMesh_m.
Referenced by ArbitraryDomain::compute().

|
private |
Definition at line 2160 of file BoundaryGeometry.cpp.
References debug_intersectTinyLineSegmentBoundary, debugFlags_m, endl(), cmp_ulp::eq_zero(), getPoint(), gmsg, Voxel::intersect(), intersectLineTriangle(), LINE, mapIndices2Voxel(), mapPoint2VoxelIndices, mapVoxelIndices2ID(), max(), min(), PAssert, Voxel::pts, and voxelMesh_m.
Referenced by fastIsInside(), intersectLineSegmentBoundary(), and partInside().

|
private |
Definition at line 1111 of file BoundaryGeometry.cpp.
References getPoint(), Voxel::intersect(), and voxelMesh_m.
Referenced by computeMeshVoxelization().

|
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().
|
inherited |
True, if the [b]modified[/b] flag is set.
Definition at line 289 of file Object.cpp.
References Object::modified.
|
inherited |
True, if [b]this[/b] is flagged by setFlag(true).
Definition at line 299 of file Object.cpp.
References Object::flagged.
|
private |
Definition at line 1257 of file BoundaryGeometry.cpp.
References fastIsInside(), cmp_ulp::lt(), maxExtent_m, and minExtent_m.
Referenced by initialize().

|
virtualinherited |
Shared flag.
Definition at line 273 of file Object.cpp.
References Object::sharedFlag.
Referenced by Sequence::print().
|
inherited |
Test for tree membership.
Definition at line 320 of file Object.cpp.
References Object::itsParent.
Referenced by Selector::handleElement(), and OpalParser::parseAssign().
|
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().

|
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().
|
inlineprivate |
Definition at line 1562 of file BoundaryGeometry.cpp.
References voxelMesh_m.
Referenced by intersectTinyLineSegmentBoundary(), and mapPoint2Voxel().
Definition at line 1574 of file BoundaryGeometry.cpp.
References floor(), mapIndices2Voxel(), and voxelMesh_m.

|
inlineprivate |
Definition at line 1530 of file BoundaryGeometry.cpp.
References voxelMesh_m.
Referenced by computeMeshVoxelization(), and intersectTinyLineSegmentBoundary().
|
inherited |
Return the occurrence counter.
Definition at line 351 of file Object.cpp.
References Object::occurrence.
|
private |
|
virtualinherited |
Parse the object.
Reimplemented in Call, Echo, Help, PSystem, System, Title, Value, OpalElement, Sequence, and Line.
Definition at line 97 of file Object.cpp.
References Statement::delimiter(), Object::findAttribute(), Object::getOpalName(), name, Expressions::parseDelimiter(), Expressions::parseRealConst(), and Expressions::parseString().
Referenced by Sequence::parse(), OpalParser::parseAction(), OpalParser::parseDefine(), and SequenceTemplate::parseTemplate().

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

| 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.
| r,momenta |
param v , and time step
| dt | will 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().

|
virtualinherited |
Print the object.
Reimplemented in OpalBend, OpalElement, OpalMarker, OpalMultipole, OpalOctupole, OpalOffset::OpalGlobalCartesianOffset, OpalOffset::OpalGlobalCylindricalOffset, OpalOffset::OpalLocalCartesianOffset, OpalOffset::OpalLocalCylindricalOffset, OpalPolynomialTimeDependence, OpalQuadrupole, OpalRBend3D, OpalRingDefinition, OpalSextupole, Sequence, BoolConstant, RealConstant, RealVariable, RealVector, StringConstant, OpalSinusoidalTimeDependence, OpalSplineTimeDependence, DumpEMFields, DumpFields, Beam, OpalWake, ParticleMatterInteraction, OpalFilter, OpalMultipoleT, and Line.
Definition at line 161 of file Object.cpp.
References endl(), Object::getOpalName(), Object::getParent(), and Object::itsAttr.
Referenced by Object::printValue().

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

Definition at line 2472 of file BoundaryGeometry.cpp.
References A, B, BOXCORNER, C, endl(), FGEOM, Object::getOpalName(), Attributes::getReal(), Attributes::getString(), getTopology(), Object::itsAttr, L1, L2, LENGTH, maxExtent_m, minExtent_m, Points_m, S, TOPO, Triangles_m, voxelMesh_m, XSCALE, XYZSCALE, YSCALE, and ZSCALE.
Referenced by operator<<().

|
inlinevirtualinherited |
Reimplemented in BoolConstant, RealConstant, RealVariable, RealVector, and StringConstant.
Definition at line 280 of file Object.h.
References Object::print().

|
inherited |
Definition at line 191 of file Object.cpp.
References AttributeHandler::addAttributeOwner(), end(), Object::getOpalName(), Object::getParent(), Object::itsAttr, and name.
Referenced by Beam::Beam(), BoolConstant::BoolConstant(), BoundaryGeometry(), Call::Call(), Constraint::Constraint(), DumpEMFields::DumpEMFields(), DumpFields::DumpFields(), DVar::DVar(), Echo::Echo(), FieldSolver::FieldSolver(), Help::Help(), Line::Line(), List::List(), Objective::Objective(), OpalFilter::OpalFilter(), OpalSample::OpalSample(), OpalTrimCoil::OpalTrimCoil(), OpalWake::OpalWake(), OptimizeCmd::OptimizeCmd(), Option::Option(), ParticleMatterInteraction::ParticleMatterInteraction(), PSystem::PSystem(), RealConstant::RealConstant(), RealVariable::RealVariable(), RealVector::RealVector(), SampleCmd::SampleCmd(), Select::Select(), Sequence::Sequence(), Distribution::setAttributes(), StringConstant::StringConstant(), System::System(), Title::Title(), TrackCmd::TrackCmd(), TrackRun::TrackRun(), and Value::Value().

|
inherited |
Register a reference to this object.
Definition at line 182 of file Object.cpp.
References Hypervolume::ref, and Object::references.
|
inlineinherited |
Decrement the reference count.
Definition at line 88 of file RCObject.h.
References RCObject::refCount.
|
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().
|
inherited |
Flag/unflag this object, e. g. to control output of objects for.
Definition at line 294 of file Object.cpp.
References Object::flagged.
|
inherited |
Set object name.
Definition at line 331 of file Object.cpp.
References Object::itsName, and name.
Referenced by OpalTrimCoil::update(), Beam::update(), update(), OpalWake::update(), ParticleMatterInteraction::update(), and OpalFilter::update().
|
inherited |
Set parent object.
Definition at line 336 of file Object.cpp.
References Object::itsParent.
Referenced by OpalData::erase().
|
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().
|
virtualinherited |
|
virtualinherited |
|
inherited |
Unegister a reference to this object.
Definition at line 187 of file Object.cpp.
References Hypervolume::ref, and Object::references.
|
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().

| void BoundaryGeometry::updateElement | ( | ElementBase * | element | ) |
Definition at line 1107 of file BoundaryGeometry.cpp.
Referenced by ElementBase::ElementBase().
| 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().

|
protectedinherited |
Built-in flag.
Definition at line 233 of file Object.h.
Referenced by Beam::Beam(), BoundaryGeometry(), Distribution::Distribution(), Object::isBuiltin(), Object::Object(), OpalFilter::OpalFilter(), OpalMarker::OpalMarker(), OpalTrimCoil::OpalTrimCoil(), OpalWake::OpalWake(), ParticleMatterInteraction::ParticleMatterInteraction(), RealConstant::RealConstant(), StringConstant::StringConstant(), and Table::~Table().
|
private |
Definition at line 256 of file BoundaryGeometry.h.
Referenced by disableDebug(), enableDebug(), fastIsInside(), initialize(), intersectLineSegmentBoundary(), intersectRayBoundary(), intersectTinyLineSegmentBoundary(), and partInside().
|
protectedinherited |
Object flag.
Definition at line 242 of file Object.h.
Referenced by Object::isFlagged(), Object::Object(), and Object::setFlag().
|
private |
Definition at line 234 of file BoundaryGeometry.h.
Referenced by BoundaryGeometry(), computeMeshVoxelization(), and initialize().
|
private |
Definition at line 258 of file BoundaryGeometry.h.
Referenced by getInsidePoint(), and initialize().
|
private |
Definition at line 259 of file BoundaryGeometry.h.
Referenced by findInsidePoint(), getInsidePoint(), and initialize().
|
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().
|
privateinherited |
Definition at line 258 of file Object.h.
Referenced by Object::printHelp().
|
privateinherited |
Definition at line 255 of file Object.h.
Referenced by Object::getOpalName(), and Object::setOpalName().
|
privateinherited |
Definition at line 252 of file Object.h.
Referenced by Object::getBaseObject(), Object::getParent(), Object::isTreeMember(), and Object::setParent().
|
private |
Definition at line 244 of file BoundaryGeometry.h.
Referenced by fastIsInside(), findInsidePoint(), getmaxcoords(), initialize(), isInside(), and printInfo().
|
private |
Definition at line 243 of file BoundaryGeometry.h.
Referenced by fastIsInside(), findInsidePoint(), getmincoords(), initialize(), isInside(), and printInfo().
|
protectedinherited |
Dirty flag.
Definition at line 238 of file Object.h.
Referenced by Object::isDirty(), Object::Object(), and Object::setDirty().
|
privateinherited |
Definition at line 261 of file Object.h.
Referenced by Object::clear(), Object::increment(), and Object::occurrenceCount().
|
private |
Definition at line 236 of file BoundaryGeometry.h.
Referenced by getPoint(), initialize(), printInfo(), and writeGeomToVtk().
|
private |
Definition at line 261 of file BoundaryGeometry.h.
Referenced by BoundaryGeometry(), initialize(), and ~BoundaryGeometry().
|
mutableprivateinherited |
Definition at line 76 of file RCObject.h.
Referenced by RCObject::addReference(), RCObject::isShared(), and RCObject::removeReference().
|
privateinherited |
Definition at line 268 of file Object.h.
Referenced by Object::registerReference(), Object::unregisterReference(), and Object::~Object().
|
privateinherited |
Definition at line 271 of file Object.h.
Referenced by Object::isShared(), and Object::setShared().
|
private |
Definition at line 265 of file BoundaryGeometry.h.
Referenced by BoundaryGeometry(), execute(), and fastIsInside().
|
private |
Definition at line 263 of file BoundaryGeometry.h.
Referenced by BoundaryGeometry(), execute(), and initialize().
|
private |
Definition at line 264 of file BoundaryGeometry.h.
Referenced by BoundaryGeometry(), execute(), and initialize().
|
private |
Definition at line 267 of file BoundaryGeometry.h.
Referenced by BoundaryGeometry(), execute(), and partInside().
|
private |
Definition at line 266 of file BoundaryGeometry.h.
Referenced by BoundaryGeometry(), execute(), and intersectRayBoundary().
|
private |
Definition at line 237 of file BoundaryGeometry.h.
Referenced by computeMeshVoxelization(), getNumBFaces(), getPoint(), initialize(), printInfo(), and writeGeomToVtk().
|
private |
Definition at line 241 of file BoundaryGeometry.h.
Referenced by initialize().
|
private |
Definition at line 240 of file BoundaryGeometry.h.
Referenced by initialize().
| struct { ... } BoundaryGeometry::voxelMesh_m |