Peano
Loading...
Searching...
No Matches
api.solvers.Solver.Solver Class Reference

Abstract base class for all PETSc solvers. More...

Inheritance diagram for api.solvers.Solver.Solver:
Collaboration diagram for api.solvers.Solver.Solver:

Public Member Functions

 __init__ (self, name, min_h, max_h)
 name: String Every solver has a unique name.
 
 add_to_plot (self, observer)
 Add whatever action set you want to use to observer.
 
 add_to_create_grid (self, observer)
 Add whatever action set you want to use to observer.
 
 add_to_enumerate_and_init_solution (self, observer)
 Add whatever action set you want to use to observer.
 
 add_to_init_petsc (self, observer)
 Add whatever action set you want to use here.
 
 add_to_assemble (self, observer)
 Add whatever action set you want to use to observer.
 
 add_to_map_solution_onto_mesh (self, observer)
 Add whatever action set you want to use to observer.
 
 add_to_plot (self, observer)
 Add whatever action set you want to use to observer.
 
 add_to_Peano4_datamodel (self, datamodel, verbose)
 Initialise index model.
 
 add_use_statements (self, observer)
 Register the index numbers to be used in each and every mesh traversal.
 
 add_implementation_files_to_project (self, namespace, output)
 This routine is typically not invoked by a user.
 
 typename (self)
 
 instance_name (self)
 Return the name of the object that will be created for this solver.
 
 number_of_matrix_entries_per_vertex (self)
 
 number_of_matrix_entries_per_face (self)
 
 number_of_matrix_entries_per_cell (self)
 
 create_readme_descriptor (self)
 Should really be abstract and properly be initialised.
 
 name (self)
 

Data Fields

 min_h
 
 max_h
 

Protected Attributes

 _name
 
 _vertex_petsc_data
 
 _face_petsc_data
 
 _cell_petsc_data
 

Detailed Description

Abstract base class for all PETSc solvers.

A PETSc solver in Peano is Python class which represents one solver aka one PDE problem. Various of these solvers might have to be combined in one project.

It is the project's job to define which mesh traversals (grid construction, visualisation, ...) are required, how to run through these, how to load balance. Each solver in return will know what unknows we require per mesh entity (vertex, face, ...). Most solvers will create a Python representation of these unknowns in their constructor. Once the user has constructed a solver and added it to the underlying project, is it the project's job to ask each solver

  • can you add your data model to the underlying Peano project;
  • can you tell me which data entities all of the mesh traversals have to use;
  • add your particular action sets to the grid construction, initialisation, visualisation, ...

For further information how the solvers add their solver-specific data to the project's generic mesh traversals, consult also generic documentation in peano4.actionsets.ActionSet.

Realisation

Most solvers will split the realisation of the solver into different parts.

First and foremost, it will have to manage data associated with the grid vertices, faces, cells. This is the static data model. As I don't want to write classes for these unknowns, the solvers typically use DaStGen 2, which simply is a code generator to create a class per data model. This part is all handled within Python, and you should not see them in the output. If you want to study these models however, you can peek into the generated vertexdata or facedata repositories.

For the actual code semantics, most solvers introduce a type which represents the solver. This one defines, for example, what the initial value looks like. It is actually realised as two classes: An abstract base class and its implementation. The abstract base class contains all the variables that can be modified via Python. The realisation itself is then the actual C++ code which users might want to modify after the Python call has succeeded and set everything up. That is: the Python PETSc API will give you both an abstract solver class and its subclass in the working directory. The abstract base class will be overwritten every time you run the Python script. The subclass is only a template that you should befill with your problem-specific knowledge. It will not be overwritten by any subsequent Python calls.

The actual solver class that you have to implement yourself is instantiated within a file called repositories/SolverRepository. This one is generated, too, but you can peek into it. It instantiates each solver exactly one and this is the object instance against which the actual solver algorithm operates from hereon.

