OPAL (Object Oriented Parallel Accelerator Library)
2.2.0
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 () |
void | createParticlesOnSurface (size_t n, double darkinward, OpalBeamline &itsOpalBeamline, PartBunchBase< double, 3 > *itsBunch) |
void | createPriPart (size_t n, double darkinward, OpalBeamline &itsOpalBeamline, PartBunchBase< double, 3 > *itsBunch) |
int | partInside (const Vector_t &r, const Vector_t &v, const double dt, int Parttype, const double Qloss, Vector_t &intecoords, int &triId) |
int | emitSecondaryNone (const Vector_t &intecoords, const int &triId) |
int | emitSecondaryFurmanPivi (const Vector_t &intecoords, const int i, PartBunchBase< double, 3 > *itsBunch, double &seyNum) |
int | emitSecondaryVaughan (const Vector_t &intecoords, const int i, PartBunchBase< double, 3 > *itsBunch, double &seyNum) |
Inform & | printInfo (Inform &os) const |
void | writeGeomToVtk (std::string fn) |
std::string | getFilename () const |
std::string | getTopology () const |
std::string | getDistribution () |
std::vector< std::string > | getDistributionArray () |
size_t | getN () |
Vector_t | getCooridinate (size_t i) |
void | clearCooridinateArray () |
Vector_t | getMomenta (size_t i) |
void | clearMomentaArray () |
double | getA () |
double | getB () |
double | getC () |
double | getS () |
double | getLength () |
double | getL1 () |
double | getL2 () |
void | setNEmissionMode (bool nEmissionMode) |
void | setWorkFunction (double workFunction) |
void | setFieldEnhancement (double fieldEnhancement) |
void | setMaxFN (size_t maxFNemission) |
void | setFNTreshold (double fieldFNthreshold) |
void | setFNParameterA (double parameterFNA) |
void | setFNParameterB (double parameterFNB) |
void | setFNParameterY (double parameterFNY) |
void | setFNParameterVYZe (double parameterFNVYZe) |
void | setFNParameterVYSe (double parameterFNVYSe) |
void | setBoundaryMatType (int BoundaryMatType) |
void | setEInitThreshold (double einitthreshold) |
void | setvSeyZero (double vSeyZero) |
void | setvEZero (double vEZero) |
void | setvSeyMax (double vSeyMax) |
void | setvEmax (double vEmax) |
void | setvKenergy (double vKenergy) |
void | setvKtheta (double vKtheta) |
void | setvVThermal (double vVThermal) |
void | setVw (double ppVw) |
size_t | getNumBFaces () |
Vector_t | gethr () |
Vektor< int, 3 > | getnr () |
Vector_t | getmincoords () |
Vector_t | getmaxcoords () |
bool | isOutsideApperture (Vector_t x) |
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 | ~Definition () |
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... | |
![]() | |
virtual | ~Object () |
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 &) |
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... | |
bool | isShared () const |
Test for sharing. More... | |
Static Public Member Functions | |
static BoundaryGeometry * | find (const std::string &name) |
Public Attributes | |
std::vector< Vector_t > | TriBarycenters_m |
std::vector< double > | TriPrPartloss_m |
std::vector< double > | TriSePartloss_m |
std::vector< double > | TriFEPartloss_m |
std::vector< short > | TriBGphysicstag_m |
Vector_t | minExtent |
Vector_t | maxExtent |
Vector_t | sizeOfVoxel |
Vektor< int, 3 > | nr_m |
std::unordered_map< int, std::unordered_set< int > > | ids |
![]() | |
std::vector< Attribute > | itsAttr |
The object attributes (see Attribute.hh). More... | |
Private Types | |
enum | INTERSECTION_TESTS { SEGMENT, RAY, LINE } |
enum | { FGEOM, LENGTH, S, L1, L2, A, B, C, TOPO, DISTR, DISTRS, ZSHIFT, XYZSCALE, XSCALE, YSCALE, ZSCALE, APERTURE, SIZE } |
Private Member Functions | |
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) | |
bool | hasApperture () |
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) |
Additional Inherited Members | |
![]() | |
Definition (int size, const char *name, const char *help) | |
Constructor for exemplars. More... | |
Definition (const std::string &name, Definition *parent) | |
Constructor for clones. More... | |
![]() | |
Object (int size, const char *name, const char *help) | |
Constructor for exemplars. More... | |
Object (const std::string &name, Object *parent) | |
Constructor for clones. More... | |
![]() | |
RCObject () | |
Default constructor. More... | |
RCObject (const RCObject &) | |
Copy constructor. More... | |
virtual | ~RCObject ()=0 |
RCObject & | operator= (const RCObject &right) |
![]() | |
bool | builtin |
Built-in flag. More... | |
bool | modified |
Dirty flag. More... | |
bool | flagged |
Object flag. More... | |
Definition at line 47 of file BoundaryGeometry.h.
|
private |
Enumerator | |
---|---|
FGEOM | |
LENGTH | |
S | |
L1 | |
L2 | |
A | |
B | |
C | |
TOPO | |
DISTR | |
DISTRS | |
ZSHIFT | |
XYZSCALE | |
XSCALE | |
YSCALE | |
ZSCALE | |
APERTURE | |
SIZE |
Definition at line 497 of file BoundaryGeometry.h.
Enumerator | |
---|---|
debug_isInside | |
debug_fastIsInside | |
debug_intersectRayBoundary | |
debug_intersectLineSegmentBoundary | |
debug_intersectTinyLineSegmentBoundary | |
debug_PartInside |
Definition at line 356 of file BoundaryGeometry.h.
|
private |
Enumerator | |
---|---|
SEGMENT | |
RAY | |
LINE |
Definition at line 479 of file BoundaryGeometry.h.
BoundaryGeometry::BoundaryGeometry | ( | ) |
Definition at line 697 of file BoundaryGeometry.cpp.
References A, APERTURE, B, Object::builtin, C, clone(), OpalData::define(), DISTR, DISTRS, FGEOM, OpalData::getInstance(), Attributes::getString(), IpplTimings::getTimer(), h5FileName_m, initialize(), Object::itsAttr, L1, L2, LENGTH, Attributes::makeReal(), Attributes::makeRealArray(), Attributes::makeString(), Attributes::makeStringArray(), 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 826 of file BoundaryGeometry.cpp.
References randGen_m.
|
private |
|
private |
Definition at line 808 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.
|
virtual |
Test if replacement is allowed.
Reimplemented from Object.
Definition at line 830 of file BoundaryGeometry.cpp.
|
inline |
Definition at line 140 of file BoundaryGeometry.h.
References partsr_m.
Referenced by Distribution::createBoundaryGeometry(), and Distribution::createPriPart().
|
inline |
Definition at line 147 of file BoundaryGeometry.h.
References partsp_m.
Referenced by Distribution::createPriPart().
|
virtual |
Return a clone.
Implements Object.
Definition at line 835 of file BoundaryGeometry.cpp.
References BoundaryGeometry().
Referenced by BoundaryGeometry().
|
inlineprivate |
Definition at line 1180 of file BoundaryGeometry.cpp.
References endl(), getPoint(), INSIDE, intersectTriangleVoxel(), mapPoint2VoxelIndices, mapVoxelIndices2ID(), MAX3, MIN3, IpplInfo::myNode(), Triangles_m, and voxelMesh_m.
Referenced by initialize().
void BoundaryGeometry::createParticlesOnSurface | ( | size_t | n, |
double | darkinward, | ||
OpalBeamline & | itsOpalBeamline, | ||
PartBunchBase< double, 3 > * | itsBunch | ||
) |
Initialize some darkcurrent particles near the surface with inward momenta.
Definition at line 2240 of file BoundaryGeometry.cpp.
References BGphysics::Absorption, B, Communicate::broadcast_all(), IpplInfo::Comm, eInitThreshold_m, fabs(), BGphysics::FNEmission, PartBunchBase< T, Dim >::getdT(), OpalBeamline::getFieldAt(), getMessage(), IpplRandom, IpplInfo::myNode(), Hypervolume::n, partsr_m, putMessage(), Communicate::receive_block(), BGphysics::SecondaryEmission, Triangles_m, TriBarycenters_m, TriBGphysicstag_m, and TriNormals_m.
void BoundaryGeometry::createPriPart | ( | size_t | n, |
double | darkinward, | ||
OpalBeamline & | itsOpalBeamline, | ||
PartBunchBase< double, 3 > * | itsBunch | ||
) |
Initialize primary particles near the surface with inward momenta.
Definition at line 2295 of file BoundaryGeometry.cpp.
References BGphysics::Absorption, B, Communicate::broadcast_all(), IpplInfo::Comm, eInitThreshold_m, fabs(), BGphysics::FNEmission, PartBunchBase< T, Dim >::getdT(), OpalBeamline::getFieldAt(), getMessage(), IpplRandom, maxExtent_m, minExtent_m, IpplInfo::myNode(), Hypervolume::n, partsp_m, partsr_m, Options::ppdebug, putMessage(), Communicate::receive_block(), BGphysics::SecondaryEmission, Triangles_m, TriBarycenters_m, TriBGphysicstag_m, and TriNormals_m.
|
inline |
Definition at line 369 of file BoundaryGeometry.h.
References debugFlags_m.
int BoundaryGeometry::emitSecondaryFurmanPivi | ( | const Vector_t & | intecoords, |
const int | i, | ||
PartBunchBase< double, 3 > * | itsBunch, | ||
double & | seyNum | ||
) |
Determine physical behaviour when particle hits the boundary triangle, call Furman-Pivi's secondary emission model.
Definition at line 2104 of file BoundaryGeometry.cpp.
References BGphysics::Absorption, dot(), endl(), ERRORMSG, BGphysics::FNEmission, getPoint(), Physics::m_e, nEmissionMode_m, BGphysics::Nop, SecondaryEmissionPhysics::nSec(), PartBunchBase< T, Dim >::P, ppVw_m, PartBunchBase< T, Dim >::Q, PartBunchBase< T, Dim >::R, seBoundaryMatType_m, sec_phys_m, BGphysics::SecondaryEmission, sqrt(), TriBGphysicstag_m, PartBunchBase< T, Dim >::TriID, TriNormals_m, and vVThermal_m.
int BoundaryGeometry::emitSecondaryNone | ( | const Vector_t & | intecoords, |
const int & | triId | ||
) |
Determine physical behaviour when particle hits the boundary triangle, non secondary emission version.
Definition at line 2085 of file BoundaryGeometry.cpp.
References BGphysics::Absorption, BGphysics::FNEmission, BGphysics::Nop, and TriBGphysicstag_m.
int BoundaryGeometry::emitSecondaryVaughan | ( | const Vector_t & | intecoords, |
const int | i, | ||
PartBunchBase< double, 3 > * | itsBunch, | ||
double & | seyNum | ||
) |
Determine physical behaviour when particle hits the boundary triangle, call Vaughan's secondary emission model.
Definition at line 2168 of file BoundaryGeometry.cpp.
References BGphysics::Absorption, dot(), endl(), ERRORMSG, BGphysics::FNEmission, getPoint(), Physics::m_e, nEmissionMode_m, BGphysics::Nop, SecondaryEmissionPhysics::nSec(), PartBunchBase< T, Dim >::P, ppVw_m, PartBunchBase< T, Dim >::Q, PartBunchBase< T, Dim >::R, sec_phys_m, BGphysics::SecondaryEmission, sqrt(), TriBGphysicstag_m, PartBunchBase< T, Dim >::TriID, TriNormals_m, vEmax_m, vEzero_m, vKenergy_m, vKtheta_m, vSeyMax_m, vSeyZero_m, and vVThermal_m.
|
inline |
Definition at line 365 of file BoundaryGeometry.h.
References debugFlags_m.
|
virtual |
Execute the command.
Reimplemented from Object.
Definition at line 844 of file BoundaryGeometry.cpp.
References IpplTimings::getTimer(), TfastIsInside_m, Tinitialize_m, TisInside_m, TPartInside_m, TRayTrace_m, and update().
Definition at line 1022 of file BoundaryGeometry.cpp.
References Physics::c, ceil(), debug_fastIsInside, debug_intersectTinyLineSegmentBoundary, debugFlags_m, endl(), intersectTinyLineSegmentBoundary(), Voxel::isInside(), maxExtent_m, MIN3, minExtent_m, IpplTimings::startTimer(), IpplTimings::stopTimer(), TfastIsInside_m, and voxelMesh_m.
|
static |
Definition at line 853 of file BoundaryGeometry.cpp.
References OpalData::find(), and OpalData::getInstance().
Referenced by FieldSolver::initSolver(), TrackRun::setupCyclotronTracker(), TrackRun::setupThickTracker(), TrackRun::setupTTracker(), OpalDrift::update(), OpalParallelPlate::update(), OpalCavity::update(), and OpalCyclotron::update().
|
inline |
Definition at line 151 of file BoundaryGeometry.h.
References A, Attributes::getReal(), and Object::itsAttr.
Referenced by FieldSolver::initSolver().
|
inline |
Definition at line 155 of file BoundaryGeometry.h.
References B, Attributes::getReal(), and Object::itsAttr.
|
inline |
Definition at line 159 of file BoundaryGeometry.h.
References C, Attributes::getReal(), and Object::itsAttr.
|
inline |
Definition at line 137 of file BoundaryGeometry.h.
References partsr_m.
Referenced by Distribution::createBoundaryGeometry(), and Distribution::createPriPart().
|
inline |
Definition at line 125 of file BoundaryGeometry.h.
References DISTR, Attributes::getString(), and Object::itsAttr.
|
inline |
Definition at line 129 of file BoundaryGeometry.h.
References DISTRS, Attributes::getStringArray(), and Object::itsAttr.
|
inline |
Definition at line 117 of file BoundaryGeometry.h.
References FGEOM, Attributes::getString(), and Object::itsAttr.
|
inline |
Return the hr_m.
Definition at line 279 of file BoundaryGeometry.h.
References voxelMesh_m.
Referenced by DataSink::writePartlossZASCII().
|
inline |
Definition at line 171 of file BoundaryGeometry.h.
References Attributes::getReal(), Object::itsAttr, and L1.
|
inline |
Definition at line 175 of file BoundaryGeometry.h.
References Attributes::getReal(), Object::itsAttr, and L2.
|
inline |
Definition at line 167 of file BoundaryGeometry.h.
References Attributes::getReal(), Object::itsAttr, and LENGTH.
|
inline |
|
inline |
Return the mincoords_m.
Definition at line 292 of file BoundaryGeometry.h.
References minExtent_m.
Referenced by DataSink::writePartlossZASCII().
|
inline |
Definition at line 143 of file BoundaryGeometry.h.
References partsp_m.
Referenced by Distribution::createPriPart().
|
inline |
Definition at line 133 of file BoundaryGeometry.h.
References partsr_m.
Referenced by Distribution::createBoundaryGeometry(), and Distribution::createPriPart().
|
inline |
Return the nr_m.
Definition at line 285 of file BoundaryGeometry.h.
References voxelMesh_m.
Referenced by DataSink::writePartlossZASCII().
|
inline |
Return number of boundary faces.
Definition at line 272 of file BoundaryGeometry.h.
References Triangles_m.
Referenced by DataSink::writePartlossZASCII().
|
inlineprivate |
Definition at line 474 of file BoundaryGeometry.h.
References Points_m, and Triangles_m.
Referenced by computeMeshVoxelization(), emitSecondaryFurmanPivi(), emitSecondaryVaughan(), initialize(), intersectLineTriangle(), intersectTinyLineSegmentBoundary(), and intersectTriangleVoxel().
|
inline |
Definition at line 163 of file BoundaryGeometry.h.
References Attributes::getReal(), Object::itsAttr, and S.
|
inline |
Definition at line 121 of file BoundaryGeometry.h.
References Attributes::getString(), Object::itsAttr, and TOPO.
Referenced by printInfo().
|
inlineprivate |
Definition at line 470 of file BoundaryGeometry.h.
References apert_m.
Referenced by initialize(), and isOutsideApperture().
void BoundaryGeometry::initialize | ( | ) |
Definition at line 1220 of file BoundaryGeometry.cpp.
References BGphysics::Absorption, apert_m, APERTURE, Communicate::barrier(), C, IpplInfo::Comm, computeMeshVoxelization(), debugFlags_m, dot(), endl(), floor(), BGphysics::FNEmission, IpplInfo::getComm(), getPoint(), Attributes::getReal(), Attributes::getRealArray(), h5FileName_m, hasApperture(), intersectLineTriangle(), Object::itsAttr, max(), maxExtent, maxExtent_m, minExtent, minExtent_m, Hypervolume::n, nr_m, PointID, Points_m, randGen_m, BGphysics::SecondaryEmission, SEGMENT, sizeOfVoxel, SQR, sqrt(), IpplTimings::startTimer(), IpplTimings::stopTimer(), Tinitialize_m, TisInside_m, Triangles_m, TriAreas_m, TriBarycenters_m, TriBGphysicstag_m, TriFEPartloss_m, TriNormals_m, TriPrPartloss_m, TriSePartloss_m, voxelMesh_m, XSCALE, XYZSCALE, YSCALE, ZSCALE, and ZSHIFT.
Referenced by BoundaryGeometry().
|
private |
Definition at line 1875 of file BoundaryGeometry.cpp.
References debug_intersectLineSegmentBoundary, debug_intersectTinyLineSegmentBoundary, debugFlags_m, endl(), intersectTinyLineSegmentBoundary(), mapPoint2VoxelIndices, MAX2, MIN2, and Hypervolume::n.
Referenced by intersectRayBoundary().
|
private |
Definition at line 930 of file BoundaryGeometry.cpp.
References cross(), dot(), EPS, getPoint(), LINE, Hypervolume::n, RAY, and SEGMENT.
Referenced by initialize(), and intersectTinyLineSegmentBoundary().
Definition at line 1073 of file BoundaryGeometry.cpp.
References Physics::c, debug_intersectLineSegmentBoundary, debug_intersectRayBoundary, debugFlags_m, endl(), Voxel::intersect(), intersectLineSegmentBoundary(), IpplTimings::startTimer(), IpplTimings::stopTimer(), TRayTrace_m, and voxelMesh_m.
|
private |
Definition at line 1723 of file BoundaryGeometry.cpp.
References debug_intersectTinyLineSegmentBoundary, debugFlags_m, endl(), EPS, getPoint(), Voxel::intersect(), intersectLineTriangle(), LINE, mapIndices2Voxel(), mapPoint2VoxelIndices, mapVoxelIndices2ID(), MAX2, MIN2, Voxel::pts, and voxelMesh_m.
Referenced by fastIsInside(), intersectLineSegmentBoundary(), and partInside().
|
private |
Definition at line 867 of file BoundaryGeometry.cpp.
References getPoint(), Voxel::intersect(), and voxelMesh_m.
Referenced by computeMeshVoxelization().
|
inline |
Definition at line 333 of file BoundaryGeometry.h.
References apert_m, and hasApperture().
|
inlineprivate |
Definition at line 1156 of file BoundaryGeometry.cpp.
References voxelMesh_m.
Referenced by intersectTinyLineSegmentBoundary(), and mapPoint2Voxel().
Definition at line 1168 of file BoundaryGeometry.cpp.
References floor(), mapIndices2Voxel(), and voxelMesh_m.
|
inlineprivate |
Definition at line 1125 of file BoundaryGeometry.cpp.
References voxelMesh_m.
Referenced by computeMeshVoxelization(), and intersectTinyLineSegmentBoundary().
|
private |
int BoundaryGeometry::partInside | ( | const Vector_t & | r, |
const Vector_t & | v, | ||
const double | dt, | ||
int | Parttype, | ||
const double | Qloss, | ||
Vector_t & | intersect_pt, | ||
int & | triangle_id | ||
) |
Determine whether a particle with position
r,momenta | |
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 1944 of file BoundaryGeometry.cpp.
References Physics::c, debug_intersectTinyLineSegmentBoundary, debug_PartInside, debugFlags_m, dot(), endl(), intersectTinyLineSegmentBoundary(), sqrt(), IpplTimings::startTimer(), IpplTimings::stopTimer(), TPartInside_m, TriFEPartloss_m, TriPrPartloss_m, and TriSePartloss_m.
Referenced by ParallelCyclotronTracker::bgf_main_collision_test().
Definition at line 2042 of file BoundaryGeometry.cpp.
References endl(), FGEOM, Object::getOpalName(), Attributes::getReal(), Attributes::getString(), getTopology(), Object::itsAttr, L1, L2, LENGTH, maxExtent_m, minExtent_m, Points_m, S, TOPO, Triangles_m, and voxelMesh_m.
Referenced by operator<<().
|
inline |
Definition at line 219 of file BoundaryGeometry.h.
References seBoundaryMatType_m.
|
inline |
Definition at line 223 of file BoundaryGeometry.h.
References eInitThreshold_m.
|
inline |
Definition at line 187 of file BoundaryGeometry.h.
References fieldEnhancement_m.
|
inline |
Definition at line 199 of file BoundaryGeometry.h.
References parameterFNA_m.
|
inline |
Definition at line 203 of file BoundaryGeometry.h.
References parameterFNB_m.
|
inline |
Definition at line 215 of file BoundaryGeometry.h.
References parameterFNVYSe_m.
|
inline |
Definition at line 211 of file BoundaryGeometry.h.
References parameterFNVYZe_m.
|
inline |
Definition at line 207 of file BoundaryGeometry.h.
References parameterFNY_m.
|
inline |
Definition at line 195 of file BoundaryGeometry.h.
References fieldFNthreshold_m.
|
inline |
Definition at line 191 of file BoundaryGeometry.h.
References maxFNemission_m.
|
inline |
Definition at line 179 of file BoundaryGeometry.h.
References nEmissionMode_m.
|
inline |
Definition at line 243 of file BoundaryGeometry.h.
References vEmax_m.
|
inline |
Definition at line 233 of file BoundaryGeometry.h.
References vEzero_m.
|
inline |
Definition at line 249 of file BoundaryGeometry.h.
References vKenergy_m.
|
inline |
Definition at line 255 of file BoundaryGeometry.h.
References vKtheta_m.
|
inline |
Definition at line 238 of file BoundaryGeometry.h.
References vSeyMax_m.
|
inline |
Definition at line 228 of file BoundaryGeometry.h.
References vSeyZero_m.
|
inline |
Definition at line 261 of file BoundaryGeometry.h.
References vVThermal_m.
|
inline |
Definition at line 265 of file BoundaryGeometry.h.
References ppVw_m.
|
inline |
Definition at line 183 of file BoundaryGeometry.h.
References workFunction_m.
|
virtual |
Update this object.
Reimplemented from Object.
Definition at line 839 of file BoundaryGeometry.cpp.
References Object::getOpalName(), and Object::setOpalName().
Referenced by BoundaryGeometry(), and execute().
void BoundaryGeometry::updateElement | ( | ElementBase * | element | ) |
Definition at line 863 of file BoundaryGeometry.cpp.
Referenced by ElementBase::ElementBase().
void BoundaryGeometry::writeGeomToVtk | ( | std::string | fn | ) |
Definition at line 2006 of file BoundaryGeometry.cpp.
References endl(), PointID, Points_m, and Triangles_m.
Referenced by DataSink::writeGeomToVtk().
|
private |
Definition at line 426 of file BoundaryGeometry.h.
Referenced by hasApperture(), initialize(), and isOutsideApperture().
|
private |
Definition at line 416 of file BoundaryGeometry.h.
Referenced by disableDebug(), enableDebug(), fastIsInside(), initialize(), intersectLineSegmentBoundary(), intersectRayBoundary(), intersectTinyLineSegmentBoundary(), and partInside().
|
private |
Definition at line 431 of file BoundaryGeometry.h.
Referenced by createParticlesOnSurface(), createPriPart(), and setEInitThreshold().
|
private |
Definition at line 447 of file BoundaryGeometry.h.
Referenced by setFieldEnhancement().
|
private |
Definition at line 449 of file BoundaryGeometry.h.
Referenced by setFNTreshold().
|
private |
Definition at line 394 of file BoundaryGeometry.h.
Referenced by BoundaryGeometry(), and initialize().
std::unordered_map<int, std::unordered_set<int> > BoundaryGeometry::ids |
Definition at line 412 of file BoundaryGeometry.h.
Vector_t BoundaryGeometry::maxExtent |
Definition at line 408 of file BoundaryGeometry.h.
Referenced by initialize().
|
private |
Definition at line 404 of file BoundaryGeometry.h.
Referenced by createPriPart(), fastIsInside(), getmaxcoords(), initialize(), and printInfo().
|
private |
Definition at line 448 of file BoundaryGeometry.h.
Referenced by setMaxFN().
Vector_t BoundaryGeometry::minExtent |
Definition at line 407 of file BoundaryGeometry.h.
Referenced by initialize().
|
private |
Definition at line 403 of file BoundaryGeometry.h.
Referenced by createPriPart(), fastIsInside(), getmincoords(), initialize(), and printInfo().
|
private |
Definition at line 430 of file BoundaryGeometry.h.
Referenced by emitSecondaryFurmanPivi(), emitSecondaryVaughan(), and setNEmissionMode().
Vektor<int, 3> BoundaryGeometry::nr_m |
Definition at line 410 of file BoundaryGeometry.h.
Referenced by initialize().
|
private |
Definition at line 450 of file BoundaryGeometry.h.
Referenced by setFNParameterA().
|
private |
Definition at line 451 of file BoundaryGeometry.h.
Referenced by setFNParameterB().
|
private |
Definition at line 454 of file BoundaryGeometry.h.
Referenced by setFNParameterVYSe().
|
private |
Definition at line 453 of file BoundaryGeometry.h.
Referenced by setFNParameterVYZe().
|
private |
Definition at line 452 of file BoundaryGeometry.h.
Referenced by setFNParameterY().
|
private |
Definition at line 418 of file BoundaryGeometry.h.
Referenced by clearMomentaArray(), createPriPart(), and getMomenta().
|
private |
Definition at line 419 of file BoundaryGeometry.h.
Referenced by clearCooridinateArray(), createParticlesOnSurface(), createPriPart(), getCooridinate(), and getN().
|
private |
Definition at line 396 of file BoundaryGeometry.h.
Referenced by getPoint(), initialize(), printInfo(), and writeGeomToVtk().
|
private |
Definition at line 442 of file BoundaryGeometry.h.
Referenced by emitSecondaryFurmanPivi(), emitSecondaryVaughan(), and setVw().
|
private |
Definition at line 456 of file BoundaryGeometry.h.
Referenced by BoundaryGeometry(), initialize(), and ~BoundaryGeometry().
|
private |
Definition at line 443 of file BoundaryGeometry.h.
Referenced by emitSecondaryFurmanPivi(), and setBoundaryMatType().
|
private |
Definition at line 428 of file BoundaryGeometry.h.
Referenced by emitSecondaryFurmanPivi(), and emitSecondaryVaughan().
Vector_t BoundaryGeometry::sizeOfVoxel |
Definition at line 409 of file BoundaryGeometry.h.
Referenced by initialize().
|
private |
Definition at line 460 of file BoundaryGeometry.h.
Referenced by BoundaryGeometry(), execute(), and fastIsInside().
|
private |
Definition at line 458 of file BoundaryGeometry.h.
Referenced by BoundaryGeometry(), execute(), and initialize().
|
private |
Definition at line 459 of file BoundaryGeometry.h.
Referenced by BoundaryGeometry(), execute(), and initialize().
|
private |
Definition at line 462 of file BoundaryGeometry.h.
Referenced by BoundaryGeometry(), execute(), and partInside().
|
private |
Definition at line 461 of file BoundaryGeometry.h.
Referenced by BoundaryGeometry(), execute(), and intersectRayBoundary().
|
private |
Definition at line 397 of file BoundaryGeometry.h.
Referenced by computeMeshVoxelization(), createParticlesOnSurface(), createPriPart(), getNumBFaces(), getPoint(), initialize(), printInfo(), and writeGeomToVtk().
|
private |
Definition at line 401 of file BoundaryGeometry.h.
Referenced by initialize().
std::vector<Vector_t> BoundaryGeometry::TriBarycenters_m |
TriBarycenters_m | store the coordinates of barycentric points of triangles, The Id number is the same with triangle Id. |
Definition at line 306 of file BoundaryGeometry.h.
Referenced by createParticlesOnSurface(), createPriPart(), initialize(), and DataSink::writePartlossZASCII().
std::vector<short> BoundaryGeometry::TriBGphysicstag_m |
TriBGphysicstag_m | store the tags of each boundary triangle for proper physics action. |
Definition at line 331 of file BoundaryGeometry.h.
Referenced by createParticlesOnSurface(), createPriPart(), emitSecondaryFurmanPivi(), emitSecondaryNone(), emitSecondaryVaughan(), and initialize().
std::vector<double> BoundaryGeometry::TriFEPartloss_m |
TriFEPartloss_m | store the number of field emission/darkcurrent particles hitting the Id th triangle. The Id number is the same with triangle Id(not vertex ID). |
Definition at line 325 of file BoundaryGeometry.h.
Referenced by initialize(), partInside(), and DataSink::writePartlossZASCII().
|
private |
Definition at line 400 of file BoundaryGeometry.h.
Referenced by createParticlesOnSurface(), createPriPart(), emitSecondaryFurmanPivi(), emitSecondaryVaughan(), and initialize().
std::vector<double> BoundaryGeometry::TriPrPartloss_m |
TriPrPartloss_m[i],: | cummulative sum of primary particles charge hitting triangle 'i' |
Definition at line 312 of file BoundaryGeometry.h.
Referenced by initialize(), partInside(), and DataSink::writePartlossZASCII().
std::vector<double> BoundaryGeometry::TriSePartloss_m |
TriSePartloss_m | store the number of secondary particles hitting the Id th triangle. The Id number is the same with triangle Id(not vertex ID). |
Definition at line 318 of file BoundaryGeometry.h.
Referenced by initialize(), partInside(), and DataSink::writePartlossZASCII().
|
private |
Definition at line 437 of file BoundaryGeometry.h.
Referenced by emitSecondaryVaughan(), and setvEmax().
|
private |
Definition at line 435 of file BoundaryGeometry.h.
Referenced by emitSecondaryVaughan(), and setvEZero().
|
private |
Definition at line 438 of file BoundaryGeometry.h.
Referenced by emitSecondaryVaughan(), and setvKenergy().
|
private |
Definition at line 439 of file BoundaryGeometry.h.
Referenced by emitSecondaryVaughan(), and setvKtheta().
struct { ... } BoundaryGeometry::voxelMesh_m |
|
private |
Definition at line 436 of file BoundaryGeometry.h.
Referenced by emitSecondaryVaughan(), and setvSeyMax().
|
private |
Definition at line 434 of file BoundaryGeometry.h.
Referenced by emitSecondaryVaughan(), and setvSeyZero().
|
private |
Definition at line 440 of file BoundaryGeometry.h.
Referenced by emitSecondaryFurmanPivi(), emitSecondaryVaughan(), and setvVThermal().
|
private |
Definition at line 446 of file BoundaryGeometry.h.
Referenced by setWorkFunction().