|
Peano
|
A finite volume solver. More...


Public Member Functions | |
| __init__ (self, name, patch_size, min_cell_size, max_cell_size) | |
| Construct the Finite Volume solver. | |
| create_action_sets (self) | |
| Tailor action set behaviour. | |
Public Member Functions inherited from CCZ4Solver.CCZ4Solver_FV_GlobalAdaptiveTimeStepWithEnclaveTasking | |
| add_tracer (self, name, coordinates, project, number_of_entries_between_two_db_flushes, data_delta_between_two_snapsots, time_delta_between_two_snapsots, clear_database_after_flush, tracer_unknowns) | |
| Add tracer to project. | |
Public Member Functions inherited from CCZ4Solver.AbstractCCZ4Solver | |
| enable_second_order (self) | |
| add_all_solver_constants (self) | |
| Add domain-specific constants. | |
| add_makefile_parameters (self, peano4_project, path_of_ccz4_application) | |
| Add include path and minimal required cpp files to makefile. | |
Public Member Functions inherited from exahype2.solvers.fv.rusanov.GlobalAdaptiveTimeStepWithEnclaveTasking.GlobalAdaptiveTimeStepWithEnclaveTasking | |
| set_implementation (self, flux=None, ncp=None, eigenvalues=None, boundary_conditions=None, refinement_criterion=None, initial_conditions=None, source_term=None, memory_location=None, use_split_loop=False, 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. | |
| create_data_structures (self) | |
| This routine does not really add new data, but it heavily tailors when data are stored, exchanged, ... Each generator has some guard attributes, i.e., some guards, which control when data is stored, sent, received. | |
| user_action_set_includes (self) | |
| Add further includes to this property, if your action sets require some additional routines from other header files. | |
Public Member Functions inherited from exahype2.solvers.fv.EnclaveTasking.EnclaveTasking | |
| add_entries_to_text_replacement_dictionary (self, d) | |
| d: Dictionary of string to string in/out argument | |
| add_actions_to_create_grid (self, step, evaluate_refinement_criterion) | |
| The boundary information is set only once. | |
| add_actions_to_init_grid (self, step) | |
| Add all the action sets to init grid. | |
| add_actions_to_perform_time_step (self, step) | |
| Add enclave aspect to time stepping. | |
| add_implementation_files_to_project (self, namespace, output, dimensions, subdirectory="") | |
| The ExaHyPE project will call this operation when it sets up the overall environment. | |
| switch_storage_scheme (self, Storage cell_data_storage, Storage face_data_storage) | |
| By default, we hold all data on the heap using smart pointers. | |
Public Member Functions inherited from exahype2.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. | |
| 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. | |
| 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) | |
Additional Inherited Members | |
Data Fields inherited from CCZ4Solver.AbstractCCZ4Solver | |
| integer_constants | |
| double_constants | |
| Default_Time_Step_Size_Relaxation | |
Data Fields inherited from exahype2.solvers.fv.EnclaveTasking.EnclaveTasking | |
| enclave_task_priority | |
| make_copy_of_enclave_task_data | |
Data Fields inherited from exahype2.solvers.fv.FV.FV | |
| select_dofs_to_print | |
Static Public Attributes inherited from CCZ4Solver.AbstractCCZ4Solver | |
| float | Default_Time_Step_Size_Relaxation = 0.1 |
Protected Member Functions inherited from CCZ4Solver.AbstractCCZ4Solver | |
| _add_standard_includes (self) | |
| Add the headers for the compute kernels and initial condition implementations. | |
Protected Member Functions inherited from exahype2.solvers.fv.EnclaveTasking.EnclaveTasking | |
| _create_guards (self) | |
| All the internal logic depends on guards, i.e., boolean predicates. | |
| _optimise_patch_storage_for_global_time_stepping (self) | |
| Make storage and loading more restrictive such that enclave data are not held in-between primary and secondary sweep. | |
| _enclave_task_name (self) | |
Protected Member Functions inherited from exahype2.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(). | |
Static Protected Attributes inherited from CCZ4Solver.AbstractCCZ4Solver | |
| dict | _FO_formulation_unknowns |
| dict | _SO_formulation_unknowns |
A finite volume solver.
This solver is not appropriate to simulate black holes as a stand-alone solver, as it is way too diffusive. If you use it without another scheme, you typically see the black hole disappear after a brief period. So we have it in here merely for performance tests.
| SBH.FVSolver.__init__ | ( | self, | |
| name, | |||
| patch_size, | |||
| min_cell_size, | |||
| max_cell_size ) |
Construct the Finite Volume solver.
| patch_size | Integer Defines how big the individual patches are. If you pass in 10, each Finite Volume patch will have the dimensions 10x10x10. |
| min_cell_size | Float This parameter refers to the cell size, i.e. the size of a whole patch. We use this one here, to make the signature the same as for the FD and DG solver variants. The superclass constructor argues over finite volume sizes, and we hence have to recalibrate this parameter with patch_size. |
Reimplemented from CCZ4Solver.CCZ4Solver_FV_GlobalAdaptiveTimeStepWithEnclaveTasking.
Definition at line 712 of file SBH.py.
References SBH.FVSolver.__init__(), exahype2.solvers.fv.FV.FV._user_action_set_includes, exahype2.solvers.rkdg.RungeKuttaDG.RungeKuttaDG._user_action_set_includes, exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences._user_action_set_includes, CCZ4Solver.AbstractCCZ4Solver.add_all_solver_constants(), CCZ4Solver.AbstractCCZ4Solver.double_constants, exahype2.solvers.fv.EnclaveTasking.EnclaveTasking.set_implementation(), exahype2.solvers.fv.SingleSweep.SingleSweep.set_implementation(), exahype2.solvers.aderdg.ADERDG.ADERDG.set_implementation(), exahype2.solvers.rkfd.OneSweepPerRungeKuttaStep.OneSweepPerRungeKuttaStep.set_implementation(), exahype2.solvers.rkfd.SeparateSweeps.SeparateSweeps.set_implementation(), exahype2.solvers.rkdg.rusanov.GlobalFixedTimeStep.GlobalFixedTimeStep.set_implementation(), exahype2.solvers.fv.musclhancock.GlobalAdaptiveTimeStep.GlobalAdaptiveTimeStep.set_implementation(), exahype2.solvers.fv.musclhancock.GlobalFixedTimeStep.GlobalFixedTimeStep.set_implementation(), exahype2.solvers.fv.rusanov.GlobalAdaptiveTimeStep.GlobalAdaptiveTimeStep.set_implementation(), exahype2.solvers.fv.rusanov.GlobalAdaptiveTimeStepWithEnclaveTasking.GlobalAdaptiveTimeStepWithEnclaveTasking.set_implementation(), exahype2.solvers.fv.rusanov.GlobalFixedTimeStep.GlobalFixedTimeStep.set_implementation(), exahype2.solvers.fv.rusanov.GlobalFixedTimeStepWithEnclaveTasking.GlobalFixedTimeStepWithEnclaveTasking.set_implementation(), exahype2.solvers.fv.rusanov.LocalTimeStepWithEnclaveTasking.LocalTimeStepWithEnclaveTasking.set_implementation(), exahype2.solvers.fv.rusanov.SubcyclingAdaptiveTimeStepWithEnclaveTasking.SubcyclingAdaptiveTimeStepWithEnclaveTasking.set_implementation(), exahype2.solvers.fv.rusanov.SubcyclingFixedTimeStep.SubcyclingFixedTimeStep.set_implementation(), exahype2.solvers.fv.rusanov.SubcyclingFixedTimeStepWithEnclaveTasking.SubcyclingFixedTimeStepWithEnclaveTasking.set_implementation(), exahype2.solvers.aderdg.GlobalAdaptiveTimeStep.GlobalAdaptiveTimeStep.set_implementation(), exahype2.solvers.aderdg.GlobalFixedTimeStep.GlobalFixedTimeStep.set_implementation(), exahype2.solvers.rkdg.RungeKuttaDG.RungeKuttaDG.set_implementation(), exahype2.solvers.rkdg.rusanov.GlobalAdaptiveTimeStep.GlobalAdaptiveTimeStep.set_implementation(), exahype2.solvers.rkdg.rusanov.GlobalAdaptiveTimeStepWithEnclaveTasking.GlobalAdaptiveTimeStepWithEnclaveTasking.set_implementation(), exahype2.solvers.rkfd.fd4.GlobalAdaptiveTimeStepWithEnclaveTasking.GlobalAdaptiveTimeStepWithEnclaveTasking.set_implementation(), exahype2.solvers.rkfd.fd4.GlobalFixedTimeStep.GlobalFixedTimeStep.set_implementation(), exahype2.solvers.rkfd.fd4.GlobalAdaptiveTimeStep.GlobalAdaptiveTimeStep.set_implementation(), exahype2.solvers.rkfd.fd4.GlobalAdaptiveTimeStepInExaGRyPE.GlobalAdaptiveTimeStepInExaGRyPE.set_implementation(), exahype2.solvers.rkfd.fd4.GlobalAdaptiveTimeStepInExaGRyPEWithEnclaveTasking.GlobalAdaptiveTimeStepInExaGRyPEWithEnclaveTasking.set_implementation(), exahype2.solvers.fv.riemann.GlobalAdaptiveTimeStep.GlobalAdaptiveTimeStep.set_implementation(), exahype2.solvers.fv.riemann.GlobalAdaptiveTimeStepWithEnclaveTasking.GlobalAdaptiveTimeStepWithEnclaveTasking.set_implementation(), exahype2.solvers.fv.riemann.GlobalFixedTimeStep.GlobalFixedTimeStep.set_implementation(), exahype2.solvers.fv.riemann.GlobalFixedTimeStepWithEnclaveTasking.GlobalFixedTimeStepWithEnclaveTasking.set_implementation(), and SBH.update_solver_parameters_for_single_black_hole().
Referenced by SBH.FVSolver.__init__().


