Garfield++ v1r0
A toolkit for the detailed simulation of particle detectors based on ionisation measurement in gases and semiconductors
|
#include <ComponentElmer.hh>
Public Member Functions | |
ComponentElmer () | |
ComponentElmer (std::string header, std::string elist, std::string nlist, std::string mplist, std::string volt, std::string unit) | |
~ComponentElmer () | |
void | ElectricField (const double x, const double y, const double z, double &ex, double &ey, double &ez, Medium *&m, int &status) |
void | ElectricField (const double x, const double y, const double z, double &ex, double &ey, double &ez, double &v, Medium *&m, int &status) |
void | WeightingField (const double x, const double y, const double z, double &wx, double &wy, double &wz, const std::string label) |
double | WeightingPotential (const double x, const double y, const double z, const std::string label) |
Medium * | GetMedium (const double &x, const double &y, const double &z) |
bool | IsInBoundingBox (const double x, const double y, const double z) |
bool | Initialise (std::string header="mesh.header", std::string elist="mesh.elements", std::string nlist="mesh.nodes", std::string mplist="dielectrics.dat", std::string volt="out.result", std::string unit="cm") |
bool | SetWeightingField (std::string prnsol, std::string label) |
Public Member Functions inherited from Garfield::ComponentFieldMap | |
ComponentFieldMap () | |
virtual | ~ComponentFieldMap () |
virtual void | SetRange () |
void | PrintRange () |
virtual bool | IsInBoundingBox (const double x, const double y, const double z) |
virtual bool | GetBoundingBox (double &xmin, double &ymin, double &zmin, double &xmax, double &ymax, double &zmax) |
bool | GetVoltageRange (double &vmin, double &vmax) |
void | PrintMaterials () |
void | DriftMedium (int imat) |
void | NotDriftMedium (int imat) |
int | GetNumberOfMaterials () |
double | GetPermittivity (const int imat) |
double | GetConductivity (const int imat) |
void | SetMedium (const int imat, Medium *medium) |
Medium * | GetMedium (const unsigned int &i) const |
Medium * | GetMedium (const double &x, const double &y, const double &z)=0 |
int | GetNumberOfMedia () |
int | GetNumberOfElements () const |
bool | GetElement (const int i, double &vol, double &dmin, double &dmax) |
virtual void | ElectricField (const double x, const double y, const double z, double &ex, double &ey, double &ez, Medium *&m, int &status)=0 |
virtual void | ElectricField (const double x, const double y, const double z, double &ex, double &ey, double &ez, double &v, Medium *&m, int &status)=0 |
virtual void | WeightingField (const double x, const double y, const double z, double &wx, double &wy, double &wz, const std::string label)=0 |
virtual double | WeightingPotential (const double x, const double y, const double z, const std::string label)=0 |
void | EnableCheckMapIndices () |
void | DisableCheckMapIndices () |
void | EnableDeleteBackgroundElements () |
void | DisableDeleteBackgroundElements () |
Public Member Functions inherited from Garfield::ComponentBase | |
ComponentBase () | |
virtual | ~ComponentBase () |
virtual void | SetGeometry (GeometryBase *geo) |
virtual void | Clear () |
virtual Medium * | GetMedium (const double &x, const double &y, const double &z) |
virtual void | ElectricField (const double x, const double y, const double z, double &ex, double &ey, double &ez, Medium *&m, int &status)=0 |
virtual void | ElectricField (const double x, const double y, const double z, double &ex, double &ey, double &ez, double &v, Medium *&m, int &status)=0 |
virtual bool | GetVoltageRange (double &vmin, double &vmax)=0 |
virtual void | WeightingField (const double x, const double y, const double z, double &wx, double &wy, double &wz, const std::string label) |
virtual double | WeightingPotential (const double x, const double y, const double z, const std::string label) |
virtual void | MagneticField (const double x, const double y, const double z, double &bx, double &by, double &bz, int &status) |
void | SetMagneticField (const double bx, const double by, const double bz) |
virtual bool | IsReady () |
virtual bool | GetBoundingBox (double &xmin, double &ymin, double &zmin, double &xmax, double &ymax, double &zmax) |
virtual bool | IsWireCrossed (const double x0, const double y0, const double z0, const double x1, const double y1, const double z1, double &xc, double &yc, double &zc) |
virtual bool | IsInTrapRadius (double x0, double y0, double z0, double &xw, double &yw, double &rw) |
void | EnablePeriodicityX () |
void | DisablePeriodicityX () |
void | EnablePeriodicityY () |
void | DisablePeriodicityY () |
void | EnablePeriodicityZ () |
void | DisablePeriodicityZ () |
void | EnableMirrorPeriodicityX () |
void | DisableMirrorPeriodicityX () |
void | EnableMirrorPeriodicityY () |
void | DisableMirrorPeriodicityY () |
void | EnableMirrorPeriodicityZ () |
void | DisableMirrorPeriodicityZ () |
void | EnableAxialPeriodicityX () |
void | DisableAxialPeriodicityX () |
void | EnableAxialPeriodicityY () |
void | DisableAxialPeriodicityY () |
void | EnableAxialPeriodicityZ () |
void | DisableAxialPeriodicityZ () |
void | EnableRotationSymmetryX () |
void | DisableRotationSymmetryX () |
void | EnableRotationSymmetryY () |
void | DisableRotationSymmetryY () |
void | EnableRotationSymmetryZ () |
void | DisableRotationSymmetryZ () |
void | EnableDebugging () |
void | DisableDebugging () |
Protected Member Functions | |
void | UpdatePeriodicity () |
double | GetElementVolume (const int i) |
void | GetAspectRatio (const int i, double &dmin, double &dmax) |
Protected Member Functions inherited from Garfield::ComponentFieldMap | |
void | Reset () |
virtual void | UpdatePeriodicity ()=0 |
void | UpdatePeriodicity2d () |
void | UpdatePeriodicityCommon () |
int | Coordinates3 (double x, double y, double z, double &t1, double &t2, double &t3, double &t4, double jac[4][4], double &det, int imap) |
int | Coordinates4 (double x, double y, double z, double &t1, double &t2, double &t3, double &t4, double jac[4][4], double &det, int imap) |
int | Coordinates5 (double x, double y, double z, double &t1, double &t2, double &t3, double &t4, double jac[4][4], double &det, int imap) |
int | Coordinates12 (double x, double y, double z, double &t1, double &t2, double &t3, double &t4, int imap) |
int | Coordinates13 (double x, double y, double z, double &t1, double &t2, double &t3, double &t4, double jac[4][4], double &det, int imap) |
int | CoordinatesCube (double x, double y, double z, double &t1, double &t2, double &t3, TMatrixD *&jac, std::vector< TMatrixD * > &dN, int imap) |
void | Jacobian3 (int i, double u, double v, double w, double &det, double jac[4][4]) |
void | Jacobian5 (int i, double u, double v, double &det, double jac[4][4]) |
void | Jacobian13 (int i, double t, double u, double v, double w, double &det, double jac[4][4]) |
void | JacobianCube (int i, double t1, double t2, double t3, TMatrixD *&jac, std::vector< TMatrixD * > &dN) |
int | FindElement5 (const double x, const double y, const double z, double &t1, double &t2, double &t3, double &t4, double jac[4][4], double &det) |
int | FindElement13 (const double x, const double y, const double z, double &t1, double &t2, double &t3, double &t4, double jac[4][4], double &det) |
int | FindElementCube (const double x, const double y, const double z, double &t1, double &t2, double &t3, TMatrixD *&jac, std::vector< TMatrixD * > &dN) |
void | MapCoordinates (double &xpos, double &ypos, double &zpos, bool &xmirrored, bool &ymirrored, bool &zmirrored, double &rcoordinate, double &rotation) const |
void | UnmapFields (double &ex, double &ey, double &ez, double &xpos, double &ypos, double &zpos, bool &xmirrored, bool &ymirrored, bool &zmirrored, double &rcoordinate, double &rotation) |
int | ReadInteger (char *token, int def, bool &error) |
double | ReadDouble (char *token, double def, bool &error) |
virtual double | GetElementVolume (const int i)=0 |
virtual void | GetAspectRatio (const int i, double &dmin, double &dmax)=0 |
void | CalculateElementBoundingBoxes (void) |
virtual void | Reset ()=0 |
virtual void | UpdatePeriodicity ()=0 |
Definition at line 10 of file ComponentElmer.hh.
Garfield::ComponentElmer::ComponentElmer | ( | ) |
Definition at line 14 of file ComponentElmer.cc.
Garfield::ComponentElmer::ComponentElmer | ( | std::string | header, |
std::string | elist, | ||
std::string | nlist, | ||
std::string | mplist, | ||
std::string | volt, | ||
std::string | unit | ||
) |
Definition at line 20 of file ComponentElmer.cc.
|
inline |
Definition at line 18 of file ComponentElmer.hh.
|
virtual |
Implements Garfield::ComponentFieldMap.
Definition at line 579 of file ComponentElmer.cc.
|
virtual |
Implements Garfield::ComponentFieldMap.
Definition at line 571 of file ComponentElmer.cc.
Referenced by ElectricField().
|
protectedvirtual |
Implements Garfield::ComponentFieldMap.
Definition at line 1003 of file ComponentElmer.cc.
|
protectedvirtual |
Implements Garfield::ComponentFieldMap.
Definition at line 971 of file ComponentElmer.cc.
|
virtual |
Implements Garfield::ComponentFieldMap.
Definition at line 910 of file ComponentElmer.cc.
bool Garfield::ComponentElmer::Initialise | ( | std::string | header = "mesh.header" , |
std::string | elist = "mesh.elements" , |
||
std::string | nlist = "mesh.nodes" , |
||
std::string | mplist = "dielectrics.dat" , |
||
std::string | volt = "out.result" , |
||
std::string | unit = "cm" |
||
) |
Definition at line 29 of file ComponentElmer.cc.
Referenced by ComponentElmer().
|
inlinevirtual |
Reimplemented from Garfield::ComponentFieldMap.
Definition at line 35 of file ComponentElmer.hh.
bool Garfield::ComponentElmer::SetWeightingField | ( | std::string | prnsol, |
std::string | label | ||
) |
Definition at line 461 of file ComponentElmer.cc.
|
inlineprotectedvirtual |
Implements Garfield::ComponentFieldMap.
Definition at line 51 of file ComponentElmer.hh.
Referenced by Initialise().
|
virtual |
Implements Garfield::ComponentFieldMap.
Definition at line 720 of file ComponentElmer.cc.
|
virtual |
Implements Garfield::ComponentFieldMap.
Definition at line 841 of file ComponentElmer.cc.