Peano
Loading...
Searching...
No Matches
exahype2.solvers.fv.rusanov.GlobalAdaptiveTimeStepWithEnclaveTasking.GlobalAdaptiveTimeStepWithEnclaveTasking Class Reference
Inheritance diagram for exahype2.solvers.fv.rusanov.GlobalAdaptiveTimeStepWithEnclaveTasking.GlobalAdaptiveTimeStepWithEnclaveTasking:
Collaboration diagram for exahype2.solvers.fv.rusanov.GlobalAdaptiveTimeStepWithEnclaveTasking.GlobalAdaptiveTimeStepWithEnclaveTasking:

Public Member Functions

 __init__ (self, name, patch_size, unknowns, auxiliary_variables, min_volume_h, max_volume_h, time_step_relaxation, flux=PDETerms.User_Defined_Implementation, ncp=PDETerms.None_Implementation, eigenvalues=PDETerms.User_Defined_Implementation, boundary_conditions=PDETerms.User_Defined_Implementation, refinement_criterion=PDETerms.Empty_Implementation, initial_conditions=PDETerms.User_Defined_Implementation, source_term=PDETerms.None_Implementation, plot_grid_properties=False, pde_terms_without_state=False, overlap=1)
 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
 __init__ (self, name, patch_size, overlap, unknowns, auxiliary_variables, min_volume_h, max_volume_h, plot_grid_properties, bool pde_terms_without_state, kernel_namespace)
 Not so nice.
 create_action_sets (self)
 Adaptive mesh handing.
 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
 __init__ (self, name, patch_size, overlap, unknowns, auxiliary_variables, min_volume_h, max_volume_h, plot_grid_properties, bool pde_terms_without_state, kernel_namespace, baseline_action_set_descend_invocation_order=0)
 Create solver.
 __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)

Protected Attributes

 _time_step_relaxation = time_step_relaxation
 _flux_implementation = PDETerms.None_Implementation
 _ncp_implementation = PDETerms.None_Implementation
 _eigenvalues_implementation = PDETerms.None_Implementation
 _source_term_implementation = PDETerms.None_Implementation
Protected Attributes inherited from exahype2.solvers.fv.EnclaveTasking.EnclaveTasking
str _fused_compute_kernel_call_stateless_cpu = "#error Not yet defined"
str _fused_compute_kernel_call_stateless_gpu = "#error Not yet defined"
tuple _initialisation_sweep_guard
tuple _first_iteration_after_initialisation_guard
tuple _primary_sweep_guard
str _primary_sweep_or_plot_guard
str _primary_or_initialisation_sweep_guard
str _primary_or_grid_construction_or_initialisation_sweep_guard
tuple _secondary_sweep_guard
tuple _secondary_sweep_or_grid_construction_guard
tuple _secondary_sweep_or_grid_initialisation_guard
str _secondary_sweep_or_grid_initialisation_or_plot_guard
 _action_set_merge_enclave_task_outcome = MergeEnclaveTaskOutcome(self)
 _use_split_loop = use_split_loop
Protected Attributes inherited from exahype2.solvers.fv.FV.FV
 _name = name
 _min_volume_h = min_volume_h
 _max_volume_h = max_volume_h
 _plot_grid_properties = plot_grid_properties
 _patch_size = patch_size
 _overlap = overlap
bool _use_var_shortcut = False
list _variable_names = []
list _variable_pos = [0]
 _unknowns = sum(unknowns.values())
 _auxiliary_variables = sum(auxiliary_variables.values())
str _solver_constants = ""
str _user_action_set_includes = ""
str _user_solver_includes = ""
tuple _reconstructed_array_memory_location
 _solver_template_file_class_name = None
str _plot_description = ""
tuple _action_set_initial_conditions = None
tuple _action_set_initial_conditions_for_grid_construction = None
 _action_set_AMR = None
 _action_set_AMR_throughout_grid_construction = None
