11 eigenvalues_implementation,
12 source_term_implementation,
13 material_parameters_implementation,
14 point_source_implementation,
16 computation_precisions,
17 pde_terms_without_state,
30 Template = jinja2.Template(
32{% for PRECISION_NUM in range(0,COMPUTATION_PRECISIONS|length) %}
34{% if EIGENVALUES_IMPLEMENTATION!="<empty>" and EIGENVALUES_IMPLEMENTATION!="<user-defined>" and EIGENVALUES_IMPLEMENTATION!="<none>" %}
35double {{FULL_QUALIFIED_NAMESPACE}}::{{CLASSNAME}}::maxEigenvalue(
36 [[maybe_unused]] const {{COMPUTATION_PRECISIONS[PRECISION_NUM]}}* __restrict__ Q,
37 [[maybe_unused]] const tarch::la::Vector<Dimensions, double>& x,
38 [[maybe_unused]] const tarch::la::Vector<Dimensions, double>& h,
39 [[maybe_unused]] double t,
40 [[maybe_unused]] double dt,
41 [[maybe_unused]] int normal
43 {{EIGENVALUES_IMPLEMENTATION}}
47{% if FLUX_IMPLEMENTATION!="<empty>" and FLUX_IMPLEMENTATION!="<user-defined>" and FLUX_IMPLEMENTATION!="<none>"%}
48void {{FULL_QUALIFIED_NAMESPACE}}::{{CLASSNAME}}::flux(
49 [[maybe_unused]] const {{COMPUTATION_PRECISIONS[PRECISION_NUM]}}* __restrict__ Q,
50 [[maybe_unused]] const tarch::la::Vector<Dimensions, double>& x,
51 [[maybe_unused]] const tarch::la::Vector<Dimensions, double>& h,
52 [[maybe_unused]] double t,
53 [[maybe_unused]] double dt,
54 [[maybe_unused]] int normal,
55 {{COMPUTATION_PRECISIONS[PRECISION_NUM]}}* __restrict__ F
57 {{FLUX_IMPLEMENTATION}}
61{% if NCP_IMPLEMENTATION!="<empty>" and NCP_IMPLEMENTATION!="<user-defined>" and NCP_IMPLEMENTATION!="<none>"%}
62void {{FULL_QUALIFIED_NAMESPACE}}::{{CLASSNAME}}::nonconservativeProduct(
63 [[maybe_unused]] const {{COMPUTATION_PRECISIONS[PRECISION_NUM]}}*__restrict__ Q,
64 [[maybe_unused]] const {{COMPUTATION_PRECISIONS[PRECISION_NUM]}}*__restrict__ deltaQ,
65 [[maybe_unused]] const tarch::la::Vector<Dimensions, double>& x,
66 [[maybe_unused]] const tarch::la::Vector<Dimensions, double>& h,
67 [[maybe_unused]] double t,
68 [[maybe_unused]] double dt,
69 [[maybe_unused]] int normal,
70 {{COMPUTATION_PRECISIONS[PRECISION_NUM]}}*__restrict__ BTimesDeltaQ
72 {{NCP_IMPLEMENTATION}}
76{% if SOURCE_TERM_IMPLEMENTATION!="<empty>" and SOURCE_TERM_IMPLEMENTATION!="<user-defined>" and SOURCE_TERM_IMPLEMENTATION!="<none>"%}
77void {{FULL_QUALIFIED_NAMESPACE}}::{{CLASSNAME}}::algebraicSource(
78 [[maybe_unused]] const {{COMPUTATION_PRECISIONS[PRECISION_NUM]}}* const Q,
79 [[maybe_unused]] const tarch::la::Vector<Dimensions, double>& x,
80 [[maybe_unused]] const tarch::la::Vector<Dimensions, double>& h,
81 [[maybe_unused]] double t,
82 [[maybe_unused]] double dt,
83 [[maybe_unused]] {{COMPUTATION_PRECISIONS[PRECISION_NUM]}}* S
85 {{SOURCE_TERM_IMPLEMENTATION}}
89{% if MATERIAL_PARAM_IMPLEMENTATION!="<empty>" and MATERIAL_PARAM_IMPLEMENTATION!="<user-defined>" and MATERIAL_PARAM_IMPLEMENTATION!="<none>"%}
90void {{FULL_QUALIFIED_NAMESPACE}}::{{CLASSNAME}}::multiplyMaterialParameterMatrix(
91 [[maybe_unused]] const {{COMPUTATION_PRECISIONS[PRECISION_NUM]}}* const Q,
92 [[maybe_unused]] const tarch::la::Vector<Dimensions, double>& x,
93 [[maybe_unused]] const tarch::la::Vector<Dimensions, double>& h,
94 [[maybe_unused]] double t,
95 [[maybe_unused]] double dt,
96 [[maybe_unused]] int normal,
97 [[maybe_unused]] {{COMPUTATION_PRECISIONS[PRECISION_NUM]}}* const rhs
99 {{MATERIAL_PARAM_IMPLEMENTATION}}
103{% if POINT_SOURCE_IMPLEMENTATION!="<empty>" and POINT_SOURCE_IMPLEMENTATION!="<user-defined>" and POINT_SOURCE_IMPLEMENTATION!="<none>"%}
104void {{FULL_QUALIFIED_NAMESPACE}}::{{CLASSNAME}}::pointSource(
105 [[maybe_unused]] const {{COMPUTATION_PRECISIONS[PRECISION_NUM]}}* const Q,
106 [[maybe_unused]] const double* const x,
107 [[maybe_unused]] const double t,
108 [[maybe_unused]] const double dt,
109 [[maybe_unused]] {{COMPUTATION_PRECISIONS[PRECISION_NUM]}}* const forceVector,
110 [[maybe_unused]] int n
112 {{POINT_SOURCE_IMPLEMENTATION}}
118 undefined=jinja2.DebugUndefined,
131 return Template.render(**d)
_source_term_implementation
_point_source_implementation
create_abstract_solver_user_definitions(self)
__init__(self, flux_implementation, ncp_implementation, eigenvalues_implementation, source_term_implementation, material_parameters_implementation, point_source_implementation, is_linear, computation_precisions, pde_terms_without_state)
_material_parameters_implementation
_eigenvalues_implementation