|
Peano
|
Probably the simplest solver you could think off. More...


Public Member Functions | |
| __init__ (self, name, patch_size, overlap, unknowns, auxiliary_variables, min_volume_h, max_volume_h, bool pde_terms_without_state, bool plot_grid_properties, kernel_namespace) | |
| Instantiate a generic FV scheme with an overlap of 1. | |
| create_data_structures (self) | |
| Call the superclass' create_data_structures() to ensure that all the data structures are in place, i.e., each cell can host a patch, that each face hosts patch overlaps, and so forth. | |
| create_action_sets (self) | |
| Call superclass routine and then reconfigure the update cell call. | |
| user_action_set_includes (self) | |
| Add further includes to this property, if your action sets require some additional routines from other header files. | |
| set_implementation (self, boundary_conditions, refinement_criterion, initial_conditions, memory_location, use_split_loop, 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 manually. | |
| add_entries_to_text_replacement_dictionary (self, d) | |
| d: Dictionary of string to string in/out argument | |
Public Member Functions inherited from solvers.fv.FV.FV | |
| __str__ (self) | |
| get_min_number_of_spacetree_levels (self, domain_size) | |
| get_max_number_of_spacetree_levels (self, domain_size) | |
| get_coarsest_number_of_patches (self, domain_size) | |
| get_finest_number_of_patches (self, domain_size) | |
| get_coarsest_number_of_finite_volumes (self, domain_size) | |
| get_finest_number_of_finite_volumes (self, domain_size) | |
| get_coarsest_volume_size (self, domain_size) | |
| get_finest_volume_size (self, domain_size) | |
| create_readme_descriptor (self, domain_offset, domain_size) | |
| user_solver_includes (self) | |
| Add further includes to this property, if your solver requires some additional routines from other header files. | |
| add_user_action_set_includes (self, value) | |
| Add further includes to this property, if your action sets require some additional routines from other header files. | |
| add_user_solver_includes (self, value) | |
| Add further includes to this property, if your solver requires some additional routines from other header files. | |
| get_name_of_global_instance (self) | |
| add_to_Peano4_datamodel (self, datamodel, verbose) | |
| Add all required data to the Peano project's datamodel so it is properly built up. | |
| add_use_data_statements_to_Peano4_solver_step (self, step) | |
| Tell Peano what data to move around. | |
| add_actions_to_init_grid (self, step, restart_from_checkpoint=False) | |
| Add all the action sets to init grid. | |
| add_actions_to_create_grid (self, step, evaluate_refinement_criterion) | |
| The boundary information is set only once. | |
| plot_description (self) | |
| plot_description (self, description) | |
| Add a proper description to the plots. | |
| add_actions_to_plot_solution (self, step, output_path, restart_from_checkpoint=False) | |
| Add action sets to plot solution step. | |
| add_actions_to_checkpoint_solution (self, step, output_path, restart_from_checkpoint=False) | |
| Add action sets to plot solution step. | |
| add_actions_to_perform_time_step (self, step) | |
| Add action sets to time step. | |
| add_implementation_files_to_project (self, namespace, output, dimensions, subdirectory="", abstract_overwrite=True) | |
| The ExaHyPE project will call this operation when it sets up the overall environment. | |
| set_solver_constants (self, datastring) | |
| add_solver_constants (self, datastring) | |
| unknowns (self) | |
| patch_size (self) | |
| auxiliary_variables (self) | |
| patch_size (self, value) | |
| unknowns (self, value) | |
| auxiliary_variables (self, value) | |
| preprocess_reconstructed_patch (self) | |
| preprocess_reconstructed_patch (self, kernel) | |
| Set a new processing kernel. | |
| name (self) | |
| postprocess_updated_patch (self) | |
| postprocess_updated_patch (self, kernel) | |
| Define a postprocessing routine over the data. | |
| overlap (self) | |
| overlap (self, value) | |
| interpolation (self) | |
| interpolation (self, value) | |
| restriction (self) | |
| restriction (self, value) | |
| switch_storage_scheme (self, Storage cell_data_storage, Storage face_data_storage) | |
| By default, we hold all data on the heap using smart pointers. | |
Additional Inherited Members | |
Data Fields inherited from solvers.fv.FV.FV | |
| select_dofs_to_print | |
Protected Member Functions inherited from solvers.fv.FV.FV | |
| _provide_cell_data_to_compute_kernels_default_guard (self) | |
| Default logic when to create cell data or not. | |
| _provide_face_data_to_compute_kernels_default_guard (self) | |
| _store_cell_data_default_guard (self) | |
| Extend the guard via ands only. | |
| _load_cell_data_default_guard (self) | |
| Extend the guard via ands only. | |
| _store_face_data_default_guard (self) | |
| Extend the guard via ands only. | |
| _load_face_data_default_guard (self) | |
| Extend the guard via ands only. | |
| _unknown_identifier (self) | |
| _get_default_includes (self) | |
| _init_dictionary_with_default_parameters (self, d) | |
| This one is called by all algorithmic steps before I invoke add_entries_to_text_replacement_dictionary(). | |
Probably the simplest solver you could think off.
:: Write your own specialisation ::
self._preprocess_reconstructed_patch Has to hold any preprocessing, but it also has to set the doubles timeStepSize and timeStamp to valid data.
self._postprocess_updated_patch You don't have to redefine this one, but if you want to alter the time step size, then this is the right place to do so. If you don't alter timeStepSize, the code will automatically continue with the current one subject to a preprocessing in the next step.
Definition at line 129 of file SingleSweep.py.
| solvers.fv.SingleSweep.SingleSweep.__init__ | ( | self, | |
| name, | |||
| patch_size, | |||
| overlap, | |||
| unknowns, | |||
| auxiliary_variables, | |||
| min_volume_h, | |||
| max_volume_h, | |||
| bool | pde_terms_without_state, | ||
| bool | plot_grid_properties, | ||
| kernel_namespace | |||
| ) |
Instantiate a generic FV scheme with an overlap of 1.
Reimplemented from solvers.fv.FV.FV.
Definition at line 147 of file SingleSweep.py.
References solvers.fv.SingleSweep.SingleSweep.__init__().
Referenced by solvers.fv.SingleSweep.SingleSweep.__init__().


| solvers.fv.SingleSweep.SingleSweep.add_entries_to_text_replacement_dictionary | ( | self, | |
| d | |||
| ) |
d: Dictionary of string to string in/out argument
Reimplemented from solvers.fv.FV.FV.
Definition at line 262 of file SingleSweep.py.
Referenced by solvers.aderdg.ADERDG.ADERDG._generate_kernels(), solvers.fv.FV.FV.add_actions_to_checkpoint_solution(), solvers.fv.FV.FV.add_actions_to_perform_time_step(), solvers.rkdg.RungeKuttaDG.RungeKuttaDG.add_actions_to_perform_time_step(), solvers.aderdg.ADERDG.ADERDG.add_actions_to_plot_solution(), solvers.rkdg.RungeKuttaDG.RungeKuttaDG.add_actions_to_plot_solution(), solvers.fv.FV.FV.add_actions_to_plot_solution(), solvers.aderdg.ADERDG.ADERDG.add_implementation_files_to_project(), solvers.fv.EnclaveTasking.EnclaveTasking.add_implementation_files_to_project(), and solvers.rkdg.SeparateSweepsWithEnclaveTasking.SeparateSweepsWithEnclaveTasking.add_implementation_files_to_project().

| solvers.fv.SingleSweep.SingleSweep.create_action_sets | ( | self | ) |
Call superclass routine and then reconfigure the update cell call.
Only the UpdateCell action set is specific to a single sweep.
This operation is implicitly called via the superconstructor.
Reimplemented from solvers.fv.FV.FV.
Definition at line 205 of file SingleSweep.py.
References solvers.fv.SingleSweep.SingleSweep.create_action_sets().
Referenced by solvers.aderdg.ADERDG.ADERDG.add_kernel_optimisations(), ccz4.CCZ4Solver.add_Psi4W(), solvers.fv.FV.FV.auxiliary_variables(), solvers.rkdg.RungeKuttaDG.RungeKuttaDG.auxiliary_variables(), solvers.elliptic.AMRMarker.AMRMarker.couple_with_FV_solver(), solvers.fv.SingleSweep.SingleSweep.create_action_sets(), solvers.fv.FV.FV.interpolation(), solvers.fv.FV.FV.overlap(), solvers.fv.FV.FV.patch_size(), solvers.elliptic.ConstrainedPoissonEquationForMarkerOnCells.ConstrainedPoissonEquationForMarkerOnCells.postprocess_updated_cell(), solvers.rkdg.RungeKuttaDG.RungeKuttaDG.postprocess_updated_cell_after_final_linear_combination(), solvers.rkdg.RungeKuttaDG.RungeKuttaDG.postprocess_updated_cell_after_Runge_Kutta_step(), solvers.aderdg.ADERDG.ADERDG.postprocess_updated_patch(), solvers.fv.FV.FV.postprocess_updated_patch(), solvers.aderdg.ADERDG.ADERDG.preprocess_reconstructed_patch(), solvers.fv.FV.FV.preprocess_reconstructed_patch(), solvers.fv.FV.FV.restriction(), solvers.aderdg.ADERDG.ADERDG.set_implementation(), solvers.rkdg.RungeKuttaDG.RungeKuttaDG.set_implementation(), solvers.aderdg.ADERDG.ADERDG.switch_storage_scheme(), solvers.fv.FV.FV.switch_storage_scheme(), solvers.rkdg.RungeKuttaDG.RungeKuttaDG.switch_storage_scheme(), solvers.fv.FV.FV.unknowns(), and solvers.rkdg.RungeKuttaDG.RungeKuttaDG.unknowns().


| solvers.fv.SingleSweep.SingleSweep.create_data_structures | ( | self | ) |
Call the superclass' create_data_structures() to ensure that all the data structures are in place, i.e., each cell can host a patch, that each face hosts patch overlaps, and so forth.
These quantities are all set to defaults. See FV.create_data_structures().
After that, take the patch overlap (that's the data stored within the faces) and ensure that these are sent and received via MPI whenever they are also stored persistently. The default in FV is that no domain boundary data exchange is active. Finally, ensure that the old data is only exchanged between the initialisation sweep and the first first grid run-through.
Reimplemented from solvers.fv.FV.FV.
Definition at line 175 of file SingleSweep.py.
References solvers.aderdg.ADERDG.ADERDG._name, solvers.elliptic.AMRMarker.AMRMarker._name, solvers.elliptic.ConstrainedPoissonEquationForMarkerOnCells.ConstrainedPoissonEquationForMarkerOnCells._name, solvers.fv.EnclaveTasking.EnclaveTasking._name, solvers.fv.FV.FV._name, solvers.limiting.PosterioriLimiting.PosterioriLimiting._name, solvers.limiting.StaticLimiting.StaticLimiting._name, solvers.rkdg.RungeKuttaDG.RungeKuttaDG._name, solvers.rkdg.SeparateSweeps.SeparateSweeps._name, solvers.rkdg.SeparateSweepsWithEnclaveTasking.SeparateSweepsWithEnclaveTasking._name, dastgen2.attributes.Attribute.Attribute._name, dastgen2.attributes.BooleanArray.BooleanArray._name, dastgen2.attributes.Enumeration.Enumeration._name, exahype2.api.dslhype.SyntaxTree.MemoryAllocation._name, exahype2.api.dslhype.SyntaxTree.MemoryDeallocation._name, exahype2.api.dslhype.SyntaxTree.Construction._name, exahype2.api.dslhype.SyntaxTree.DataBlockConstructionFromExisting._name, exahype2.api.dslhype.SyntaxTree.DataBlockConstructionFromOperation._name, exahype2.api.dslhype.SyntaxTree.DataBlockConstructionFromMatrixVectorProduct._name, exahype2.api.dslhype.SyntaxTree.DataBlockConstructionFromDotProduct._name, exahype2.api.dslhype.SyntaxTree.DataBlockConstructionFromFunction._name, exahype2.api.Solver.Solver._name, solvers.api.Solver.Solver._name, mghype::matrixfree::solvers::Solver._name, api.solvers.Solver.Solver._name, peano4.api.dastgen2.Peano4DoubleArray.Peano4DoubleArray._name, peano4.api.dastgen2.Peano4IntegerArray.Peano4IntegerArray._name, peano4.api.dastgen2.Peano4SmartPointerDoubleArray.Peano4SmartPointerDoubleArray._name, peano4::RunMultipleSteps._name, tarch::services::ServiceRepository::ServiceEntry._name, api.Tree.Tree._name, solvers.fv.FV.FV._patch_overlap_new, solvers.fv.FV.FV._patch_overlap_old, solvers.fv.SingleSweep.SingleSweep.create_data_structures(), solvers.aderdg.ADERDG.ADERDG.get_name_of_global_instance(), solvers.elliptic.AMRMarker.AMRMarker.get_name_of_global_instance(), solvers.elliptic.ConstrainedPoissonEquationForMarkerOnCells.ConstrainedPoissonEquationForMarkerOnCells.get_name_of_global_instance(), solvers.fv.FV.FV.get_name_of_global_instance(), solvers.limiting.PosterioriLimiting.PosterioriLimiting.get_name_of_global_instance(), solvers.limiting.StaticLimiting.StaticLimiting.get_name_of_global_instance(), solvers.rkdg.RungeKuttaDG.RungeKuttaDG.get_name_of_global_instance(), and exahype2.api.Solver.Solver.get_name_of_global_instance().
Referenced by solvers.aderdg.ADERDG.ADERDG.add_kernel_optimisations(), ccz4.CCZ4Solver.add_Psi4W(), solvers.fv.FV.FV.auxiliary_variables(), solvers.rkdg.RungeKuttaDG.RungeKuttaDG.auxiliary_variables(), solvers.fv.SingleSweep.SingleSweep.create_data_structures(), solvers.fv.FV.FV.interpolation(), solvers.fv.FV.FV.overlap(), solvers.fv.FV.FV.patch_size(), solvers.elliptic.ConstrainedPoissonEquationForMarkerOnCells.ConstrainedPoissonEquationForMarkerOnCells.postprocess_updated_cell(), solvers.rkdg.RungeKuttaDG.RungeKuttaDG.postprocess_updated_cell_after_final_linear_combination(), solvers.rkdg.RungeKuttaDG.RungeKuttaDG.postprocess_updated_cell_after_Runge_Kutta_step(), solvers.aderdg.ADERDG.ADERDG.postprocess_updated_patch(), solvers.fv.FV.FV.postprocess_updated_patch(), solvers.aderdg.ADERDG.ADERDG.preprocess_reconstructed_patch(), solvers.fv.FV.FV.preprocess_reconstructed_patch(), solvers.fv.FV.FV.restriction(), solvers.aderdg.ADERDG.ADERDG.set_implementation(), solvers.rkdg.RungeKuttaDG.RungeKuttaDG.set_implementation(), solvers.aderdg.ADERDG.ADERDG.switch_storage_scheme(), solvers.fv.FV.FV.switch_storage_scheme(), solvers.rkdg.RungeKuttaDG.RungeKuttaDG.switch_storage_scheme(), solvers.fv.FV.FV.unknowns(), and solvers.rkdg.RungeKuttaDG.RungeKuttaDG.unknowns().


| solvers.fv.SingleSweep.SingleSweep.set_implementation | ( | self, | |
| boundary_conditions, | |||
| refinement_criterion, | |||
| initial_conditions, | |||
| memory_location, | |||
| use_split_loop, | |||
| 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 manually.
If you pass in None_Implementation, it will create nop, i.e., no implementation or defaults. Any other string is copied 1:1 into the implementation. If you pass in None, then the set value so far won't be overwritten.
Definition at line 223 of file SingleSweep.py.
Referenced by CCZ4Solver.CCZ4Solver_FV_GlobalAdaptiveTimeStep.__init__(), CCZ4Solver.CCZ4Solver_FV_MUSCL_GlobalAdaptiveTimeStep.__init__(), CCZ4Solver.CCZ4Solver_FV_GlobalAdaptiveTimeStepWithEnclaveTasking.__init__(), CCZ4Solver.CCZ4Solver_FV_MUSCL_GlobalAdaptiveTimeStepWithEnclaveTasking.__init__(), CCZ4Solver.CCZ4Solver_FD4_GlobalAdaptiveTimeStepWithEnclaveTasking.__init__(), CCZ4Solver.CCZ4Solver_FD4_GlobalAdaptiveTimeStep.__init__(), CCZ4Solver.CCZ4Solver_RKDG_GlobalAdaptiveTimeStepWithEnclaveTasking.__init__(), and CCZ4Solver.CCZ4Solver_RKDG_GlobalAdaptiveTimeStep.__init__().

| solvers.fv.SingleSweep.SingleSweep.user_action_set_includes | ( | self | ) |
Add further includes to this property, if your action sets require some additional routines from other header files.
Reimplemented from solvers.fv.FV.FV.
Definition at line 217 of file SingleSweep.py.
Referenced by solvers.fv.EnclaveTasking.EnclaveTasking.add_implementation_files_to_project(), solvers.rkdg.SeparateSweepsWithEnclaveTasking.SeparateSweepsWithEnclaveTasking.add_implementation_files_to_project(), solvers.aderdg.ADERDG.ADERDG.add_user_action_set_includes(), solvers.aderdg.ADERDG.ADERDG.get_user_action_set_includes(), and solvers.aderdg.ADERDG.ADERDG.set_implementation().

|
protected |
Definition at line 213 of file SingleSweep.py.
Referenced by solvers.fv.FV.FV.add_actions_to_perform_time_step(), solvers.fv.rusanov.LocalTimeStepWithEnclaveTasking.LocalTimeStepWithEnclaveTasking.create_action_sets(), solvers.fv.rusanov.SubcyclingAdaptiveTimeStepWithEnclaveTasking.SubcyclingAdaptiveTimeStepWithEnclaveTasking.create_action_sets(), solvers.fv.rusanov.SubcyclingFixedTimeStep.SubcyclingFixedTimeStep.create_action_sets(), and solvers.fv.rusanov.SubcyclingFixedTimeStepWithEnclaveTasking.SubcyclingFixedTimeStepWithEnclaveTasking.create_action_sets().
|
protected |
Definition at line 240 of file SingleSweep.py.
Referenced by solvers.rkdg.RungeKuttaDG.RungeKuttaDG.__str__(), solvers.aderdg.ADERDG.ADERDG._init_dictionary_with_default_parameters(), solvers.fv.FV.FV._init_dictionary_with_default_parameters(), solvers.rkdg.RungeKuttaDG.RungeKuttaDG._init_dictionary_with_default_parameters(), solvers.aderdg.ADERDG.ADERDG.set_implementation(), and solvers.rkdg.RungeKuttaDG.RungeKuttaDG.set_implementation().
|
protected |
Definition at line 242 of file SingleSweep.py.
Referenced by solvers.rkdg.RungeKuttaDG.RungeKuttaDG.__str__(), solvers.aderdg.ADERDG.ADERDG._init_dictionary_with_default_parameters(), solvers.fv.FV.FV._init_dictionary_with_default_parameters(), solvers.rkdg.RungeKuttaDG.RungeKuttaDG._init_dictionary_with_default_parameters(), solvers.aderdg.ADERDG.ADERDG.set_implementation(), and solvers.rkdg.RungeKuttaDG.RungeKuttaDG.set_implementation().
|
protected |
Definition at line 243 of file SingleSweep.py.
|
protected |
Definition at line 241 of file SingleSweep.py.
Referenced by solvers.rkdg.RungeKuttaDG.RungeKuttaDG.__str__(), solvers.aderdg.ADERDG.ADERDG._init_dictionary_with_default_parameters(), solvers.fv.FV.FV._init_dictionary_with_default_parameters(), solvers.rkdg.RungeKuttaDG.RungeKuttaDG._init_dictionary_with_default_parameters(), solvers.aderdg.ADERDG.ADERDG.set_implementation(), and solvers.rkdg.RungeKuttaDG.RungeKuttaDG.set_implementation().
|
protected |
Definition at line 172 of file SingleSweep.py.
Referenced by solvers.aderdg.ADERDG.ADERDG.add_implementation_files_to_project().
|
protected |
Definition at line 244 of file SingleSweep.py.