Garfield++ v1r0
A toolkit for the detailed simulation of particle detectors based on ionisation measurement in gases and semiconductors
Loading...
Searching...
No Matches
ComponentAnsys121.hh
Go to the documentation of this file.
1#ifndef G_COMPONENT_ANSYS121_H
2#define G_COMPONENT_ANSYS121_H
3
5
6namespace Garfield {
7
9
10 public:
11 // Constructor
13 // Destructor
15
16 Medium* GetMedium(const double& x, const double& y, const double& z);
17 void ElectricField(const double x, const double y, const double z, double& ex,
18 double& ey, double& ez, Medium*& m, int& status);
19 void ElectricField(const double x, const double y, const double z, double& ex,
20 double& ey, double& ez, double& v, Medium*& m,
21 int& status);
22
23 void WeightingField(const double x, const double y, const double z,
24 double& wx, double& wy, double& wz,
25 const std::string label);
26
27 double WeightingPotential(const double x, const double y, const double z,
28 const std::string label);
29
30 bool Initialise(std::string elist = "ELIST.lis",
31 std::string nlist = "NLIST.lis",
32 std::string mplist = "MPLIST.lis",
33 std::string prnsol = "PRNSOL.lis", std::string unit = "cm");
34 bool SetWeightingField(std::string prnsol, std::string label);
35
36 // Range
37 bool IsInBoundingBox(const double x, const double y, const double z) {
38 return x >= xMinBoundingBox && x <= xMaxBoundingBox &&
39 y >= yMinBoundingBox && y <= yMaxBoundingBox &&
41 }
42
43 void SetRangeZ(const double zmin, const double zmax);
44
45 protected:
46 // Verify periodicities
47 void UpdatePeriodicity();
48
49 double GetElementVolume(const int i);
50 void GetAspectRatio(const int i, double& dmin, double& dmax);
51};
52}
53
54#endif
bool SetWeightingField(std::string prnsol, std::string label)
void ElectricField(const double x, const double y, const double z, double &ex, double &ey, double &ez, Medium *&m, int &status)
double GetElementVolume(const int i)
void GetAspectRatio(const int i, double &dmin, double &dmax)
bool Initialise(std::string elist="ELIST.lis", std::string nlist="NLIST.lis", std::string mplist="MPLIST.lis", std::string prnsol="PRNSOL.lis", std::string unit="cm")
bool IsInBoundingBox(const double x, const double y, const double z)
Medium * GetMedium(const double &x, const double &y, const double &z)
void WeightingField(const double x, const double y, const double z, double &wx, double &wy, double &wz, const std::string label)
void SetRangeZ(const double zmin, const double zmax)
double WeightingPotential(const double x, const double y, const double z, const std::string label)