tuple _action_set_AMR_commit_without_further_analysis = None
tuple _action_set_handle_boundary = None
tuple _action_set_project_patch_onto_faces = None
tuple _action_set_roll_over_update_of_faces = None
tuple _action_set_copy_new_faces_onto_old_faces = None
tuple _action_set_couple_resolution_transitions_and_handle_dynamic_mesh_refinement
tuple _action_set_postprocess_solution = None
tuple _action_set_preprocess_solution = None
str _compute_time_step_size = "#error Not yet defined"
str _compute_new_time_step_size = "#error Not yet defined"
str _preprocess_reconstructed_patch = ""
str _postprocess_updated_patch = ""
str _compute_kernel_call = "#error Not yet defined"
str _compute_kernel_call_stateless = "#error Not yet defined"
 _pde_terms_without_state = pde_terms_without_state
bool _compute_eigenvalue = False
str _abstract_solver_user_declarations = ""
str _abstract_solver_user_definitions = ""
str _solver_user_declarations = ""
str _solver_user_definitions = ""
str _start_time_step_implementation = ""
str _finish_time_step_implementation = ""
str _constructor_implementation = ""
 _boundary_conditions_implementation = None
 _refinement_criterion_implementation = None
 _initial_conditions_implementation = None
str _interpolation = "piecewise_constant"
str _restriction = "averaging"
 _kernel_namespace = kernel_namespace
 _baseline_action_set_descend_invocation_order = baseline_action_set_descend_invocation_order
 _patch
 _patch_overlap_old
 _patch_overlap_new
 _patch_overlap_update
 _cell_data_storage = Storage.CallStack:
 _face_data_storage = Storage.CallStack:
 _cell_label = exahype2.grid.create_cell_label(self._name)
 _face_label = exahype2.grid.create_face_label(self._name)
 _action_set_update_face_label = exahype2.grid.UpdateFaceLabel(self._name)
 _action_set_update_cell_label = exahype2.grid.UpdateCellLabel(self._name)
 _action_set_update_cell = None

Additional Inherited Members

Data Fields inherited from exahype2.solvers.fv.EnclaveTasking.EnclaveTasking
str enclave_task_priority = "tarch::multicore::Task::DefaultPriority-1"
bool make_copy_of_enclave_task_data = False
Data Fields inherited from exahype2.solvers.fv.FV.FV
 select_dofs_to_print = None
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().

Detailed Description

Definition at line 23 of file GlobalAdaptiveTimeStepWithEnclaveTasking.py.

Constructor & Destructor Documentation

◆ __init__()

exahype2.solvers.fv.rusanov.GlobalAdaptiveTimeStepWithEnclaveTasking.GlobalAdaptiveTimeStepWithEnclaveTasking.__init__ ( self,
name,
patch_size,
unknowns,
auxiliary_variables,
min_volume_h,
max_volume_h,
time_step_relaxation,
flux = PDETerms.User_Defined_Implementation,
ncp = PDETerms.None_Implementation,
eigenvalues = PDETerms.User_Defined_Implementation,
boundary_conditions = PDETerms.User_Defined_Implementation,
refinement_criterion = PDETerms.Empty_Implementation,
initial_conditions = PDETerms.User_Defined_Implementation,
source_term = PDETerms.None_Implementation,
plot_grid_properties = False,
pde_terms_without_state = False,
overlap = 1 )

Definition at line 24 of file GlobalAdaptiveTimeStepWithEnclaveTasking.py.

References __init__().

Referenced by __init__().

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

Member Function Documentation

◆ create_data_structures()

exahype2.solvers.fv.rusanov.GlobalAdaptiveTimeStepWithEnclaveTasking.GlobalAdaptiveTimeStepWithEnclaveTasking.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.

The routine takes these guards and rewires them to the local guards of this object. If you alter these guards further, you have to alter them before you invoke this class' create_data_structures().

Reimplemented from exahype2.solvers.fv.EnclaveTasking.EnclaveTasking.

Definition at line 147 of file GlobalAdaptiveTimeStepWithEnclaveTasking.py.

References exahype2.solvers.fv.EnclaveTasking.EnclaveTasking._optimise_patch_storage_for_global_time_stepping(), and create_data_structures().

Referenced by mgccz4.MGCCZ4Solver.add_derivative_calculation(), ccz4.CCZ4Solver.add_Psi4W(), exahype2.solvers.rkdg.RungeKuttaDG.RungeKuttaDG.auxiliary_variables(), exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences.auxiliary_variables(), create_data_structures(), exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences.interpolation(), exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences.overlap(), exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences.patch_size(), 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.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences.postprocess_updated_patch(), exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences.preprocess_reconstructed_patch(), exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences.restriction(), exahype2.solvers.rkdg.RungeKuttaDG.RungeKuttaDG.set_implementation(), exahype2.solvers.rkdg.RungeKuttaDG.RungeKuttaDG.switch_storage_scheme(), exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences.switch_storage_scheme(), 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:

