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

A finite volume solver. More...

Inheritance diagram for SBH.FVSolver:
Collaboration diagram for SBH.FVSolver:

Public Member Functions

 __init__ (self, name, patch_size, min_cell_size, max_cell_size)
 Construct the Finite Volume solver.
 create_action_sets (self)
Public Member Functions inherited from CCZ4Solver.CCZ4Solver_FV_GlobalAdaptiveTimeStepWithEnclaveTasking
 __init__ (self, name, patch_size, min_volume_h, max_volume_h, pde_terms_without_state)
 Construct solver with enclave tasking and adaptive time stepping.
 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
 __init__ (self)
 Constructor.
 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.

Additional Inherited Members

Data Fields inherited from CCZ4Solver.AbstractCCZ4Solver
dict integer_constants
dict double_constants
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

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.

Definition at line 691 of file SBH.py.

Constructor & Destructor Documentation

◆ __init__()

SBH.FVSolver.__init__ ( self,
name,
patch_size,
min_cell_size,
max_cell_size )

Construct the Finite Volume solver.

Parameters
patch_sizeInteger Defines how big the individual patches are. If you pass in 10, each Finite Volume patch will have the dimensions 10x10x10.
min_cell_sizeFloat 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.

Definition at line 703 of file SBH.py.

References __init__(), CCZ4Solver.AbstractCCZ4Solver.add_all_solver_constants(), CCZ4Solver.AbstractCCZ4Solver.double_constants, and SBH.update_solver_parameters_for_single_black_hole().

Referenced by __init__().

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

Member Function Documentation

◆ create_action_sets()

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 @ref benchmarks_exahype2_ccz4_single_black_hole "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 753 of file SBH.py.

References create_action_sets().

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

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

The documentation for this class was generated from the following file:
  • benchmarks/exahype2/ccz4/single-black-hole/SBH.py