12 #ifndef ExactSolutionsSLDI_H__
13 #define ExactSolutionsSLDI_H__
15 #include <deal.II/base/function.h>
16 #include <deal.II/base/point.h>
17 #include <deal.II/base/tensor.h>
19 #include <deal.II/lac/vector.h>
23 #include "constants.hpp"
24 #include "settings.hpp"
26 using namespace dealii;
35 :
public Function<dim>
41 virtual double value(
const Point<dim>& r,
42 const unsigned int component = 0)
const override final;
44 virtual Tensor<1, dim> gradient(
46 const unsigned int component = 0)
const override final;
49 double OMEGA, alpha_1, beta_1, gamma_1, delta_1;
59 :
public Function<dim>
68 virtual void vector_value_list(
69 const std::vector<Point<dim>>& r,
70 std::vector<Vector<double>>& values)
const final;
83 :
public Function<dim>
92 virtual void vector_value_list(
93 const std::vector<Point<dim>>& r,
94 std::vector<Vector<double>>& values)
const final;
103 const std::vector<Point<dim>>& r,
104 std::vector<Vector<double>>& values)
const
106 Assert(values.size() == r.size(),
107 ExcDimensionMismatch(values.size(), r.size()));
111 for (
unsigned int i = 0; i < r.size(); i++) {
112 grad = psi.gradient(r[i]);
114 for (
unsigned int j = 0; j < dim; j++)
115 values[i][j] = -grad[j];
122 const std::vector<Point<dim>>& r,
123 std::vector<Vector<double>>& values)
const
125 Assert(values.size() == r.size(),
126 ExcDimensionMismatch(values.size(), r.size()));
131 for (
unsigned int i = 0; i < r.size(); i++) {
132 if (r[i].norm() < a) {
135 }
else if (r[i].norm() < b) {
143 grad = psi.gradient(r[i]);
145 for (
unsigned int j = 0; j < dim; j++)
146 values[i][j] = -mu * grad[j];
Describes exact solution, , of the Magnetostatic shield - 1 (sld-i/) numerical experiment in two and ...
Describes exact solution, , of the Magnetostatic shield - 1 (sld-i/) numerical experiment in two and ...
Describes exact solution, , of the Magnetostatic shield - 1 (sld-i/) numerical experiment in two and ...
Global settings for the Magnetostatic shield - 1 (sld-i/) numerical experiment.