12 #include "exact_solution.hpp"
14 #pragma GCC diagnostic push
15 #pragma GCC diagnostic ignored "-Wunused-parameter"
17 using namespace dealii;
20 ExactSolutionMMSVTII_T::value(
const Point<2>& r,
21 const unsigned int component)
const
23 return current_vector_potential(r[0], r[1], mu_0, k);
27 ExactSolutionMMSVTII_T::gradient(
const Point<2>& r,
28 const unsigned int component)
const
30 double Bm = magnetic_field(r[0], r[1], k);
31 double mu = permeability(r[0], r[1], mu_0);
34 grad_Tm[0] = -2.0 * r[0] * mu_0 / pow(mu, 2) * Bm - (k / mu) * sin(k * r[0]);
35 grad_Tm[1] = -2.0 * r[1] * mu_0 / pow(mu, 2) * Bm - (k / mu) * sin(k * r[1]);
41 ExactSolutionMMSVTII_Jf::vector_value_list(
42 const std::vector<Point<2>>& r,
43 std::vector<Vector<double>>& values)
const
45 Assert(values.size() == r.size(),
46 ExcDimensionMismatch(values.size(), r.size()));
50 for (
unsigned int i = 0; i < values.size(); i++) {
51 Jf = volume_free_current_density(r[i][0], r[i][1], mu_0, k);
59 ExactSolutionMMSVTII_B::value_list(
const std::vector<Point<2>>& r,
60 std::vector<double>& values,
61 const unsigned int component)
const
63 Assert(values.size() == r.size(),
64 ExcDimensionMismatch(values.size(), r.size()));
66 for (
unsigned int i = 0; i < values.size(); i++)
67 values[i] = magnetic_field(r[i][0], r[i][1], k);
71 DirichletBC_MMSVTII_T::value_list(
const std::vector<Point<2>>& r,
72 std::vector<double>& values,
73 const unsigned int component)
const
75 Assert(values.size() == r.size(),
76 ExcDimensionMismatch(values.size(), r.size()));
78 for (
unsigned int i = 0; i < values.size(); i++)
79 values[i] = current_vector_potential(r[i][0], r[i][1], mu_0, k);
83 DirichletBC_MMSVTII_A::vector_value_list(
84 const std::vector<Point<2>>& r,
85 std::vector<Vector<double>>& values)
const
87 Assert(values.size() == r.size(),
88 ExcDimensionMismatch(values.size(), r.size()));
92 for (
unsigned int i = 0; i < values.size(); i++) {
93 A = magnetic_vector_potential(r[i][0], r[i][1], k);