OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
BoundaryGeometry Class Reference

#include <BoundaryGeometry.h>

Inheritance diagram for BoundaryGeometry:
Inheritance graph
[legend]
Collaboration diagram for BoundaryGeometry:
Collaboration graph
[legend]

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 ()
 
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)
 
InformprintInfo (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)
 
- Public Member Functions inherited from Definition
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...
 
- Public Member Functions inherited from Object
virtual ~Object ()
 
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 &)
 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
 
- Public Member Functions inherited from RCObject
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 BoundaryGeometryfind (const std::string &name)
 

Public Attributes

std::vector< Vector_tTriBarycenters_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
 
- Public Attributes inherited from Object
std::vector< AttributeitsAttr
 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_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
 
std::vector< Vector_tpartsp_m
 
std::vector< Vector_tpartsr_m
 
std::vector< double > apert_m
 
SecondaryEmissionPhysics sec_phys_m
 
bool nEmissionMode_m
 
double eInitThreshold_m
 
double vSeyZero_m
 
double vEzero_m
 
double vSeyMax_m
 
double vEmax_m
 
double vKenergy_m
 
double vKtheta_m
 
double vVThermal_m
 
double ppVw_m
 
int seBoundaryMatType_m
 
double workFunction_m
 
double fieldEnhancement_m
 
size_t maxFNemission_m
 
double fieldFNthreshold_m
 
double parameterFNA_m
 
double parameterFNB_m
 
double parameterFNY_m
 
double parameterFNVYZe_m
 
double parameterFNVYSe_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
 

Additional Inherited Members

- Protected Member Functions inherited from Definition
 Definition (int size, const char *name, const char *help)
 Constructor for exemplars. More...
 
 Definition (const std::string &name, Definition *parent)
 Constructor for clones. More...
 
- Protected Member Functions inherited from Object
 Object (int size, const char *name, const char *help)
 Constructor for exemplars. More...
 
 Object (const std::string &name, Object *parent)
 Constructor for clones. More...
 
- Protected Member Functions inherited from RCObject
 RCObject ()
 Default constructor. More...
 
 RCObject (const RCObject &)
 Copy constructor. More...
 
virtual ~RCObject ()=0
 
RCObjectoperator= (const RCObject &right)
 
- Protected Attributes inherited from Object
bool builtin
 Built-in flag. More...
 
bool modified
 Dirty flag. More...
 
bool flagged
 Object flag. More...
 

Detailed Description

Definition at line 47 of file BoundaryGeometry.h.

Member Enumeration Documentation

anonymous enum
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.

Enumerator
SEGMENT 
RAY 
LINE 

Definition at line 479 of file BoundaryGeometry.h.

Constructor & Destructor Documentation

BoundaryGeometry::BoundaryGeometry ( )
BoundaryGeometry::~BoundaryGeometry ( )
virtual

Definition at line 826 of file BoundaryGeometry.cpp.

References randGen_m.

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

Member Function Documentation

bool BoundaryGeometry::canReplaceBy ( Object object)
virtual

Test if replacement is allowed.

Reimplemented from Object.

Definition at line 830 of file BoundaryGeometry.cpp.

void BoundaryGeometry::clearCooridinateArray ( )
inline

Definition at line 140 of file BoundaryGeometry.h.

References partsr_m.

Referenced by Distribution::createBoundaryGeometry(), and Distribution::createPriPart().

void BoundaryGeometry::clearMomentaArray ( )
inline

Definition at line 147 of file BoundaryGeometry.h.

References partsp_m.

Referenced by Distribution::createPriPart().

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

Return a clone.

Implements Object.

Definition at line 835 of file BoundaryGeometry.cpp.

References BoundaryGeometry().

Referenced by BoundaryGeometry().

Here is the call graph for this function:

void BoundaryGeometry::computeMeshVoxelization ( void  )
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().

Here is the call graph for this function:

void BoundaryGeometry::createParticlesOnSurface ( size_t  n,
double  darkinward,
OpalBeamline itsOpalBeamline,
PartBunchBase< double, 3 > *  itsBunch 
)
void BoundaryGeometry::createPriPart ( size_t  n,
double  darkinward,
OpalBeamline itsOpalBeamline,
PartBunchBase< double, 3 > *  itsBunch 
)
void BoundaryGeometry::disableDebug ( enum DebugFlags  flags)
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 
)
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 
)
void BoundaryGeometry::enableDebug ( enum DebugFlags  flags)
inline

Definition at line 365 of file BoundaryGeometry.h.

References debugFlags_m.

void BoundaryGeometry::execute ( )
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().

Here is the call graph for this function:

int BoundaryGeometry::fastIsInside ( const Vector_t reference_pt,
const Vector_t P 
)
BoundaryGeometry * BoundaryGeometry::find ( const std::string &  name)
static
double BoundaryGeometry::getA ( )
inline

Definition at line 151 of file BoundaryGeometry.h.

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

Referenced by FieldSolver::initSolver().

Here is the call graph for this function:

double BoundaryGeometry::getB ( )
inline

Definition at line 155 of file BoundaryGeometry.h.

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

Here is the call graph for this function:

double BoundaryGeometry::getC ( )
inline

Definition at line 159 of file BoundaryGeometry.h.

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

Here is the call graph for this function:

Vector_t BoundaryGeometry::getCooridinate ( size_t  i)
inline

Definition at line 137 of file BoundaryGeometry.h.

References partsr_m.

Referenced by Distribution::createBoundaryGeometry(), and Distribution::createPriPart().

std::string BoundaryGeometry::getDistribution ( )
inline

Definition at line 125 of file BoundaryGeometry.h.

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

Here is the call graph for this function:

std::vector<std::string> BoundaryGeometry::getDistributionArray ( )
inline

Definition at line 129 of file BoundaryGeometry.h.

References DISTRS, Attributes::getStringArray(), and Object::itsAttr.

Here is the call graph for this function:

std::string BoundaryGeometry::getFilename ( ) const
inline

Definition at line 117 of file BoundaryGeometry.h.

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

Here is the call graph for this function:

Vector_t BoundaryGeometry::gethr ( )
inline

Return the hr_m.

Definition at line 279 of file BoundaryGeometry.h.

References voxelMesh_m.

Referenced by DataSink::writePartlossZASCII().

double BoundaryGeometry::getL1 ( )
inline

Definition at line 171 of file BoundaryGeometry.h.

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

Here is the call graph for this function:

double BoundaryGeometry::getL2 ( )
inline

Definition at line 175 of file BoundaryGeometry.h.

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

Here is the call graph for this function:

double BoundaryGeometry::getLength ( )
inline

Definition at line 167 of file BoundaryGeometry.h.

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

Here is the call graph for this function:

Vector_t BoundaryGeometry::getmaxcoords ( )
inline

Return the maxcoords_m.

Definition at line 298 of file BoundaryGeometry.h.

References maxExtent_m.

Vector_t BoundaryGeometry::getmincoords ( )
inline

Return the mincoords_m.

Definition at line 292 of file BoundaryGeometry.h.

References minExtent_m.

Referenced by DataSink::writePartlossZASCII().

Vector_t BoundaryGeometry::getMomenta ( size_t  i)
inline

Definition at line 143 of file BoundaryGeometry.h.

References partsp_m.

Referenced by Distribution::createPriPart().

size_t BoundaryGeometry::getN ( )
inline

Definition at line 133 of file BoundaryGeometry.h.

References partsr_m.

Referenced by Distribution::createBoundaryGeometry(), and Distribution::createPriPart().

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

Return the nr_m.

Definition at line 285 of file BoundaryGeometry.h.

References voxelMesh_m.

Referenced by DataSink::writePartlossZASCII().

size_t BoundaryGeometry::getNumBFaces ( )
inline

Return number of boundary faces.

Definition at line 272 of file BoundaryGeometry.h.

References Triangles_m.

Referenced by DataSink::writePartlossZASCII().

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

Definition at line 163 of file BoundaryGeometry.h.

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

Here is the call graph for this function:

std::string BoundaryGeometry::getTopology ( ) const
inline

Definition at line 121 of file BoundaryGeometry.h.

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

Referenced by printInfo().

