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

4th order Finite Differences solver with a limiter More...

Inheritance diagram for SBH.FD4SolverWithLimiter:
Collaboration diagram for SBH.FD4SolverWithLimiter:

Public Member Functions

 __init__ (self, name, patch_size, min_cell_size, max_cell_size, KernelParallelisation parallelisation_of_interpolation, KernelParallelisation parallelisation_of_kernels, interpolation_method)
 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.
 

Data Fields

 interpolation_method
 
- Data Fields inherited from CCZ4Solver.AbstractCCZ4Solver
 integer_constants
 
 double_constants
 
 Default_Time_Step_Size_Relaxation
 

Protected Attributes

 _name_without_FD4_extension
 
 _parallelisation_of_interpolation
 
 _auxiliary_variables
 
 _action_set_preprocess_solution
 
 _action_set_postprocess_solution
 

Additional Inherited Members

- 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.
 
- Static Protected Attributes inherited from CCZ4Solver.AbstractCCZ4Solver
dict _FO_formulation_unknowns
 
dict _SO_formulation_unknowns
 

Detailed Description

4th order Finite Differences solver with a limiter

The FD scheme is our primary solver, i.e. the one we wanna use (almost) everywhere. Hence, we have to be sure that we use the right boundary conditions. In our case, that should be Sommerfeld ones. As we work with a limited FD4 solver, we have to ensure that we get the solver coupling right.

The primary solver is a plain CCZ4 FD4 solver with enclave tasking. There are some modification though:

  1. We ensure that we use Sommerfeld boundary conditions. This means that we have to replace the whole generic boundary treatment with a bespoke action set.
  2. The coupling has to be injected. We model the coupling as separate (enclave) tasks to avoid that we totally serialise the solver steps whenever we encounter a coupling.

Definition at line 205 of file SBH.py.

Constructor & Destructor Documentation

◆ __init__()

SBH.FD4SolverWithLimiter.__init__ ( self,
name,
patch_size,
rk_order,
min_meshcell_h,
KernelParallelisation max_meshcell_h,
KernelParallelisation pde_terms_without_state,
second_order )

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 228 of file SBH.py.

Member Function Documentation

◆ create_action_sets()

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

Definition at line 291 of file SBH.py.

References SBH.FD4SolverWithLimiter.create_action_sets().

Referenced by mgccz4.MGCCZ4Solver.add_derivative_calculation(), ccz4.CCZ4Solver.add_Psi4W(), and SBH.FD4SolverWithLimiter.create_action_sets().

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

Field Documentation

◆ _action_set_postprocess_solution

SBH.FD4SolverWithLimiter._action_set_postprocess_solution
protected

Definition at line 529 of file SBH.py.

◆ _action_set_preprocess_solution

SBH.FD4SolverWithLimiter._action_set_preprocess_solution
protected

Definition at line 370 of file SBH.py.

◆ _auxiliary_variables

SBH.FD4SolverWithLimiter._auxiliary_variables
protected

◆ _name_without_FD4_extension

SBH.FD4SolverWithLimiter._name_without_FD4_extension
protected

Definition at line 238 of file SBH.py.

◆ _parallelisation_of_interpolation

SBH.FD4SolverWithLimiter._parallelisation_of_interpolation
protected

Definition at line 239 of file SBH.py.

◆ interpolation_method

SBH.FD4SolverWithLimiter.interpolation_method

Definition at line 240 of file SBH.py.


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