12 #include "exact_solution.hpp"
14 #pragma GCC diagnostic push
15 #pragma GCC diagnostic ignored "-Wunused-parameter"
17 using namespace dealii;
21 ExactSolutionMWR_A::value(
const Point<2>& r,
const unsigned int component)
const
24 return -0.25 * mu * J_f * (r[0] * r[0] + r[1] * r[1]) + A_0;
26 return -0.25 * mu_0 * J_f * a * a *
27 log(exp(mu_r) * (r[0] * r[0] + r[1] * r[1]) / (a * a)) +
33 ExactSolutionMWR_A::gradient(
const Point<2>& r,
34 const unsigned int component)
const
39 grad_A(0) = -0.5 * mu * J_f * r[0];
40 grad_A(1) = -0.5 * mu * J_f * r[1];
42 grad_A(0) = -0.5 * mu_0 * J_f * a * a * r[0] / (r[0] * r[0] + r[1] * r[1]);
43 grad_A(1) = -0.5 * mu_0 * J_f * a * a * r[1] / (r[0] * r[0] + r[1] * r[1]);
50 ExactSolutionMWR_H::vector_value_list(
const std::vector<Point<2>>& r,
51 std::vector<Vector<double>>& values)
const
53 Assert(values.size() == r.size(),
54 ExcDimensionMismatch(values.size(), r.size()));
59 for (
unsigned int i = 0; i < r.size(); i++) {
60 if (r[i].norm() < a) {
66 grad_A = A.gradient(r[i]);
67 values[i][0] = grad_A[1] / coef;
68 values[i][1] = -grad_A[0] / coef;
73 ExactSolutionMWR_B::vector_value_list(
const std::vector<Point<2>>& r,
74 std::vector<Vector<double>>& values)
const
76 Assert(values.size() == r.size(),
77 ExcDimensionMismatch(values.size(), r.size()));
81 for (
unsigned int i = 0; i < r.size(); i++) {
82 grad_A = A.gradient(r[i]);
83 values[i][0] = grad_A[1];
84 values[i][1] = -grad_A[0];
88 #pragma GCC diagnostic pop