Peano
Loading...
Searching...
No Matches
SBH.FD4SolverWithoutLimiter Class Reference

Construct 4th order Finite Differences solver without a limiter. More...

Inheritance diagram for SBH.FD4SolverWithoutLimiter:
Collaboration diagram for SBH.FD4SolverWithoutLimiter:

Public Member Functions

 __init__ (self, name, patch_size, min_cell_size, max_cell_size)
 Constructor.
 
 create_action_sets (self)
 Tailor action set behaviour.
 
- Public Member Functions inherited from CCZ4Solver.CCZ4Solver_FD4_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.rkfd.fd4.GlobalAdaptiveTimeStepWithEnclaveTasking.GlobalAdaptiveTimeStepWithEnclaveTasking
 set_implementation (self, flux=None, ncp=None, source_term=None, eigenvalues=None, boundary_conditions=None, refinement_criterion=None, initial_conditions=None, memory_location=None, additional_action_set_includes="", additional_user_includes="", KOSigma=None)
 If you pass in User_Defined, then the generator will create C++ stubs that you have to befill manually.
 
 user_action_set_includes (self)
 Add further includes to this property, if your action sets require some additional routines from other header files.
 
 add_entries_to_text_replacement_dictionary (self, d)
 Invoce superclass and then add one more field:
 
- Public Member Functions inherited from exahype2.solvers.rkfd.SeparateSweepsWithEnclaveTasking.SeparateSweepsWithEnclaveTasking
 create_data_structures (self)
 Call the superclass' create_data_structures() to ensure that all the data structures are in place, i.e.
 
 add_implementation_files_to_project (self, namespace, output, dimensions, subdirectory="")
 Add the enclave task for the GPU.
 
 add_actions_to_perform_time_step (self, step)
 Add enclave aspect.
 
 switch_storage_scheme (self, Storage cell_data_storage, Storage face_data_storage)
 By default, we hold all data on the call stacks.
 
- Public Member Functions inherited from exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences
 __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_compute_grid_cells (self, domain_size)
 
 get_finest_number_of_compute_grid_cells (self, domain_size)
 
 get_coarsest_compute_grid_cell_size (self, domain_size)
 
 get_finest_compute_grid_cell_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.
 
 number_of_Runge_Kutta_steps (self)
 Return number of steps required to realise the Runge-Kutta scheme.
 
 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 Peano4 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 your actions 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)
 Use this one to set a description within the output patch file that tells the vis solver what the semantics of the entries are.
 
 add_actions_to_plot_solution (self, step, output_path, restart_from_checkpoint=False)
 Add action sets to plotting grid sweep.
 
 add_actions_to_checkpoint_solution (self, step, output_path, restart_from_checkpoint=False)
 Add action sets to checkpoint grid sweep.
 
 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)
 Please consult exahype2.solvers.fv.FV.preprocess_reconstructed_patch() for a documentation on this routine.
 
 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)
 Set the interpolation scheme.
 
 restriction (self)
 Set the restriction scheme.
 
 restriction (self, value)
 

Protected Attributes

 _name_without_FD4_extension
 
 _auxiliary_variables
 
- Protected Attributes inherited from exahype2.solvers.rkfd.fd4.GlobalAdaptiveTimeStepWithEnclaveTasking.GlobalAdaptiveTimeStepWithEnclaveTasking
 _reconstruction_stages
 
 _time_step_relaxation
 
 _compute_eigenvalue
 
 _KO_Sigma
 
 _compute_kernel_call
 
 _flux_implementation
 
 _ncp_implementation
 
 _source_term_implementation
 
 _fused_compute_kernel_call_cpu
 
 _fused_compute_kernel_call_gpu
 
 _abstract_solver_user_declarations
 
 _abstract_solver_user_definitions
 
 _compute_time_step_size
 
 _compute_new_time_step_size
 
 _solver_user_declarations
 
 _solver_user_definitions
 
 _start_time_step_implementation
 
 _finish_time_step_implementation
 
 _constructor_implementation
 
- Protected Attributes inherited from exahype2.solvers.rkfd.SeparateSweepsWithEnclaveTasking.SeparateSweepsWithEnclaveTasking
 _name
 
 _rk_order
 
 _primary_sweeps_of_Runge_Kutta_step_on_cell
 
 _secondary_sweeps_of_Runge_Kutta_step_on_cell
 
 _last_secondary_sweep_of_Runge_Kutta_step_on_cell
 
 _primary_sweeps_of_Runge_Kutta_step_on_face
 
 _secondary_sweeps_of_Runge_Kutta_step_on_face
 
 _primary_sweep_guard
 
 _primary_sweep_or_plot_guard
 
 _secondary_sweep_guard
 
 _secondary_sweep_or_initialisation_guard
 
 _solver_template_file_class_name
 
 _fused_compute_kernel_call_cpu
 
 _fused_compute_kernel_call_gpu
 
 _pde_terms_without_state
 
 _fused_volumetric_kernel_call_cpu
 
 _fused_volumetric_kernel_call_gpu
 
 _action_set_merge_enclave_task_outcome
 
 _action_set_update_cell
 