Here is the call graph for this function:

bool BoundaryGeometry::hasApperture ( )
inlineprivate

Definition at line 470 of file BoundaryGeometry.h.

References apert_m.

Referenced by initialize(), and isOutsideApperture().

void BoundaryGeometry::initialize ( )
int BoundaryGeometry::intersectLineSegmentBoundary ( const Vector_t P0,
const Vector_t P1,
Vector_t intersection_pt,
int &  triangle_id 
)
private
int BoundaryGeometry::intersectLineTriangle ( const enum INTERSECTION_TESTS  kind,
const Vector_t P0,
const Vector_t P1,
const int  triangle_id,
Vector_t I 
)
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().

Here is the call graph for this function:

int BoundaryGeometry::intersectRayBoundary ( const Vector_t P,
const Vector_t v,
Vector_t I 
)
int BoundaryGeometry::intersectTinyLineSegmentBoundary ( const Vector_t P,
const Vector_t Q,
Vector_t intersect_pt,
int &  triangle_id 
)
private
int BoundaryGeometry::intersectTriangleVoxel ( const int  triangle_id,
const int  i,
const int  j,
const int  k 
)
private

Definition at line 867 of file BoundaryGeometry.cpp.

References getPoint(), Voxel::intersect(), and voxelMesh_m.

Referenced by computeMeshVoxelization().

Here is the call graph for this function:

bool BoundaryGeometry::isOutsideApperture ( Vector_t  x)
inline

Definition at line 333 of file BoundaryGeometry.h.

References apert_m, and hasApperture().

Here is the call graph for this function:

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

Definition at line 1156 of file BoundaryGeometry.cpp.

References voxelMesh_m.

Referenced by intersectTinyLineSegmentBoundary(), and mapPoint2Voxel().

Vector_t BoundaryGeometry::mapPoint2Voxel ( const Vector_t pt)
inlineprivate

Definition at line 1168 of file BoundaryGeometry.cpp.

References floor(), mapIndices2Voxel(), and voxelMesh_m.

Here is the call graph for this function:

int BoundaryGeometry::mapVoxelIndices2ID ( const int  i,
const int  j,
const int  k 
)
inlineprivate

Definition at line 1125 of file BoundaryGeometry.cpp.

References voxelMesh_m.

Referenced by computeMeshVoxelization(), and intersectTinyLineSegmentBoundary().

void BoundaryGeometry::operator= ( const BoundaryGeometry )
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

Parameters
r,momenta
v,andtime step
dtwill 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().

Here is the call graph for this function:

Inform & BoundaryGeometry::printInfo ( Inform os) const

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

Here is the call graph for this function:

void BoundaryGeometry::setBoundaryMatType ( int  BoundaryMatType)
inline

Definition at line 219 of file BoundaryGeometry.h.

References seBoundaryMatType_m.

void BoundaryGeometry::setEInitThreshold ( double  einitthreshold)
inline

Definition at line 223 of file BoundaryGeometry.h.

References eInitThreshold_m.

void BoundaryGeometry::setFieldEnhancement ( double  fieldEnhancement)
inline

Definition at line 187 of file BoundaryGeometry.h.

References fieldEnhancement_m.

void BoundaryGeometry::setFNParameterA ( double  parameterFNA)
inline

Definition at line 199 of file BoundaryGeometry.h.

References parameterFNA_m.

void BoundaryGeometry::setFNParameterB ( double  parameterFNB)
inline

Definition at line 203 of file BoundaryGeometry.h.

References parameterFNB_m.

void BoundaryGeometry::setFNParameterVYSe ( double  parameterFNVYSe)
inline

Definition at line 215 of file BoundaryGeometry.h.

References parameterFNVYSe_m.

void BoundaryGeometry::setFNParameterVYZe ( double  parameterFNVYZe)
inline

Definition at line 211 of file BoundaryGeometry.h.

References parameterFNVYZe_m.

void BoundaryGeometry::setFNParameterY ( double  parameterFNY)
inline

Definition at line 207 of file BoundaryGeometry.h.

References parameterFNY_m.

void BoundaryGeometry::setFNTreshold ( double  fieldFNthreshold)
inline

