3#ifndef G_COMPONENT_ELMER_2D_H
4#define G_COMPONENT_ELMER_2D_H
18 const std::string& nlist,
const std::string& mplist,
19 const std::string& volt,
const std::string& unit);
23 void ElectricField(
const double x,
const double y,
const double z,
double& ex,
24 double& ey,
double& ez,
Medium*& m,
int& status)
override;
25 void ElectricField(
const double x,
const double y,
const double z,
double& ex,
26 double& ey,
double& ez,
double& v,
Medium*& m,
27 int& status)
override;
29 void WeightingField(
const double x,
const double y,
const double z,
30 double& wx,
double& wy,
double& wz,
31 const std::string& label)
override;
33 const std::string& label)
override;
35 Medium*
GetMedium(
const double x,
const double y,
const double z)
override;
46 bool Initialise(
const std::string& header =
"mesh.header",
47 const std::string& elist =
"mesh.elements",
48 const std::string& nlist =
"mesh.nodes",
49 const std::string& mplist =
"dielectrics.dat",
50 const std::string& volt =
"out.result",
51 const std::string& unit =
"cm");
55 void SetRangeZ(
const double zmin,
const double zmax);
63 double& dmax)
override;
Component for importing field maps computed by Elmer.
Medium * GetMedium(const double x, const double y, const double z) override
Get the medium at a given location (x, y, z).
bool SetWeightingField(std::string prnsol, std::string label)
Import a list of voltages to be used as weighting field.
ComponentElmer2D()
Default constructor.
double GetElementVolume(const unsigned int i) override
double WeightingPotential(const double x, const double y, const double z, const std::string &label) override
void ElectricField(const double x, const double y, const double z, double &ex, double &ey, double &ez, Medium *&m, int &status) override
void WeightingField(const double x, const double y, const double z, double &wx, double &wy, double &wz, const std::string &label) override
~ComponentElmer2D()
Destructor.
void UpdatePeriodicity() override
Verify periodicities.
bool Initialise(const std::string &header="mesh.header", const std::string &elist="mesh.elements", const std::string &nlist="mesh.nodes", const std::string &mplist="dielectrics.dat", const std::string &volt="out.result", const std::string &unit="cm")
void SetRangeZ(const double zmin, const double zmax)
void GetAspectRatio(const unsigned int i, double &dmin, double &dmax) override
Base class for components based on finite-element field maps.
Abstract base class for media.