The glue between Peano and the solver is the action sets, i.e. the classes that encode how the grid traversal and observations made throughout the traversal are mapped onto either Peano's routines, routines from the toolbox, or functions from the solver objects. These action sets define what happens if the code reads a vertex for the first time of a mesh traversal, e.g.

Links to high level concepts

Definition at line 12 of file Solver.py.

Constructor & Destructor Documentation

◆ __init__()

api.solvers.Solver.Solver.__init__ ( self,
name,
min_h,
max_h )

name: String Every solver has a unique name.

Definition at line 85 of file Solver.py.

Member Function Documentation

◆ add_implementation_files_to_project()

api.solvers.Solver.Solver.add_implementation_files_to_project ( self,
namespace,
output )

This routine is typically not invoked by a user.

output: peano4.output.Output Add artefacts this output in any implementation.

Definition at line 218 of file Solver.py.

◆ add_to_assemble()

api.solvers.Solver.Solver.add_to_assemble ( self,
observer )

Add whatever action set you want to use to observer.

Definition at line 154 of file Solver.py.

◆ add_to_create_grid()

api.solvers.Solver.Solver.add_to_create_grid ( self,
observer )

Add whatever action set you want to use to observer.

Definition at line 124 of file Solver.py.

◆ add_to_enumerate_and_init_solution()

api.solvers.Solver.Solver.add_to_enumerate_and_init_solution ( self,
observer )

Add whatever action set you want to use to observer.

Definition at line 133 of file Solver.py.

◆ add_to_init_petsc()

api.solvers.Solver.Solver.add_to_init_petsc ( self,
observer )

Add whatever action set you want to use here.

I am not sure if there is a real grid traversal tied to this step. So maybe nothing is called. Has to be checked. Anyway, most solvers leave this one blank.

Definition at line 142 of file Solver.py.

◆ add_to_map_solution_onto_mesh()

api.solvers.Solver.Solver.add_to_map_solution_onto_mesh ( self,
observer )

Add whatever action set you want to use to observer.

Definition at line 164 of file Solver.py.

◆ add_to_Peano4_datamodel()

api.solvers.Solver.Solver.add_to_Peano4_datamodel ( self,
datamodel,
verbose )

Initialise index model.

We build up a data model, which is really an index model in this case. Every vertex, face and cell can hold a data model which is only one integer. This integer encodes the first index of a matrix unknown held by the grid entity. For the plain DG code, there are no vertex unknowns. However, we have two types of face indices: Those for the projection and those for the solution of the Riemann problem.

You might want to overwrite this routine, but please ensure that you still call this superclass implementation, too.

Definition at line 182 of file Solver.py.

References api.solvers.Solver.Solver._cell_petsc_data, api.solvers.Solver.Solver._face_petsc_data, and api.solvers.Solver.Solver._vertex_petsc_data.

◆ add_to_plot() [1/2]

api.solvers.Solver.Solver.add_to_plot ( self,
observer )

Add whatever action set you want to use to observer.

Definition at line 114 of file Solver.py.

◆ add_to_plot() [2/2]

api.solvers.Solver.Solver.add_to_plot ( self,
observer )

Add whatever action set you want to use to observer.

Definition at line 174 of file Solver.py.

◆ add_use_statements()

api.solvers.Solver.Solver.add_use_statements ( self,
observer )

Register the index numbers to be used in each and every mesh traversal.

You can overwrite the routine and add your own stuff. However, please ensure this routine still is invoked, too.

Definition at line 203 of file Solver.py.

References api.solvers.Solver.Solver._cell_petsc_data, api.solvers.Solver.Solver._face_petsc_data, and api.solvers.Solver.Solver._vertex_petsc_data.

◆ create_readme_descriptor()

api.solvers.Solver.Solver.create_readme_descriptor ( self)

Should really be abstract and properly be initialised.

Todo
Has to be implemented properly, i.e. should at least report on the type and the name of the solver

Definition at line 255 of file Solver.py.