- Protected Attributes inherited from exahype2.solvers.rkfd.SeparateSweeps.SeparateSweeps
 _rk_order
 
 _solver_template_file_class_name
 
 _flux_implementation
 
 _ncp_implementation
 
 _eigenvalues_implementation
 
 _source_term_implementation
 
 _name
 
 _action_set_update_cell
 
 _reconstruction_stages
 
 _boundary_conditions_implementation
 
 _refinement_criterion_implementation
 
 _initial_conditions_implementation
 
 _reconstructed_array_memory_location
 
- Protected Attributes inherited from exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences
 _name
 
 _min_meshcell_h
 
 _max_meshcell_h
 
 _plot_grid_properties
 
 _patch_size
 
 _overlap
 
 _rk_order
 
 _use_var_shortcut
 
 _variable_names
 
 _variable_pos
 
 _unknowns
 
 _auxiliary_variables
 
 _solver_constants
 
 _user_action_set_includes
 
 _user_solver_includes
 
 _kernel_namespace
 
 _reconstructed_array_memory_location
 
 _solver_template_file_class_name
 
 _plot_description
 
 _action_set_initial_conditions
 
 _action_set_initial_conditions_for_grid_construction
 
 _action_set_AMR
 
 _action_set_AMR_commit_without_further_analysis
 
 _action_set_handle_boundary
 
 _action_set_project_patch_onto_faces
 
 _action_set_roll_over_update_of_faces
 
 _action_set_copy_new_faces_onto_old_faces
 
 _action_set_couple_resolution_transitions_and_handle_dynamic_mesh_refinement
 
 _action_set_postprocess_solution
 
 _action_set_preprocess_solution
 
 _compute_time_step_size
 
 _compute_new_time_step_size
 
 _preprocess_reconstructed_patch
 
 _postprocess_updated_patch
 
 _compute_kernel_call
 
 _compute_eigenvalue
 
 _abstract_solver_user_declarations
 
 _abstract_solver_user_definitions
 
 _solver_user_declarations
 
 _solver_user_definitions
 
 _start_time_step_implementation
 
 _finish_time_step_implementation
 
 _constructor_implementation
 
 _boundary_conditions_implementation
 
 _refinement_criterion_implementation
 
 _initial_conditions_implementation
 
 _interpolation
 
 _restriction
 
 _baseline_action_set_descend_invocation_order
 
 _patch
 
 _patch_estimates
 
 _patch_overlap_old
 
 _patch_overlap_new
 
 _patch_overlap_update
 
 _cell_data_storage
 
 _face_data_storage
 
 _cell_label
 
 _face_label
 
 _action_set_AMR_throughout_grid_construction
 
 _action_set_compute_final_linear_combination
 
 _action_set_update_face_label
 
 _action_set_update_cell_label
 
 _action_set_update_cell
 

Additional Inherited Members

- Data Fields inherited from CCZ4Solver.AbstractCCZ4Solver
 integer_constants
 
 double_constants
 
 Default_Time_Step_Size_Relaxation
 
- Data Fields inherited from exahype2.solvers.rkfd.SeparateSweepsWithEnclaveTasking.SeparateSweepsWithEnclaveTasking
 enclave_task_priority
 
 make_copy_of_enclave_task_data
 
- Data Fields inherited from exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences
 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.rkfd.SeparateSweepsWithEnclaveTasking.SeparateSweepsWithEnclaveTasking
 _enclave_task_name (self)
 
- Protected Member Functions inherited from exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences
 _provide_cell_data_to_compute_kernels_default_guard (self)
 
 _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
 

Detailed Description

Construct 4th order Finite Differences solver without a limiter.

Definition at line 567 of file SBH.py.

Constructor & Destructor Documentation

◆ __init__()

SBH.FD4SolverWithoutLimiter.__init__ ( self,
name,
patch_size,
rk_order,
min_meshcell_h )

Constructor.

Calibrate the default time step size calibration with 1/16 to take into account that we have a higher-order numerical scheme.

Reimplemented from CCZ4Solver.CCZ4Solver_FD4_GlobalAdaptiveTimeStepWithEnclaveTasking.

Definition at line 574 of file SBH.py.

Member Function Documentation

◆ create_action_sets()

SBH.FD4SolverWithoutLimiter.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

self._action_set_update_cell.additional_skeleton_guard = " " "(
repositories::instanceOf" " " + self._name_without_FD4_extension + " " "_FV.isCellOverlappingWithBHImpactArea(marker)
and
not repositories::instanceOf" " " + self._name_without_FD4_extension + " " "_FV.areAllFaceConnectedCellsOverlappingWithBHImpactArea(marker)
)
" " "

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.rkfd.SeparateSweepsWithEnclaveTasking.SeparateSweepsWithEnclaveTasking.

Definition at line 612 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.FD4SolverWithoutLimiter.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.FD4SolverWithoutLimiter.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().

Here is the call graph for this function:
Here is the caller graph for this function:

Field Documentation

◆ _auxiliary_variables

◆ _name_without_FD4_extension

SBH.FD4SolverWithoutLimiter._name_without_FD4_extension
protected

Definition at line 581 of file SBH.py.


The documentation for this class was generated from the following file: