12 #define BOOST_ALLOW_DEPRECATED_HEADERS
14 #include "static_scalar_input.hpp"
17 using namespace StaticScalarSolver;
20 #pragma GCC diagnostic push
21 #pragma GCC diagnostic ignored "-Wunused-parameter"
26 types::material_id mid,
28 std::vector<double>& values)
const
30 Assert(r.size() == values.size(),
31 ExcDimensionMismatch(r.size(), values.size()));
33 auto v = values.begin();
35 *v = ep_0 * (pow(p[0], 2) * pow(p[1], 2) + 1);
43 types::material_id mid,
45 std::vector<double>& values)
const
47 Assert(r.size() == values.size(),
48 ExcDimensionMismatch(r.size(), values.size()));
50 auto v = values.begin();
52 *v = ep_0 * (pow(p[0], 2) * pow(p[1], 2) * pow(p[2], 2) + 1);
60 types::material_id mid,
62 std::vector<double>& values)
const
64 Assert(r.size() == values.size(),
65 ExcDimensionMismatch(r.size(), values.size()));
67 auto v = values.begin();
71 (2 * p[0] * pow(p[1], 2) * sin(k * p[0]) +
72 2 * p[1] * pow(p[0], 2) * sin(k * p[1]) +
73 k * (pow(p[0], 2) * pow(p[1], 2) + 1) * (cos(k * p[0]) + cos(k * p[1])));
81 types::material_id mid,
83 std::vector<double>& values)
const
85 Assert(r.size() == values.size(),
86 ExcDimensionMismatch(r.size(), values.size()));
88 auto v = values.begin();
91 (2 * p[0] * pow(p[1], 2) * pow(p[2], 2) * sin(k * p[0]) +
92 2 * p[1] * pow(p[0], 2) * pow(p[2], 2) * sin(k * p[1]) +
93 2 * p[2] * pow(p[1], 2) * pow(p[0], 2) * sin(k * p[2]) +
94 k * (pow(p[0], 2) * pow(p[1], 2) * pow(p[2], 2) + 1) *
95 (cos(k * p[0]) + cos(k * p[1]) + cos(k * p[2])));
103 types::material_id mid,
105 std::vector<Tensor<1, 2>>& values)
const
107 Assert(r.size() == values.size(),
108 ExcDimensionMismatch(r.size(), values.size()));
110 for (
unsigned int i = 0; i < values.size(); i++) {
119 types::material_id mid,
121 std::vector<Tensor<1, 3>>& values)
const
123 Assert(r.size() == values.size(),
124 ExcDimensionMismatch(r.size(), values.size()));
126 for (
unsigned int i = 0; i < values.size(); i++) {
136 const std::vector<Tensor<1, 2>>& n,
137 types::boundary_id bid,
138 types::material_id mid,
141 std::vector<double>& values)
const
143 Assert(r.size() == values.size(),
144 ExcDimensionMismatch(r.size(), values.size()));
146 auto v = values.begin();
148 *v = (ep_0 * (pow(p[0], 2) * pow(p[1], 2) + 1)) * (p.norm() + 2);
156 const std::vector<Tensor<1, 3>>& n,
157 types::boundary_id bid,
158 types::material_id mid,
161 std::vector<double>& values)
const
163 Assert(r.size() == values.size(),
164 ExcDimensionMismatch(r.size(), values.size()));
166 auto v = values.begin();
168 *v = (ep_0 * (pow(p[0], 2) * pow(p[1], 2) * pow(p[2], 2) + 1)) *
177 const std::vector<Tensor<1, 2>>& n,
178 types::boundary_id bid,
179 types::material_id mid,
182 std::vector<double>& values)
const
185 Assert(r.size() == values.size(),
186 ExcDimensionMismatch(r.size(), values.size()));
191 Tensor<1, 2> grad_phi;
193 auto v = values.begin();
196 epsilon = ep_0 * (pow(p[0], 2) * pow(p[1], 2) + 1);
197 phi = cos(k * p[0]) + cos(k * p[1]);
198 grad_phi[0] = -k * sin(k * p[0]);
199 grad_phi[1] = -k * sin(k * p[1]);
200 gamma = epsilon * (p.norm() + 2);
202 *v = epsilon * (*nn * grad_phi) + gamma * phi;
211 const std::vector<Tensor<1, 3>>& n,
212 types::boundary_id bid,
213 types::material_id mid,
216 std::vector<double>& values)
const
219 Assert(r.size() == values.size(),
220 ExcDimensionMismatch(r.size(), values.size()));
225 Tensor<1, 3> grad_phi;
227 auto v = values.begin();
230 epsilon = ep_0 * (pow(p[0], 2) * pow(p[1], 2) * pow(p[2], 2) + 1);
231 phi = (cos(k * p[0]) + cos(k * p[1]) + cos(k * p[2]));
232 grad_phi[0] = -k * sin(k * p[0]);
233 grad_phi[1] = -k * sin(k * p[1]);
234 grad_phi[2] = -k * sin(k * p[2]);
235 gamma = epsilon * (p.norm() + 2);
236 *v = epsilon * (*nn * grad_phi) + gamma * phi;
245 const std::vector<Tensor<1, 2>>& n,
246 types::material_id mid,
249 std::vector<double>& values)
const
251 Assert(r.size() == values.size(),
252 ExcDimensionMismatch(r.size(), values.size()));
254 for (
unsigned int i = 0; i < values.size(); i++)
261 const std::vector<Tensor<1, 3>>& n,
262 types::material_id mid,
265 std::vector<double>& values)
const
267 Assert(r.size() == values.size(),
268 ExcDimensionMismatch(r.size(), values.size()));
270 for (
unsigned int i = 0; i < values.size(); i++)
287 #pragma GCC diagnostic pop
void value_list(const std::vector< Point< dim >> &r, const std::vector< Tensor< 1, dim >> &n, types::material_id mid, unsigned int cuid, unsigned int fuid, std::vector< double > &values) const
Computes the right-hand side of the second continuity condition ( , , , or ).
void value_list(const std::vector< Point< dim >> &r, const std::vector< Tensor< 1, dim >> &n, types::boundary_id bid, types::material_id mid, unsigned int cuid, unsigned int fuid, std::vector< double > &values) const
Computes the coefficient at quadrature points.
void value_list(const std::vector< Point< dim >> &r, types::material_id mid, unsigned int cuid, std::vector< Tensor< 1, dim >> &values) const
Computes the two-dimensional free-current density on the right-hand side of the partial differential...
void value_list(const std::vector< Point< dim >> &r, types::material_id mid, unsigned int cuid, std::vector< double > &values) const
Computes the right-hand side of the div-grad partial differential equation at quadrature points.
void value_list(const std::vector< Point< dim >> &r, const std::vector< Tensor< 1, dim >> &n, types::boundary_id bid, types::material_id mid, unsigned int cuid, unsigned int fuid, std::vector< double > &values) const
Computes the right-hand side of the Robin boundary condition ( or ).
void value_list(const std::vector< Point< dim >> &r, types::material_id mid, unsigned int cuid, std::vector< double > &values) const
Computes the values of the coefficient at quadrature points.
virtual double value(const Point< dim > &r, const unsigned int component=0) const override final
Returns the value of weight at point r. All error norms, , , and , at point r will be multiplied by t...