Garfield++ 4.0
A toolkit for the detailed simulation of particle detectors based on ionisation measurement in gases and semiconductors
|
Abstract base class for components. More...
#include <Component.hh>
Public Member Functions | |
Component ()=delete | |
Default constructor. | |
Component (const std::string &name) | |
Constructor. | |
virtual | ~Component () |
Destructor. | |
virtual void | SetGeometry (Geometry *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 |
Calculate the drift field [V/cm] and potential [V] at (x, y, z). | |
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 | DelayedWeightingField (const double x, const double y, const double z, const double t, double &wx, double &wy, double &wz, const std::string &label) |
virtual double | DelayedWeightingPotential (const double x, const double y, const double z, const double t, 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 | GetElementaryCell (double &xmin, double &ymin, double &zmin, double &xmax, double &ymax, double &zmax) |
Get the coordinates of the elementary cell. | |
double | IntegrateFluxCircle (const double xc, const double yc, const double r, const unsigned int nI=50) |
double | IntegrateFluxSphere (const double xc, const double yc, const double zc, const double r, const unsigned int nI=20) |
double | IntegrateFluxParallelogram (const double x0, const double y0, const double z0, const double dx1, const double dy1, const double dz1, const double dx2, const double dy2, const double dz2, const unsigned int nU=20, const unsigned int nV=20) |
double | IntegrateWeightingFluxParallelogram (const std::string &label, const double x0, const double y0, const double z0, const double dx1, const double dy1, const double dz1, const double dx2, const double dy2, const double dz2, const unsigned int nU=20, const unsigned int nV=20) |
double | IntegrateFluxLine (const double x0, const double y0, const double z0, const double x1, const double y1, const double z1, const double xp, const double yp, const double zp, const unsigned int nI, const int isign=0) |
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, const bool centre, double &rc) |
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 | EnablePeriodicityY (const bool on=true) |
Enable simple periodicity in the direction. | |
void | EnablePeriodicityZ (const bool on=true) |
Enable simple periodicity in the direction. | |
void | IsPeriodic (bool &perx, bool &pery, bool &perz) |
Return periodicity flags. | |
void | EnableMirrorPeriodicityX (const bool on=true) |
Enable mirror periodicity in the direction. | |
void | EnableMirrorPeriodicityY (const bool on=true) |
Enable mirror periodicity in the direction. | |
void | EnableMirrorPeriodicityZ (const bool on=true) |
Enable mirror periodicity in the direction. | |
void | IsMirrorPeriodic (bool &perx, bool &pery, bool &perz) |
Return mirror periodicity flags. | |
void | EnableAxialPeriodicityX (const bool on=true) |
Enable axial periodicity in the direction. | |
void | EnableAxialPeriodicityY (const bool on=true) |
Enable axial periodicity in the direction. | |
void | EnableAxialPeriodicityZ (const bool on=true) |
Enable axial periodicity in the direction. | |
void | IsAxiallyPeriodic (bool &perx, bool &pery, bool &perz) |
Return axial periodicity flags. | |
void | EnableRotationSymmetryX (const bool on=true) |
Enable rotation symmetry around the axis. | |
void | EnableRotationSymmetryY (const bool on=true) |
Enable rotation symmetry around the axis. | |
void | EnableRotationSymmetryZ (const bool on=true) |
Enable rotation symmetry around the axis. | |
void | IsRotationSymmetric (bool &rotx, bool &roty, bool &rotz) |
Return rotation symmetry flags. | |
void | EnableDebugging () |
Switch on debugging messages. | |
void | DisableDebugging () |
Switch off debugging messages. | |
virtual bool | HasAttachmentMap () const |
Does the component have attachment maps? | |
virtual bool | HasVelocityMap () const |
Does the component have velocity maps? | |
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 bool | ElectronVelocity (const double, const double, const double, double &vx, double &vy, double &vz) |
Get the electron drift velocity. | |
virtual bool | HoleVelocity (const double, const double, const double, double &vx, double &vy, double &vz) |
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 | |
virtual void | Reset ()=0 |
Reset the component. | |
virtual void | UpdatePeriodicity ()=0 |
Verify periodicities. | |
Protected Attributes | |
std::string | m_className = "Component" |
Class name. | |
Geometry * | m_geometry = nullptr |
Pointer to the geometry. | |
std::array< double, 3 > | m_b0 = {{0., 0., 0.}} |
Constant magnetic field. | |
bool | m_ready = false |
Ready for use? | |
bool | m_debug = false |
Switch on/off debugging messages. | |
std::array< bool, 3 > | m_periodic = {{false, false, false}} |
Simple periodicity in x, y, z. | |
std::array< bool, 3 > | m_mirrorPeriodic = {{false, false, false}} |
Mirror periodicity in x, y, z. | |
std::array< bool, 3 > | m_axiallyPeriodic = {{false, false, false}} |
Axial periodicity in x, y, z. | |
std::array< bool, 3 > | m_rotationSymmetric = {{false, false, false}} |
Rotation symmetry around x-axis, y-axis, z-axis. | |
Abstract base class for components.
Definition at line 13 of file Component.hh.
|
delete |
Default constructor.
Garfield::Component::Component | ( | const std::string & | name | ) |
|
inlinevirtual |
|
virtual |
Reset.
Reimplemented in Garfield::ComponentGrid, and Garfield::ComponentVoxel.
Definition at line 27 of file Component.cc.
|
virtual |
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 |
Reimplemented in Garfield::ComponentGrid, Garfield::ComponentParallelPlate, Garfield::ComponentUser, and Garfield::ComponentVoxel.
Definition at line 49 of file Component.cc.
|
virtual |
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 |
Reimplemented in Garfield::ComponentComsol, and Garfield::ComponentParallelPlate.
Definition at line 68 of file Component.cc.
|
inline |
|
pure virtual |
Calculate the drift field [V/cm] and potential [V] at (x, y, z).
Implemented in Garfield::ComponentAnalyticField, Garfield::ComponentAnsys121, Garfield::ComponentAnsys123, Garfield::ComponentComsol, Garfield::ComponentConstant, Garfield::ComponentCST, Garfield::ComponentElmer, Garfield::ComponentElmer2D, Garfield::ComponentGrid, Garfield::ComponentNeBem2d, Garfield::ComponentNeBem3d, Garfield::ComponentNeBem3dMap, Garfield::ComponentParallelPlate, Garfield::ComponentTcad2d, Garfield::ComponentTcad3d, Garfield::ComponentUser, and Garfield::ComponentVoxel.
|
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)
Implemented in Garfield::ComponentAnalyticField, Garfield::ComponentAnsys121, Garfield::ComponentAnsys123, Garfield::ComponentComsol, Garfield::ComponentConstant, Garfield::ComponentCST, Garfield::ComponentElmer, Garfield::ComponentElmer2D, Garfield::ComponentGrid, Garfield::ComponentNeBem2d, Garfield::ComponentNeBem3d, Garfield::ComponentNeBem3dMap, Garfield::ComponentParallelPlate, Garfield::ComponentTcad2d, Garfield::ComponentTcad3d, Garfield::ComponentUser, and Garfield::ComponentVoxel.
Referenced by IntegrateFluxCircle(), IntegrateFluxLine(), IntegrateFluxSphere(), and Garfield::ComponentGrid::SaveElectricField().
|
inlinevirtual |
Get the electron attachment coefficient.
Reimplemented in Garfield::ComponentGrid, Garfield::ComponentTcadBase< N >, Garfield::ComponentTcadBase< 2 >, and Garfield::ComponentTcadBase< 3 >.
Definition at line 291 of file Component.hh.
|
inlinevirtual |
Get the electron drift velocity.
Reimplemented in Garfield::ComponentGrid, Garfield::ComponentTcadBase< N >, Garfield::ComponentTcadBase< 2 >, and Garfield::ComponentTcadBase< 3 >.
Definition at line 303 of file Component.hh.
|
inline |
Enable axial periodicity in the direction.
Definition at line 237 of file Component.hh.
|
inline |
Enable axial periodicity in the direction.
Definition at line 242 of file Component.hh.
|
inline |
Enable axial periodicity in the direction.
Definition at line 247 of file Component.hh.
|
inline |
|
inline |
Enable mirror periodicity in the direction.
Definition at line 215 of file Component.hh.
|
inline |
Enable mirror periodicity in the direction.
Definition at line 220 of file Component.hh.
Referenced by main().
|
inline |
Enable mirror periodicity in the direction.
Definition at line 225 of file Component.hh.
|
inline |
Enable simple periodicity in the direction.
Definition at line 193 of file Component.hh.
Referenced by main().
|
inline |
Enable simple periodicity in the direction.
Definition at line 198 of file Component.hh.
|
inline |
Enable simple periodicity in the direction.
Definition at line 203 of file Component.hh.
|
inline |
Enable rotation symmetry around the axis.
Definition at line 259 of file Component.hh.
|
inline |
Enable rotation symmetry around the axis.
Definition at line 264 of file Component.hh.
|
inline |
Enable rotation symmetry around the axis.
Definition at line 269 of file Component.hh.
|
virtual |
Get the bounding box coordinates.
Reimplemented in Garfield::ComponentAnalyticField, Garfield::ComponentConstant, Garfield::ComponentFieldMap, Garfield::ComponentGrid, Garfield::ComponentNeBem2d, Garfield::ComponentNeBem3dMap, Garfield::ComponentParallelPlate, Garfield::ComponentTcad2d, Garfield::ComponentTcad3d, Garfield::ComponentUser, and Garfield::ComponentVoxel.
Definition at line 99 of file Component.cc.
Referenced by Garfield::ComponentConstant::GetBoundingBox(), Garfield::ComponentUser::GetBoundingBox(), GetElementaryCell(), Garfield::ViewField::PlotFieldLines(), and Garfield::ViewBase::PlotLimits().
|
inlinevirtual |
Reimplemented in Garfield::ComponentTcadBase< N >, Garfield::ComponentTcadBase< 2 >, and Garfield::ComponentTcadBase< 3 >.
Definition at line 316 of file Component.hh.
|
virtual |
Get the coordinates of the elementary cell.
Reimplemented in Garfield::ComponentAnalyticField, Garfield::ComponentFieldMap, Garfield::ComponentGrid, Garfield::ComponentNeBem2d, Garfield::ComponentTcad2d, Garfield::ComponentTcad3d, and Garfield::ComponentVoxel.
Definition at line 105 of file Component.cc.
Referenced by Garfield::ViewBase::PlotLimits().
|
inlinevirtual |
Reimplemented in Garfield::ComponentTcadBase< N >, Garfield::ComponentTcadBase< 2 >, and Garfield::ComponentTcadBase< 3 >.
Definition at line 321 of file Component.hh.
|
virtual |
Get the medium at a given location (x, y, z).
Reimplemented in Garfield::ComponentFieldMap, Garfield::ComponentAnalyticField, Garfield::ComponentAnsys121, Garfield::ComponentAnsys123, Garfield::ComponentComsol, Garfield::ComponentConstant, Garfield::ComponentCST, Garfield::ComponentElmer, Garfield::ComponentElmer2D, Garfield::ComponentGrid, Garfield::ComponentNeBem2d, Garfield::ComponentNeBem3d, Garfield::ComponentNeBem3dMap, Garfield::ComponentParallelPlate, Garfield::ComponentTcad2d, Garfield::ComponentTcad3d, Garfield::ComponentUser, and Garfield::ComponentVoxel.
Definition at line 22 of file Component.cc.
Referenced by Garfield::ComponentConstant::GetMedium(), Garfield::ComponentUser::GetMedium(), and Garfield::Sensor::GetMedium().
|
pure virtual |
Calculate the voltage range [V].
Implemented in Garfield::ComponentAnalyticField, Garfield::ComponentConstant, Garfield::ComponentFieldMap, Garfield::ComponentGrid, Garfield::ComponentNeBem2d, Garfield::ComponentNeBem3d, Garfield::ComponentNeBem3dMap, Garfield::ComponentParallelPlate, Garfield::ComponentTcadBase< N >, Garfield::ComponentTcadBase< 2 >, Garfield::ComponentTcadBase< 3 >, Garfield::ComponentUser, and Garfield::ComponentVoxel.
|
inlinevirtual |
Does the component have attachment maps?
Reimplemented in Garfield::ComponentGrid, Garfield::ComponentTcadBase< N >, Garfield::ComponentTcadBase< 2 >, and Garfield::ComponentTcadBase< 3 >.
Definition at line 286 of file Component.hh.
|
inlinevirtual |
Does the component have velocity maps?
Reimplemented in Garfield::ComponentGrid, Garfield::ComponentTcadBase< N >, Garfield::ComponentTcadBase< 2 >, and Garfield::ComponentTcadBase< 3 >.
Definition at line 288 of file Component.hh.
|
inlinevirtual |
Get the hole attachment coefficient.
Reimplemented in Garfield::ComponentGrid, Garfield::ComponentTcadBase< N >, Garfield::ComponentTcadBase< 2 >, and Garfield::ComponentTcadBase< 3 >.
Definition at line 297 of file Component.hh.
|
inlinevirtual |
Get the hole drift velocity.
Reimplemented in Garfield::ComponentGrid, Garfield::ComponentTcadBase< N >, Garfield::ComponentTcadBase< 2 >, and Garfield::ComponentTcadBase< 3 >.
Definition at line 310 of file Component.hh.
double Garfield::Component::IntegrateFluxCircle | ( | const double | xc, |
const double | yc, | ||
const double | r, | ||
const unsigned int | nI = 50 |
||
) |
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 |
Definition at line 127 of file Component.cc.
double Garfield::Component::IntegrateFluxLine | ( | const double | x0, |
const double | y0, | ||
const double | z0, | ||
const double | x1, | ||
const double | y1, | ||
const double | z1, | ||
const double | xp, | ||
const double | yp, | ||
const double | zp, | ||
const unsigned int | nI, | ||
const int | isign = 0 |
||
) |
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) |
Definition at line 320 of file Component.cc.
Referenced by Garfield::ViewField::EqualFluxIntervals(), and Garfield::ViewField::FixedFluxIntervals().
double Garfield::Component::IntegrateFluxParallelogram | ( | const double | x0, |
const double | y0, | ||
const double | z0, | ||
const double | dx1, | ||
const double | dy1, | ||
const double | dz1, | ||
const double | dx2, | ||
const double | dy2, | ||
const double | dz2, | ||
const unsigned int | nU = 20 , |
||
const unsigned int | nV = 20 |
||
) |
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 |
Definition at line 225 of file Component.cc.
Referenced by IntegrateFluxParallelogram(), and IntegrateWeightingFluxParallelogram().
double Garfield::Component::IntegrateFluxSphere | ( | const double | xc, |
const double | yc, | ||
const double | zc, | ||
const double | r, | ||
const unsigned int | nI = 20 |
||
) |
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 |
Definition at line 166 of file Component.cc.
double Garfield::Component::IntegrateWeightingFluxParallelogram | ( | const std::string & | label, |
const double | x0, | ||
const double | y0, | ||
const double | z0, | ||
const double | dx1, | ||
const double | dy1, | ||
const double | dz1, | ||
const double | dx2, | ||
const double | dy2, | ||
const double | dz2, | ||
const unsigned int | nU = 20 , |
||
const unsigned int | nV = 20 |
||
) |
Integrate the normal component of the weighting field over a parallelogram.
Definition at line 234 of file Component.cc.
|
inline |
Return axial periodicity flags.
Definition at line 252 of file Component.hh.
|
virtual |
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). |
Reimplemented in Garfield::ComponentAnalyticField, and Garfield::ComponentNeBem2d.
Definition at line 118 of file Component.cc.
|
inline |
Return mirror periodicity flags.
Definition at line 230 of file Component.hh.
Referenced by neBEM::neBEMGetMirror(), and neBEM::neBEMGetPeriodicities().
|
inline |
Return periodicity flags.
Definition at line 208 of file Component.hh.
Referenced by neBEM::neBEMGetPeriodicities().
|
inlinevirtual |
|
inline |
Return rotation symmetry flags.
Definition at line 274 of file Component.hh.
|
virtual |
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. |
Reimplemented in Garfield::ComponentAnalyticField, and Garfield::ComponentNeBem2d.
Definition at line 110 of file Component.cc.
|
virtual |
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. |
Reimplemented in Garfield::ComponentGrid, Garfield::ComponentNeBem3dMap, Garfield::ComponentUser, and Garfield::ComponentVoxel.
Definition at line 81 of file Component.cc.
Referenced by Garfield::ComponentGrid::MagneticField(), Garfield::ComponentNeBem3dMap::MagneticField(), and Garfield::ComponentVoxel::MagneticField().
|
protectedpure virtual |
Reset the component.
Implemented in Garfield::ComponentFieldMap, and Garfield::ComponentNeBem3d.
|
virtual |
Define the geometry.
Definition at line 13 of file Component.cc.
void Garfield::Component::SetMagneticField | ( | const double | bx, |
const double | by, | ||
const double | bz | ||
) |
|
protectedpure virtual |
Verify periodicities.
Implemented in Garfield::ComponentAnsys121, Garfield::ComponentAnsys123, Garfield::ComponentComsol, Garfield::ComponentCST, Garfield::ComponentElmer, Garfield::ComponentElmer2D, Garfield::ComponentNeBem3d, Garfield::ComponentTcadBase< N >, Garfield::ComponentTcadBase< 2 >, and Garfield::ComponentTcadBase< 3 >.
Referenced by EnableAxialPeriodicityX(), EnableAxialPeriodicityY(), EnableAxialPeriodicityZ(), EnableMirrorPeriodicityX(), EnableMirrorPeriodicityY(), EnableMirrorPeriodicityZ(), EnablePeriodicityX(), EnablePeriodicityY(), EnablePeriodicityZ(), EnableRotationSymmetryX(), EnableRotationSymmetryY(), EnableRotationSymmetryZ(), and Garfield::ComponentFieldMap::Prepare().
|
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 in Garfield::ComponentAnalyticField, Garfield::ComponentAnsys121, Garfield::ComponentAnsys123, Garfield::ComponentComsol, Garfield::ComponentConstant, Garfield::ComponentCST, Garfield::ComponentElmer, Garfield::ComponentElmer2D, Garfield::ComponentGrid, Garfield::ComponentNeBem3d, Garfield::ComponentNeBem3dMap, Garfield::ComponentParallelPlate, Garfield::ComponentTcadBase< N >, Garfield::ComponentTcadBase< 2 >, Garfield::ComponentTcadBase< 3 >, Garfield::ComponentUser, and Garfield::ComponentVoxel.
Definition at line 40 of file Component.cc.
Referenced by Garfield::ComponentGrid::SaveWeightingField().
|
virtual |
Calculate the weighting potential at a given point.
x,y,z | coordinates [cm]. |
label | name of the electrode. |
Reimplemented in Garfield::ComponentAnalyticField, Garfield::ComponentAnsys121, Garfield::ComponentAnsys123, Garfield::ComponentComsol, Garfield::ComponentConstant, Garfield::ComponentCST, Garfield::ComponentElmer, Garfield::ComponentElmer2D, Garfield::ComponentGrid, Garfield::ComponentNeBem3d, Garfield::ComponentNeBem3dMap, Garfield::ComponentParallelPlate, Garfield::ComponentTcadBase< N >, Garfield::ComponentTcadBase< 2 >, Garfield::ComponentTcadBase< 3 >, Garfield::ComponentUser, and Garfield::ComponentVoxel.
Definition at line 59 of file Component.cc.
Referenced by Garfield::ComponentGrid::SaveWeightingField().
|
protected |
Axial periodicity in x, y, z.
Definition at line 348 of file Component.hh.
Referenced by EnableAxialPeriodicityX(), EnableAxialPeriodicityY(), EnableAxialPeriodicityZ(), IsAxiallyPeriodic(), Garfield::ComponentFieldMap::MapCoordinates(), Garfield::ComponentFieldMap::PrintRange(), Garfield::ComponentFieldMap::UnmapFields(), Garfield::ComponentNeBem3d::UpdatePeriodicity(), Garfield::ComponentFieldMap::UpdatePeriodicity2d(), and Garfield::ComponentFieldMap::UpdatePeriodicityCommon().
|
protected |
Constant magnetic field.
Definition at line 335 of file Component.hh.
Referenced by MagneticField(), and SetMagneticField().
|
protected |
Class name.
Definition at line 329 of file Component.hh.
Referenced by Garfield::ComponentNeBem2d::AddChargeDistribution(), Garfield::ComponentParallelPlate::AddPixel(), Garfield::ComponentAnalyticField::AddPixelOnPlanePhi(), Garfield::ComponentAnalyticField::AddPixelOnPlaneR(), Garfield::ComponentAnalyticField::AddPixelOnPlaneX(), Garfield::ComponentAnalyticField::AddPixelOnPlaneY(), Garfield::ComponentParallelPlate::AddPlane(), Garfield::ComponentAnalyticField::AddPlanePhi(), Garfield::ComponentAnalyticField::AddPlaneR(), Garfield::ComponentNeBem3d::AddPlaneX(), Garfield::ComponentAnalyticField::AddPlaneX(), Garfield::ComponentNeBem3d::AddPlaneY(), Garfield::ComponentAnalyticField::AddPlaneY(), Garfield::ComponentNeBem3d::AddPlaneZ(), Garfield::ComponentAnalyticField::AddReadout(), Garfield::ComponentNeBem2d::AddRegion(), Garfield::ComponentNeBem2d::AddSegment(), Garfield::ComponentParallelPlate::AddStrip(), Garfield::ComponentAnalyticField::AddStripOnPlanePhi(), Garfield::ComponentAnalyticField::AddStripOnPlaneR(), Garfield::ComponentAnalyticField::AddStripOnPlaneX(), Garfield::ComponentAnalyticField::AddStripOnPlaneY(), Garfield::ComponentAnalyticField::AddTube(), Garfield::ComponentNeBem2d::AddWire(), Garfield::ComponentAnalyticField::AddWire(), Component(), Garfield::ComponentCST::Coordinate2Index(), DelayedWeightingField(), Garfield::ComponentParallelPlate::DelayedWeightingField(), DelayedWeightingPotential(), Garfield::ComponentParallelPlate::DelayedWeightingPotential(), Garfield::ComponentFieldMap::DriftMedium(), Garfield::ComponentAnsys121::ElectricField(), Garfield::ComponentAnsys123::ElectricField(), Garfield::ComponentComsol::ElectricField(), Garfield::ComponentConstant::ElectricField(), Garfield::ComponentElmer::ElectricField(), Garfield::ComponentElmer2D::ElectricField(), Garfield::ComponentGrid::ElectricField(), Garfield::ComponentNeBem3d::ElectricField(), Garfield::ComponentNeBem3dMap::ElectricField(), Garfield::ComponentTcad2d::ElectricField(), Garfield::ComponentTcad3d::ElectricField(), Garfield::ComponentVoxel::ElectricField(), Garfield::ComponentParallelPlate::ElectricField(), Garfield::ComponentUser::ElectricField(), Garfield::ComponentAnalyticField::ElectricFieldAtWire(), Garfield::ComponentGrid::ElectronAttachment(), Garfield::ComponentGrid::ElectronVelocity(), Garfield::ComponentFieldMap::FindElement13(), Garfield::ComponentFieldMap::FindElement5(), Garfield::ComponentFieldMap::FindElementCube(), Garfield::ComponentAnalyticField::ForcesOnWire(), Garfield::ComponentFieldMap::GetConductivity(), Garfield::ComponentGrid::GetElectricField(), Garfield::ComponentGrid::GetElectricFieldRange(), Garfield::ComponentNeBem3dMap::GetElectricFieldRange(), Garfield::ComponentVoxel::GetElectricFieldRange(), Garfield::ComponentNeBem3dMap::GetElement(), Garfield::ComponentVoxel::GetElement(), Garfield::ComponentFieldMap::GetElement(), Garfield::ComponentTcad2d::GetElement(), Garfield::ComponentTcad3d::GetElement(), Garfield::ComponentCST::GetElement(), Garfield::ComponentNeBem3d::GetElement(), Garfield::ComponentAnsys121::GetMedium(), Garfield::ComponentAnsys123::GetMedium(), Garfield::ComponentComsol::GetMedium(), Garfield::ComponentCST::GetMedium(), Garfield::ComponentElmer::GetMedium(), Garfield::ComponentElmer2D::GetMedium(), Garfield::ComponentGrid::GetMedium(), Garfield::ComponentNeBem3dMap::GetMedium(), Garfield::ComponentTcad2d::GetMedium(), Garfield::ComponentTcad3d::GetMedium(), Garfield::ComponentVoxel::GetMedium(), Garfield::ComponentFieldMap::GetMedium(), Garfield::ComponentTcad2d::GetNode(), Garfield::ComponentFieldMap::GetNode(), Garfield::ComponentCST::GetNode(), Garfield::ComponentTcad3d::GetNode(), Garfield::ComponentFieldMap::GetPermittivity(), Garfield::ComponentAnalyticField::GetPlanePhi(), Garfield::ComponentAnalyticField::GetPlaneR(), Garfield::ComponentNeBem3d::GetPlaneX(), Garfield::ComponentAnalyticField::GetPlaneX(), Garfield::ComponentNeBem3d::GetPlaneY(), Garfield::ComponentAnalyticField::GetPlaneY(), Garfield::ComponentNeBem3d::GetPlaneZ(), Garfield::ComponentNeBem3d::GetPrimitive(), Garfield::ComponentAnalyticField::GetVoltageRange(), Garfield::ComponentConstant::GetVoltageRange(), Garfield::ComponentNeBem3d::GetVolume(), Garfield::ComponentAnalyticField::GetWire(), Garfield::ComponentGrid::HoleAttachment(), Garfield::ComponentGrid::HoleVelocity(), Garfield::ComponentNeBem2d::Initialise(), Garfield::ComponentNeBem3d::Initialise(), Garfield::ComponentElmer::Initialise(), Garfield::ComponentElmer2D::Initialise(), Garfield::ComponentComsol::Initialise(), Garfield::ComponentCST::Initialise(), Garfield::ComponentAnsys121::Initialise(), Garfield::ComponentAnsys123::Initialise(), IntegrateFluxCircle(), IntegrateFluxLine(), IntegrateFluxSphere(), Garfield::ComponentAnalyticField::IsInTrapRadius(), Garfield::ComponentAnalyticField::IsWireCrossed(), Garfield::ComponentNeBem3dMap::LoadElectricField(), Garfield::ComponentVoxel::LoadElectricField(), Garfield::ComponentNeBem3dMap::LoadMagneticField(), Garfield::ComponentVoxel::LoadMagneticField(), Garfield::ComponentNeBem3dMap::LoadMapInfo(), Garfield::ComponentVoxel::LoadWeightingField(), MagneticField(), Garfield::ComponentAnalyticField::MultipoleMoments(), Garfield::ComponentFieldMap::NotDriftMedium(), Garfield::ComponentFieldMap::Prepare(), Garfield::ComponentGrid::Print(), Garfield::ComponentAnalyticField::PrintCell(), Garfield::ComponentAnalyticField::PrintCharges(), Garfield::ComponentFieldMap::PrintCouldNotOpen(), Garfield::ComponentFieldMap::PrintElement(), Garfield::ComponentFieldMap::PrintMaterials(), Garfield::ComponentFieldMap::PrintNotReady(), Garfield::ComponentFieldMap::PrintRange(), Garfield::ComponentNeBem3dMap::PrintRegions(), Garfield::ComponentVoxel::PrintRegions(), Garfield::ComponentFieldMap::PrintWarning(), Garfield::ComponentGrid::SaveElectricField(), Garfield::ComponentGrid::SaveWeightingField(), Garfield::ComponentAnalyticField::SetCartesianCoordinates(), Garfield::ComponentFieldMap::SetDefaultDriftMedium(), Garfield::ComponentUser::SetDelayedWeightingField(), Garfield::ComponentComsol::SetDelayedWeightingPotential(), Garfield::ComponentConstant::SetElectricField(), Garfield::ComponentUser::SetElectricField(), SetGeometry(), Garfield::ComponentAnalyticField::SetGravity(), Garfield::ComponentUser::SetMagneticField(), Garfield::ComponentNeBem2d::SetMaxNumberOfIterations(), Garfield::ComponentNeBem3dMap::SetMedium(), Garfield::ComponentVoxel::SetMedium(), Garfield::ComponentFieldMap::SetMedium(), Garfield::ComponentGrid::SetMedium(), Garfield::ComponentGrid::SetMesh(), Garfield::ComponentNeBem3dMap::SetMesh(), Garfield::ComponentVoxel::SetMesh(), Garfield::ComponentNeBem3d::SetMinMaxNumberOfElements(), Garfield::ComponentNeBem3d::SetMirrorPeriodicityX(), Garfield::ComponentNeBem3d::SetMirrorPeriodicityY(), Garfield::ComponentNeBem3d::SetMirrorPeriodicityZ(), Garfield::ComponentNeBem2d::SetNumberOfCollocationPoints(), Garfield::ComponentNeBem2d::SetNumberOfDivisions(), Garfield::ComponentAnalyticField::SetNumberOfSteps(), Garfield::ComponentAnalyticField::SetPeriodicityPhi(), Garfield::ComponentAnalyticField::SetPeriodicityX(), Garfield::ComponentNeBem3d::SetPeriodicityX(), Garfield::ComponentAnalyticField::SetPeriodicityY(), Garfield::ComponentNeBem3d::SetPeriodicityY(), Garfield::ComponentNeBem3d::SetPeriodicityZ(), Garfield::ComponentAnalyticField::SetPolarCoordinates(), Garfield::ComponentUser::SetPotential(), Garfield::ComponentFieldMap::SetRange(), Garfield::ComponentAnsys121::SetRangeZ(), Garfield::ComponentCST::SetRangeZ(), Garfield::ComponentElmer2D::SetRangeZ(), Garfield::ComponentNeBem2d::SetRangeZ(), Garfield::ComponentTcad2d::SetRangeZ(), Garfield::ComponentAnalyticField::SetScanningArea(), Garfield::ComponentAnalyticField::SetScanningAreaFirstOrder(), Garfield::ComponentAnalyticField::SetScanningGrid(), Garfield::ComponentNeBem3d::SetTargetElementSize(), Garfield::ComponentComsol::SetTimeInterval(), Garfield::ComponentParallelPlate::Setup(), Garfield::ComponentComsol::SetWeightingField(), Garfield::ComponentUser::SetWeightingField(), Garfield::ComponentAnsys121::SetWeightingField(), Garfield::ComponentAnsys123::SetWeightingField(), Garfield::ComponentElmer::SetWeightingField(), Garfield::ComponentElmer2D::SetWeightingField(), Garfield::ComponentCST::SetWeightingField(), Garfield::ComponentConstant::SetWeightingPotential(), Garfield::ComponentUser::SetWeightingPotential(), Garfield::ComponentCST::ShiftComponent(), Garfield::ComponentNeBem3d::UpdatePeriodicity(), Garfield::ComponentFieldMap::UpdatePeriodicity2d(), Garfield::ComponentFieldMap::UpdatePeriodicityCommon(), WeightingField(), Garfield::ComponentConstant::WeightingField(), Garfield::ComponentNeBem3d::WeightingField(), WeightingPotential(), Garfield::ComponentCST::WeightingPotential(), and Garfield::ComponentAnalyticField::WireDisplacement().
|
protected |
Switch on/off debugging messages.
Definition at line 341 of file Component.hh.
Referenced by Garfield::ComponentNeBem2d::AddRegion(), Garfield::ComponentNeBem2d::AddSegment(), Garfield::ComponentNeBem2d::AddWire(), Garfield::ComponentCST::Coordinate2Index(), DelayedWeightingField(), Garfield::ComponentParallelPlate::DelayedWeightingField(), DelayedWeightingPotential(), Garfield::ComponentComsol::DelayedWeightingPotential(), Garfield::ComponentParallelPlate::DelayedWeightingPotential(), DisableDebugging(), Garfield::ComponentAnsys121::ElectricField(), Garfield::ComponentAnsys123::ElectricField(), Garfield::ComponentComsol::ElectricField(), Garfield::ComponentConstant::ElectricField(), Garfield::ComponentElmer::ElectricField(), Garfield::ComponentElmer2D::ElectricField(), Garfield::ComponentNeBem3dMap::ElectricField(), Garfield::ComponentParallelPlate::ElectricField(), Garfield::ComponentUser::ElectricField(), EnableDebugging(), Garfield::ComponentFieldMap::FindElement13(), Garfield::ComponentFieldMap::FindElement5(), Garfield::ComponentFieldMap::FindElementCube(), Garfield::ComponentAnalyticField::ForcesOnWire(), Garfield::ComponentNeBem3dMap::GetElement(), Garfield::ComponentAnsys121::GetMedium(), Garfield::ComponentAnsys123::GetMedium(), Garfield::ComponentComsol::GetMedium(), Garfield::ComponentCST::GetMedium(), Garfield::ComponentElmer::GetMedium(), Garfield::ComponentElmer2D::GetMedium(), Garfield::ComponentNeBem2d::Initialise(), Garfield::ComponentNeBem3d::Initialise(), Garfield::ComponentElmer::Initialise(), Garfield::ComponentElmer2D::Initialise(), Garfield::ComponentCST::Initialise(), Garfield::ComponentAnsys121::Initialise(), Garfield::ComponentAnsys123::Initialise(), Garfield::ComponentAnalyticField::IsInTrapRadius(), MagneticField(), Garfield::ComponentAnalyticField::MultipoleMoments(), Garfield::ComponentFieldMap::SetMedium(), Garfield::ComponentFieldMap::SetRange(), Garfield::ComponentCST::SetWeightingField(), Garfield::ComponentFieldMap::UpdatePeriodicityCommon(), WeightingField(), Garfield::ComponentAnsys121::WeightingField(), Garfield::ComponentAnsys123::WeightingField(), Garfield::ComponentComsol::WeightingField(), Garfield::ComponentConstant::WeightingField(), Garfield::ComponentElmer::WeightingField(), Garfield::ComponentElmer2D::WeightingField(), WeightingPotential(), Garfield::ComponentAnsys121::WeightingPotential(), Garfield::ComponentAnsys123::WeightingPotential(), Garfield::ComponentComsol::WeightingPotential(), Garfield::ComponentCST::WeightingPotential(), Garfield::ComponentElmer::WeightingPotential(), and Garfield::ComponentElmer2D::WeightingPotential().
|
protected |
Pointer to the geometry.
Definition at line 332 of file Component.hh.
Referenced by Garfield::ComponentAnalyticField::ElectricField(), Garfield::ComponentParallelPlate::ElectricField(), Garfield::ComponentAnalyticField::GetBoundingBox(), GetBoundingBox(), Garfield::ComponentNeBem2d::GetBoundingBox(), Garfield::ComponentParallelPlate::GetBoundingBox(), GetMedium(), Garfield::ComponentAnalyticField::GetMedium(), Garfield::ComponentNeBem2d::GetMedium(), Garfield::ComponentNeBem3d::GetMedium(), Garfield::ComponentParallelPlate::GetMedium(), Garfield::ComponentNeBem3d::GetVolume(), Garfield::ComponentNeBem3d::Initialise(), and SetGeometry().
|
protected |
Mirror periodicity in x, y, z.
Definition at line 346 of file Component.hh.
Referenced by EnableMirrorPeriodicityX(), EnableMirrorPeriodicityY(), EnableMirrorPeriodicityZ(), Garfield::ComponentGrid::GetBoundingBox(), Garfield::ComponentNeBem3dMap::GetBoundingBox(), Garfield::ComponentTcad2d::GetBoundingBox(), Garfield::ComponentTcad3d::GetBoundingBox(), Garfield::ComponentVoxel::GetBoundingBox(), Garfield::ComponentNeBem3dMap::GetElement(), Garfield::ComponentVoxel::GetElement(), Garfield::ComponentGrid::GetMedium(), Garfield::ComponentNeBem3d::GetPeriodicityX(), Garfield::ComponentNeBem3d::GetPeriodicityY(), Garfield::ComponentNeBem3d::GetPeriodicityZ(), IsMirrorPeriodic(), Garfield::ComponentFieldMap::MapCoordinates(), Garfield::ComponentFieldMap::PrintRange(), Garfield::ComponentNeBem3d::SetMirrorPeriodicityX(), Garfield::ComponentNeBem3d::SetMirrorPeriodicityY(), Garfield::ComponentNeBem3d::SetMirrorPeriodicityZ(), Garfield::ComponentNeBem3d::SetPeriodicityX(), Garfield::ComponentNeBem3d::SetPeriodicityY(), Garfield::ComponentNeBem3d::SetPeriodicityZ(), Garfield::ComponentNeBem3d::UpdatePeriodicity(), Garfield::ComponentFieldMap::UpdatePeriodicity2d(), and Garfield::ComponentFieldMap::UpdatePeriodicityCommon().
|
protected |
Simple periodicity in x, y, z.
Definition at line 344 of file Component.hh.
Referenced by EnablePeriodicityX(), EnablePeriodicityY(), EnablePeriodicityZ(), Garfield::ComponentGrid::GetBoundingBox(), Garfield::ComponentNeBem3dMap::GetBoundingBox(), Garfield::ComponentTcad2d::GetBoundingBox(), Garfield::ComponentTcad3d::GetBoundingBox(), Garfield::ComponentVoxel::GetBoundingBox(), Garfield::ComponentNeBem3dMap::GetElement(), Garfield::ComponentVoxel::GetElement(), Garfield::ComponentGrid::GetMedium(), Garfield::ComponentAnalyticField::GetPeriodicityPhi(), Garfield::ComponentAnalyticField::GetPeriodicityX(), Garfield::ComponentNeBem3d::GetPeriodicityX(), Garfield::ComponentAnalyticField::GetPeriodicityY(), Garfield::ComponentNeBem3d::GetPeriodicityY(), Garfield::ComponentNeBem3d::GetPeriodicityZ(), IsPeriodic(), Garfield::ComponentFieldMap::MapCoordinates(), Garfield::ComponentFieldMap::PrintRange(), Garfield::ComponentNeBem3d::SetMirrorPeriodicityX(), Garfield::ComponentNeBem3d::SetMirrorPeriodicityY(), Garfield::ComponentNeBem3d::SetMirrorPeriodicityZ(), Garfield::ComponentAnalyticField::SetPeriodicityPhi(), Garfield::ComponentAnalyticField::SetPeriodicityX(), Garfield::ComponentNeBem3d::SetPeriodicityX(), Garfield::ComponentAnalyticField::SetPeriodicityY(), Garfield::ComponentNeBem3d::SetPeriodicityY(), Garfield::ComponentNeBem3d::SetPeriodicityZ(), Garfield::ComponentNeBem3d::UpdatePeriodicity(), Garfield::ComponentFieldMap::UpdatePeriodicity2d(), and Garfield::ComponentFieldMap::UpdatePeriodicityCommon().
|
protected |
Ready for use?
Definition at line 338 of file Component.hh.
Referenced by Garfield::ComponentNeBem3d::AddPlaneX(), Garfield::ComponentNeBem3d::AddPlaneY(), Garfield::ComponentNeBem3d::AddPlaneZ(), Garfield::ComponentNeBem2d::AddSegment(), Garfield::ComponentNeBem2d::AddWire(), Garfield::ComponentComsol::DelayedWeightingPotential(), Garfield::ComponentFieldMap::DriftMedium(), Garfield::ComponentAnsys121::ElectricField(), Garfield::ComponentAnsys123::ElectricField(), Garfield::ComponentComsol::ElectricField(), Garfield::ComponentElmer::ElectricField(), Garfield::ComponentElmer2D::ElectricField(), Garfield::ComponentGrid::ElectricField(), Garfield::ComponentNeBem3d::ElectricField(), Garfield::ComponentNeBem3dMap::ElectricField(), Garfield::ComponentTcad2d::ElectricField(), Garfield::ComponentTcad3d::ElectricField(), Garfield::ComponentVoxel::ElectricField(), Garfield::ComponentFieldMap::GetBoundingBox(), Garfield::ComponentGrid::GetBoundingBox(), Garfield::ComponentNeBem3dMap::GetBoundingBox(), Garfield::ComponentTcad2d::GetBoundingBox(), Garfield::ComponentTcad3d::GetBoundingBox(), Garfield::ComponentVoxel::GetBoundingBox(), Garfield::ComponentGrid::GetElectricField(), Garfield::ComponentGrid::GetElectricFieldRange(), Garfield::ComponentNeBem3dMap::GetElectricFieldRange(), Garfield::ComponentVoxel::GetElectricFieldRange(), Garfield::ComponentNeBem3dMap::GetElement(), Garfield::ComponentVoxel::GetElement(), Garfield::ComponentFieldMap::GetElementaryCell(), Garfield::ComponentGrid::GetElementaryCell(), Garfield::ComponentTcad2d::GetElementaryCell(), Garfield::ComponentTcad3d::GetElementaryCell(), Garfield::ComponentVoxel::GetElementaryCell(), Garfield::ComponentAnsys121::GetMedium(), Garfield::ComponentAnsys123::GetMedium(), Garfield::ComponentComsol::GetMedium(), Garfield::ComponentElmer::GetMedium(), Garfield::ComponentElmer2D::GetMedium(), Garfield::ComponentGrid::GetMedium(), Garfield::ComponentNeBem3dMap::GetMedium(), Garfield::ComponentTcad2d::GetMedium(), Garfield::ComponentTcad3d::GetMedium(), Garfield::ComponentVoxel::GetMedium(), Garfield::ComponentNeBem2d::GetRegion(), Garfield::ComponentGrid::GetVoltageRange(), Garfield::ComponentNeBem3dMap::GetVoltageRange(), Garfield::ComponentVoxel::GetVoltageRange(), Garfield::ComponentNeBem2d::Initialise(), Garfield::ComponentNeBem3d::Initialise(), Garfield::ComponentElmer::Initialise(), Garfield::ComponentElmer2D::Initialise(), Garfield::ComponentComsol::Initialise(), Garfield::ComponentCST::Initialise(), Garfield::ComponentAnsys121::Initialise(), Garfield::ComponentAnsys123::Initialise(), IsReady(), Garfield::ComponentGrid::LoadElectricField(), Garfield::ComponentNeBem3dMap::LoadElectricField(), Garfield::ComponentVoxel::LoadElectricField(), Garfield::ComponentFieldMap::NotDriftMedium(), Garfield::ComponentFieldMap::PrintMaterials(), Garfield::ComponentNeBem3dMap::PrintRegions(), Garfield::ComponentVoxel::PrintRegions(), Garfield::ComponentFieldMap::Reset(), Garfield::ComponentNeBem3d::Reset(), Garfield::ComponentComsol::SetDelayedWeightingPotential(), Garfield::ComponentConstant::SetElectricField(), Garfield::ComponentUser::SetElectricField(), Garfield::ComponentNeBem2d::SetNumberOfCollocationPoints(), Garfield::ComponentNeBem2d::SetNumberOfDivisions(), Garfield::ComponentFieldMap::SetRange(), Garfield::ComponentComsol::SetWeightingField(), Garfield::ComponentAnsys121::SetWeightingField(), Garfield::ComponentAnsys123::SetWeightingField(), Garfield::ComponentElmer::SetWeightingField(), Garfield::ComponentElmer2D::SetWeightingField(), Garfield::ComponentCST::SetWeightingField(), Garfield::ComponentFieldMap::UpdatePeriodicity2d(), Garfield::ComponentFieldMap::UpdatePeriodicityCommon(), Garfield::ComponentAnsys121::WeightingField(), Garfield::ComponentAnsys123::WeightingField(), Garfield::ComponentComsol::WeightingField(), Garfield::ComponentCST::WeightingField(), Garfield::ComponentElmer::WeightingField(), Garfield::ComponentElmer2D::WeightingField(), Garfield::ComponentAnsys121::WeightingPotential(), Garfield::ComponentAnsys123::WeightingPotential(), Garfield::ComponentComsol::WeightingPotential(), Garfield::ComponentCST::WeightingPotential(), Garfield::ComponentElmer::WeightingPotential(), and Garfield::ComponentElmer2D::WeightingPotential().
|
protected |
Rotation symmetry around x-axis, y-axis, z-axis.
Definition at line 350 of file Component.hh.
Referenced by EnableRotationSymmetryX(), EnableRotationSymmetryY(), EnableRotationSymmetryZ(), IsRotationSymmetric(), Garfield::ComponentFieldMap::MapCoordinates(), Garfield::ComponentFieldMap::PrintRange(), Garfield::ComponentFieldMap::UnmapFields(), Garfield::ComponentNeBem3d::UpdatePeriodicity(), and Garfield::ComponentFieldMap::UpdatePeriodicityCommon().