23 name, patch_size, unknowns, auxiliary_variables, min_volume_h, max_volume_h, normalised_time_step_size,
24 flux=PDETerms.User_Defined_Implementation,
25 ncp=PDETerms.None_Implementation,
26 eigenvalues=PDETerms.User_Defined_Implementation,
27 boundary_conditions=PDETerms.User_Defined_Implementation,
28 refinement_criterion=PDETerms.Empty_Implementation,
29 initial_conditions=PDETerms.User_Defined_Implementation,
30 source_term=PDETerms.None_Implementation,
31 plot_grid_properties=False,
32 pde_terms_without_state=False,
36 Construct a Finite Volume scheme with a Rusanov solver and fixed time step sizes
38 @param time_step_size: Float
39 This is the normalised time step size w.r.t. the coarsest admissible h value. If
40 the code employs AMR on top of it and refines further, it will automatically
41 downscale the time step size accordingly. So hand in a valid time step size w.r.t.
44 @param normalised_time_step_size: Float
45 Please consult exahype2.solvers.fv.FixedTimeSteppingCodeSnippets. The logic how
46 this field is translated into a time step size is outsourced into this utility
50 super(GlobalFixedTimeStep,self).
__init__(name,
58 pde_terms_without_state,
59 kernel_namespace=
"rusanov")
69 self._user_action_set_includes +=
"""
70#include "kernels/rusanov.h"
76 eigenvalues=eigenvalues,
77 boundary_conditions=boundary_conditions,
78 refinement_criterion=refinement_criterion,
79 initial_conditions=initial_conditions,
80 source_term=source_term
88 boundary_conditions = None,
89 refinement_criterion = None,
90 initial_conditions = None,
92 memory_location = None,
93 use_split_loop = False,
94 additional_action_set_includes = "",
95 additional_user_includes = ""
99 Configure implementation
101 If you pass in User_Defined, then the generator will create C++ stubs
102 that you have to befill manually. If you pass in None_Implementation, it
103 will create nop, i.e., no implementation or defaults. Any other string
104 is copied 1:1 into the implementation. If you pass in None, then the
105 set value so far won't be overwritten.
107 Please note that not all options are supported by all solvers.
109 This routine should be the very last invoked by the constructor.
122 compute_max_eigenvalue_of_next_time_step =
True
129 compute_max_eigenvalue_of_next_time_step =
False,
130 solver_variant = SolverVariant.WithVirtualFunctions,
131 kernel_variant = KernelVariant.PatchWiseAoS
138 compute_max_eigenvalue_of_next_time_step =
False,
139 solver_variant = SolverVariant.Stateless,
140 kernel_variant = KernelVariant.PatchWiseAoS
160 super(GlobalFixedTimeStep,self).
set_implementation(boundary_conditions, refinement_criterion, initial_conditions, memory_location, use_split_loop, additional_action_set_includes, additional_user_includes)