◆ set_implementation()

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.

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.

Please note that not all options are supported by all solvers.

This routine should be the very last invoked by the constructor.

Reimplemented from exahype2.solvers.fv.EnclaveTasking.EnclaveTasking.

Definition at line 64 of file GlobalAdaptiveTimeStepWithEnclaveTasking.py.

References exahype2.solvers.aderdg.AbstractSolverDeclarations.AbstractSolverDeclarations._eigenvalues_implementation, exahype2.solvers.aderdg.AbstractSolverDefinitions.AbstractSolverDefinitions._eigenvalues_implementation, exahype2.solvers.aderdg.ADERDG.ADERDG._eigenvalues_implementation, exahype2.solvers.aderdg.SolverDeclarations.SolverDeclarations._eigenvalues_implementation, exahype2.solvers.aderdg.SolverDefinitions.SolverDefinitions._eigenvalues_implementation, exahype2.solvers.fv.musclhancock.GlobalAdaptiveTimeStep.GlobalAdaptiveTimeStep._eigenvalues_implementation, exahype2.solvers.fv.musclhancock.GlobalFixedTimeStep.GlobalFixedTimeStep._eigenvalues_implementation, exahype2.solvers.fv.riemann.GlobalAdaptiveTimeStep.GlobalAdaptiveTimeStep._eigenvalues_implementation, exahype2.solvers.fv.riemann.GlobalAdaptiveTimeStepWithEnclaveTasking.GlobalAdaptiveTimeStepWithEnclaveTasking._eigenvalues_implementation, exahype2.solvers.fv.riemann.GlobalFixedTimeStep.GlobalFixedTimeStep._eigenvalues_implementation, exahype2.solvers.fv.riemann.GlobalFixedTimeStepWithEnclaveTasking.GlobalFixedTimeStepWithEnclaveTasking._eigenvalues_implementation, exahype2.solvers.fv.rusanov.GlobalAdaptiveTimeStep.GlobalAdaptiveTimeStep._eigenvalues_implementation, _eigenvalues_implementation, exahype2.solvers.aderdg.AbstractSolverDeclarations.AbstractSolverDeclarations._flux_implementation, exahype2.solvers.aderdg.AbstractSolverDefinitions.AbstractSolverDefinitions._flux_implementation, exahype2.solvers.aderdg.ADERDG.ADERDG._flux_implementation, exahype2.solvers.aderdg.SolverDeclarations.SolverDeclarations._flux_implementation, exahype2.solvers.aderdg.SolverDefinitions.SolverDefinitions._flux_implementation, exahype2.solvers.fv.musclhancock.GlobalAdaptiveTimeStep.GlobalAdaptiveTimeStep._flux_implementation, exahype2.solvers.fv.musclhancock.GlobalFixedTimeStep.GlobalFixedTimeStep._flux_implementation, exahype2.solvers.fv.riemann.GlobalAdaptiveTimeStep.GlobalAdaptiveTimeStep._flux_implementation, exahype2.solvers.fv.riemann.GlobalAdaptiveTimeStepWithEnclaveTasking.GlobalAdaptiveTimeStepWithEnclaveTasking._flux_implementation, exahype2.solvers.fv.riemann.GlobalFixedTimeStep.GlobalFixedTimeStep._flux_implementation, exahype2.solvers.fv.riemann.GlobalFixedTimeStepWithEnclaveTasking.GlobalFixedTimeStepWithEnclaveTasking._flux_implementation, exahype2.solvers.fv.rusanov.GlobalAdaptiveTimeStep.GlobalAdaptiveTimeStep._flux_implementation, _flux_implementation, exahype2.solvers.aderdg.AbstractSolverDeclarations.AbstractSolverDeclarations._ncp_implementation, exahype2.solvers.aderdg.AbstractSolverDefinitions.AbstractSolverDefinitions._ncp_implementation, exahype2.solvers.aderdg.ADERDG.ADERDG._ncp_implementation, exahype2.solvers.aderdg.SolverDeclarations.SolverDeclarations._ncp_implementation, exahype2.solvers.aderdg.SolverDefinitions.SolverDefinitions._ncp_implementation, exahype2.solvers.fv.musclhancock.GlobalAdaptiveTimeStep.GlobalAdaptiveTimeStep._ncp_implementation, exahype2.solvers.fv.musclhancock.GlobalFixedTimeStep.GlobalFixedTimeStep._ncp_implementation, exahype2.solvers.fv.riemann.GlobalAdaptiveTimeStep.GlobalAdaptiveTimeStep._ncp_implementation, exahype2.solvers.fv.riemann.GlobalAdaptiveTimeStepWithEnclaveTasking.GlobalAdaptiveTimeStepWithEnclaveTasking._ncp_implementation, exahype2.solvers.fv.riemann.GlobalFixedTimeStep.GlobalFixedTimeStep._ncp_implementation, exahype2.solvers.fv.riemann.GlobalFixedTimeStepWithEnclaveTasking.GlobalFixedTimeStepWithEnclaveTasking._ncp_implementation, exahype2.solvers.fv.rusanov.GlobalAdaptiveTimeStep.GlobalAdaptiveTimeStep._ncp_implementation, _ncp_implementation, exahype2.solvers.aderdg.AbstractSolverDeclarations.AbstractSolverDeclarations._source_term_implementation, exahype2.solvers.aderdg.AbstractSolverDefinitions.AbstractSolverDefinitions._source_term_implementation, exahype2.solvers.aderdg.ADERDG.ADERDG._source_term_implementation, exahype2.solvers.aderdg.SolverDeclarations.SolverDeclarations._source_term_implementation, exahype2.solvers.aderdg.SolverDefinitions.SolverDefinitions._source_term_implementation, exahype2.solvers.fv.musclhancock.GlobalAdaptiveTimeStep.GlobalAdaptiveTimeStep._source_term_implementation, exahype2.solvers.fv.musclhancock.GlobalFixedTimeStep.GlobalFixedTimeStep._source_term_implementation, exahype2.solvers.fv.riemann.GlobalAdaptiveTimeStep.GlobalAdaptiveTimeStep._source_term_implementation, exahype2.solvers.fv.riemann.GlobalAdaptiveTimeStepWithEnclaveTasking.GlobalAdaptiveTimeStepWithEnclaveTasking._source_term_implementation, exahype2.solvers.fv.riemann.GlobalFixedTimeStep.GlobalFixedTimeStep._source_term_implementation, exahype2.solvers.fv.riemann.GlobalFixedTimeStepWithEnclaveTasking.GlobalFixedTimeStepWithEnclaveTasking._source_term_implementation, exahype2.solvers.fv.rusanov.GlobalAdaptiveTimeStep.GlobalAdaptiveTimeStep._source_term_implementation, and _source_term_implementation.

