12 #ifndef ExactSolutionsSSOLII_H__
13 #define ExactSolutionsSSOLII_H__
15 #include "constants.hpp"
16 #include "settings.hpp"
17 #include <deal.II/base/function.h>
18 #include <deal.II/lac/vector.h>
22 using namespace dealii;
25 volume_free_current_density(
double x,
35 r = sqrt(pow(x, 2) + pow(y, 2) + pow(z, 2));
37 if ((r > a) && (r < b)) {
51 magnetic_field(
double x,
66 Tensor<1, 3> theta_hat;
74 r = sqrt(pow(x, 2) + pow(y, 2) + pow(z, 2));
77 sin_theta = sqrt(pow(x, 2) + pow(y, 2)) / r;
79 cos_phi = x / sqrt(pow(x, 2) + pow(y, 2));
80 sin_phi = y / sqrt(pow(x, 2) + pow(y, 2));
86 theta_hat[0] = cos_theta * cos_phi;
87 theta_hat[1] = cos_theta * sin_phi;
88 theta_hat[2] = -sin_theta;
90 F1 = (2.0 / 3.0) * mu_0 * K_0 * (cos_theta * r_hat - sin_theta * theta_hat);
91 F2 = (2.0 / 3.0) * mu_0 * K_0 *
92 (cos_theta * r_hat + 0.5 * sin_theta * theta_hat) / pow(r, 3);
95 B = 0.5 * (pow(b, 2) - pow(a, 2)) * F1;
97 B = 0.2 * (pow(b, 5) - pow(a, 5)) * F2;
99 B = 0.5 * (pow(b, 2) - pow(r, 2)) * F1 + 0.2 * (pow(r, 5) - pow(a, 5)) * F2;
116 virtual void vector_value_list(
117 const std::vector<Point<3>>& r,
118 std::vector<Vector<double>>& values)
const override final;
132 virtual void vector_value_list(
133 const std::vector<Point<3>>& r,
134 std::vector<Vector<double>>& values)
const override final;
Describes the exact solution, , of the Thick spherical coil (ssol-ii/) numerical experiment.
Describes the exact solution, , of the Thick spherical coil (ssol-ii/) numerical experiment.
Global settings for the Thick spherical coil (ssol-ii/) numerical experiment.