◆ instance_name()

api.solvers.Solver.Solver.instance_name ( self)

Return the name of the object that will be created for this solver.

Definition at line 234 of file Solver.py.

References solvers.api.Solver.Solver.typename(), and api.solvers.Solver.Solver.typename().

Here is the call graph for this function:

◆ name()

api.solvers.Solver.Solver.name ( self)

Definition at line 267 of file Solver.py.

References SBH.Limiter._name, dastgen2.attributes.Attribute.Attribute._name, dastgen2.attributes.BooleanArray.BooleanArray._name, dastgen2.attributes.Enumeration.Enumeration._name, exahype2.solvers.aderdg.ADERDG.ADERDG._name, exahype2.solvers.elliptic.AMRMarker.AMRMarker._name, exahype2.solvers.elliptic.ConstrainedPoissonEquationForMarkerOnCells.ConstrainedPoissonEquationForMarkerOnCells._name, exahype2.solvers.fv.EnclaveTasking.EnclaveTasking._name, exahype2.solvers.fv.FV.FV._name, exahype2.solvers.limiting.PosterioriLimiting.PosterioriLimiting._name, exahype2.solvers.limiting.StaticLimiting.StaticLimiting._name, exahype2.solvers.rkdg.RungeKuttaDG.RungeKuttaDG._name, exahype2.solvers.rkdg.SeparateSweeps.SeparateSweeps._name, exahype2.solvers.rkdg.SeparateSweepsWithEnclaveTasking.SeparateSweepsWithEnclaveTasking._name, exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences._name, exahype2.solvers.rkfd.OneSweepPerRungeKuttaStep.OneSweepPerRungeKuttaStep._name, exahype2.solvers.rkfd.SeparateSweeps.SeparateSweeps._name, exahype2.solvers.rkfd.SeparateSweepsWithEnclaveTasking.SeparateSweepsWithEnclaveTasking._name, peano4.dastgen2.Peano4DoubleArray.Peano4DoubleArray._name, peano4.dastgen2.Peano4IntegerArray.Peano4IntegerArray._name, solvers.api.Solver.Solver._name, mghype::matrixfree::solvers::Solver._name, api.solvers.Solver.Solver._name, and tarch::services::ServiceRepository::ServiceEntry._name.

Referenced by exahype2.solvers.aderdg.kernels.Gemms.Gemms.__repr__(), swift2.particle.ExplicitEulerFixedSearchRadius.ExplicitEulerFixedSearchRadius.__setup_algorithm_steps(), swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.__setup_algorithm_steps(), swift2.particle.AlgorithmStep.AlgorithmStep.__str__(), peano4.datamodel.DoF.DoF.additional_load_and_store_arguments_for_other_dof(), swift2.particle.ExplicitEulerDynamicSearchRadius.ExplicitEulerDynamicSearchRadius.algorithm_steps(), swift2.particle.tests.DastgenTestDummyParticle.DastgenTestDummyParticle.algorithm_steps(), peano4.solversteps.UserActionSet.UserActionSet.get_action_set_name(), peano4.datamodel.DoF.DoF.get_full_qualified_type(), peano4.datamodel.DoF.DoF.get_logical_type_name(), dastgen2.attributes.Enumeration.Enumeration.get_to_string(), and swift2.particle.Particle.Particle.readme_descriptor().

Here is the caller graph for this function:

◆ number_of_matrix_entries_per_cell()

api.solvers.Solver.Solver.number_of_matrix_entries_per_cell ( self)

Definition at line 251 of file Solver.py.

Referenced by api.solvers.DiscontinuousGalerkinDiscretisation.AssemblePetscMatrix.get_constructor_body().

Here is the caller graph for this function:

◆ number_of_matrix_entries_per_face()

api.solvers.Solver.Solver.number_of_matrix_entries_per_face ( self)

Definition at line 247 of file Solver.py.

◆ number_of_matrix_entries_per_vertex()

