27 name, patch_size, rk_order, unknowns, auxiliary_variables, min_meshcell_h, max_meshcell_h, normalised_time_step_size,
28 flux=PDETerms.User_Defined_Implementation,
29 ncp=PDETerms.None_Implementation,
30 eigenvalues=PDETerms.None_Implementation,
31 boundary_conditions=PDETerms.User_Defined_Implementation,
32 refinement_criterion=PDETerms.Empty_Implementation,
33 initial_conditions=PDETerms.User_Defined_Implementation,
34 plot_grid_properties=False, KOSigma=8.0
40 eigenvalues: C++ source code or from PDETerms or None
41 By default is None_Implementation, as we don't need eigenvalues as long as we
42 work with fixed time step sizes. You can change it manually. Still, the fixed
43 time stepping won't use the eigenvalues but you might have code that has it and
44 that you don't want to change.
47 normalised_time_step_size: Float
48 This is the normalised time step size w.r.t. the coarsest admissible h value
49 and the polynomial order. If
50 the code employs AMR on top of it and refines further, it will automatically
51 downscale the time step size accordingly. So hand in a valid time step size w.r.t.
52 to max_meshcell_h. The actual polynomial order enters the chosen time step size
53 as an additional @f$ p^{-2} @f$ scaling, and we expect the user to incorporate
54 such a factor into the passed normalised value.
57 super(GlobalFixedTimeStep,self).
__init__(name,
60 rk_order, unknowns, auxiliary_variables, min_meshcell_h, max_meshcell_h, plot_grid_properties, kernel_namespace=
"fd4")
67#include "exahype2/fd/fd4/FD4.h"
70 switch_to_FD4_tensor_product_interpolation( self,
"TP_constant")
71 switch_to_FD4_tensor_product_restriction( self,
"TP_inject_normal_extrap")
75 eigenvalues=eigenvalues,
76 boundary_conditions=boundary_conditions,
77 refinement_criterion=refinement_criterion,
78 initial_conditions=initial_conditions,
79 source_term=source_term )
83 flux=None, ncp=None, source_term=None, eigenvalues=None,
84 boundary_conditions=None,refinement_criterion=None,initial_conditions=None,
85 memory_location = None,
86 additional_action_set_includes = "",
87 additional_user_includes = "",
91 If you pass in User_Defined, then the generator will create C++ stubs
92 that you have to befill manually. If you pass in None_Implementation, it
93 will create nop, i.e. no implementation or defaults. Any other string
94 is copied 1:1 into the implementation. If you pass in None, then the
95 set value so far won't be overwritten.
97 Please note that not all options are supported by all solvers.
99 This routine should be the very last invoked by the constructor.
102 flux, ncp, source_term, eigenvalues,
103 boundary_conditions, refinement_criterion, initial_conditions, memory_location, additional_action_set_includes, additional_user_includes)
105 if not KOSigma==
None: self.
_KO_Sigma = KOSigma
111 compute_max_eigenvalue_of_next_time_step =
False,
112 solver_variant = SolverVariant.WithVirtualFunctions,
113 kernel_variant = KernelVariant.PatchWiseAoSHeap,