Definition at line 195 of file BoundaryGeometry.h.

References fieldFNthreshold_m.

void BoundaryGeometry::setMaxFN ( size_t  maxFNemission)
inline

Definition at line 191 of file BoundaryGeometry.h.

References maxFNemission_m.

void BoundaryGeometry::setNEmissionMode ( bool  nEmissionMode)
inline

Definition at line 179 of file BoundaryGeometry.h.

References nEmissionMode_m.

void BoundaryGeometry::setvEmax ( double  vEmax)
inline

Definition at line 243 of file BoundaryGeometry.h.

References vEmax_m.

void BoundaryGeometry::setvEZero ( double  vEZero)
inline

Definition at line 233 of file BoundaryGeometry.h.

References vEzero_m.

void BoundaryGeometry::setvKenergy ( double  vKenergy)
inline

Definition at line 249 of file BoundaryGeometry.h.

References vKenergy_m.

void BoundaryGeometry::setvKtheta ( double  vKtheta)
inline

Definition at line 255 of file BoundaryGeometry.h.

References vKtheta_m.

void BoundaryGeometry::setvSeyMax ( double  vSeyMax)
inline

Definition at line 238 of file BoundaryGeometry.h.

References vSeyMax_m.

void BoundaryGeometry::setvSeyZero ( double  vSeyZero)
inline

Definition at line 228 of file BoundaryGeometry.h.

References vSeyZero_m.

void BoundaryGeometry::setvVThermal ( double  vVThermal)
inline

Definition at line 261 of file BoundaryGeometry.h.

References vVThermal_m.

void BoundaryGeometry::setVw ( double  ppVw)
inline

Definition at line 265 of file BoundaryGeometry.h.

References ppVw_m.

void BoundaryGeometry::setWorkFunction ( double  workFunction)
inline

Definition at line 183 of file BoundaryGeometry.h.

References workFunction_m.

void BoundaryGeometry::update ( )
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().

Here is the call graph for this function:

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

Here is the call graph for this function:

Member Data Documentation

std::vector<double> BoundaryGeometry::apert_m
private

Definition at line 426 of file BoundaryGeometry.h.

Referenced by hasApperture(), initialize(), and isOutsideApperture().

int BoundaryGeometry::debugFlags_m
private
double BoundaryGeometry::eInitThreshold_m
private

Definition at line 431 of file BoundaryGeometry.h.

Referenced by createParticlesOnSurface(), createPriPart(), and setEInitThreshold().

double BoundaryGeometry::fieldEnhancement_m
private

Definition at line 447 of file BoundaryGeometry.h.

Referenced by setFieldEnhancement().

double BoundaryGeometry::fieldFNthreshold_m
private

Definition at line 449 of file BoundaryGeometry.h.

Referenced by setFNTreshold().

std::string BoundaryGeometry::h5FileName_m
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().

Vector_t BoundaryGeometry::maxExtent_m
private

Definition at line 404 of file BoundaryGeometry.h.

Referenced by createPriPart(), fastIsInside(), getmaxcoords(), initialize(), and printInfo().

size_t BoundaryGeometry::maxFNemission_m
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().

Vector_t BoundaryGeometry::minExtent_m
private

Definition at line 403 of file BoundaryGeometry.h.

Referenced by createPriPart(), fastIsInside(), getmincoords(), initialize(), and printInfo().

bool BoundaryGeometry::nEmissionMode_m
private
Vektor<int, 3> BoundaryGeometry::nr_m

Definition at line 410 of file BoundaryGeometry.h.

Referenced by initialize().

double BoundaryGeometry::parameterFNA_m
private

Definition at line 450 of file BoundaryGeometry.h.

Referenced by setFNParameterA().

double BoundaryGeometry::parameterFNB_m
private

Definition at line 451 of file BoundaryGeometry.h.

Referenced by setFNParameterB().

double BoundaryGeometry::parameterFNVYSe_m
private

Definition at line 454 of file BoundaryGeometry.h.

Referenced by setFNParameterVYSe().

double BoundaryGeometry::parameterFNVYZe_m
private