Referenced by ccz4.CCZ4Solver.__init__(), CCZ4Solver.CCZ4Solver_FD4_GlobalAdaptiveTimeStep.__init__(), CCZ4Solver.CCZ4Solver_FD4_GlobalAdaptiveTimeStepWithEnclaveTasking.__init__(), CCZ4Solver.CCZ4Solver_RKDG_GlobalAdaptiveTimeStep.__init__(), and CCZ4Solver.CCZ4Solver_RKDG_GlobalAdaptiveTimeStepWithEnclaveTasking.__init__().

Here is the caller graph for this function:

◆ user_action_set_includes()

exahype2.solvers.fv.rusanov.GlobalAdaptiveTimeStepWithEnclaveTasking.GlobalAdaptiveTimeStepWithEnclaveTasking.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 exahype2.solvers.fv.FV.FV.

Definition at line 153 of file GlobalAdaptiveTimeStepWithEnclaveTasking.py.

Referenced by exahype2.solvers.rkdg.SeparateSweepsWithEnclaveTasking.SeparateSweepsWithEnclaveTasking.add_implementation_files_to_project(), and exahype2.solvers.rkfd.SeparateSweepsWithEnclaveTasking.SeparateSweepsWithEnclaveTasking.add_implementation_files_to_project().

Here is the caller graph for this function:

Field Documentation

◆ _eigenvalues_implementation

◆ _flux_implementation

◆ _ncp_implementation

◆ _source_term_implementation

◆ _time_step_relaxation


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