12 #include <deal.II/base/types.h>
13 #define BOOST_ALLOW_DEPRECATED_HEADERS
15 #include "exact_solution.hpp"
16 #include "static_vector_input.hpp"
19 #pragma GCC diagnostic push
20 #pragma GCC diagnostic ignored "-Wunused-parameter"
21 #pragma GCC diagnostic ignored "-Wunused-but-set-variable"
30 const std::vector<Point<2>>& r,
31 types::material_id mid,
33 std::vector<double>& values)
const
35 Assert(r.size() == values.size(),
36 ExcDimensionMismatch(r.size(), values.size()));
38 for (
unsigned int i = 0; i < values.size(); i++)
39 values[i] = permeability(r[i][0], r[i][1], mu_0);
45 const std::vector<Point<2>>& r,
46 types::material_id mid,
48 std::vector<Tensor<1, 2>>& values)
const
50 Assert(r.size() == values.size(),
51 ExcDimensionMismatch(r.size(), values.size()));
53 for (
unsigned int i = 0; i < values.size(); i++) {
63 const std::vector<Tensor<1, 2>>& n,
64 types::boundary_id bid,
65 types::material_id mid,
68 std::vector<double>& values)
const
70 Assert(r.size() == values.size(),
71 ExcDimensionMismatch(r.size(), values.size()));
73 Assert(r.size() == n.size(), ExcDimensionMismatch(r.size(), n.size()));
75 for (
unsigned int i = 0; i < values.size(); i++)
76 values[i] = robin_gamma(r[i][0], r[i][1], mu_0);
82 const std::vector<Point<2>>& r,
83 const std::vector<Tensor<1, 2>>& n,
84 types::boundary_id bid,
85 types::material_id mid,
88 std::vector<Tensor<1, 2>>& values)
const
90 Assert(r.size() == values.size(),
91 ExcDimensionMismatch(r.size(), values.size()));
93 Assert(r.size() == n.size(), ExcDimensionMismatch(r.size(), n.size()));
95 Assert(bid == bid_robin, ExcMessage(
"bid is wrong"));
100 for (
unsigned int i = 0; i < r.size(); i++) {
101 mu = permeability(r[i][0], r[i][1], mu_0);
102 gamma = robin_gamma(r[i][0], r[i][1], mu_0);
103 T = current_vector_potential(r[i][0], r[i][1], mu_0, k);
104 A = magnetic_vector_potential(r[i][0], r[i][1], k);
107 n[i][1] * T + gamma * n[i][1] * (n[i][0] * A[1] - n[i][1] * A[0]);
109 -n[i][0] * T - gamma * n[i][0] * (n[i][0] * A[1] - n[i][1] * A[0]);
116 const std::vector<Point<2>>& r,
117 const std::vector<Tensor<1, 2>>& n,
118 types::material_id mid,
121 std::vector<Tensor<1, 2>>& values)
const
123 Assert(r.size() == values.size(),
124 ExcDimensionMismatch(r.size(), values.size()));
126 Assert(r.size() == n.size(), ExcDimensionMismatch(r.size(), n.size()));
128 for (
unsigned int i = 0; i < values.size(); i++) {
138 const unsigned int component)
const
150 const unsigned int component)
const
155 #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< Tensor< 1, dim >> &values) const
Computes values of the surface free-current density, , on the right-hand side of the continuity condi...
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 values of the parameter of the Robin boundary condition 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 vector field on the right-hand side of the partial differential equation.
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< Tensor< 1, dim >> &values) const
Computes values of the vector field on the right-hand side of the Robin boundary condition at quadra...
void value_list(const std::vector< Point< dim >> &r, types::material_id mid, unsigned int cuid, std::vector< double > &values) const
Computes values of permeability, , 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...