| SBH.FVSolver.create_action_sets | ( | self | ) |
Tailor action set behaviour.
We first make a few additional cells skeleton cells. The rationale behind additional skeletons is given in the generic overview. Given the first remark there on FD4-FV coupling, one would be tempted to use the predicate
Once we study the other items (notably the fourth), we see that it is reasonable to make all the overlap region a skeleton within the FD4 solver.
Reimplemented from exahype2.solvers.fv.EnclaveTasking.EnclaveTasking.
Definition at line 763 of file SBH.py.
References exahype2.solvers.aderdg.ADERDG.ADERDG._action_set_handle_boundary, exahype2.solvers.fv.FV.FV._action_set_handle_boundary, exahype2.solvers.rkdg.RungeKuttaDG.RungeKuttaDG._action_set_handle_boundary, exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences._action_set_handle_boundary, and SBH.FVSolver.create_action_sets().
Referenced by mgccz4.MGCCZ4Solver.add_derivative_calculation(), exahype2.solvers.aderdg.ADERDG.ADERDG.add_kernel_optimisations(), ccz4.CCZ4Solver.add_Psi4W(), exahype2.solvers.fv.FV.FV.auxiliary_variables(), exahype2.solvers.rkdg.RungeKuttaDG.RungeKuttaDG.auxiliary_variables(), exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences.auxiliary_variables(), exahype2.solvers.elliptic.AMRMarker.AMRMarker.couple_with_FV_solver(), SBH.FVSolver.create_action_sets(), exahype2.solvers.fv.FV.FV.interpolation(), exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences.interpolation(), exahype2.solvers.fv.FV.FV.overlap(), exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences.overlap(), exahype2.solvers.fv.FV.FV.patch_size(), exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences.patch_size(), exahype2.solvers.elliptic.ConstrainedPoissonEquationForMarkerOnCells.ConstrainedPoissonEquationForMarkerOnCells.postprocess_updated_cell(), exahype2.solvers.rkdg.RungeKuttaDG.RungeKuttaDG.postprocess_updated_cell_after_final_linear_combination(), exahype2.solvers.rkdg.RungeKuttaDG.RungeKuttaDG.postprocess_updated_cell_after_Runge_Kutta_step(), exahype2.solvers.aderdg.ADERDG.ADERDG.postprocess_updated_patch(), exahype2.solvers.fv.FV.FV.postprocess_updated_patch(), exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences.postprocess_updated_patch(), exahype2.solvers.aderdg.ADERDG.ADERDG.preprocess_reconstructed_patch(), exahype2.solvers.fv.FV.FV.preprocess_reconstructed_patch(), exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences.preprocess_reconstructed_patch(), exahype2.solvers.fv.FV.FV.restriction(), exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences.restriction(), exahype2.solvers.aderdg.ADERDG.ADERDG.set_implementation(), exahype2.solvers.rkdg.RungeKuttaDG.RungeKuttaDG.set_implementation(), exahype2.solvers.aderdg.ADERDG.ADERDG.switch_storage_scheme(), exahype2.solvers.fv.FV.FV.switch_storage_scheme(), exahype2.solvers.rkdg.RungeKuttaDG.RungeKuttaDG.switch_storage_scheme(), exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences.switch_storage_scheme(), exahype2.solvers.fv.FV.FV.unknowns(), exahype2.solvers.rkdg.RungeKuttaDG.RungeKuttaDG.unknowns(), and exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences.unknowns().


