12 #ifndef ExactSolutionSSOLIIIAXI_H__
13 #define ExactSolutionSSOLIIIAXI_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 volume_free_current_density(
double x,
38 r = sqrt(pow(x, 2) + pow(y, 2) + pow(z, 2));
40 if ((r > a) && (r < b)) {
54 magnetic_field_coil(
double x,
69 Tensor<1, 3> theta_hat;
77 r = sqrt(pow(x, 2) + pow(y, 2) + pow(z, 2));
80 sin_theta = sqrt(pow(x, 2) + pow(y, 2)) / r;
82 cos_phi = x / sqrt(pow(x, 2) + pow(y, 2));
83 sin_phi = y / sqrt(pow(x, 2) + pow(y, 2));
89 theta_hat[0] = cos_theta * cos_phi;
90 theta_hat[1] = cos_theta * sin_phi;
91 theta_hat[2] = -sin_theta;
93 F1 = (2.0 / 3.0) * mu_0 * J_0 * (cos_theta * r_hat - sin_theta * theta_hat);
94 F2 = (2.0 / 3.0) * mu_0 * J_0 *
95 (cos_theta * r_hat + 0.5 * sin_theta * theta_hat) / pow(r, 3);
98 B = 0.5 * (pow(b, 2) - pow(a, 2)) * F1;
100 B = 0.2 * (pow(b, 5) - pow(a, 5)) * F2;
102 B = 0.5 * (pow(b, 2) - pow(r, 2)) * F1 + 0.2 * (pow(r, 5) - pow(a, 5)) * F2;
109 magnetic_field_core(
double x,
118 double a3 = std::pow(a, 3);
119 double b3 = std::pow(b, 3);
121 double OMEGA = ((mur - 1.0) / (mur + 2.0)) * (a3 / b3);
123 (-3.0 * b3 * H_0 * OMEGA) / ((2.0 * mur + 1.0) - 2.0 * (mur - 1.0) * OMEGA);
124 double beta_1 = ((2.0 * mur + 1.0) * gamma_1) / ((mur - 1.0) * a3);
125 double alpha_1 = (-b3 * H_0 + 2.0 * mur * gamma_1 - mur * b3 * beta_1) / 2.0;
126 double delta_1 = (mur * a3 * beta_1 - 2.0 * mur * gamma_1) / a3;
128 double r = sqrt(pow(x, 2) + pow(y, 2) + pow(z, 2));
129 double r3 = std::pow(r, 3.0);
130 double zz = -3.0 * z * z / std::pow(r, 5.0);
131 double xz = -3.0 * x * z / std::pow(r, 5.0);
132 double yz = -3.0 * y * z / std::pow(r, 5.0);
136 Tensor<1, 3> grad_psi;
143 grad_psi[2] = delta_1;
146 grad_psi[0] = alpha_1 * xz;
147 grad_psi[1] = alpha_1 * yz;
148 grad_psi[2] = -H_0 + alpha_1 / r3 + alpha_1 * zz;
151 grad_psi[0] = gamma_1 * xz;
152 grad_psi[1] = gamma_1 * yz;
153 grad_psi[2] = beta_1 + gamma_1 / r3 + gamma_1 * zz;
161 B = -mu * grad_psi - mu0 * Happl;
178 , B_0(2.0 * mu_0 * K_0 / 3.0)
182 virtual void vector_value_list(
183 const std::vector<Point<2>>& r,
184 std::vector<Vector<double>>& values)
const final;
205 virtual void vector_value_list(
206 const std::vector<Point<2>>& r,
207 std::vector<Vector<double>>& values)
const final;
Describes exact solution, , of the Axisymmetric - thick spherical coil with magnetic core (ssol-iii-a...
Describes exact solution, , of the Axisymmetric - thick spherical coil with magnetic core (ssol-iii-a...
Global settings for the Axisymmetric - thick spherical coil with magnetic core (ssol-iii-axi/) numeri...