Definition at line 453 of file BoundaryGeometry.h.

Referenced by setFNParameterVYZe().

double BoundaryGeometry::parameterFNY_m
private

Definition at line 452 of file BoundaryGeometry.h.

Referenced by setFNParameterY().

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

Definition at line 418 of file BoundaryGeometry.h.

Referenced by clearMomentaArray(), createPriPart(), and getMomenta().

std::vector<Vector_t> BoundaryGeometry::partsr_m
private
std::vector<Vector_t> BoundaryGeometry::Points_m
private

Definition at line 396 of file BoundaryGeometry.h.

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

double BoundaryGeometry::ppVw_m
private

Definition at line 442 of file BoundaryGeometry.h.

Referenced by emitSecondaryFurmanPivi(), emitSecondaryVaughan(), and setVw().

gsl_rng* BoundaryGeometry::randGen_m
private

Definition at line 456 of file BoundaryGeometry.h.

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

int BoundaryGeometry::seBoundaryMatType_m
private

Definition at line 443 of file BoundaryGeometry.h.

Referenced by emitSecondaryFurmanPivi(), and setBoundaryMatType().

SecondaryEmissionPhysics BoundaryGeometry::sec_phys_m
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().

IpplTimings::TimerRef BoundaryGeometry::TfastIsInside_m
private

Definition at line 460 of file BoundaryGeometry.h.

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

IpplTimings::TimerRef BoundaryGeometry::Tinitialize_m
private

Definition at line 458 of file BoundaryGeometry.h.

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

IpplTimings::TimerRef BoundaryGeometry::TisInside_m
private

Definition at line 459 of file BoundaryGeometry.h.

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

IpplTimings::TimerRef BoundaryGeometry::TPartInside_m
private

Definition at line 462 of file BoundaryGeometry.h.

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

IpplTimings::TimerRef BoundaryGeometry::TRayTrace_m
private

Definition at line 461 of file BoundaryGeometry.h.

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

std::vector<std::array<unsigned int,4> > BoundaryGeometry::Triangles_m
private
std::vector<double> BoundaryGeometry::TriAreas_m
private

Definition at line 401 of file BoundaryGeometry.h.

Referenced by initialize().

std::vector<Vector_t> BoundaryGeometry::TriBarycenters_m
Parameters
TriBarycenters_mstore 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
Parameters
TriBGphysicstag_mstore 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
Parameters
TriFEPartloss_mstore 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().

std::vector<Vector_t> BoundaryGeometry::TriNormals_m
private
std::vector<double> BoundaryGeometry::TriPrPartloss_m
Parameters
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
Parameters
TriSePartloss_mstore 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().

double BoundaryGeometry::vEmax_m
private

Definition at line 437 of file BoundaryGeometry.h.

Referenced by emitSecondaryVaughan(), and setvEmax().

double BoundaryGeometry::vEzero_m
private

Definition at line 435 of file BoundaryGeometry.h.

Referenced by emitSecondaryVaughan(), and setvEZero().

double BoundaryGeometry::vKenergy_m
private

Definition at line 438 of file BoundaryGeometry.h.

Referenced by emitSecondaryVaughan(), and setvKenergy().

double BoundaryGeometry::vKtheta_m
private

Definition at line 439 of file BoundaryGeometry.h.

Referenced by emitSecondaryVaughan(), and setvKtheta().

struct { ... } BoundaryGeometry::voxelMesh_m
double BoundaryGeometry::vSeyMax_m
private

Definition at line 436 of file BoundaryGeometry.h.

Referenced by emitSecondaryVaughan(), and setvSeyMax().

double BoundaryGeometry::vSeyZero_m
private

Definition at line 434 of file BoundaryGeometry.h.

Referenced by emitSecondaryVaughan(), and setvSeyZero().

double BoundaryGeometry::vVThermal_m
private

Definition at line 440 of file BoundaryGeometry.h.

Referenced by emitSecondaryFurmanPivi(), emitSecondaryVaughan(), and setvVThermal().

double BoundaryGeometry::workFunction_m
private

Definition at line 446 of file BoundaryGeometry.h.

Referenced by setWorkFunction().


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