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)
 Tailor action set behaviour.
 
- 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.
 

Additional Inherited Members

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

Reimplemented from CCZ4Solver.CCZ4Solver_FV_GlobalAdaptiveTimeStepWithEnclaveTasking.

Definition at line 704 of file SBH.py.

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

Referenced by SBH.FVSolver.__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 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 754 of file SBH.py.

References SBH.FVSolver.create_action_sets().

Referenced by mgccz4.MGCCZ4Solver.add_derivative_calculation(), ccz4.CCZ4Solver.add_Psi4W(), and SBH.FVSolver.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: