![]() |
Garfield 0.3
Toolkit for the detailed simulation of particle detectors based on ionization measurement in gases and semiconductors
|
Namespaces | |
namespace | Degrade |
namespace | Magboltz |
namespace | Numerics |
Collection of numerical routines. | |
namespace | Polygon |
Classes | |
class | AvalancheGrid |
Calculate avalanches in a uniform electric field using avalanche statistics. More... | |
class | AvalancheGridSpaceCharge |
Propagates avalanches with the 2d (axi-symmetric) space-charge routine from Lippmann, Riegler (2004) in uniform background fields. More... | |
class | AvalancheMC |
Calculate drift lines and avalanches based on macroscopic transport coefficients, using Monte Carlo integration. More... | |
class | AvalancheMicroscopic |
Calculate electron drift lines and avalanches using microscopic tracking. More... | |
class | ComponentAnalyticField |
Semi-analytic calculation of two-dimensional configurations consisting of wires, planes, and tubes. More... | |
class | ComponentAnsys121 |
Component for importing and interpolating two-dimensional ANSYS field maps. More... | |
class | ComponentAnsys123 |
Component for importing and interpolating three-dimensional ANSYS field maps. More... | |
class | ComponentComsol |
Component for importing and interpolating Comsol field maps. More... | |
class | ComponentConstant |
Component with constant electric field. More... | |
class | ComponentCST |
Component for importing and interpolating field maps from CST. More... | |
class | ComponentElmer |
Component for importing field maps computed by Elmer. More... | |
class | ComponentElmer2d |
Component for importing two-dimensional field maps computed by Elmer. More... | |
class | ComponentFieldMap |
Base class for components based on finite-element field maps. More... | |
class | ComponentGrid |
Component for interpolating field maps on a regular mesh. More... | |
class | ComponentNeBem2d |
Two-dimensional implementation of the nearly exact Boundary Element Method. More... | |
class | ComponentNeBem3d |
Interface to neBEM. More... | |
class | ComponentNeBem3dMap |
Component for interpolating field maps stored in a mesh generated by neBEM. More... | |
class | ComponentParallelPlate |
Component for parallel-plate geometries. More... | |
class | ComponentTcad2d |
Interpolation in a two-dimensional field map created by Sentaurus Device. More... | |
class | ComponentTcad3d |
Interpolation in a three-dimensional field map created by Sentaurus Device. More... | |
class | ComponentTcadBase |
Interpolation in a field map created by Sentaurus Device. More... | |
class | ComponentUser |
Simple component with electric field given by a user function. More... | |
class | ComponentVoxel |
Component for interpolating field maps stored in a regular mesh. More... | |
class | DriftLineRKF |
Calculation of drift lines based on macroscopic transport coefficients using Runge-Kutta-Fehlberg integration. More... | |
class | Geometry |
Abstract base class for geometry classes. More... | |
class | GeometryRoot |
Use a geometry defined using the ROOT TGeo package. More... | |
class | GeometrySimple |
"Native" geometry, using simple shapes. More... | |
class | KDTree |
Main k-d tree class. More... | |
class | KDTreeNode |
A node in the k-d tree. More... | |
struct | KDTreeResult |
Search result. More... | |
class | MediumCdTe |
Cadmium-Telluride. More... | |
class | MediumConductor |
Conducting medium. More... | |
class | MediumDiamond |
Diamond. More... | |
class | MediumGaAs |
Gallium-Arsenide. More... | |
class | MediumGaN |
Gallium-Nitride. More... | |
class | MediumGas |
Base class for gas media. More... | |
class | MediumMagboltz |
Interface to Magboltz (version 11). More... | |
class | MediumPlastic |
Plastic medium. More... | |
class | MediumSilicon |
Solid crystalline silicon More... | |
class | OpticalData |
Photoabsorption cross-sections for some gases. More... | |
struct | Panel |
Surface panel. More... | |
class | PlottingEngine |
Plotting style. More... | |
class | QuadTree |
Quadtree search. More... | |
class | Random |
class | RandomEngine |
Abstract base class for random number generators. More... | |
class | RandomEngineRoot |
class | RandomEngineSTL |
class | Shaper |
Class for signal processing. More... | |
class | Solid |
Abstract base class for solids. More... | |
class | SolidBox |
Box. More... | |
class | SolidExtrusion |
Extrusion. More... | |
class | SolidHole |
Box with a cylindrical hole. More... | |
class | SolidRidge |
Triangular prism (Toblerone bar). More... | |
class | SolidSphere |
Sphere. More... | |
class | SolidTube |
Cylindrical tube. More... | |
class | SolidWire |
Wire. More... | |
class | Track |
Abstract base class for track generation. More... | |
class | TrackBichsel |
Generate tracks using differential cross-sections for silicon computed by Hans Bichsel. More... | |
class | TrackDegrade |
Interface to Degrade. More... | |
class | TrackElectron |
[WIP] Ionization calculation based on MIP program (S. Biagi). More... | |
class | TrackHeed |
Generate tracks using Heed++. More... | |
class | TrackPAI |
class | TrackSimple |
Generate tracks based on a cluster density given by the user. More... | |
class | TrackSrim |
Generate tracks based on SRIM energy loss, range and straggling tables. More... | |
class | TrackTrim |
Generate tracks based on TRIM output files. More... | |
class | Vec1Impl |
class | Vec2Impl |
class | Vec3Impl |
class | Vector |
class | ViewBase |
Base class for visualization classes. More... | |
class | ViewCell |
Visualize the "cell" defined in an analytic-field component. More... | |
class | ViewDrift |
Visualize drift lines and tracks. More... | |
class | ViewFEMesh |
Draw the mesh of a field-map component. More... | |
class | ViewField |
Visualize the potential or electric field of a component or sensor. More... | |
class | ViewGeometry |
Visualize a geometry defined using the "native" shapes. More... | |
class | ViewIsochrons |
Draw equal time contour lines. More... | |
class | ViewMedium |
Plot transport coefficients as function of electric and magnetic field. More... | |
class | ViewSignal |
Plot the signal computed by a sensor as a ROOT histogram. More... |
Typedefs | |
typedef std::vector< std::vector< double > > | KDTreeArray |
using | Vec3 = Vec3Impl<double> |
using | Vec3D = Vec3Impl<double> |
using | Vec3F = Vec3Impl<float> |
using | ViewMesh = ViewFEMesh |
Enumerations | |
enum class | Particle { Electron = 0 , Ion , Hole , Positron , NegativeIon , Photon } |
enum class | MPRunMode { Normal = 0 , GPUExclusive } |
Functions | |
class | GARFIELD_CLASS_NAME (Component) |
Abstract base class for components. | |
class | GARFIELD_CLASS_NAME (Medium) |
Abstract base class for components. | |
void | SetDefaultStyle () |
void | SetSerif () |
void | SetSansSerif () |
double | RndmUniform () |
Draw a random number uniformly distributed in the range [0, 1). | |
double | RndmUniformPos () |
Draw a random number uniformly distributed in the range (0, 1). | |
double | RndmGaussian () |
Draw a Gaussian random variate with mean zero and standard deviation one. | |
double | RndmGaussian (const double mu, const double sigma) |
Draw a Gaussian random variate with mean mu and standard deviation sigma. | |
double | RndmLorentzian (const double mu, const double gamma) |
Draw a Lorentzian random variate with mean mu and half-width at half maximum gamma. | |
double | RndmVoigt (const double mu, const double sigma, const double gamma) |
Draw a random number according to a Voigt function with mean mu. | |
unsigned int | RndmYuleFurry (const double mean) |
Draw a random number from a geometric distribution. | |
double | RndmPolya (const double theta) |
Draw a Polya distributed random number. | |
double | RndmLandau () |
Draw a random number from a Landau distribution. | |
double | RndmVavilov (const double rkappa, const double beta2) |
Draw a random number from a Vavilov distribution. | |
int | RndmPoisson (const double mean) |
Draw a random number from a Poisson distribution. | |
double | RndmHeedWF (const double w, const double f) |
Draw a random energy needed to create a single electron in a material asymptotic work function W and Fano factor F, according to Igor Smirnov's phenomenological model. | |
void | RndmDirection (double &dx, double &dy, double &dz, const double length=1.) |
Draw a random (isotropic) direction vector. | |
class | GARFIELD_CLASS_NAME (Sensor) |
Sensor | |
class | GARFIELD_CLASS_NAME (TetrahedralTree) |
Helper class for searches in field maps. | |
void | ltrim (std::string &line) |
void | rtrim (std::string &line) |
std::vector< std::string > | tokenize (const std::string &line) |
bool | startsWith (const std::string &line, const std::string &s) |
Variables | |
ComponentNeBem3d * | gComponentNeBem3d |
PlottingEngine | plottingEngine |
typedef std::vector<std::vector<double> > Garfield::KDTreeArray |
using Garfield::Vec3 = Vec3Impl<double> |
Definition at line 27 of file TetrahedralTree.hh.
using Garfield::Vec3D = Vec3Impl<double> |
using Garfield::Vec3F = Vec3Impl<float> |
using Garfield::ViewMesh = ViewFEMesh |
Definition at line 163 of file ViewFEMesh.hh.
|
strong |
|
strong |
Enumerator | |
---|---|
Electron | |
Ion | |
Hole | |
Positron | |
NegativeIon | |
Photon |
Definition at line 7 of file GarfieldConstants.hh.
class Garfield::GARFIELD_CLASS_NAME | ( | Component | ) |
Abstract base class for components.
Default constructor.
Constructor
Destructor
Define the geometry.
Reset.
Get the medium at a given location (x, y, z).
Calculate the drift field at given point.
x,y,z | coordinates [cm]. |
ex,ey,ez | components of the electric field [V/cm]. |
m | pointer to the medium at this location. |
status | status flag |
Status flags:
0: Inside an active medium > 0: Inside a wire of type X -4 ... -1: On the side of a plane where no wires are -5: Inside the mesh but not in an active medium -6: Outside the mesh -10: Unknown potential type (should not occur) other: Other cases (should not occur)
Calculate the drift field [V/cm] and potential [V] at (x, y, z).
Calculate the drift field [V/cm] at (x, y, z).
Calculate the (drift) electrostatic potential [V] at (x, y, z).
Calculate the voltage range [V].
Calculate the weighting field at a given point and for a given electrode.
x,y,z | coordinates [cm]. |
wx,wy,wz | components of the weighting field [1/cm]. |
label | name of the electrode |
Calculate the weighting potential at a given point.
x,y,z | coordinates [cm]. |
label | name of the electrode. |
Return the time steps at which the delayed weighting potential/field are stored/evaluated.
Calculate the delayed weighting field at a given point and time and for a given electrode.
x,y,z | coordinates [cm]. |
t | time [ns]. |
wx,wy,wz | components of the weighting field [1/cm]. |
label | name of the electrode |
Calculate the delayed weighting potential at a given point and time and for a given electrode.
x,y,z | coordinates [cm]. |
t | time [ns]. |
label | name of the electrode |
Calculate the delayed weighting potentials at a given point and for a given electrode, for a set of pre-defined times.
Calculate the magnetic field at a given point.
x,y,z | coordinates [cm]. |
bx,by,bz | components of the magnetic field [Tesla]. |
status | status flag. |
Set a constant magnetic field.
Ready for use?
Does the component have a 3D field (map)?
Get the bounding box coordinates.
Get the coordinates of the elementary cell.
Return the number of mesh elements.
Get the indices of the nodes constituting a given element.
Get the region/material of a mesh element and a flag whether it is associated to an active medium.
Return the number of mesh nodes.
Get the coordinates of a mesh node.
Integrate the normal component of the electric field over a circle.
xc,yc | centre of the circle [cm] |
r | radius [cm] |
nI | number of intervals for the integration |
Integrate the normal component of the electric field over a sphere.
xc,yc,zc | centre of the sphere [cm] |
r | radius of the sphere [cm] |
nI | number of integration intervals in phi and theta |
Integrate the normal component of the electric field over a parallelogram.
x0,y0,z0 | coordinates of one of the corners [cm] |
dx1,dy1,dz1 | vector to one of the adjacent corners [cm] |
dx2,dy2,dz2 | vector to the other adjacent corner [cm] |
nU,nV | number of integration points in the two directions |
Integrate the normal component of the weighting field over a parallelogram.
Integrate the electric field flux through a line from (x0,y0,z0) to (x1,y1,z1) along a direction (xp,yp,zp).
x0,y0,z0 | coordinates of the starting point |
x1,y1,z1 | coordinates of the end point |
xp,yp,zp | normal vector |
nI | number of intervals for the integration |
isign | include both negative and positive contributions (0) or only contributions with a given polarity (+1,-1) |
Determine whether the line between two points crosses a wire.
x0,y0,z0 | first point [cm]. |
x1,y1,z1 | second point [cm] |
xc,yc,zc | point [cm] where the line crosses the wire or the coordinates of the wire centre. |
centre | flag whether to return the coordinates of the line-wire crossing point or of the wire centre. |
rc | radius [cm] of the wire. |
Determine whether a particle is inside the trap radius of a wire.
q0 | charge of the particle [in elementary charges]. |
x0,y0,z0 | position [cm] of the particle. |
xw,yw | coordinates of the wire (if applicable). |
rw | radius of the wire (if applicable). |
Determine whether the line between two points crosses a plane.
Enable simple periodicity in the
Enable simple periodicity in the
Enable simple periodicity in the
Return periodicity flags.
Enable mirror periodicity in the
Enable mirror periodicity in the
Enable mirror periodicity in the
Return mirror periodicity flags.
Enable axial periodicity in the
Enable axial periodicity in the
Enable axial periodicity in the
Return axial periodicity flags.
Enable rotation symmetry around the
Enable rotation symmetry around the
Enable rotation symmetry around the
Return rotation symmetry flags.
Enable triangular periodicity in the
Enable triangular periodicity in the
Enable triangular periodicity in the
Switch on debugging messages.
Switch off debugging messages.
Does the component have a non-zero magnetic field?
Does the component have maps of the Townsend coefficient?
Does the component have maps of the attachment coefficient?
Does the component have maps of the low-field mobility?
Does the component have velocity maps?
Get the electron attachment coefficient.
Get the hole attachment coefficient.
Get the hole Mobility coefficient.
Get the electron Townsend coefficient.
Get the hole Townsend coefficient.
Get the electron drift velocity.
Get the hole drift velocity.
Create and initialise GPU Transfer class
Class name.
Pointer to the geometry.
Constant magnetic field.
Ready for use?
Switch on/off debugging messages
Simple periodicity in x, y, z.
Mirror periodicity in x, y, z.
Axial periodicity in x, y, z.
Rotation symmetry around x-axis, y-axis, z-axis.
Triangle symmetric in the xy, xz, and yz plane.
Triangle symmetric octant of imported map (0 < phi < Pi/4 --> octant 1).
Octants where |x| >= |y|
Time steps at which the delayed weighting potentials/fields are stored.
Reset the component.
Verify periodicities.
Definition at line 1 of file Component.hh.
class Garfield::GARFIELD_CLASS_NAME | ( | Medium | ) |
Abstract base class for components.
Constructor
Destructor
Return the id number of the class instance.
Get the medium name/identifier.
Is this medium a gas?
Is this medium a semiconductor?
Is this medium a conductor?
Set the temperature [K].
Get the temperature [K].
Set the relative static dielectric constant.
Get the relative static dielectric constant.
Get number of components of the medium.
Get the name and fraction of a given component.
Set the effective atomic number.
Get the effective atomic number.
Set the effective atomic weight.
Get the effective atomic weight.
Set the number density [cm-3].
Get the number density [cm-3].
Set the mass density [g/cm3].
Get the mass density [g/cm3].
Switch electron/ion/hole transport on/off.
Make the medium ionisable or non-ionisable.
Is charge carrier transport enabled in this medium?
Does the medium have electron scattering rates?
Is charge deposition by charged particles/photon enabled in this medium?
Set the W value (average energy to produce an electron/ion or e/h pair).
Get the W value.
Set the Fano factor.
Get the Fano factor.
Plot the drift velocity as function of the electric field.
Plot the diffusion coefficients as function of the electric field.
Plot the Townsend coefficient(s) as function of the electric field.
Plot the attachment coefficient(s) as function of the electric field.
Plot Townsend and attachment coefficients.
Drift velocity [cm / ns]
Flux (mean velocity; shorthand: wv) and bulk (center of mass velocity; shorthand: wr) drift velocity [cm / ns]
Longitudinal and transverse diffusion coefficients [cm1/2]
Diffusion tensor: diagonal elements are the diffusion coefficients [cm] along e, btrans, e x b, off-diagonal elements are the covariances
Ionisation coefficient [cm-1]
Attachment coefficient [cm-1]
TOF Ionisation rate [ns-1]
TOF Attachment Rate [ns-1]
Lorentz angle
Low-field mobility [cm2 V-1 ns-1]
Dispersion relation (energy vs. wave vector)
Sample the momentum vector for a given energy (only meaningful in semiconductors).
Null-collision rate [ns-1]
Collision rate [ns-1] for given electron energy
Sample the collision type. Update energy and direction vector.
Drift velocity [cm / ns]
Longitudinal and transverse diffusion coefficients [cm1/2]
Diffusion tensor
Ionisation coefficient [cm-1]
Attachment coefficient [cm-1]
Low-field mobility [cm2 V-1 ns-1]
Ion drift velocity [cm / ns]
Longitudinal and transverse diffusion coefficients [cm1/2]
Dissociation coefficient
Low-field ion mobility [cm2 V-1 ns-1]
Negative ion drift velocity [cm / ns]
Low-field negative ion mobility [cm2 V-1 ns-1]
Set the range of fields to be covered by the transport tables.
Set the fields and E-B angles to be used in the transport tables.
Get the fields and E-B angles used in the transport tables.
Set an entry in the table of drift speeds along E.
Get an entry in the table of drift speeds along E.
Set an entry in the table of drift speeds along ExB.
Get an entry in the table of drift speeds along ExB.
Set an entry in the table of drift speeds along Btrans.
Get an entry in the table of drift speeds along Btrans.
Set an entry in the table of flux drift speeds.
Get an entry in the table of flux drift speeds.
Set an entry in the table of bulk drift speeds.
Get an entry in the table of bulk drift speeds.
Set an entry in the table of longitudinal diffusion coefficients.
Get an entry in the table of longitudinal diffusion coefficients.
Set an entry in the table of transverse diffusion coefficients.
Get an entry in the table of transverse diffusion coefficients.
Set an entry in the table of Townsend coefficients.
Get an entry in the table of Townsend coefficients.
Set an entry in the table of attachment coefficients.
Get an entry in the table of attachment coefficients.
Set an entry in the table of ionization rate of TOF.
Get an entry in the table of ionization rate of TOF.
Set an entry in the table of attachment rate of TOF.
Get an entry in the table of attachment rate of TOF.
Set an entry in the table of Lorentz angles.
Get an entry in the table of Lorentz angles.
Set an entry in the table of drift speeds along E.
Get an entry in the table of drift speeds along E.
Set an entry in the table of drift speeds along ExB.
Get an entry in the table of drift speeds along ExB.
Set an entry in the table of drift speeds along Btrans.
Get an entry in the table of drift speeds along Btrans.
Set an entry in the table of longitudinal diffusion coefficients.
Get an entry in the table of longitudinal diffusion coefficients.
Set an entry in the table of transverse diffusion coefficients.
Get an entry in the table of transverse diffusion coefficients.
Set an entry in the table of Townsend coefficients.
Get an entry in the table of Townsend coefficients.
Set an entry in the table of attachment coefficients.
Get an entry in the table of attachment coefficients.
Initialise the table of ion mobilities from a list of electric fields and corresponding mobilities. The mobilities will be interpolated at the electric fields of the currently set grid.
Set an entry in the table of ion mobilities.
Get an entry in the table of ion mobilities.
Set an entry in the table of longitudinal diffusion coefficients.
Get an entry in the table of longitudinal diffusion coefficients.
Set an entry in the table of transverse diffusion coefficients.
Get an entry in the table of transverse diffusion coefficients.
Set an entry in the table of dissociation coefficients.
Get an entry in the table of dissociation coefficients.
Set an entry in the table of negative ion mobilities.
Get an entry in the table of negative ion mobilities.
Reset all tables of transport parameters.
Select the extrapolation method for fields below/above the table range. Possible options are "constant", "linear", and "exponential".
Set the degree of polynomial interpolation (usually 2).
Get the energy range [eV] of the available optical data.
Get the complex dielectric function at a given energy.
Switch on/off debugging messages
Create and initialise GPU Transfer class
Definition at line 1 of file Medium.hh.
class Garfield::GARFIELD_CLASS_NAME | ( | Sensor | ) |
Sensor
Default constructor.
Destructor.
Constructor from a single component.
Add a component.
Get the number of components attached to the sensor.
Retrieve the pointer to a given component.
Activate/deactivate a given component.
Activate/deactivate use of the magnetic field of a given component.
Does the sensor have a non-zero magnetic field?
Add an electrode.
Get the number of electrodes attached to the sensor.
Remove all electrodes.
Remove all components, electrodes and reset the sensor.
Get the drift field and potential at (x, y, z).
Get the drift field at (x, y, z).
Get the magnetic field at (x, y, z).
Get the weighting field at (x, y, z).
Get the weighting potential at (x, y, z).
Get the delayed weighting potential at (x, y, z).
Get the medium at (x, y, z).
Switch debugging messages on/off.
Set the user area to the default.
Set the user area explicitly.
Return the current user area.
Check if a point is inside the user area.
Check if a point is inside an active medium and inside the user area.
Return the voltage range.
Start a new event, when computing the average signal over multiple events.
Reset signals and induced charges of all electrodes.
Set the time window and binning for the signal calculation.
tstart | start time [ns] |
tstep | bin width [ns] |
nsteps | number of bins |
Retrieve the time window and binning.
Compute the component of the signal due to the delayed weighting field.
Set the points in time at which to evaluate the delayed weighting field.
Set the number of points to be used when averaging the delayed signal vector over a time bin (default: 0). The averaging is done with a
Set/override the signal in a given time bin explicitly.
Set/override the signal.
Retrieve the total signal for a given electrode and time bin.
Retrieve the electron signal for a given electrode and time bin.
Retrieve the prompt signal for a given electrode and time bin.
Retrieve the delayed signal for a given electrode and time bin.
Retrieve the electron signal for a given electrode and time bin.
Retrieve the ion or hole signal for a given electrode and time bin.
Retrieve the delayed electron signal for a given electrode and time bin.
Retrieve the delayed ion/hole signal for a given electrode and time bin.
Calculated using the weighting potentials at the start and end points.
Set the function to be used for evaluating the transfer function.
Set the points to be used for interpolating the transfer function.
Set the transfer function using a Shaper object.
Evaluate the transfer function at a given time.
Print some information about the presently set transfer function.
Plot the presently set transfer function.
Cache integral and FFT of the transfer function instead of recomputing it at every call (default: on).
Convolute the induced current on a given electrode with the transfer function.
Convolute all induced currents with the transfer function.
Replace the signal on a given electrode by its integral.
Replace the signals on all electrodes curve by their integrals.
Return whether the signal has been integrated/convoluted.
Delay the signal and subtract an attenuated copy (modelling a constant fraction discriminator).
Set the function to be used for evaluating the noise component.
Add noise to the induced signal.
Add white noise to the induced signal, given a desired output ENC.
label | name of the electrode |
enc | Equivalent Noise Charge, in electrons. |
poisson | flag to sample the number of noise pulses from a Poisson distribution. Otherwise the noise charge in each bin is sampled from a Gaussian distribution. |
q0 | amplitude of the noise delta pulses (in electrons). |
Add white noise to the induced signals on all electrodes.
Determine the threshold crossings of the current signal curve.
thr | threshold value |
label | electrode for which to compute the threshold crossings |
n | number of threshold crossings |
Get the number of threshold crossings (after having called ComputeThresholdCrossings).
Retrieve the time and type of a given threshold crossing (after having called ComputeThresholdCrossings.
i | index |
time | threshold crossing time [ns] |
level | threshold (should correspond to the value requested). |
rise | flag whether the crossing is on a rising or falling slope. |
Calculate the signal from a drift line using the weighting potential method.
Calculate the signal from an avalanche using the weighting potential method.
Calculate the signal from a drift line using the weighting field method.
Calculate the signal from a drift line using the weighting field method, given the drift velocities at each drift line point.
Plot the induced signal.
Exporting induced signal to a csv file.
Add the induced charge from a charge carrier drift between two points.
Determine whether a line between two points crosses a wire, calls Component::CrossedWire.
Determine whether a point is in the trap radius of a wire.
Determine whether a line between two points crosses a plane, calls Component::CrossedPlane.
Integrate the electric field flux through a line from (x0,y0,z0) to (x1,y1,z1) along a direction (xp,yp,zp).
Create and initialise GPU Transfer class
Mutex.
Components
Electrodes
Definition at line 1 of file Sensor.hh.
class Garfield::GARFIELD_CLASS_NAME | ( | TetrahedralTree | ) |
Helper class for searches in field maps.
This class stores the mesh nodes and elements in an Octree data structure to optimize the element search operations
Author: Ali Sheharyar
Organization: Texas A&M University at Qatar
Destructor
Insert a mesh element with given bounding box and index to the tree.
Create and initialise GPU Transfer class
Definition at line 1 of file TetrahedralTree.hh.
|
inline |
Definition at line 11 of file Utilities.hh.
|
inline |
Draw a random (isotropic) direction vector.
Definition at line 138 of file Random.hh.
|
inline |
Draw a Gaussian random variate with mean zero and standard deviation one.
Definition at line 35 of file Random.hh.
|
inline |
Draw a Gaussian random variate with mean mu and standard deviation sigma.
Definition at line 58 of file Random.hh.
double Garfield::RndmHeedWF | ( | const double | w, |
const double | f ) |
Draw a random energy needed to create a single electron in a material asymptotic work function W and Fano factor F, according to Igor Smirnov's phenomenological model.
double Garfield::RndmLandau | ( | ) |
Draw a random number from a Landau distribution.
|
inline |
Draw a Lorentzian random variate with mean mu and half-width at half maximum gamma.
int Garfield::RndmPoisson | ( | const double | mean | ) |
Draw a random number from a Poisson distribution.
|
inline |
Draw a Polya distributed random number.
Definition at line 101 of file Random.hh.
|
inline |
|
inline |
Draw a random number uniformly distributed in the range (0, 1).
double Garfield::RndmVavilov | ( | const double | rkappa, |
const double | beta2 ) |
Draw a random number from a Vavilov distribution.
|
inline |
Draw a random number according to a Voigt function with mean mu.
The Voigt function is a convolution of a Gaussian (standard deviation sigma) and a Lorentzian (half width gamma).
Definition at line 72 of file Random.hh.
|
inline |
Draw a random number from a geometric distribution.
Definition at line 81 of file Random.hh.
|
inline |
Definition at line 17 of file Utilities.hh.
|
inline |
Definition at line 10 of file Plotting.hh.
|
inline |
Definition at line 14 of file Plotting.hh.
|
inline |
Definition at line 12 of file Plotting.hh.
|
inline |
Definition at line 33 of file Utilities.hh.
|
inline |
Definition at line 24 of file Utilities.hh.
|
extern |
|
extern |