|
protected |
Definition at line 820 of file SBH.py.
Referenced by exahype2.solvers.rkdg.RungeKuttaDG.RungeKuttaDG.__str__(), exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences.__str__(), exahype2.solvers.aderdg.ADERDG.ADERDG._init_dictionary_with_default_parameters(), exahype2.solvers.fv.FV.FV._init_dictionary_with_default_parameters(), exahype2.solvers.rkdg.RungeKuttaDG.RungeKuttaDG._init_dictionary_with_default_parameters(), exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences._init_dictionary_with_default_parameters(), mgccz4.MGCCZ4Solver.add_derivative_calculation(), SSInfall.SSInfallSolver.add_mass_cal_rhointer(), ccz4.CCZ4Solver.add_Psi4W(), exahype2.solvers.aderdg.ADERDG.ADERDG.auxiliary_variables(), exahype2.solvers.fv.FV.FV.auxiliary_variables(), exahype2.solvers.rkdg.RungeKuttaDG.RungeKuttaDG.auxiliary_variables(), exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences.auxiliary_variables(), exahype2.solvers.fv.FV.FV.auxiliary_variables(), exahype2.solvers.rkdg.RungeKuttaDG.RungeKuttaDG.auxiliary_variables(), and exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences.auxiliary_variables().