14 double p1 = x , p2 = y , p3 = z ;
15 double u1x = 1., u2x = 0., u3x = 0.;
16 double u1y = 0., u2y = 1., u3y = 0.;
17 double u1z = 0., u2z = 0., u3z = 1.;
19 MapCoordinates(p1, p2, p3, u1x, u2x, u3x, u1y, u2y, u3y, u1z, u2z, u3z,
25 std::cerr <<
" ComponentBase pointer is NULL for point (" << x <<
", "
26 << y <<
"," << z <<
")\n";
33 std::cerr <<
" Coordinates: \n";
34 std::cerr <<
" Global: (" << x <<
", " << y <<
", " << z <<
")\n";
35 std::cerr <<
" Local: (" << p1 <<
", " << p2 <<
", " << p3 <<
")\n";
36 std::cerr <<
" Local base vectors: \n";
37 std::cerr <<
" u1: (" << u1x <<
", " << u1y <<
", " << u1z <<
")\n";
38 std::cerr <<
" u2: (" << u2x <<
", " << u2y <<
", " << u2z <<
")\n";
39 std::cerr <<
" u3: (" << u3x <<
", " << u3y <<
", " << u3z <<
")\n";
46 const double z,
double& ex,
double& ey,
47 double& ez,
Medium*& m,
int& status){
53 const double z,
double& ex,
double& ey,
54 double& ez,
double& v,
Medium*& m,
56 double p1 = x , p2 = y , p3 = z ;
57 double u1x = 1., u2x = 0., u3x = 0.;
58 double u1y = 0., u2y = 1., u3y = 0.;
59 double u1z = 0., u2z = 0., u3z = 1.;
60 double e1 = 0., e2 = 0., e3 = 0.;
63 MapCoordinates(p1, p2, p3, u1x, u2x, u3x, u1y, u2y, u3y, u1z, u2z, u3z,
69 std::cerr <<
" ComponentBase pointer is NULL for point (" << x <<
", "
70 << y <<
"," << z <<
")\n";
79 std::cerr <<
" Coordinates: \n";
80 std::cerr <<
" Global: (" << x <<
", " << y <<
", " << z <<
")\n";
81 std::cerr <<
" Local: (" << p1 <<
", " << p2 <<
", " << p3 <<
")\n";
82 std::cerr <<
" Local base vectors: \n";
83 std::cerr <<
" u1: (" << u1x <<
", " << u1y <<
", " << u1z <<
")\n";
84 std::cerr <<
" u2: (" << u2x <<
", " << u2y <<
", " << u2z <<
")\n";
85 std::cerr <<
" u3: (" << u3x <<
", " << u3y <<
", " << u3z <<
")\n";
88 pComponent->
ElectricField(p1, p2, p3, e1, e2, e3, v, m, status);
89 UnmapField(e1, e2, e3, u1x, u2x, u3x, u1y, u2y, u3y, u1z, u2z, u3z, ex, ey,
94 const double z,
double& wx,
95 double& wy,
double& wz,
96 const std::string label){
97 double p1 = x , p2 = y , p3 = z ;
98 double u1x = 1., u2x = 0., u3x = 0.;
99 double u1y = 0., u2y = 1., u3y = 0.;
100 double u1z = 0., u2z = 0., u3z = 1.;
101 double w1 = 0., w2 = 0., w3 = 0.;
103 std::string label_ = label;
105 MapCoordinates(p1, p2, p3, u1x, u2x, u3x, u1y, u2y, u3y, u1z, u2z, u3z,
111 std::cerr <<
" ComponentBase pointer is NULL for point (" << x <<
", "
112 << y <<
"," << z <<
")\n";
120 std::cerr <<
" Coordinates: \n";
121 std::cerr <<
" Global: (" << x <<
", " << y <<
", " << z <<
")\n";
122 std::cerr <<
" Local: (" << p1 <<
", " << p2 <<
", " << p3 <<
")\n";
123 std::cerr <<
" Local base vectors: \n";
124 std::cerr <<
" u1: (" << u1x <<
", " << u1y <<
", " << u1z <<
")\n";
125 std::cerr <<
" u2: (" << u2x <<
", " << u2y <<
", " << u2z <<
")\n";
126 std::cerr <<
" u3: (" << u3x <<
", " << u3y <<
", " << u3z <<
")\n";
130 UnmapField(w1, w2, w3, u1x, u2x, u3x, u1y, u2y, u3y, u1z, u2z, u3z, wx, wy,
136 const std::string label){
137 double p1 = x , p2 = y , p3 = z ;
138 double u1x = 1., u2x = 0., u3x = 0.;
139 double u1y = 0., u2y = 1., u3y = 0.;
140 double u1z = 0., u2z = 0., u3z = 1.;
142 std::string label_ = label;
143 MapCoordinates(p1, p2, p3, u1x, u2x, u3x, u1y, u2y, u3y, u1z, u2z, u3z,
148 std::cerr <<
m_className <<
"::WeightingPotential:\n";
149 std::cerr <<
" ComponentBase pointer is NULL for point (" << x <<
", "
150 << y <<
"," << z <<
")\n";
156 std::cerr <<
m_className <<
"::WeightingPotential:\n";
157 std::cerr <<
" Coordinates: \n";
158 std::cerr <<
" Global: (" << x <<
", " << y <<
", " << z <<
")\n";
159 std::cerr <<
" Local: (" << p1 <<
", " << p2 <<
", " << p3 <<
")\n";
160 std::cerr <<
" Local base vectors: \n";
161 std::cerr <<
" u1: (" << u1x <<
", " << u1y <<
", " << u1z <<
")\n";
162 std::cerr <<
" u2: (" << u2x <<
", " << u2y <<
", " << u2z <<
")\n";
163 std::cerr <<
" u3: (" << u3x <<
", " << u3y <<
", " << u3z <<
")\n";
171 std::cerr <<
m_className <<
"::UpdatePeriodicity:\n";
172 std::cerr <<
" Periodicities should be implemented by overloading the "
173 <<
"MapCoordinates function.\n";
virtual void ElectricField(const double x, const double y, const double z, double &ex, double &ey, double &ez, Medium *&m, int &status)=0
virtual Medium * GetMedium(const double &x, const double &y, const double &z)
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)
void WeightingField(const double x, const double y, const double z, double &wx, double &wy, double &wz, const std::string label)
void UnmapField(const double e1, const double e2, const double e3, const double u1x, const double u2x, const double u3x, const double u1y, const double u2y, const double u3y, const double u1z, const double u2z, const double u3z, double &ex, double &ey, double &ez) const
void ElectricField(const double x, const double y, const double z, double &ex, double &ey, double &ez, Medium *&m, int &status)
double WeightingPotential(const double x, const double y, const double z, const std::string label)
Medium * GetMedium(const double &x, const double &y, const double &z)
virtual ~ComponentUserMapBase()
virtual void MapCoordinates(double &p1, double &p2, double &p3, double &u1x, double &u2x, double &u3x, double &u1y, double &u2y, double &u3y, double &u1z, double &u2z, double &u3z, ComponentBase *&pComponent)=0