12 #ifndef ExactSolutionSSOLIIAXI_H__
13 #define ExactSolutionSSOLIIAXI_H__
15 #include <deal.II/base/function.h>
16 #include <deal.II/base/tensor.h>
18 #include <deal.II/lac/vector.h>
22 #include "constants.hpp"
23 #include "settings.hpp"
25 using namespace dealii;
28 magnetic_field(
double x,
43 Tensor<1, 3> theta_hat;
51 r = sqrt(pow(x, 2) + pow(y, 2) + pow(z, 2));
54 sin_theta = sqrt(pow(x, 2) + pow(y, 2)) / r;
56 cos_phi = x / sqrt(pow(x, 2) + pow(y, 2));
57 sin_phi = y / sqrt(pow(x, 2) + pow(y, 2));
63 theta_hat[0] = cos_theta * cos_phi;
64 theta_hat[1] = cos_theta * sin_phi;
65 theta_hat[2] = -sin_theta;
67 F1 = (2.0 / 3.0) * mu_0 * K_0 * (cos_theta * r_hat - sin_theta * theta_hat);
68 F2 = (2.0 / 3.0) * mu_0 * K_0 *
69 (cos_theta * r_hat + 0.5 * sin_theta * theta_hat) / pow(r, 3);
72 B = 0.5 * (pow(b, 2) - pow(a, 2)) * F1;
74 B = 0.2 * (pow(b, 5) - pow(a, 5)) * F2;
76 B = 0.5 * (pow(b, 2) - pow(r, 2)) * F1 + 0.2 * (pow(r, 5) - pow(a, 5)) * F2;
94 virtual double value(
const Point<2>& p,
95 const unsigned int component = 0)
const override final;
97 virtual Tensor<1, 2> gradient(
99 const unsigned int component = 0)
const override final;
114 , B_0(2.0 * mu_0 * K_0 / 3.0)
118 virtual void vector_value_list(
119 const std::vector<Point<2>>& r,
120 std::vector<Vector<double>>& values)
const final;
141 virtual void vector_value_list(
142 const std::vector<Point<2>>& r,
143 std::vector<Vector<double>>& values)
const final;
Describes exact solution, , of the Axisymmetric - thick spherical coil (ssol-ii-axi) numerical experi...
Describes exact solutions, , of the Axisymmetric - thick spherical coil (ssol-ii-axi) numerical exper...
Describes exact solution, , of the Axisymmetric - thick spherical coil (ssol-ii-axi) numerical experi...
Global settings for the Axisymmetric - thick spherical coil (ssol-ii-axi) numerical experiment.