Garfield++ 4.0
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
8/// Component for importing and interpolating two-dimensional ANSYS field maps.
9
11 public:
12 /// Constructor
14 /// Destructor
16
17 Medium* GetMedium(const double x, const double y, const double z) override;
18 void ElectricField(const double x, const double y, const double z, double& ex,
19 double& ey, double& ez, Medium*& m, int& status) override;
20 void ElectricField(const double x, const double y, const double z, double& ex,
21 double& ey, double& ez, double& v, Medium*& m,
22 int& status) override;
23
24 void WeightingField(const double x, const double y, const double z,
25 double& wx, double& wy, double& wz,
26 const std::string& label) override;
27
28 double WeightingPotential(const double x, const double y, const double z,
29 const std::string& label) override;
30
31 /** Import a field map.
32 * \param elist name of the file containing the list of elements
33 * \param nlist name of the file containing the list of nodes
34 * \param mplist name of the file containing the list of materials
35 * \param prnsol name of the file containing the nodal solutions
36 * \param unit length unit
37 */
38 bool Initialise(std::string elist = "ELIST.lis",
39 std::string nlist = "NLIST.lis",
40 std::string mplist = "MPLIST.lis",
41 std::string prnsol = "PRNSOL.lis", std::string unit = "cm");
42 /// Import a weighting field map.
43 bool SetWeightingField(std::string prnsol, std::string label);
44 /// Set the limits of the active region along z.
45 void SetRangeZ(const double zmin, const double zmax);
46
47 protected:
48 void UpdatePeriodicity() override;
49
50 double GetElementVolume(const unsigned int i) override;
51 void GetAspectRatio(const unsigned int i, double& dmin,
52 double& dmax) override;
53};
54}
55
56#endif
Component for importing and interpolating two-dimensional ANSYS field maps.
bool SetWeightingField(std::string prnsol, std::string label)
Import a weighting field map.
void GetAspectRatio(const unsigned int i, double &dmin, double &dmax) override
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")
void ElectricField(const double x, const double y, const double z, double &ex, double &ey, double &ez, Medium *&m, int &status) override
double GetElementVolume(const unsigned int i) override
void UpdatePeriodicity() override
Verify periodicities.
void SetRangeZ(const double zmin, const double zmax)
Set the limits of the active region along z.
double WeightingPotential(const double x, const double y, const double z, const std::string &label) override
void WeightingField(const double x, const double y, const double z, double &wx, double &wy, double &wz, const std::string &label) override
Medium * GetMedium(const double x, const double y, const double z) override
Get the medium at a given location (x, y, z).
Base class for components based on finite-element field maps.
Abstract base class for media.
Definition: Medium.hh:13