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

Construct the Finite Volume (limiter) scheme. More...

Inheritance diagram for SBH.Limiter:
Collaboration diagram for SBH.Limiter:

Public Member Functions

 __init__ (self, name, patch_size, bool amend_priorities, KernelParallelisation parallelisation_of_kernels)
 Construct the limiter.
 
 create_action_sets (self)
 Not really a lot of things to do here.
 
- 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.
 

Data Fields

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

Protected Member Functions

 _store_cell_data_default_guard (self)
 Mask out exterior cells.
 
 _load_cell_data_default_guard (self)
 
 _provide_cell_data_to_compute_kernels_default_guard (self)
 
 _provide_face_data_to_compute_kernels_default_guard (self)
 
 _store_face_data_default_guard (self)
 
 _load_face_data_default_guard (self)
 
- Protected Member Functions inherited from CCZ4Solver.AbstractCCZ4Solver
 _add_standard_includes (self)
 Add the headers for the compute kernels and initial condition implementations.
 

Protected Attributes

 _fused_compute_kernel_call_cpu
 
 _flux_implementation
 
 _ncp_implementation
 
 _source_term_implementation
 
 _name
 

Additional Inherited Members

- Static Public Attributes inherited from CCZ4Solver.AbstractCCZ4Solver
float Default_Time_Step_Size_Relaxation = 0.1
 
- Static Protected Attributes inherited from CCZ4Solver.AbstractCCZ4Solver
dict _FO_formulation_unknowns
 
dict _SO_formulation_unknowns
 

Detailed Description

Construct the Finite Volume (limiter) scheme.

We assume that the underlying Finite Differences scheme has a patch size of 6x6x6. To make the Finite Volume scheme's time stepping (and accuracy) match this patch size, we have to employ a 16 times finer mesh.

It is interesting to see that the limiter does not really have a min and max mesh size. The point is that the higher order solver dictates the mesh structure, and we then follow this structure with the Finite Volume scheme.

Definition at line 45 of file SBH.py.

Constructor & Destructor Documentation

◆ __init__()

SBH.Limiter.__init__ ( self,
name,
patch_size,
bool amend_priorities,
KernelParallelisation parallelisation_of_kernels )

Construct the limiter.

patch_size: Integer Pass in the patch size of the FD4 scheme or, if you are using RKDG, hand in the number 1. The Finite Volume patch then will be 16 times finer.

Reimplemented from CCZ4Solver.CCZ4Solver_FV_GlobalAdaptiveTimeStepWithEnclaveTasking.

Definition at line 62 of file SBH.py.

References SBH.Limiter.__init__(), and CCZ4Solver.AbstractCCZ4Solver.double_constants.

Referenced by SBH.Limiter.__init__().

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

Member Function Documentation

◆ _load_cell_data_default_guard()

SBH.Limiter._load_cell_data_default_guard ( self)
protected

Definition at line 145 of file SBH.py.

References SBH.Limiter._load_cell_data_default_guard(), SBH.Limiter._name, and coupling.StaticCoupling.StaticCoupling._name.

Referenced by SBH.Limiter._load_cell_data_default_guard().

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

◆ _load_face_data_default_guard()

SBH.Limiter._load_face_data_default_guard ( self)
protected

Definition at line 174 of file SBH.py.

References SBH.Limiter._load_face_data_default_guard(), SBH.Limiter._name, and coupling.StaticCoupling.StaticCoupling._name.

Referenced by SBH.Limiter._load_face_data_default_guard().

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

◆ _provide_cell_data_to_compute_kernels_default_guard()

SBH.Limiter._provide_cell_data_to_compute_kernels_default_guard ( self)
protected

Definition at line 154 of file SBH.py.

References SBH.Limiter._name, coupling.StaticCoupling.StaticCoupling._name, and SBH.Limiter._provide_cell_data_to_compute_kernels_default_guard().

Referenced by SBH.Limiter._provide_cell_data_to_compute_kernels_default_guard().

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

◆ _provide_face_data_to_compute_kernels_default_guard()

SBH.Limiter._provide_face_data_to_compute_kernels_default_guard ( self)
protected

Definition at line 163 of file SBH.py.

References SBH.Limiter._provide_face_data_to_compute_kernels_default_guard().

Referenced by SBH.Limiter._provide_face_data_to_compute_kernels_default_guard().

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

◆ _store_cell_data_default_guard()

SBH.Limiter._store_cell_data_default_guard ( self)
protected

Mask out exterior cells.

Definition at line 131 of file SBH.py.

References SBH.Limiter._name, coupling.StaticCoupling.StaticCoupling._name, and SBH.Limiter._store_cell_data_default_guard().

Referenced by SBH.Limiter._store_cell_data_default_guard().

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

◆ _store_face_data_default_guard()

SBH.Limiter._store_face_data_default_guard ( self)
protected

Definition at line 169 of file SBH.py.

References SBH.Limiter._name, coupling.StaticCoupling.StaticCoupling._name, and SBH.Limiter._store_face_data_default_guard().

Referenced by SBH.Limiter._store_face_data_default_guard().

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

◆ create_action_sets()

SBH.Limiter.create_action_sets ( self)

Not really a lot of things to do here.

The only exception that is really important is that we have to ensure that we only solve stuff inside the local domain of the FV. By default, ExaHyPE 2 solves the PDE everywhere. If data is not stored persistently or loaded from the persistent stacks, it still solves, as it then would assume that such data arises from dynamic AMR. In this particular case, we have to really mask out certain subdomains.

It is not just a nice optimisation to do so. It is absolutely key, as the application of the compute kernel on garbage would mean that we end up with invalid eigenvalues.

Definition at line 179 of file SBH.py.

References SBH.Limiter._name, coupling.StaticCoupling.StaticCoupling._name, and SBH.Limiter.create_action_sets().

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

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

Field Documentation

◆ _flux_implementation

SBH.Limiter._flux_implementation
protected

Definition at line 120 of file SBH.py.

◆ _fused_compute_kernel_call_cpu

SBH.Limiter._fused_compute_kernel_call_cpu
protected

Definition at line 119 of file SBH.py.

◆ _name

◆ _ncp_implementation

SBH.Limiter._ncp_implementation
protected

Definition at line 121 of file SBH.py.

◆ _source_term_implementation

SBH.Limiter._source_term_implementation
protected

Definition at line 122 of file SBH.py.

◆ enclave_task_priority

SBH.Limiter.enclave_task_priority

Definition at line 96 of file SBH.py.


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