api.solvers.Solver.Solver.number_of_matrix_entries_per_vertex ( self)

Definition at line 243 of file Solver.py.

◆ typename()

api.solvers.Solver.Solver.typename ( self)

Definition at line 230 of file Solver.py.

References SBH.Limiter._name, dastgen2.attributes.Attribute.Attribute._name, dastgen2.attributes.BooleanArray.BooleanArray._name, dastgen2.attributes.Enumeration.Enumeration._name, exahype2.solvers.aderdg.ADERDG.ADERDG._name, exahype2.solvers.elliptic.AMRMarker.AMRMarker._name, exahype2.solvers.elliptic.ConstrainedPoissonEquationForMarkerOnCells.ConstrainedPoissonEquationForMarkerOnCells._name, exahype2.solvers.fv.EnclaveTasking.EnclaveTasking._name, exahype2.solvers.fv.FV.FV._name, exahype2.solvers.limiting.PosterioriLimiting.PosterioriLimiting._name, exahype2.solvers.limiting.StaticLimiting.StaticLimiting._name, exahype2.solvers.rkdg.RungeKuttaDG.RungeKuttaDG._name, exahype2.solvers.rkdg.SeparateSweeps.SeparateSweeps._name, exahype2.solvers.rkdg.SeparateSweepsWithEnclaveTasking.SeparateSweepsWithEnclaveTasking._name, exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences._name, exahype2.solvers.rkfd.OneSweepPerRungeKuttaStep.OneSweepPerRungeKuttaStep._name, exahype2.solvers.rkfd.SeparateSweeps.SeparateSweeps._name, exahype2.solvers.rkfd.SeparateSweepsWithEnclaveTasking.SeparateSweepsWithEnclaveTasking._name, peano4.dastgen2.Peano4DoubleArray.Peano4DoubleArray._name, peano4.dastgen2.Peano4IntegerArray.Peano4IntegerArray._name, solvers.api.Solver.Solver._name, mghype::matrixfree::solvers::Solver._name, api.solvers.Solver.Solver._name, and tarch::services::ServiceRepository::ServiceEntry._name.

Referenced by solvers.api.Solver.Solver.instance_name(), and api.solvers.Solver.Solver.instance_name().

Here is the caller graph for this function:

Field Documentation

◆ _cell_petsc_data

api.solvers.Solver.Solver._cell_petsc_data
protected

◆ _face_petsc_data

api.solvers.Solver.Solver._face_petsc_data
protected

◆ _name

api.solvers.Solver.Solver._name
protected

Definition at line 95 of file Solver.py.

