Garfield++ v2r0
A toolkit for the detailed simulation of particle detectors based on ionisation measurement in gases and semiconductors
|
Base class for components based on finite-element field maps. More...
#include <ComponentFieldMap.hh>
Classes | |
struct | Element |
struct | Material |
struct | Node |
Public Member Functions | |
ComponentFieldMap () | |
Constructor. | |
virtual | ~ComponentFieldMap () |
Destructor. | |
virtual void | SetRange () |
Calculate x, y, z, V and angular ranges. | |
void | PrintRange () |
Show x, y, z, V and angular ranges. | |
virtual bool | IsInBoundingBox (const double x, const double y, const double z) const |
virtual bool | GetBoundingBox (double &xmin, double &ymin, double &zmin, double &xmax, double &ymax, double &zmax) |
Get the bounding box coordinates. | |
virtual bool | GetVoltageRange (double &vmin, double &vmax) |
Calculate the voltage range [V]. | |
void | PrintMaterials () |
List all currently defined materials. | |
void | DriftMedium (const unsigned int imat) |
Flag a field map material as a drift medium. | |
void | NotDriftMedium (const unsigned int imat) |
Flag a field map materials as a non-drift medium. | |
unsigned int | GetNumberOfMaterials () const |
Return the number of materials in the field map. | |
double | GetPermittivity (const unsigned int imat) const |
Return the permittivity of a field map material. | |
double | GetConductivity (const unsigned int imat) const |
Return the conductivity of a field map material. | |
void | SetMedium (const unsigned int imat, Medium *medium) |
Associate a field map material with a Medium class. | |
Medium * | GetMedium (const unsigned int i) const |
Return the Medium associated to a field map material. | |
Medium * | GetMedium (const double x, const double y, const double z)=0 |
Get the medium at a given location (x, y, z). | |
unsigned int | GetNumberOfMedia () const |
int | GetNumberOfElements () const |
Return the number of mesh elements. | |
bool | GetElement (const unsigned int i, double &vol, double &dmin, double &dmax) |
Return the volume and aspect ratio of a mesh element. | |
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 () |
void | EnableTetrahedralTreeForElementSearch (const bool on=true) |
Public Member Functions inherited from Garfield::ComponentBase | |
ComponentBase () | |
Constructor. | |
virtual | ~ComponentBase () |
Destructor. | |
virtual void | SetGeometry (GeometryBase *geo) |
Define the geometry. | |
virtual void | Clear () |
Reset. | |
virtual Medium * | GetMedium (const double x, const double y, const double z) |
Get the medium at a given location (x, y, 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 |
Calculate the voltage range [V]. | |
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) |
Set a constant magnetic field. | |
virtual bool | IsReady () |
Ready for use? | |
virtual bool | GetBoundingBox (double &xmin, double &ymin, double &zmin, double &xmax, double &ymax, double &zmax) |
Get the bounding box coordinates. | |
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 (const double q0, const double x0, const double y0, const double z0, double &xw, double &yw, double &rw) |
void | EnablePeriodicityX (const bool on=true) |
Enable simple periodicity in the direction. | |
void | DisablePeriodicityX () |
void | EnablePeriodicityY (const bool on=true) |
Enable simple periodicity in the direction. | |
void | DisablePeriodicityY () |
void | EnablePeriodicityZ (const bool on=true) |
Enable simple periodicity in the direction. | |
void | DisablePeriodicityZ () |
void | EnableMirrorPeriodicityX (const bool on=true) |
Enable mirror periodicity in the direction. | |
void | DisableMirrorPeriodicityX () |
void | EnableMirrorPeriodicityY (const bool on=true) |
Enable mirror periodicity in the direction. | |
void | DisableMirrorPeriodicityY () |
void | EnableMirrorPeriodicityZ (const bool on=true) |
Enable mirror periodicity in the direction. | |
void | DisableMirrorPeriodicityZ () |
void | EnableAxialPeriodicityX (const bool on=true) |
Enable axial periodicity in the direction. | |
void | DisableAxialPeriodicityX () |
void | EnableAxialPeriodicityY (const bool on=true) |
Enable axial periodicity in the direction. | |
void | DisableAxialPeriodicityY () |
void | EnableAxialPeriodicityZ (const bool on=true) |
Enable axial periodicity in the direction. | |
void | DisableAxialPeriodicityZ () |
void | EnableRotationSymmetryX (const bool on=true) |
Enable rotation symmetry around the axis. | |
void | DisableRotationSymmetryX () |
void | EnableRotationSymmetryY (const bool on=true) |
Enable rotation symmetry around the axis. | |
void | DisableRotationSymmetryY () |
void | EnableRotationSymmetryZ (const bool on=true) |
Enable rotation symmetry around the axis. | |
void | DisableRotationSymmetryZ () |
void | EnableDebugging () |
Switch on debugging messages. | |
void | DisableDebugging () |
Switch off debugging messages. | |
void | ActivateTraps () |
Request trapping to be taken care of by the component (for TCAD). | |
void | DeactivateTraps () |
bool | IsTrapActive () |
void | ActivateVelocityMap () |
Request velocity to be taken care of by the component (for TCAD). | |
void | DectivateVelocityMap () |
bool | IsVelocityActive () |
virtual bool | ElectronAttachment (const double, const double, const double, double &eta) |
Get the electron attachment coefficient. | |
virtual bool | HoleAttachment (const double, const double, const double, double &eta) |
Get the hole attachment coefficient. | |
virtual void | ElectronVelocity (const double, const double, const double, double &vx, double &vy, double &vz, Medium *&, int &status) |
Get the electron drift velocity. | |
virtual void | HoleVelocity (const double, const double, const double, double &vx, double &vy, double &vz, Medium *&, int &status) |
Get the hole drift velocity. | |
virtual bool | GetElectronLifetime (const double, const double, const double, double &etau) |
virtual bool | GetHoleLifetime (const double, const double, const double, double &htau) |
Protected Member Functions | |
void | Reset () |
Geometry checks. | |
virtual void | UpdatePeriodicity ()=0 |
Verify periodicities. | |
void | UpdatePeriodicity2d () |
void | UpdatePeriodicityCommon () |
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) |
Find the element for a point in curved quadratic quadrilaterals. | |
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) |
Find the element for a point in curved quadratic tetrahedra. | |
int | FindElementCube (const double x, const double y, const double z, double &t1, double &t2, double &t3, TMatrixD *&jac, std::vector< TMatrixD * > &dN) |
Find the element for a point in a cube. | |
void | MapCoordinates (double &xpos, double &ypos, double &zpos, bool &xmirrored, bool &ymirrored, bool &zmirrored, double &rcoordinate, double &rotation) const |
Move (xpos, ypos, zpos) to field map coordinates. | |
void | UnmapFields (double &ex, double &ey, double &ez, double &xpos, double &ypos, double &zpos, bool &xmirrored, bool &ymirrored, bool &zmirrored, double &rcoordinate, double &rotation) const |
Move (ex, ey, ez) to global coordinates. | |
int | ReadInteger (char *token, int def, bool &error) |
double | ReadDouble (char *token, double def, bool &error) |
virtual double | GetElementVolume (const unsigned int i)=0 |
virtual void | GetAspectRatio (const unsigned int i, double &dmin, double &dmax)=0 |
void | PrintWarning (const std::string &header) |
void | PrintNotReady (const std::string &header) const |
void | PrintElement (const std::string &header, const double x, const double y, const double z, const double t1, const double t2, const double t3, const double t4, const unsigned int i, const unsigned int n, const int iw=-1) const |
virtual void | Reset ()=0 |
Geometry checks. | |
virtual void | UpdatePeriodicity ()=0 |
Verify periodicities. | |
Protected Attributes | |
bool | m_is3d |
int | nElements |
std::vector< Element > | elements |
int | nNodes |
std::vector< Node > | nodes |
unsigned int | m_nMaterials |
std::vector< Material > | materials |
int | nWeightingFields |
std::vector< std::string > | wfields |
std::vector< bool > | wfieldsOk |
bool | hasBoundingBox |
double | xMinBoundingBox |
double | yMinBoundingBox |
double | zMinBoundingBox |
double | xMaxBoundingBox |
double | yMaxBoundingBox |
double | zMaxBoundingBox |
double | mapxmin |
double | mapymin |
double | mapzmin |
double | mapxmax |
double | mapymax |
double | mapzmax |
double | mapxamin |
double | mapyamin |
double | mapzamin |
double | mapxamax |
double | mapyamax |
double | mapzamax |
double | mapvmin |
double | mapvmax |
bool | setangx |
bool | setangy |
bool | setangz |
double | mapsx |
double | mapsy |
double | mapsz |
double | cellsx |
double | cellsy |
double | cellsz |
double | mapnxa |
double | mapnya |
double | mapnza |
bool | m_deleteBackground |
bool | m_warning |
unsigned int | m_nWarnings |
Protected Attributes inherited from Garfield::ComponentBase | |
std::string | m_className |
Class name. | |
GeometryBase * | m_geometry |
Pointer to the geometry. | |
bool | m_ready |
Ready for use? | |
bool | m_activeTraps |
Does the component have traps? | |
bool | m_hasVelocityMap |
Does the component have velocity maps? | |
bool | m_xPeriodic |
Simple periodicity in x. | |
bool | m_yPeriodic |
Simple periodicity in y. | |
bool | m_zPeriodic |
Simple periodicity in z. | |
bool | m_xMirrorPeriodic |
Mirror periodicity in x. | |
bool | m_yMirrorPeriodic |
Mirror periodicity in y. | |
bool | m_zMirrorPeriodic |
Mirror periodicity in z. | |
bool | m_xAxiallyPeriodic |
Axial periodicity in x. | |
bool | m_yAxiallyPeriodic |
Axial periodicity in y. | |
bool | m_zAxiallyPeriodic |
Axial periodicity in z. | |
bool | m_xRotationSymmetry |
Rotation symmetry around x-axis. | |
bool | m_yRotationSymmetry |
Rotation symmetry around y-axis. | |
bool | m_zRotationSymmetry |
Rotation symmetry around z-axis. | |
double | m_bx0 |
double | m_by0 |
double | m_bz0 |
bool | m_debug |
Switch on/off debugging messages. | |
Friends | |
class | ViewFEMesh |
Base class for components based on finite-element field maps.
Definition at line 13 of file ComponentFieldMap.hh.
Garfield::ComponentFieldMap::ComponentFieldMap | ( | ) |
Constructor.
Definition at line 13 of file ComponentFieldMap.cc.
|
virtual |
Destructor.
Definition at line 32 of file ComponentFieldMap.cc.
|
inline |
Definition at line 82 of file ComponentFieldMap.hh.
|
inline |
Definition at line 84 of file ComponentFieldMap.hh.
void Garfield::ComponentFieldMap::DriftMedium | ( | const unsigned int | imat | ) |
Flag a field map material as a drift medium.
Definition at line 66 of file ComponentFieldMap.cc.
|
pure virtual |
Implements Garfield::ComponentBase.
Implemented in Garfield::ComponentAnsys121, Garfield::ComponentAnsys123, Garfield::ComponentComsol, Garfield::ComponentCST, and Garfield::ComponentElmer.
|
pure virtual |
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)
Implements Garfield::ComponentBase.
Implemented in Garfield::ComponentAnsys121, Garfield::ComponentAnsys123, Garfield::ComponentComsol, Garfield::ComponentCST, and Garfield::ComponentElmer.
|
inline |
Definition at line 78 of file ComponentFieldMap.hh.
|
inline |
Definition at line 83 of file ComponentFieldMap.hh.
|
inline |
Enable or disable the usage of the tetrahedral tree for searching the element in the mesh.
Definition at line 88 of file ComponentFieldMap.hh.
|
protected |
Find the element for a point in curved quadratic tetrahedra.
Definition at line 331 of file ComponentFieldMap.cc.
Referenced by Garfield::ComponentAnsys123::ElectricField(), Garfield::ComponentComsol::ElectricField(), Garfield::ComponentElmer::ElectricField(), Garfield::ComponentAnsys123::GetMedium(), Garfield::ComponentComsol::GetMedium(), Garfield::ComponentElmer::GetMedium(), Garfield::ComponentAnsys123::WeightingField(), Garfield::ComponentComsol::WeightingField(), Garfield::ComponentElmer::WeightingField(), Garfield::ComponentAnsys123::WeightingPotential(), Garfield::ComponentComsol::WeightingPotential(), and Garfield::ComponentElmer::WeightingPotential().
|
protected |
Find the element for a point in curved quadratic quadrilaterals.
Definition at line 166 of file ComponentFieldMap.cc.
Referenced by Garfield::ComponentAnsys121::ElectricField(), Garfield::ComponentAnsys121::GetMedium(), Garfield::ComponentAnsys121::WeightingField(), and Garfield::ComponentAnsys121::WeightingPotential().
|
protected |
Find the element for a point in a cube.
Definition at line 463 of file ComponentFieldMap.cc.
|
protectedpure virtual |
Implemented in Garfield::ComponentAnsys121, Garfield::ComponentAnsys123, Garfield::ComponentComsol, Garfield::ComponentCST, and Garfield::ComponentElmer.
Referenced by GetElement().
|
virtual |
Get the bounding box coordinates.
Reimplemented from Garfield::ComponentBase.
Definition at line 2426 of file ComponentFieldMap.cc.
double Garfield::ComponentFieldMap::GetConductivity | ( | const unsigned int | imat | ) | const |
Return the conductivity of a field map material.
Definition at line 109 of file ComponentFieldMap.cc.
bool Garfield::ComponentFieldMap::GetElement | ( | const unsigned int | i, |
double & | vol, | ||
double & | dmin, | ||
double & | dmax | ||
) |
Return the volume and aspect ratio of a mesh element.
Definition at line 152 of file ComponentFieldMap.cc.
|
protectedpure virtual |
Implemented in Garfield::ComponentAnsys121, Garfield::ComponentAnsys123, Garfield::ComponentComsol, Garfield::ComponentCST, and Garfield::ComponentElmer.
Referenced by GetElement().
|
pure virtual |
Get the medium at a given location (x, y, z).
Reimplemented from Garfield::ComponentBase.
Implemented in Garfield::ComponentAnsys121, Garfield::ComponentAnsys123, Garfield::ComponentComsol, Garfield::ComponentCST, and Garfield::ComponentElmer.
Medium * Garfield::ComponentFieldMap::GetMedium | ( | const unsigned int | i | ) | const |
Return the Medium associated to a field map material.
Definition at line 141 of file ComponentFieldMap.cc.
|
inline |
|
inline |
Return the number of materials in the field map.
Definition at line 43 of file ComponentFieldMap.hh.
|
inline |
Definition at line 54 of file ComponentFieldMap.hh.
double Garfield::ComponentFieldMap::GetPermittivity | ( | const unsigned int | imat | ) | const |
Return the permittivity of a field map material.
Definition at line 98 of file ComponentFieldMap.cc.
|
inlinevirtual |
Calculate the voltage range [V].
Implements Garfield::ComponentBase.
Definition at line 30 of file ComponentFieldMap.hh.
Referenced by Garfield::ViewFEMesh::Plot().
|
virtual |
Reimplemented in Garfield::ComponentAnsys121, Garfield::ComponentAnsys123, Garfield::ComponentComsol, Garfield::ComponentCST, and Garfield::ComponentElmer.
Definition at line 2418 of file ComponentFieldMap.cc.
|
protected |
Move (xpos, ypos, zpos) to field map coordinates.
Definition at line 2441 of file ComponentFieldMap.cc.
Referenced by Garfield::ComponentCST::Coordinate2Index(), Garfield::ComponentAnsys121::ElectricField(), Garfield::ComponentAnsys123::ElectricField(), Garfield::ComponentComsol::ElectricField(), Garfield::ComponentElmer::ElectricField(), Garfield::ComponentAnsys121::GetMedium(), Garfield::ComponentAnsys123::GetMedium(), Garfield::ComponentComsol::GetMedium(), Garfield::ComponentElmer::GetMedium(), Garfield::ComponentAnsys121::WeightingField(), Garfield::ComponentAnsys123::WeightingField(), Garfield::ComponentComsol::WeightingField(), Garfield::ComponentElmer::WeightingField(), Garfield::ComponentAnsys121::WeightingPotential(), Garfield::ComponentAnsys123::WeightingPotential(), Garfield::ComponentComsol::WeightingPotential(), and Garfield::ComponentElmer::WeightingPotential().
void Garfield::ComponentFieldMap::NotDriftMedium | ( | const unsigned int | imat | ) |
Flag a field map materials as a non-drift medium.
Definition at line 82 of file ComponentFieldMap.cc.
|
protected |
Definition at line 2740 of file ComponentFieldMap.cc.
Referenced by Garfield::ComponentAnsys121::ElectricField(), Garfield::ComponentAnsys123::ElectricField(), Garfield::ComponentComsol::ElectricField(), Garfield::ComponentElmer::ElectricField(), FindElement13(), FindElement5(), FindElementCube(), Garfield::ComponentAnsys121::GetMedium(), Garfield::ComponentAnsys123::GetMedium(), Garfield::ComponentComsol::GetMedium(), Garfield::ComponentElmer::GetMedium(), Garfield::ComponentAnsys121::WeightingField(), Garfield::ComponentAnsys123::WeightingField(), Garfield::ComponentComsol::WeightingField(), Garfield::ComponentElmer::WeightingField(), Garfield::ComponentAnsys121::WeightingPotential(), Garfield::ComponentAnsys123::WeightingPotential(), Garfield::ComponentComsol::WeightingPotential(), and Garfield::ComponentElmer::WeightingPotential().
void Garfield::ComponentFieldMap::PrintMaterials | ( | ) |
List all currently defined materials.
Definition at line 36 of file ComponentFieldMap.cc.
Referenced by Garfield::ComponentCST::Initialise(), Garfield::ComponentAnsys121::Initialise(), and Garfield::ComponentAnsys123::Initialise().
|
inlineprotected |
Definition at line 207 of file ComponentFieldMap.hh.
Referenced by DriftMedium(), Garfield::ComponentAnsys121::ElectricField(), Garfield::ComponentAnsys123::ElectricField(), Garfield::ComponentComsol::ElectricField(), Garfield::ComponentElmer::ElectricField(), Garfield::ComponentAnsys121::GetMedium(), Garfield::ComponentComsol::GetMedium(), Garfield::ComponentElmer::GetMedium(), NotDriftMedium(), PrintMaterials(), Garfield::ComponentAnsys121::SetWeightingField(), Garfield::ComponentAnsys123::SetWeightingField(), and Garfield::ComponentElmer::SetWeightingField().
void Garfield::ComponentFieldMap::PrintRange | ( | ) |
Show x, y, z, V and angular ranges.
Definition at line 2354 of file ComponentFieldMap.cc.
Referenced by Garfield::ComponentCST::Coordinate2Index(), SetRange(), and UpdatePeriodicityCommon().
|
inlineprotected |
Definition at line 201 of file ComponentFieldMap.hh.
Referenced by Garfield::ComponentAnsys121::ElectricField(), Garfield::ComponentAnsys123::ElectricField(), Garfield::ComponentComsol::ElectricField(), Garfield::ComponentElmer::ElectricField(), Garfield::ComponentAnsys121::GetMedium(), Garfield::ComponentAnsys123::GetMedium(), Garfield::ComponentComsol::GetMedium(), Garfield::ComponentElmer::GetMedium(), Garfield::ComponentAnsys121::WeightingField(), Garfield::ComponentAnsys123::WeightingField(), Garfield::ComponentComsol::WeightingField(), Garfield::ComponentCST::WeightingField(), Garfield::ComponentElmer::WeightingField(), Garfield::ComponentAnsys121::WeightingPotential(), Garfield::ComponentAnsys123::WeightingPotential(), Garfield::ComponentComsol::WeightingPotential(), and Garfield::ComponentElmer::WeightingPotential().
|
protected |
Definition at line 2645 of file ComponentFieldMap.cc.
Referenced by Garfield::ComponentElmer::Initialise(), Garfield::ComponentCST::Initialise(), Garfield::ComponentAnsys121::Initialise(), Garfield::ComponentAnsys123::Initialise(), Garfield::ComponentAnsys121::SetWeightingField(), Garfield::ComponentAnsys123::SetWeightingField(), Garfield::ComponentElmer::SetWeightingField(), and Garfield::ComponentCST::SetWeightingField().
|
protected |
Definition at line 2635 of file ComponentFieldMap.cc.
Referenced by Garfield::ComponentElmer::Initialise(), Garfield::ComponentCST::Initialise(), Garfield::ComponentAnsys121::Initialise(), Garfield::ComponentAnsys123::Initialise(), Garfield::ComponentAnsys121::SetWeightingField(), Garfield::ComponentAnsys123::SetWeightingField(), and Garfield::ComponentCST::SetWeightingField().
|
inlineprotectedvirtual |
Geometry checks.
Implements Garfield::ComponentBase.
Definition at line 165 of file ComponentFieldMap.hh.
void Garfield::ComponentFieldMap::SetMedium | ( | const unsigned int | imat, |
Medium * | medium | ||
) |
Associate a field map material with a Medium class.
Definition at line 120 of file ComponentFieldMap.cc.
|
virtual |
Calculate x, y, z, V and angular ranges.
Reimplemented in Garfield::ComponentCST.
Definition at line 2239 of file ComponentFieldMap.cc.
Referenced by Garfield::ComponentElmer::Initialise(), Garfield::ComponentAnsys121::Initialise(), Garfield::ComponentAnsys123::Initialise(), and Garfield::ComponentComsol::Initialise().
|
protected |
Move (ex, ey, ez) to global coordinates.
Definition at line 2559 of file ComponentFieldMap.cc.
Referenced by Garfield::ComponentAnsys121::ElectricField(), Garfield::ComponentAnsys123::ElectricField(), Garfield::ComponentComsol::ElectricField(), Garfield::ComponentElmer::ElectricField(), Garfield::ComponentAnsys121::WeightingField(), Garfield::ComponentAnsys123::WeightingField(), Garfield::ComponentComsol::WeightingField(), and Garfield::ComponentElmer::WeightingField().
|
protectedpure virtual |
Verify periodicities.
Implements Garfield::ComponentBase.
Implemented in Garfield::ComponentAnsys121, Garfield::ComponentAnsys123, Garfield::ComponentComsol, Garfield::ComponentCST, and Garfield::ComponentElmer.
|
protected |
Definition at line 2209 of file ComponentFieldMap.cc.
Referenced by Garfield::ComponentAnsys121::UpdatePeriodicity(), and Garfield::ComponentCST::UpdatePeriodicity().
|
protected |
Definition at line 2008 of file ComponentFieldMap.cc.
Referenced by Garfield::ComponentAnsys121::UpdatePeriodicity(), Garfield::ComponentAnsys123::UpdatePeriodicity(), Garfield::ComponentComsol::UpdatePeriodicity(), Garfield::ComponentCST::UpdatePeriodicity(), and Garfield::ComponentElmer::UpdatePeriodicity().
|
pure virtual |
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 |
Reimplemented from Garfield::ComponentBase.
Implemented in Garfield::ComponentAnsys121, Garfield::ComponentAnsys123, Garfield::ComponentComsol, Garfield::ComponentCST, and Garfield::ComponentElmer.
|
pure virtual |
Reimplemented from Garfield::ComponentBase.
Implemented in Garfield::ComponentAnsys121, Garfield::ComponentAnsys123, Garfield::ComponentComsol, Garfield::ComponentCST, and Garfield::ComponentElmer.
|
friend |
Definition at line 92 of file ComponentFieldMap.hh.
|
protected |
Definition at line 154 of file ComponentFieldMap.hh.
Referenced by PrintRange(), and UpdatePeriodicityCommon().
|
protected |
Definition at line 154 of file ComponentFieldMap.hh.
Referenced by PrintRange(), and UpdatePeriodicityCommon().
|
protected |
Definition at line 154 of file ComponentFieldMap.hh.
Referenced by PrintRange(), and UpdatePeriodicityCommon().
|
protected |
Definition at line 108 of file ComponentFieldMap.hh.
Referenced by Garfield::ComponentAnsys121::ElectricField(), Garfield::ComponentAnsys123::ElectricField(), Garfield::ComponentComsol::ElectricField(), Garfield::ComponentElmer::ElectricField(), FindElement13(), FindElement5(), FindElementCube(), Garfield::ComponentAnsys121::GetAspectRatio(), Garfield::ComponentAnsys123::GetAspectRatio(), Garfield::ComponentComsol::GetAspectRatio(), Garfield::ComponentElmer::GetAspectRatio(), Garfield::ComponentAnsys121::GetElementVolume(), Garfield::ComponentAnsys123::GetElementVolume(), Garfield::ComponentComsol::GetElementVolume(), Garfield::ComponentElmer::GetElementVolume(), Garfield::ComponentAnsys121::GetMedium(), Garfield::ComponentAnsys123::GetMedium(), Garfield::ComponentComsol::GetMedium(), Garfield::ComponentElmer::GetMedium(), Garfield::ComponentElmer::Initialise(), Garfield::ComponentAnsys121::Initialise(), Garfield::ComponentAnsys123::Initialise(), Garfield::ComponentComsol::Initialise(), PrintElement(), Garfield::ComponentAnsys121::WeightingField(), Garfield::ComponentAnsys123::WeightingField(), Garfield::ComponentComsol::WeightingField(), Garfield::ComponentElmer::WeightingField(), Garfield::ComponentAnsys121::WeightingPotential(), Garfield::ComponentAnsys123::WeightingPotential(), Garfield::ComponentComsol::WeightingPotential(), and Garfield::ComponentElmer::WeightingPotential().
|
protected |
Definition at line 140 of file ComponentFieldMap.hh.
Referenced by Garfield::ComponentCST::SetRange(), and SetRange().
|
protected |
Definition at line 158 of file ComponentFieldMap.hh.
Referenced by Garfield::ComponentCST::ComponentCST(), DisableDeleteBackgroundElements(), EnableDeleteBackgroundElements(), Garfield::ComponentAnsys121::Initialise(), and Garfield::ComponentAnsys123::Initialise().
|
protected |
Definition at line 95 of file ComponentFieldMap.hh.
Referenced by Garfield::ComponentAnsys121::ComponentAnsys121(), Garfield::ComponentCST::SetRange(), and SetRange().
|
protected |
Definition at line 123 of file ComponentFieldMap.hh.
Referenced by DriftMedium(), GetConductivity(), Garfield::ComponentAnsys121::GetMedium(), Garfield::ComponentAnsys123::GetMedium(), Garfield::ComponentComsol::GetMedium(), Garfield::ComponentElmer::GetMedium(), GetMedium(), GetNumberOfMaterials(), GetNumberOfMedia(), GetPermittivity(), Garfield::ComponentElmer::Initialise(), Garfield::ComponentCST::Initialise(), Garfield::ComponentAnsys121::Initialise(), Garfield::ComponentAnsys123::Initialise(), Garfield::ComponentComsol::Initialise(), NotDriftMedium(), PrintMaterials(), SetMedium(), and Garfield::ComponentCST::SetWeightingField().
|
protected |
Definition at line 162 of file ComponentFieldMap.hh.
Referenced by Garfield::ComponentElmer::Initialise(), Garfield::ComponentCST::Initialise(), Garfield::ComponentAnsys121::Initialise(), Garfield::ComponentAnsys123::Initialise(), Garfield::ComponentComsol::Initialise(), and PrintWarning().
|
protected |
Definition at line 161 of file ComponentFieldMap.hh.
Referenced by Garfield::ComponentAnsys121::ElectricField(), Garfield::ComponentAnsys123::ElectricField(), Garfield::ComponentComsol::ElectricField(), Garfield::ComponentElmer::ElectricField(), Garfield::ComponentAnsys121::GetMedium(), Garfield::ComponentAnsys123::GetMedium(), Garfield::ComponentComsol::GetMedium(), Garfield::ComponentElmer::GetMedium(), Garfield::ComponentElmer::Initialise(), Garfield::ComponentCST::Initialise(), Garfield::ComponentAnsys121::Initialise(), Garfield::ComponentAnsys123::Initialise(), Garfield::ComponentComsol::Initialise(), PrintWarning(), UpdatePeriodicity2d(), UpdatePeriodicityCommon(), Garfield::ComponentAnsys121::WeightingField(), Garfield::ComponentAnsys123::WeightingField(), Garfield::ComponentComsol::WeightingField(), Garfield::ComponentCST::WeightingField(), Garfield::ComponentElmer::WeightingField(), Garfield::ComponentAnsys121::WeightingPotential(), Garfield::ComponentAnsys123::WeightingPotential(), Garfield::ComponentComsol::WeightingPotential(), and Garfield::ComponentElmer::WeightingPotential().
|
protected |
Definition at line 155 of file ComponentFieldMap.hh.
Referenced by PrintRange(), and UpdatePeriodicityCommon().
|
protected |
Definition at line 155 of file ComponentFieldMap.hh.
Referenced by PrintRange(), and UpdatePeriodicityCommon().
|
protected |
Definition at line 155 of file ComponentFieldMap.hh.
Referenced by PrintRange(), and UpdatePeriodicityCommon().
|
protected |
Definition at line 152 of file ComponentFieldMap.hh.
Referenced by Garfield::ComponentCST::SetRange(), and SetRange().
|
protected |
Definition at line 152 of file ComponentFieldMap.hh.
Referenced by Garfield::ComponentCST::SetRange(), and SetRange().
|
protected |
Definition at line 152 of file ComponentFieldMap.hh.
Referenced by Garfield::ComponentCST::SetRange(), and SetRange().
|
protected |
Definition at line 149 of file ComponentFieldMap.hh.
Referenced by GetVoltageRange(), PrintRange(), Garfield::ComponentCST::SetRange(), and SetRange().
|
protected |
Definition at line 149 of file ComponentFieldMap.hh.
Referenced by GetVoltageRange(), PrintRange(), Garfield::ComponentCST::SetRange(), and SetRange().
|
protected |
Definition at line 148 of file ComponentFieldMap.hh.
Referenced by MapCoordinates(), SetRange(), and UpdatePeriodicityCommon().
|
protected |
Definition at line 147 of file ComponentFieldMap.hh.
Referenced by MapCoordinates(), SetRange(), and UpdatePeriodicityCommon().
|
protected |
Definition at line 146 of file ComponentFieldMap.hh.
Referenced by MapCoordinates(), PrintRange(), Garfield::ComponentCST::SetRange(), SetRange(), and UpdatePeriodicityCommon().
|
protected |
Definition at line 145 of file ComponentFieldMap.hh.
Referenced by MapCoordinates(), PrintRange(), Garfield::ComponentCST::SetRange(), SetRange(), and UpdatePeriodicityCommon().
|
protected |
Definition at line 148 of file ComponentFieldMap.hh.
Referenced by MapCoordinates(), SetRange(), and UpdatePeriodicityCommon().
|
protected |
Definition at line 147 of file ComponentFieldMap.hh.
Referenced by MapCoordinates(), SetRange(), and UpdatePeriodicityCommon().
|
protected |
Definition at line 146 of file ComponentFieldMap.hh.
Referenced by MapCoordinates(), PrintRange(), Garfield::ComponentCST::SetRange(), SetRange(), and UpdatePeriodicityCommon().
|
protected |
Definition at line 145 of file ComponentFieldMap.hh.
Referenced by MapCoordinates(), PrintRange(), Garfield::ComponentCST::SetRange(), SetRange(), and UpdatePeriodicityCommon().
|
protected |
Definition at line 148 of file ComponentFieldMap.hh.
Referenced by MapCoordinates(), SetRange(), and UpdatePeriodicityCommon().
|
protected |
Definition at line 147 of file ComponentFieldMap.hh.
Referenced by MapCoordinates(), SetRange(), and UpdatePeriodicityCommon().
|
protected |
Definition at line 146 of file ComponentFieldMap.hh.
Referenced by MapCoordinates(), PrintRange(), Garfield::ComponentCST::SetRange(), SetRange(), Garfield::ComponentAnsys121::SetRangeZ(), and UpdatePeriodicityCommon().
|
protected |
Definition at line 145 of file ComponentFieldMap.hh.
Referenced by MapCoordinates(), PrintRange(), Garfield::ComponentCST::SetRange(), SetRange(), Garfield::ComponentAnsys121::SetRangeZ(), and UpdatePeriodicityCommon().
|
protected |
Definition at line 133 of file ComponentFieldMap.hh.
Referenced by DriftMedium(), Garfield::ComponentAnsys121::ElectricField(), Garfield::ComponentAnsys123::ElectricField(), Garfield::ComponentComsol::ElectricField(), Garfield::ComponentElmer::ElectricField(), GetConductivity(), Garfield::ComponentAnsys121::GetMedium(), Garfield::ComponentAnsys123::GetMedium(), Garfield::ComponentComsol::GetMedium(), Garfield::ComponentCST::GetMedium(), Garfield::ComponentElmer::GetMedium(), GetMedium(), GetPermittivity(), Garfield::ComponentElmer::Initialise(), Garfield::ComponentCST::Initialise(), Garfield::ComponentAnsys121::Initialise(), Garfield::ComponentAnsys123::Initialise(), Garfield::ComponentComsol::Initialise(), NotDriftMedium(), PrintMaterials(), SetMedium(), and Garfield::ComponentCST::WeightingField().
|
protected |
Definition at line 98 of file ComponentFieldMap.hh.
Referenced by FindElement13(), FindElement5(), FindElementCube(), Garfield::ComponentCST::GetAspectRatio(), GetElement(), Garfield::ComponentCST::GetElementVolume(), GetNumberOfElements(), Garfield::ComponentElmer::Initialise(), Garfield::ComponentCST::Initialise(), Garfield::ComponentAnsys121::Initialise(), Garfield::ComponentAnsys123::Initialise(), and Garfield::ComponentComsol::Initialise().
|
protected |
Definition at line 111 of file ComponentFieldMap.hh.
Referenced by Garfield::ComponentElmer::Initialise(), Garfield::ComponentCST::Initialise(), Garfield::ComponentAnsys121::Initialise(), Garfield::ComponentAnsys123::Initialise(), Garfield::ComponentComsol::Initialise(), SetRange(), Garfield::ComponentComsol::SetWeightingField(), Garfield::ComponentAnsys121::SetWeightingField(), Garfield::ComponentAnsys123::SetWeightingField(), Garfield::ComponentElmer::SetWeightingField(), and Garfield::ComponentCST::SetWeightingField().
|
protected |
Definition at line 120 of file ComponentFieldMap.hh.
Referenced by Garfield::ComponentAnsys121::ElectricField(), Garfield::ComponentAnsys123::ElectricField(), Garfield::ComponentComsol::ElectricField(), Garfield::ComponentElmer::ElectricField(), FindElementCube(), Garfield::ComponentAnsys121::GetAspectRatio(), Garfield::ComponentAnsys123::GetAspectRatio(), Garfield::ComponentComsol::GetAspectRatio(), Garfield::ComponentElmer::GetAspectRatio(), Garfield::ComponentAnsys121::GetElementVolume(), Garfield::ComponentAnsys123::GetElementVolume(), Garfield::ComponentComsol::GetElementVolume(), Garfield::ComponentElmer::GetElementVolume(), Garfield::ComponentElmer::Initialise(), Garfield::ComponentAnsys121::Initialise(), Garfield::ComponentAnsys123::Initialise(), Garfield::ComponentComsol::Initialise(), PrintElement(), SetRange(), Garfield::ComponentComsol::SetWeightingField(), Garfield::ComponentAnsys121::SetWeightingField(), Garfield::ComponentAnsys123::SetWeightingField(), Garfield::ComponentElmer::SetWeightingField(), Garfield::ComponentAnsys121::WeightingField(), Garfield::ComponentAnsys123::WeightingField(), Garfield::ComponentComsol::WeightingField(), Garfield::ComponentElmer::WeightingField(), Garfield::ComponentAnsys121::WeightingPotential(), Garfield::ComponentAnsys123::WeightingPotential(), Garfield::ComponentComsol::WeightingPotential(), and Garfield::ComponentElmer::WeightingPotential().
|
protected |
Definition at line 135 of file ComponentFieldMap.hh.
Referenced by Garfield::ComponentElmer::Initialise(), Garfield::ComponentAnsys121::Initialise(), Garfield::ComponentAnsys123::Initialise(), Garfield::ComponentComsol::Initialise(), Garfield::ComponentComsol::SetWeightingField(), Garfield::ComponentAnsys121::SetWeightingField(), Garfield::ComponentAnsys123::SetWeightingField(), Garfield::ComponentElmer::SetWeightingField(), Garfield::ComponentAnsys121::WeightingField(), Garfield::ComponentAnsys123::WeightingField(), Garfield::ComponentComsol::WeightingField(), Garfield::ComponentElmer::WeightingField(), Garfield::ComponentAnsys121::WeightingPotential(), Garfield::ComponentAnsys123::WeightingPotential(), Garfield::ComponentComsol::WeightingPotential(), and Garfield::ComponentElmer::WeightingPotential().
|
protected |
Definition at line 151 of file ComponentFieldMap.hh.
Referenced by SetRange().
|
protected |
Definition at line 151 of file ComponentFieldMap.hh.
Referenced by SetRange().
|
protected |
Definition at line 151 of file ComponentFieldMap.hh.
Referenced by SetRange().
|
protected |
Definition at line 136 of file ComponentFieldMap.hh.
Referenced by Garfield::ComponentElmer::Initialise(), Garfield::ComponentAnsys121::Initialise(), Garfield::ComponentAnsys123::Initialise(), Garfield::ComponentComsol::Initialise(), Garfield::ComponentComsol::SetWeightingField(), Garfield::ComponentAnsys121::SetWeightingField(), Garfield::ComponentAnsys123::SetWeightingField(), Garfield::ComponentElmer::SetWeightingField(), Garfield::ComponentCST::SetWeightingField(), Garfield::ComponentAnsys121::WeightingField(), Garfield::ComponentAnsys123::WeightingField(), Garfield::ComponentComsol::WeightingField(), Garfield::ComponentElmer::WeightingField(), Garfield::ComponentAnsys121::WeightingPotential(), Garfield::ComponentAnsys123::WeightingPotential(), Garfield::ComponentComsol::WeightingPotential(), and Garfield::ComponentElmer::WeightingPotential().
|
protected |
Definition at line 137 of file ComponentFieldMap.hh.
Referenced by Garfield::ComponentElmer::Initialise(), Garfield::ComponentAnsys121::Initialise(), Garfield::ComponentAnsys123::Initialise(), Garfield::ComponentComsol::Initialise(), Garfield::ComponentComsol::SetWeightingField(), Garfield::ComponentAnsys121::SetWeightingField(), Garfield::ComponentAnsys123::SetWeightingField(), Garfield::ComponentElmer::SetWeightingField(), Garfield::ComponentCST::SetWeightingField(), Garfield::ComponentAnsys121::WeightingField(), Garfield::ComponentAnsys123::WeightingField(), Garfield::ComponentComsol::WeightingField(), Garfield::ComponentCST::WeightingField(), Garfield::ComponentElmer::WeightingField(), Garfield::ComponentAnsys121::WeightingPotential(), Garfield::ComponentAnsys123::WeightingPotential(), Garfield::ComponentComsol::WeightingPotential(), Garfield::ComponentCST::WeightingPotential(), and Garfield::ComponentElmer::WeightingPotential().
|
protected |
Definition at line 142 of file ComponentFieldMap.hh.
Referenced by GetBoundingBox(), Garfield::ComponentAnsys121::IsInBoundingBox(), Garfield::ComponentAnsys123::IsInBoundingBox(), Garfield::ComponentComsol::IsInBoundingBox(), Garfield::ComponentCST::IsInBoundingBox(), Garfield::ComponentElmer::IsInBoundingBox(), IsInBoundingBox(), Garfield::ComponentCST::SetRange(), SetRange(), and UpdatePeriodicityCommon().
|
protected |
Definition at line 141 of file ComponentFieldMap.hh.
Referenced by GetBoundingBox(), Garfield::ComponentAnsys121::IsInBoundingBox(), Garfield::ComponentAnsys123::IsInBoundingBox(), Garfield::ComponentComsol::IsInBoundingBox(), Garfield::ComponentCST::IsInBoundingBox(), Garfield::ComponentElmer::IsInBoundingBox(), IsInBoundingBox(), Garfield::ComponentCST::SetRange(), SetRange(), and UpdatePeriodicityCommon().
|
protected |
Definition at line 142 of file ComponentFieldMap.hh.
Referenced by GetBoundingBox(), Garfield::ComponentAnsys121::IsInBoundingBox(), Garfield::ComponentAnsys123::IsInBoundingBox(), Garfield::ComponentComsol::IsInBoundingBox(), Garfield::ComponentCST::IsInBoundingBox(), Garfield::ComponentElmer::IsInBoundingBox(), IsInBoundingBox(), Garfield::ComponentCST::SetRange(), SetRange(), and UpdatePeriodicityCommon().
|
protected |
Definition at line 141 of file ComponentFieldMap.hh.
Referenced by GetBoundingBox(), Garfield::ComponentAnsys121::IsInBoundingBox(), Garfield::ComponentAnsys123::IsInBoundingBox(), Garfield::ComponentComsol::IsInBoundingBox(), Garfield::ComponentCST::IsInBoundingBox(), Garfield::ComponentElmer::IsInBoundingBox(), IsInBoundingBox(), Garfield::ComponentCST::SetRange(), SetRange(), and UpdatePeriodicityCommon().
|
protected |
Definition at line 142 of file ComponentFieldMap.hh.
Referenced by Garfield::ComponentAnsys121::ComponentAnsys121(), Garfield::ComponentCST::ComponentCST(), Garfield::ComponentAnsys121::ElectricField(), GetBoundingBox(), Garfield::ComponentAnsys121::GetMedium(), Garfield::ComponentAnsys121::IsInBoundingBox(), Garfield::ComponentAnsys123::IsInBoundingBox(), Garfield::ComponentComsol::IsInBoundingBox(), Garfield::ComponentCST::IsInBoundingBox(), Garfield::ComponentElmer::IsInBoundingBox(), IsInBoundingBox(), Garfield::ComponentCST::SetRange(), SetRange(), Garfield::ComponentAnsys121::SetRangeZ(), Garfield::ComponentCST::SetRangeZ(), and UpdatePeriodicityCommon().
|
protected |
Definition at line 141 of file ComponentFieldMap.hh.
Referenced by Garfield::ComponentAnsys121::ComponentAnsys121(), Garfield::ComponentCST::ComponentCST(), GetBoundingBox(), Garfield::ComponentAnsys121::IsInBoundingBox(), Garfield::ComponentAnsys123::IsInBoundingBox(), Garfield::ComponentComsol::IsInBoundingBox(), Garfield::ComponentCST::IsInBoundingBox(), Garfield::ComponentElmer::IsInBoundingBox(), IsInBoundingBox(), Garfield::ComponentCST::SetRange(), SetRange(), Garfield::ComponentAnsys121::SetRangeZ(), Garfield::ComponentCST::SetRangeZ(), and UpdatePeriodicityCommon().