Peano
Loading...
Searching...
No Matches
GlobalFixedTimeStep.py
Go to the documentation of this file.
1# This file is part of the ExaHyPE2 project. For conditions of distribution and
2# use, please see the copyright notice at www.peano-framework.org
3from exahype2.solvers.PDETerms import PDETerms
4
5from .SingleSweep import SingleSweep
6from .AbstractSolverDeclarations import AbstractSolverDeclarations
7from .AbstractSolverDefinitions import AbstractSolverDefinitions
8from .SolverDeclarations import SolverDeclarations
9from .SolverDefinitions import SolverDefinitions
10from .FixedTimeSteppingCodeSnippets import FixedTimeSteppingCodeSnippets
11
12
15 self,
16 name,
17 order,
18 unknowns,
19 auxiliary_variables,
20 min_cell_h,
21 max_cell_h,
22 normalised_time_step_size,
23 flux=PDETerms.User_Defined_Implementation,
24 ncp=PDETerms.None_Implementation,
25 eigenvalues=PDETerms.User_Defined_Implementation,
26 boundary_conditions=PDETerms.User_Defined_Implementation,
27 refinement_criterion=PDETerms.Empty_Implementation,
28 initial_conditions=PDETerms.User_Defined_Implementation,
29 source_term=PDETerms.None_Implementation,
30 point_source=0,
31 material_parameters=PDETerms.None_Implementation,
32 plot_grid_properties=False,
33 ):
34 super(GlobalFixedTimeStep, self).__init__(
35 name,
36 order,
37 unknowns,
38 auxiliary_variables,
39 min_cell_h,
40 max_cell_h,
41 plot_grid_properties,
42 )
43
44 self._normalised_time_step_size = normalised_time_step_size
45
47 flux=flux,
48 ncp=ncp,
49 eigenvalues=eigenvalues,
50 boundary_conditions=boundary_conditions,
51 refinement_criterion=refinement_criterion,
52 initial_conditions=initial_conditions,
53 source_term=source_term,
54 point_source=point_source,
55 material_parameters=material_parameters,
56 )
57
59 self,
60 flux=None,
61 ncp=None,
62 eigenvalues=None,
63 boundary_conditions=None,
64 refinement_criterion=None,
65 initial_conditions=None,
66 source_term=None,
67 point_source=0,
68 material_parameters=None,
69 additional_action_set_includes="",
70 additional_user_includes="",
71 ):
72 super(GlobalFixedTimeStep, self).set_implementation(
73 boundary_conditions=boundary_conditions,
74 refinement_criterion=refinement_criterion,
75 initial_conditions=initial_conditions,
76 additional_action_set_includes=additional_action_set_includes,
77 additional_user_includes=additional_user_includes,
78 flux=flux,
79 ncp=ncp,
80 eigenvalues=eigenvalues,
81 source_term=source_term,
82 material_parameters=material_parameters,
83 point_source=point_source,
84 )
85
86 computation_precisions = self._predictor_computation_precisions[:]
87 if self._corrector_computation_precision_corrector_computation_precision not in computation_precisions:
89 if (
91 and self._precompute_picard_precision_precompute_picard_precision not in computation_precisions
92 ):
96
98 abstract_solver_declarations = AbstractSolverDeclarations(
99 flux_implementation=self._flux_implementation,
100 ncp_implementation=self._ncp_implementation,
101 eigenvalues_implementation=self._eigenvalues_implementation,
102 source_term_implementation=self._source_term_implementation,
103 material_parameters_implementation=self._material_param_implementation,
104 point_source_implementation=self._point_sources_implementation,
105 is_linear=self._is_linear,
106 computation_precisions=computation_precisions,
107 pde_terms_without_state=False,
108 )
109 abstract_solver_definitions = AbstractSolverDefinitions(
110 flux_implementation=self._flux_implementation,
111 ncp_implementation=self._ncp_implementation,
112 eigenvalues_implementation=self._eigenvalues_implementation,
113 source_term_implementation=self._source_term_implementation,
114 material_parameters_implementation=self._material_param_implementation,
115 point_source_implementation=self._point_sources_implementation,
116 is_linear=self._is_linear,
117 computation_precisions=computation_precisions,
118 pde_terms_without_state=False,
119 )
120 solver_declarations = SolverDeclarations(
121 flux_implementation=self._flux_implementation,
122 ncp_implementation=self._ncp_implementation,
123 eigenvalues_implementation=self._eigenvalues_implementation,
124 source_term_implementation=self._source_term_implementation,
125 material_parameters_implementation=self._material_param_implementation,
126 point_source_implementation=self._point_sources_implementation,
127 is_linear=self._is_linear,
128 computation_precisions=computation_precisions,
129 pde_terms_without_state=False,
130 )
131 solver_definitions = SolverDefinitions(
132 flux_implementation=self._flux_implementation,
133 ncp_implementation=self._ncp_implementation,
134 eigenvalues_implementation=self._eigenvalues_implementation,
135 source_term_implementation=self._source_term_implementation,
136 material_parameters_implementation=self._material_param_implementation,
137 point_source_implementation=self._point_sources_implementation,
138 is_linear=self._is_linear,
139 computation_precisions=computation_precisions,
140 pde_terms_without_state=False,
141 )
142
144 abstract_solver_declarations.create_abstract_solver_user_declarations()
145 )
147 solver_code_snippets.create_abstract_solver_user_declarations()
148 )
149
151 abstract_solver_definitions.create_abstract_solver_user_definitions()
152 )
154 solver_code_snippets.create_abstract_solver_user_definitions()
155 )
156
158 solver_declarations.create_solver_user_declarations()
159 )
161 solver_definitions.create_solver_user_definitions()
162 )
163
165 solver_code_snippets.create_compute_time_step_size()
166 )
168 solver_code_snippets.create_compute_new_time_step_size()
169 )
170
172 solver_code_snippets.create_start_time_step_implementation()
173 )
175 solver_code_snippets.create_finish_time_step_implementation()
176 )
177
179 solver_code_snippets.create_abstract_solver_constructor_statements()
180 )
set_implementation(self, flux, ncp, eigenvalues, boundary_conditions, refinement_criterion, initial_conditions, source_term, material_parameters, point_source, additional_action_set_includes, additional_user_includes)
If you pass in User_Defined, then the generator will create C++ stubs that you have to befill manuall...
Definition ADERDG.py:1282
__init__(self, name, order, unknowns, auxiliary_variables, min_cell_h, max_cell_h, normalised_time_step_size, flux=PDETerms.User_Defined_Implementation, ncp=PDETerms.None_Implementation, eigenvalues=PDETerms.User_Defined_Implementation, boundary_conditions=PDETerms.User_Defined_Implementation, refinement_criterion=PDETerms.Empty_Implementation, initial_conditions=PDETerms.User_Defined_Implementation, source_term=PDETerms.None_Implementation, point_source=0, material_parameters=PDETerms.None_Implementation, plot_grid_properties=False)
set_implementation(self, flux=None, ncp=None, eigenvalues=None, boundary_conditions=None, refinement_criterion=None, initial_conditions=None, source_term=None, point_source=0, material_parameters=None, additional_action_set_includes="", additional_user_includes="")
If you pass in User_Defined, then the generator will create C++ stubs that you have to befill manuall...