20 #ifndef _TEST_CASE_HPP
21 #define _TEST_CASE_HPP
68 divergence(divergence),
88 const bool is_divergence_zero,
89 const bool is_divergence_constant
92 divergence(divergence),
94 is_divergence_zero(is_divergence_zero),
95 is_divergence_constant(is_divergence_constant)
103 divergence([](
const VectorRd x,
const Cell *cell) ->
double {
return 0;}),
105 is_divergence_zero(
true),
106 is_divergence_constant(
true)
187 std::vector<int> m_iTC;
188 const double pi = acos(-1);
189 const double eps = 1e-5;
197 Solution create_solution(
const size_t n);
198 Diffusion create_diffusion(
const size_t n);
199 Advection create_advection(
const size_t n);
200 Reaction create_reaction(
const size_t n);
The TestCase class provides definition of test cases.
Definition: TestCase.hpp:155
void validate()
Check if the provided test cases are valid (within range, and combination of solution/diffusion valid...
Definition: TestCase.cpp:407
CellFType< double > diff_source()
Returns the diffusion source term.
Definition: TestCase.cpp:383
Advection get_advection()
Returns the advection.
Definition: TestCase.hpp:206
TestCase(std::vector< int > iTC)
Initialise data.
Definition: TestCase.cpp:16
Diffusion get_diffusion()
Returns the diffusion.
Definition: TestCase.hpp:205
CellFType< double > diff_advec_reac_source()
Returns the diffusion-advection-reaction source term.
Definition: TestCase.cpp:394
Reaction get_reaction()
Returns the reaction.
Definition: TestCase.hpp:207
Solution get_solution()
Returns the solution.
Definition: TestCase.hpp:204
std::function< T(const VectorRd &, const Cell *)> CellFType
type for function of point. T is the return type of the function
Definition: basis.hpp:57
std::function< T(const VectorRd &)> FType
type for function of point. T is the return type of the function
Definition: basis.hpp:54
Definition: ddr-magnetostatics.hpp:40
MeshND::VectorRd< 2 > VectorRd
Definition: Mesh2D.hpp:14
MeshND::Cell< 2 > Cell
Definition: Mesh2D.hpp:13
Structure to store an advection velocity and its divergence, together with various flags.
Definition: TestCase.hpp:82
CellFType< VectorRd > value
Definition: TestCase.hpp:112
bool is_zero
Definition: TestCase.hpp:114
CellFType< double > divergence
Definition: TestCase.hpp:113
Advection()
Definition: TestCase.hpp:101
bool is_divergence_constant
Definition: TestCase.hpp:116
Advection(const CellFType< VectorRd > value, const CellFType< double > divergence, const bool is_zero, const bool is_divergence_zero, const bool is_divergence_constant)
Definition: TestCase.hpp:84
bool is_divergence_zero
Definition: TestCase.hpp:115
Structure to store a diffusion tensor and its row-wise divergence.
Definition: TestCase.hpp:60
const CellFType< MatrixRd > value
Definition: TestCase.hpp:75
const CellFType< VectorRd > divergence
Definition: TestCase.hpp:76
Diffusion(const CellFType< MatrixRd > value, const CellFType< VectorRd > divergence, const size_t degree)
Definition: TestCase.hpp:62
const size_t degree
Definition: TestCase.hpp:77
Structure to store a reaction term, together with various flags.
Definition: TestCase.hpp:121
Reaction()
Definition: TestCase.hpp:136
CellFType< double > value
Definition: TestCase.hpp:145
Reaction(const CellFType< double > value, const bool is_zero, const bool is_constant)
Definition: TestCase.hpp:123
bool is_constant
Definition: TestCase.hpp:147
bool is_zero
Definition: TestCase.hpp:146
Structure to store a solution and its derivatives.
Definition: TestCase.hpp:38
const FType< double > value
Definition: TestCase.hpp:53
const CellFType< VectorRd > gradient
Definition: TestCase.hpp:54
Solution(const FType< double > value, const CellFType< VectorRd > gradient, const CellFType< MatrixRd > hessian)
Definition: TestCase.hpp:40
const CellFType< MatrixRd > hessian
Definition: TestCase.hpp:55