27 name, patch_size, rk_order, unknowns, auxiliary_variables, min_meshcell_h, max_meshcell_h, time_step_relaxation,
28 reconstruction_with_rk=False,
29 flux=PDETerms.User_Defined_Implementation,
30 ncp=PDETerms.None_Implementation,
31 point_source=PDETerms.None_Implementation,
32 boundary_conditions=PDETerms.User_Defined_Implementation,
33 refinement_criterion=PDETerms.Empty_Implementation,
34 initial_conditions=PDETerms.User_Defined_Implementation,
35 source_term=PDETerms.None_Implementation,
36 eigenvalues=PDETerms.User_Defined_Implementation,
37 pde_terms_without_state: bool =
True,
38 plot_grid_properties=
False, KOSigma=8.0
45 time_step_relaxation: Float
46 Calibration factor of CFL condition. The Runge-Kutta order is multiplied
47 with this value following the formula for Cockburn-Shu damping. However,
48 also the actual polynomial order has to enter the chosen time step size
49 through an additional @f$ p^{-2} @f$ scaling. We expect the user to
50 incorporate such an additional scaling within time_step_relaxation.
55 if reconstruction_with_rk:
60 super(GlobalAdaptiveTimeStepInExaGRyPEWithEnclaveTasking,self).
__init__(name,
69 kernel_namespace=
"fd4",
70 pde_terms_without_state=pde_terms_without_state,
80 eigenvalues=eigenvalues,
81 boundary_conditions=boundary_conditions,
82 refinement_criterion=refinement_criterion,
83 initial_conditions=initial_conditions,
84 source_term=source_term )
88 flux=None, ncp=None, source_term=None, eigenvalues=None,
89 boundary_conditions=None,refinement_criterion=None,initial_conditions=None,
90 memory_location = None,
91 additional_action_set_includes = "",
92 additional_user_includes = "",
94 reconstruction_with_rk= False
97 If you pass in User_Defined, then the generator will create C++ stubs
98 that you have to befill manually. If you pass in None_Implementation, it
99 will create nop, i.e. no implementation or defaults. Any other string
100 is copied 1:1 into the implementation. If you pass in None, then the
101 set value so far won't be overwritten.
103 Please note that not all options are supported by all solvers.
105 This routine should be the very last invoked by the constructor.
108 flux, ncp, source_term, eigenvalues,
109 boundary_conditions, refinement_criterion, initial_conditions, memory_location, additional_action_set_includes, additional_user_includes)
111 if not KOSigma==
None: self.
_KO_Sigma = KOSigma
113 create_FD4InExaGRyPE_kernel_definitions_3d()
119 compute_max_eigenvalue_of_next_time_step =
True,
120 solver_variant = SolverVariant.WithVirtualFunctions,
121 kernel_variant = KernelVariant.PatchWiseAoSHeap,
123 SecondOrder = reconstruction_with_rk
129 compute_max_eigenvalue_of_next_time_step =
True,
130 solver_variant = SolverVariant.Stateless,
131 kernel_variant = KernelVariant.PatchWiseAoSHeap,
133 SecondOrder = reconstruction_with_rk
139 compute_max_eigenvalue_of_next_time_step =
True,
140 solver_variant = SolverVariant.AcceleratorWithExplicitCopy,
141 kernel_variant = KernelVariant.PatchWiseAoSHeap,
143 SecondOrder = reconstruction_with_rk
146 if reconstruction_with_rk:
147 create_DeriCalInExaGRyPE_kernel_definitions_3d()
150 solver_variant = SolverVariant.WithVirtualFunctions,
151 kernel_variant = KernelVariant.PatchWiseAoSHeap,
152 SecondOrder = reconstruction_with_rk)
153 self.
_primary_variables_indices_primary_variables_indices =
"int primaryVarsIndices[25]={ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 53, 54};"
154 self.
_auxiliary_variables_indices_auxiliary_variables_indices =
"int auxiliaryVarsIndices[34]={23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55,56,57,58}; "