Referenced by exahype2.solvers.aderdg.ADERDG.ADERDG.__str__(), exahype2.solvers.elliptic.AMRMarker.AMRMarker.__str__(), exahype2.solvers.elliptic.ConstrainedPoissonEquationForMarkerOnCells.ConstrainedPoissonEquationForMarkerOnCells.__str__(), exahype2.solvers.fv.FV.FV.__str__(), exahype2.solvers.rkdg.RungeKuttaDG.RungeKuttaDG.__str__(), exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences.__str__(), solvers.api.Solver.Solver.__str__(), exahype2.solvers.fv.EnclaveTasking.EnclaveTasking._enclave_task_name(), exahype2.solvers.rkfd.SeparateSweepsWithEnclaveTasking.SeparateSweepsWithEnclaveTasking._enclave_task_name(), dastgen2.attributes.Enumeration.Enumeration._enum_name(), exahype2.solvers.aderdg.ADERDG.ADERDG._generate_kernels(), exahype2.solvers.aderdg.ADERDG.ADERDG._init_dictionary_with_default_parameters(), exahype2.solvers.fv.FV.FV._init_dictionary_with_default_parameters(), exahype2.solvers.rkdg.RungeKuttaDG.RungeKuttaDG._init_dictionary_with_default_parameters(), exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences._init_dictionary_with_default_parameters(), exahype2.solvers.aderdg.ADERDG.ADERDG._interpolate_face_data_default_guard(), exahype2.solvers.aderdg.SingleSweep.SingleSweep._interpolate_face_data_default_guard(), SBH.Limiter._load_cell_data_default_guard(), exahype2.solvers.aderdg.ADERDG.ADERDG._load_cell_data_default_guard(), exahype2.solvers.fv.FV.FV._load_cell_data_default_guard(), exahype2.solvers.rkdg.RungeKuttaDG.RungeKuttaDG._load_cell_data_default_guard(), exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences._load_cell_data_default_guard(), SBH.Limiter._load_face_data_default_guard(), exahype2.solvers.aderdg.ADERDG.ADERDG._load_face_data_default_guard(), exahype2.solvers.fv.FV.FV._load_face_data_default_guard(), exahype2.solvers.rkdg.RungeKuttaDG.RungeKuttaDG._load_face_data_default_guard(), exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences._load_face_data_default_guard(), SBH.Limiter._provide_cell_data_to_compute_kernels_default_guard(), exahype2.solvers.aderdg.ADERDG.ADERDG._provide_cell_data_to_compute_kernels_default_guard(), exahype2.solvers.fv.FV.FV._provide_cell_data_to_compute_kernels_default_guard(), exahype2.solvers.rkdg.RungeKuttaDG.RungeKuttaDG._provide_cell_data_to_compute_kernels_default_guard(), exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences._provide_cell_data_to_compute_kernels_default_guard(), exahype2.solvers.aderdg.ADERDG.ADERDG._provide_face_data_to_compute_kernels_default_guard(), exahype2.solvers.fv.FV.FV._provide_face_data_to_compute_kernels_default_guard(), exahype2.solvers.rkdg.RungeKuttaDG.RungeKuttaDG._provide_face_data_to_compute_kernels_default_guard(), exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences._provide_face_data_to_compute_kernels_default_guard(), exahype2.solvers.aderdg.SingleSweep.SingleSweep._restrict_face_data_default_guard(), exahype2.solvers.aderdg.ADERDG.ADERDG._store_boundary_data_default_guard(), SBH.Limiter._store_cell_data_default_guard(), exahype2.solvers.aderdg.ADERDG.ADERDG._store_cell_data_default_guard(), exahype2.solvers.fv.FV.FV._store_cell_data_default_guard(), exahype2.solvers.rkdg.RungeKuttaDG.RungeKuttaDG._store_cell_data_default_guard(), exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences._store_cell_data_default_guard(), SBH.Limiter._store_face_data_default_guard(), exahype2.solvers.aderdg.ADERDG.ADERDG._store_face_data_default_guard(), exahype2.solvers.fv.FV.FV._store_face_data_default_guard(), exahype2.solvers.rkdg.RungeKuttaDG.RungeKuttaDG._store_face_data_default_guard(), exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences._store_face_data_default_guard(), exahype2.solvers.aderdg.ADERDG.ADERDG._unknown_identifier(), exahype2.solvers.elliptic.AMRMarker.AMRMarker._unknown_identifier(), exahype2.solvers.elliptic.ConstrainedPoissonEquationForMarkerOnCells.ConstrainedPoissonEquationForMarkerOnCells._unknown_identifier(), exahype2.solvers.fv.FV.FV._unknown_identifier(), exahype2.solvers.rkdg.RungeKuttaDG.RungeKuttaDG._unknown_identifier(), exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences._unknown_identifier(), exahype2.solvers.fv.EnclaveTasking.EnclaveTasking.add_actions_to_create_grid(), exahype2.solvers.fv.EnclaveTasking.EnclaveTasking.add_actions_to_init_grid(), exahype2.solvers.aderdg.ADERDG.ADERDG.add_actions_to_plot_solution(), exahype2.solvers.elliptic.ConstrainedPoissonEquationForMarkerOnCells.ConstrainedPoissonEquationForMarkerOnCells.add_actions_to_plot_solution(), exahype2.solvers.fv.FV.FV.add_actions_to_plot_solution(), exahype2.solvers.rkdg.RungeKuttaDG.RungeKuttaDG.add_actions_to_plot_solution(), exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences.add_actions_to_plot_solution(), exahype2.solvers.fv.EnclaveTasking.EnclaveTasking.add_entries_to_text_replacement_dictionary(), exahype2.solvers.rkdg.SeparateSweepsWithEnclaveTasking.SeparateSweepsWithEnclaveTasking.add_entries_to_text_replacement_dictionary(), exahype2.solvers.rkfd.SeparateSweepsWithEnclaveTasking.SeparateSweepsWithEnclaveTasking.add_entries_to_text_replacement_dictionary(), exahype2.solvers.aderdg.ADERDG.ADERDG.add_implementation_files_to_project(), exahype2.solvers.elliptic.AMRMarker.AMRMarker.add_to_Peano4_datamodel(), exahype2.solvers.elliptic.ConstrainedPoissonEquationForMarkerOnCells.ConstrainedPoissonEquationForMarkerOnCells.add_to_Peano4_datamodel(), SBH.Limiter.create_action_sets(), exahype2.solvers.aderdg.SingleSweep.SingleSweep.create_action_sets(), exahype2.solvers.fv.rusanov.LocalTimeStepWithEnclaveTasking.LocalTimeStepWithEnclaveTasking.create_action_sets(), exahype2.solvers.fv.rusanov.SubcyclingAdaptiveTimeStepWithEnclaveTasking.SubcyclingAdaptiveTimeStepWithEnclaveTasking.create_action_sets(), exahype2.solvers.fv.rusanov.SubcyclingFixedTimeStep.SubcyclingFixedTimeStep.create_action_sets(), exahype2.solvers.fv.rusanov.SubcyclingFixedTimeStepWithEnclaveTasking.SubcyclingFixedTimeStepWithEnclaveTasking.create_action_sets(), exahype2.solvers.rkdg.SeparateSweeps.SeparateSweeps.create_action_sets(), exahype2.solvers.fv.SingleSweep.SingleSweep.create_data_structures(), exahype2.solvers.rkfd.OneSweepPerRungeKuttaStep.OneSweepPerRungeKuttaStep.create_data_structures(), exahype2.solvers.rkfd.SeparateSweeps.SeparateSweeps.create_data_structures(), exahype2.solvers.rkfd.SeparateSweepsWithEnclaveTasking.SeparateSweepsWithEnclaveTasking.create_data_structures(), dastgen2.attributes.Attribute.Attribute.get_accessor_name(), dastgen2.attributes.BooleanArray.BooleanArray.get_constructor_arguments(), peano4.dastgen2.Peano4DoubleArray.Peano4DoubleArray.get_constructor_arguments(), peano4.dastgen2.Peano4IntegerArray.Peano4IntegerArray.get_constructor_arguments(), api.solvers.CollocatedLowOrderDiscretisation.AssemblePetscMatrix.get_constructor_body(), dastgen2.attributes.BooleanArray.BooleanArray.get_first_plain_C_attribute(), dastgen2.attributes.DoubleArray.DoubleArray.get_first_plain_C_attribute(), dastgen2.attributes.IntegerArray.IntegerArray.get_first_plain_C_attribute(), peano4.dastgen2.Peano4DoubleArray.Peano4DoubleArray.get_first_plain_C_attribute(), peano4.dastgen2.Peano4IntegerArray.Peano4IntegerArray.get_first_plain_C_attribute(), dastgen2.attributes.Boolean.Boolean.get_method_body(), dastgen2.attributes.BooleanArray.BooleanArray.get_method_body(), dastgen2.attributes.Double.Double.get_method_body(), dastgen2.attributes.DoubleArray.DoubleArray.get_method_body(), dastgen2.attributes.Enumeration.Enumeration.get_method_body(), dastgen2.attributes.Integer.Integer.get_method_body(), dastgen2.attributes.IntegerArray.IntegerArray.get_method_body(), dastgen2.attributes.String.String.get_method_body(), dastgen2.attributes.UserDefinedType.UserDefinedType.get_method_body(), peano4.dastgen2.Peano4DoubleArray.Peano4DoubleArray.get_method_body(), peano4.dastgen2.Peano4IntegerArray.Peano4IntegerArray.get_method_body(), dastgen2.attributes.BooleanArray.BooleanArray.get_methods(), dastgen2.attributes.DoubleArray.DoubleArray.get_methods(), dastgen2.attributes.IntegerArray.IntegerArray.get_methods(), peano4.dastgen2.Peano4DoubleArray.Peano4DoubleArray.get_methods(), peano4.dastgen2.Peano4IntegerArray.Peano4IntegerArray.get_methods(), exahype2.solvers.aderdg.ADERDG.ADERDG.get_name_of_global_instance(), exahype2.solvers.elliptic.AMRMarker.AMRMarker.get_name_of_global_instance(), exahype2.solvers.elliptic.ConstrainedPoissonEquationForMarkerOnCells.ConstrainedPoissonEquationForMarkerOnCells.get_name_of_global_instance(), exahype2.solvers.fv.FV.FV.get_name_of_global_instance(), exahype2.solvers.rkdg.RungeKuttaDG.RungeKuttaDG.get_name_of_global_instance(), exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences.get_name_of_global_instance(), dastgen2.attributes.Boolean.Boolean.get_plain_C_attributes(), dastgen2.attributes.BooleanArray.BooleanArray.get_plain_C_attributes(), dastgen2.attributes.Double.Double.get_plain_C_attributes(), dastgen2.attributes.DoubleArray.DoubleArray.get_plain_C_attributes(), dastgen2.attributes.Integer.Integer.get_plain_C_attributes(), dastgen2.attributes.IntegerArray.IntegerArray.get_plain_C_attributes(), dastgen2.attributes.String.String.get_plain_C_attributes(), dastgen2.attributes.UserDefinedType.UserDefinedType.get_plain_C_attributes(), peano4.dastgen2.Peano4DoubleArray.Peano4DoubleArray.get_plain_C_attributes(), peano4.dastgen2.Peano4IntegerArray.Peano4IntegerArray.get_plain_C_attributes(), dastgen2.attributes.String.String.get_setter_getter_name(), dastgen2.attributes.Boolean.Boolean.get_to_string(), dastgen2.attributes.BooleanArray.BooleanArray.get_to_string(), dastgen2.attributes.Double.Double.get_to_string(), dastgen2.attributes.DoubleArray.DoubleArray.get_to_string(), dastgen2.attributes.Enumeration.Enumeration.get_to_string(), dastgen2.attributes.Integer.Integer.get_to_string(), dastgen2.attributes.IntegerArray.IntegerArray.get_to_string(), dastgen2.attributes.UserDefinedType.UserDefinedType.get_to_string(), peano4.dastgen2.Peano4DoubleArray.Peano4DoubleArray.get_to_string(), peano4.dastgen2.Peano4IntegerArray.Peano4IntegerArray.get_to_string(), dastgen2.attributes.Attribute.Attribute.name(), exahype2.solvers.elliptic.ConstrainedPoissonEquationForMarkerOnCells.ConstrainedPoissonEquationForMarkerOnCells.name(), exahype2.solvers.fv.FV.FV.name(), exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences.name(), solvers.api.Solver.Solver.name(), api.solvers.Solver.Solver.name(), solvers.api.Solver.Solver.typename(), and api.solvers.Solver.Solver.typename().

◆ _vertex_petsc_data

api.solvers.Solver.Solver._vertex_petsc_data
protected

◆ max_h

◆ min_h


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