Peano
Loading...
Searching...
No Matches
api.Project.Project Class Reference

Here we recreate a multigrid project, without using PETSc. More...

Inheritance diagram for api.Project.Project:
Collaboration diagram for api.Project.Project:

Public Member Functions

 __init__ (self, namespace, project_name, directory=".", executable="peano4matrixfree", subdirectory="", abstract_overwrite=True)
 Create a matrix project.
 
 set_load_balancing (self, load_balancer_name, load_balancer_arguments)
 Set the load balancing scheme.
 
 set_Peano4_installation (self, src_path, mode=peano4.output.CompileMode.Release)
 Tell the project where to find Peano.
 
 set_global_simulation_parameters (self, dimensions, offset, domain_size, plot_after_each_mesh_sweep, max_iterations=100, plotter_precision=5)
 Configure global simulation settings.
 
 set_output_path (self, path)
 
 generate_Peano4_project (self, verbose=False)
 Build project.
 
 add_solver (self, solver, auxiliary=False)
 Add a new solver.
 
 subdirectory (self)
 
 __init__ (self, namespace, project_name, directory=".", executable="peano4petsc", preconditioner_type="None", solver_type="GMRES", subdirectory="")
 
 set_load_balancing (self, load_balancer_name, load_balancer_arguments)
 load_balancer_name: string Should be full-qualified name of the load balancer.
 
 set_Peano4_installation (self, src_path, mode=peano4.output.CompileMode.Release)
 src_path: string Path (relative or absolute) to the src directory of Peano.
 
 set_global_simulation_parameters (self, dimensions, offset, domain_size, plotter_precision=5)
 offset and size should be lists with dimensions double entries.
 
 set_output_path (self, path)
 
 generate_Peano4_project (self, verbose=False)
 Build project.
 
 add_solver (self, solver)
 Takes the solver and runs through the individual steps of the algorithm.
 
 subdirectory (self)
 

Data Fields

 algorithm_step_create_grid
 
 algorithm_step_init_solution
 
 algorithm_step_solve
 
 algorithm_step_plot
 
 dictionary
 
 algorithm_step_enumerate_and_init_solution
 
 algorithm_step_assemble
 
 algorithm_step_map_solution_onto_mesh
 
 preconditioner_type
 
 solver_type
 

Static Public Attributes

str LibraryDebug = "_debug"
 
str LibraryRelease = ""
 
str LibraryTrace = "_trace"
 
str LibraryAsserts = "_asserts"
 
str LibraryStats = "_stats"
 

Protected Attributes

 _project
 
 _subdirectory
 
 _abstract_overwrite
 
 _domain_offset
 
 _domain_size
 
 _dimensions
 
 _load_balancer_name
 
 _load_balancer_arguments
 
 _Peano_src_directory
 
 _build_mode
 
 _executable_name
 
 _output_path
 
 _solvers
 
 _aux_solvers
 
 _plot_after_each_mesh_sweep
 
 _max_iterations
 
 _plotter_precision
 
 _algorithm_step_init_petsc
 
 _algorithm_step_solve
 

Private Member Functions

 __configure_makefile (self)
 Parse makefile of Peano to extract the configuration settings.
 
 __set_solver_repository_dict (self)
 
 __generate_solver_repository (self)
 
 __export_constants (self)
 Export all the constrants of the project into a Configure.h file.
 
 __configure_makefile (self)
 Configure the makefile of the PETSc project.
 
 __set_solver_repository_dict (self)
 
 __generate_solver_repository (self)
 type_name_of_solvers: [String] Name of the solvers that we should instantiate and use in the main.
 
 __export_constants (self)
 We export ExaHyPE's constants.
 

Detailed Description

Here we recreate a multigrid project, without using PETSc.

Multigrid solver project.

We keep some of the basic steps:

  • _algorithm_step_create_grid
  • _algorithm_step_enumerate_and_init_solution
  • _algorithm_step_solve
  • _algorithm_step_plot

The rest is yet to be fleshed out.

Now that we have multiple solvers in a project, we may not want to use all of them for stopping criteria. Hence, we have a second array for solvers which participate, but are not asked if their stopping criteria have been reached.

The standard extensions that are used for Peano and ExaHyPE.

A project hosts a set of multigrid solvers for different PDEs (which you might eventually want to couple). Other than that, each project generates exactly one main file and a solver repository. The main file is represented by petsc.PETScMain, while the repository is generated directly by the project.
Consult generate_Peano4_project() for the latter.

Algorithmic steps

Every PETSc project runs through the following steps:

  • algorithm_step_create_grid
  • algorithm_step_enumerate_and_init_solution
  • _algorithm_step_init_petsc
  • algorithm_step_assemble
  • _algorithm_step_solve
  • algorithm_step_map_solution_onto_mesh
  • algorithm_step_plot

Each of these steps is mapped onto one observer. It is clear that not all steps actually lead to mesh traversals and, therefore, are not to be modified by users. They are simply there to allow the main function to pick a step and to tell all MPI ranks to run the same step on all local trees. I therefore mark these steps as private via a leading underscore.

Attributes

Parameters
_solvers[Solver] List of tuples of typename and names of solvers that this project should use simultaneously.
preconditioner_typeString Preconditioner type to be used. This part of the string should match the final part of the enum class in src/petsc/LinearEquationSystem.h. The namespaceing is taken care of downstream.
solver_typeString Solver type to be used. This part of the string should match the final part of the enum class in src/petsc/LinearEquationSystem.h. The namespaceing is taken care of downstream.

Definition at line 10 of file Project.py.

Constructor & Destructor Documentation

◆ __init__() [1/2]

api.Project.Project.__init__ ( self,
namespace,
project_name,
directory = ".",
executable = "peano4matrixfree",
subdirectory = "",
abstract_overwrite = True )

Create a matrix project.

Definition at line 39 of file Project.py.

◆ __init__() [2/2]

api.Project.Project.__init__ ( self,
namespace,
project_name,
directory = ".",
executable = "peano4petsc",
preconditioner_type = "None",
solver_type = "GMRES",
subdirectory = "" )

Definition at line 62 of file Project.py.

References exahype2.Project.Project._build_mode, swift2.Project.Project._build_mode, api.Project.Project._build_mode, exahype2.Project.Project._dimensions, peano4.visualisation.output.Visualiser.PatchFileData._dimensions, peano4.visualisation.output.Visualiser.Visualiser._dimensions, swift2.Project.Project._dimensions, convert::input::PeanoTextPatchFileReader._dimensions, api.Project.Project._dimensions, tarch::plotter::griddata::blockstructured::PeanoHDF5PatchFileWriter._dimensions, tarch::plotter::griddata::blockstructured::PeanoTextPatchFileWriter._dimensions, scenarios.acoustic_planar_waves.AcousticPlanarWaves._dimensions, scenarios.advection_linear.AdvectionLinear._dimensions, scenarios.elastic_planar_waves.ElasticPlanarWaves._dimensions, scenarios.euler_gaussian_bell.EulerGaussianBell._dimensions, scenarios.euler_isotropic_vortex.EulerIsotropicVortex._dimensions, scenarios.scenario.Scenario._dimensions, scenarios.swe_radial_dam_break.SWERadialDamBreak._dimensions, scenarios.swe_resting_lake.SWERestingLake._dimensions, exahype2.Project.Project._domain_offset, swift2.Project.Project._domain_offset, api.Project.Project._domain_offset, exahype2.Project.Project._domain_size, swift2.Project.Project._domain_size, api.Project.Project._domain_size, scenarios.acoustic_planar_waves.AcousticPlanarWaves._domain_size, scenarios.elastic_planar_waves.ElasticPlanarWaves._domain_size, scenarios.euler_gaussian_bell.EulerGaussianBell._domain_size, scenarios.euler_isotropic_vortex.EulerIsotropicVortex._domain_size, scenarios.scenario.Scenario._domain_size, scenarios.swe_radial_dam_break.SWERadialDamBreak._domain_size, scenarios.swe_resting_lake.SWERestingLake._domain_size, exahype2.Project.Project._executable_name, swift2.Project.Project._executable_name, api.Project.Project._executable_name, exahype2.Project.Project._load_balancer_arguments, swift2.Project.Project._load_balancer_arguments, api.Project.Project._load_balancer_arguments, exahype2.Project.Project._load_balancer_name, swift2.Project.Project._load_balancer_name, api.Project.Project._load_balancer_name, exahype2.Project.Project._output_path, swift2.Project.Project._output_path, api.Project.Project._output_path, exahype2.Project.Project._Peano_src_directory, swift2.Project.Project._Peano_src_directory, api.Project.Project._Peano_src_directory, exahype2.Project.Project._project, peano4.solversteps.Steps.Steps._project, swift2.Project.Project._project, api.Project.Project._project, exahype2.Project.Project._solvers, api.Project.Project._solvers, exahype2.Project.Project._subdirectory, peano4.datamodel.Model.Model._subdirectory, peano4.Project.Project._subdirectory, api.Project.Project._subdirectory, swift2.Project.Project.algorithm_step_create_grid, and api.Project.Project.algorithm_step_create_grid.

Member Function Documentation

◆ __configure_makefile() [1/2]

api.Project.Project.__configure_makefile ( self)
private

Parse makefile of Peano to extract the configuration settings.

We parse the configure script's/CMAKE outcome first via parse_configure_script_outcome(). After that, we set the dimension manually as well as the executable name and the build mode. The values for these parameters step from set_Peano4_installation().

Definition at line 131 of file Project.py.

References exahype2.Project.Project.__export_constants(), swift2.Project.Project.__export_constants(), api.Project.Project.__export_constants(), exahype2.Project.Project._build_mode, swift2.Project.Project._build_mode, api.Project.Project._build_mode, exahype2.Project.Project._dimensions, peano4.visualisation.output.Visualiser.PatchFileData._dimensions, peano4.visualisation.output.Visualiser.Visualiser._dimensions, swift2.Project.Project._dimensions, convert::input::PeanoTextPatchFileReader._dimensions, api.Project.Project._dimensions, tarch::plotter::griddata::blockstructured::PeanoHDF5PatchFileWriter._dimensions, tarch::plotter::griddata::blockstructured::PeanoTextPatchFileWriter._dimensions, scenarios.acoustic_planar_waves.AcousticPlanarWaves._dimensions, scenarios.advection_linear.AdvectionLinear._dimensions, scenarios.elastic_planar_waves.ElasticPlanarWaves._dimensions, scenarios.euler_gaussian_bell.EulerGaussianBell._dimensions, scenarios.euler_isotropic_vortex.EulerIsotropicVortex._dimensions, scenarios.scenario.Scenario._dimensions, scenarios.swe_radial_dam_break.SWERadialDamBreak._dimensions, scenarios.swe_resting_lake.SWERestingLake._dimensions, exahype2.Project.Project._executable_name, swift2.Project.Project._executable_name, api.Project.Project._executable_name, exahype2.Project.Project._Peano_src_directory, swift2.Project.Project._Peano_src_directory, api.Project.Project._Peano_src_directory, exahype2.Project.Project._project, peano4.solversteps.Steps.Steps._project, swift2.Project.Project._project, and api.Project.Project._project.

Referenced by exahype2.Project.Project.generate_Peano4_project(), swift2.Project.Project.generate_Peano4_project(), and api.Project.Project.generate_Peano4_project().

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

◆ __configure_makefile() [2/2]

api.Project.Project.__configure_makefile ( self)
private

Configure the makefile of the PETSc project.

We parse the configure script's/CMAKE outcome first via parse_configure_script_outcome(). After that, we set the dimension manually as well as the executable name and the build mode. The values for these parameters step from set_Peano4_installation().

Definition at line 142 of file Project.py.

References exahype2.Project.Project.__export_constants(), swift2.Project.Project.__export_constants(), api.Project.Project.__export_constants(), exahype2.Project.Project._build_mode, swift2.Project.Project._build_mode, api.Project.Project._build_mode, exahype2.Project.Project._dimensions, peano4.visualisation.output.Visualiser.PatchFileData._dimensions, peano4.visualisation.output.Visualiser.Visualiser._dimensions, swift2.Project.Project._dimensions, convert::input::PeanoTextPatchFileReader._dimensions, api.Project.Project._dimensions, tarch::plotter::griddata::blockstructured::PeanoHDF5PatchFileWriter._dimensions, tarch::plotter::griddata::blockstructured::PeanoTextPatchFileWriter._dimensions, scenarios.acoustic_planar_waves.AcousticPlanarWaves._dimensions, scenarios.advection_linear.AdvectionLinear._dimensions, scenarios.elastic_planar_waves.ElasticPlanarWaves._dimensions, scenarios.euler_gaussian_bell.EulerGaussianBell._dimensions, scenarios.euler_isotropic_vortex.EulerIsotropicVortex._dimensions, scenarios.scenario.Scenario._dimensions, scenarios.swe_radial_dam_break.SWERadialDamBreak._dimensions, scenarios.swe_resting_lake.SWERestingLake._dimensions, exahype2.Project.Project._executable_name, swift2.Project.Project._executable_name, api.Project.Project._executable_name, exahype2.Project.Project._Peano_src_directory, swift2.Project.Project._Peano_src_directory, api.Project.Project._Peano_src_directory, exahype2.Project.Project._project, peano4.solversteps.Steps.Steps._project, swift2.Project.Project._project, and api.Project.Project._project.

Referenced by exahype2.Project.Project.generate_Peano4_project(), swift2.Project.Project.generate_Peano4_project(), and api.Project.Project.generate_Peano4_project().

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

◆ __export_constants() [1/2]

api.Project.Project.__export_constants ( self)
private

Export all the constrants of the project into a Configure.h file.

We export ExaHyPE's constants. Besides the constants from ExaHyPE, I also export some parameters from Peano onto the ExaHyPE constants file. Therefore, it is important that you parse the configure output before we export the constants.

Definition at line 284 of file Project.py.

References exahype2.Project.Project._dimensions, peano4.visualisation.output.Visualiser.PatchFileData._dimensions, peano4.visualisation.output.Visualiser.Visualiser._dimensions, swift2.Project.Project._dimensions, convert::input::PeanoTextPatchFileReader._dimensions, api.Project.Project._dimensions, tarch::plotter::griddata::blockstructured::PeanoHDF5PatchFileWriter._dimensions, tarch::plotter::griddata::blockstructured::PeanoTextPatchFileWriter._dimensions, scenarios.acoustic_planar_waves.AcousticPlanarWaves._dimensions, scenarios.advection_linear.AdvectionLinear._dimensions, scenarios.elastic_planar_waves.ElasticPlanarWaves._dimensions, scenarios.euler_gaussian_bell.EulerGaussianBell._dimensions, scenarios.euler_isotropic_vortex.EulerIsotropicVortex._dimensions, scenarios.scenario.Scenario._dimensions, scenarios.swe_radial_dam_break.SWERadialDamBreak._dimensions, scenarios.swe_resting_lake.SWERestingLake._dimensions, exahype2.Project.Project._domain_offset, swift2.Project.Project._domain_offset, api.Project.Project._domain_offset, exahype2.Project.Project._domain_size, swift2.Project.Project._domain_size, api.Project.Project._domain_size, scenarios.acoustic_planar_waves.AcousticPlanarWaves._domain_size, scenarios.elastic_planar_waves.ElasticPlanarWaves._domain_size, scenarios.euler_gaussian_bell.EulerGaussianBell._domain_size, scenarios.euler_isotropic_vortex.EulerIsotropicVortex._domain_size, scenarios.scenario.Scenario._domain_size, scenarios.swe_radial_dam_break.SWERadialDamBreak._domain_size, scenarios.swe_resting_lake.SWERestingLake._domain_size, exahype2.Project.Project._plotter_precision, swift2.Project.Project._plotter_precision, api.Project.Project._plotter_precision, exahype2.Project.Project._project, peano4.solversteps.Steps.Steps._project, swift2.Project.Project._project, api.Project.Project._project, exahype2.Project.Project._solvers, and api.Project.Project._solvers.

Referenced by api.Project.Project.__configure_makefile(), exahype2.Project.Project.generate_Peano4_project(), and swift2.Project.Project.generate_Peano4_project().

Here is the caller graph for this function:

◆ __export_constants() [2/2]

api.Project.Project.__export_constants ( self)
private

We export ExaHyPE's constants.

Besides the constants from ExaHyPE, I also export some parameters from Peano onto the ExaHyPE constants file. Therefore, it is important that you parse the configure output before we export the constants.

Definition at line 312 of file Project.py.

References exahype2.Project.Project._dimensions, peano4.visualisation.output.Visualiser.PatchFileData._dimensions, peano4.visualisation.output.Visualiser.Visualiser._dimensions, swift2.Project.Project._dimensions, convert::input::PeanoTextPatchFileReader._dimensions, api.Project.Project._dimensions, tarch::plotter::griddata::blockstructured::PeanoHDF5PatchFileWriter._dimensions, tarch::plotter::griddata::blockstructured::PeanoTextPatchFileWriter._dimensions, scenarios.acoustic_planar_waves.AcousticPlanarWaves._dimensions, scenarios.advection_linear.AdvectionLinear._dimensions, scenarios.elastic_planar_waves.ElasticPlanarWaves._dimensions, scenarios.euler_gaussian_bell.EulerGaussianBell._dimensions, scenarios.euler_isotropic_vortex.EulerIsotropicVortex._dimensions, scenarios.scenario.Scenario._dimensions, scenarios.swe_radial_dam_break.SWERadialDamBreak._dimensions, scenarios.swe_resting_lake.SWERestingLake._dimensions, exahype2.Project.Project._domain_offset, swift2.Project.Project._domain_offset, api.Project.Project._domain_offset, exahype2.Project.Project._domain_size, swift2.Project.Project._domain_size, api.Project.Project._domain_size, scenarios.acoustic_planar_waves.AcousticPlanarWaves._domain_size, scenarios.elastic_planar_waves.ElasticPlanarWaves._domain_size, scenarios.euler_gaussian_bell.EulerGaussianBell._domain_size, scenarios.euler_isotropic_vortex.EulerIsotropicVortex._domain_size, scenarios.scenario.Scenario._domain_size, scenarios.swe_radial_dam_break.SWERadialDamBreak._domain_size, scenarios.swe_resting_lake.SWERestingLake._domain_size, exahype2.Project.Project._plotter_precision, swift2.Project.Project._plotter_precision, api.Project.Project._plotter_precision, exahype2.Project.Project._project, peano4.solversteps.Steps.Steps._project, swift2.Project.Project._project, api.Project.Project._project, exahype2.Project.Project._solvers, and api.Project.Project._solvers.

Referenced by api.Project.Project.__configure_makefile(), exahype2.Project.Project.generate_Peano4_project(), and swift2.Project.Project.generate_Peano4_project().

Here is the caller graph for this function:

◆ __generate_solver_repository() [1/2]

◆ __generate_solver_repository() [2/2]

api.Project.Project.__generate_solver_repository ( self)
private

type_name_of_solvers: [String] Name of the solvers that we should instantiate and use in the main.

Definition at line 249 of file Project.py.

References exahype2.Project.Project.__set_solver_repository_dict(), api.Project.Project.__set_solver_repository_dict(), exahype2.Project.Project._project, peano4.solversteps.Steps.Steps._project, swift2.Project.Project._project, api.Project.Project._project, and api.Project.Project.dictionary.

Referenced by exahype2.Project.Project.generate_Peano4_project(), and api.Project.Project.generate_Peano4_project().

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

◆ __set_solver_repository_dict() [1/2]

api.Project.Project.__set_solver_repository_dict ( self)
private

Definition at line 213 of file Project.py.

Referenced by exahype2.Project.Project.__generate_solver_repository(), and api.Project.Project.__generate_solver_repository().

Here is the caller graph for this function:

◆ __set_solver_repository_dict() [2/2]

api.Project.Project.__set_solver_repository_dict ( self)
private

◆ add_solver() [1/2]

◆ add_solver() [2/2]

api.Project.Project.add_solver ( self,
solver,
auxiliary = False )

◆ generate_Peano4_project() [1/2]

api.Project.Project.generate_Peano4_project ( self,
verbose = False )

Build project.

Construct and return the Peano4 project, i.e. all the action sets et al that you require to run this Peano4 application with PETSc.

Definition at line 181 of file Project.py.

References exahype2.Project.Project.__configure_makefile(), swift2.Project.Project.__configure_makefile(), api.Project.Project.__configure_makefile(), exahype2.Project.Project.__generate_solver_repository(), api.Project.Project.__generate_solver_repository(), exahype2.Project.Project._domain_offset, swift2.Project.Project._domain_offset, api.Project.Project._domain_offset, exahype2.Project.Project._domain_size, swift2.Project.Project._domain_size, api.Project.Project._domain_size, scenarios.acoustic_planar_waves.AcousticPlanarWaves._domain_size, scenarios.elastic_planar_waves.ElasticPlanarWaves._domain_size, scenarios.euler_gaussian_bell.EulerGaussianBell._domain_size, scenarios.euler_isotropic_vortex.EulerIsotropicVortex._domain_size, scenarios.scenario.Scenario._domain_size, scenarios.swe_radial_dam_break.SWERadialDamBreak._domain_size, scenarios.swe_resting_lake.SWERestingLake._domain_size, api.Project.Project._max_iterations, api.Project.Project._plot_after_each_mesh_sweep, exahype2.Project.Project._project, peano4.solversteps.Steps.Steps._project, swift2.Project.Project._project, api.Project.Project._project, swift2.Project.Project.algorithm_step_create_grid, api.Project.Project.algorithm_step_create_grid, api.Project.Project.algorithm_step_init_solution, swift2.Project.Project.algorithm_step_plot, api.Project.Project.algorithm_step_plot, and api.Project.Project.algorithm_step_solve.

Here is the call graph for this function:

◆ generate_Peano4_project() [2/2]

api.Project.Project.generate_Peano4_project ( self,
verbose = False )

Build project.

Construct and return the Peano4 project, i.e. all the action sets et al that you require to run this Peano4 application with PETSc.

This routine generates a Peano project, i.e. the domain-specific view is translated into a Peano model. Once you have called this routine, any changes to the PETSc project configuration do not propagate into the Peano setup anymore. If you alter the project setup, you have to call generate_Peano4_project() again to get a new snapshot/version of the Peano setup.

The function runs through various steps:

  1. We create an instance of PETScMain that represents the C++ main file.
  2. We add the essential algorithmic steps to the result project. At this point, they should all be configured properly
  3. We configure the makefile via __configure_makefile().
  4. Add the repository holding the instances of the solver.
  5. Ensure that the generated readme file holds all relevant literature and links.

Definition at line 185 of file Project.py.

References exahype2.Project.Project.__configure_makefile(), swift2.Project.Project.__configure_makefile(), api.Project.Project.__configure_makefile(), exahype2.Project.Project.__generate_solver_repository(), api.Project.Project.__generate_solver_repository(), api.Project.Project._algorithm_step_init_petsc, api.Project.Project._algorithm_step_solve, exahype2.Project.Project._domain_offset, swift2.Project.Project._domain_offset, api.Project.Project._domain_offset, exahype2.Project.Project._domain_size, swift2.Project.Project._domain_size, api.Project.Project._domain_size, scenarios.acoustic_planar_waves.AcousticPlanarWaves._domain_size, scenarios.elastic_planar_waves.ElasticPlanarWaves._domain_size, scenarios.euler_gaussian_bell.EulerGaussianBell._domain_size, scenarios.euler_isotropic_vortex.EulerIsotropicVortex._domain_size, scenarios.scenario.Scenario._domain_size, scenarios.swe_radial_dam_break.SWERadialDamBreak._domain_size, scenarios.swe_resting_lake.SWERestingLake._domain_size, exahype2.Project.Project._project, peano4.solversteps.Steps.Steps._project, swift2.Project.Project._project, api.Project.Project._project, api.Project.Project.algorithm_step_assemble, swift2.Project.Project.algorithm_step_create_grid, api.Project.Project.algorithm_step_create_grid, api.Project.Project.algorithm_step_enumerate_and_init_solution, api.Project.Project.algorithm_step_map_solution_onto_mesh, swift2.Project.Project.algorithm_step_plot, and api.Project.Project.algorithm_step_plot.

Here is the call graph for this function:

◆ set_global_simulation_parameters() [1/2]

api.Project.Project.set_global_simulation_parameters ( self,
dimensions,
offset,
domain_size,
plot_after_each_mesh_sweep,
max_iterations = 100,
plotter_precision = 5 )

Configure global simulation settings.

Parameters
offset[Float]
size[Float] should be lists with dimensions double entries.

Definition at line 148 of file Project.py.

References exahype2.Project.Project._dimensions, peano4.visualisation.output.Visualiser.PatchFileData._dimensions, peano4.visualisation.output.Visualiser.Visualiser._dimensions, swift2.Project.Project._dimensions, convert::input::PeanoTextPatchFileReader._dimensions, api.Project.Project._dimensions, tarch::plotter::griddata::blockstructured::PeanoHDF5PatchFileWriter._dimensions, tarch::plotter::griddata::blockstructured::PeanoTextPatchFileWriter._dimensions, scenarios.acoustic_planar_waves.AcousticPlanarWaves._dimensions, scenarios.advection_linear.AdvectionLinear._dimensions, scenarios.elastic_planar_waves.ElasticPlanarWaves._dimensions, scenarios.euler_gaussian_bell.EulerGaussianBell._dimensions, scenarios.euler_isotropic_vortex.EulerIsotropicVortex._dimensions, scenarios.scenario.Scenario._dimensions, scenarios.swe_radial_dam_break.SWERadialDamBreak._dimensions, scenarios.swe_resting_lake.SWERestingLake._dimensions, exahype2.Project.Project._domain_offset, swift2.Project.Project._domain_offset, api.Project.Project._domain_offset, exahype2.Project.Project._domain_size, swift2.Project.Project._domain_size, api.Project.Project._domain_size, scenarios.acoustic_planar_waves.AcousticPlanarWaves._domain_size, scenarios.elastic_planar_waves.ElasticPlanarWaves._domain_size, scenarios.euler_gaussian_bell.EulerGaussianBell._domain_size, scenarios.euler_isotropic_vortex.EulerIsotropicVortex._domain_size, scenarios.scenario.Scenario._domain_size, scenarios.swe_radial_dam_break.SWERadialDamBreak._domain_size, and scenarios.swe_resting_lake.SWERestingLake._domain_size.

◆ set_global_simulation_parameters() [2/2]

api.Project.Project.set_global_simulation_parameters ( self,
dimensions,
offset,
domain_size,
plotter_precision = 5 )

offset and size should be lists with dimensions double entries.

Definition at line 160 of file Project.py.

References exahype2.Project.Project._dimensions, peano4.visualisation.output.Visualiser.PatchFileData._dimensions, peano4.visualisation.output.Visualiser.Visualiser._dimensions, swift2.Project.Project._dimensions, convert::input::PeanoTextPatchFileReader._dimensions, api.Project.Project._dimensions, tarch::plotter::griddata::blockstructured::PeanoHDF5PatchFileWriter._dimensions, tarch::plotter::griddata::blockstructured::PeanoTextPatchFileWriter._dimensions, scenarios.acoustic_planar_waves.AcousticPlanarWaves._dimensions, scenarios.advection_linear.AdvectionLinear._dimensions, scenarios.elastic_planar_waves.ElasticPlanarWaves._dimensions, scenarios.euler_gaussian_bell.EulerGaussianBell._dimensions, scenarios.euler_isotropic_vortex.EulerIsotropicVortex._dimensions, scenarios.scenario.Scenario._dimensions, scenarios.swe_radial_dam_break.SWERadialDamBreak._dimensions, scenarios.swe_resting_lake.SWERestingLake._dimensions, exahype2.Project.Project._domain_offset, swift2.Project.Project._domain_offset, api.Project.Project._domain_offset, exahype2.Project.Project._domain_size, swift2.Project.Project._domain_size, api.Project.Project._domain_size, scenarios.acoustic_planar_waves.AcousticPlanarWaves._domain_size, scenarios.elastic_planar_waves.ElasticPlanarWaves._domain_size, scenarios.euler_gaussian_bell.EulerGaussianBell._domain_size, scenarios.euler_isotropic_vortex.EulerIsotropicVortex._domain_size, scenarios.scenario.Scenario._domain_size, scenarios.swe_radial_dam_break.SWERadialDamBreak._domain_size, scenarios.swe_resting_lake.SWERestingLake._domain_size, exahype2.Project.Project._plotter_precision, swift2.Project.Project._plotter_precision, and api.Project.Project._plotter_precision.

◆ set_load_balancing() [1/2]

api.Project.Project.set_load_balancing ( self,
load_balancer_name,
load_balancer_arguments )

Set the load balancing scheme.

Parameters
load_balancer_namestring Should be full-qualified name of the load balancer. By default, I recommend to pass "toolbox::loadbalancing::RecursiveSubdivision"
load_balancer_argumentsstring If your load balancing requires parameters, add them here. It is a string that will be copied into the C++ class instantiation. Please add the brackets yourself, i.e. "(3,4,5)" is fine, but "3,4,5" is not. The only exception is the empty parameter list. Here, you can/should simply add the empty string.

Definition at line 90 of file Project.py.

References exahype2.Project.Project._load_balancer_arguments, swift2.Project.Project._load_balancer_arguments, api.Project.Project._load_balancer_arguments, exahype2.Project.Project._load_balancer_name, swift2.Project.Project._load_balancer_name, and api.Project.Project._load_balancer_name.

◆ set_load_balancing() [2/2]

api.Project.Project.set_load_balancing ( self,
load_balancer_name,
load_balancer_arguments )

load_balancer_name: string Should be full-qualified name of the load balancer.

By default, I recommend to pass "toolbox::loadbalancing::RecursiveSubdivision"

load_balancer_arguments: string If your load balancing requires parameters, add them here. It is a string that will be copied into the C++ class instantiation. Please add the brackets yourself, i.e. "(3,4,5)" is fine, but "3,4,5" is not. The only exception is the empty parameter list. Here, you can/should simply add the empty string.

Definition at line 98 of file Project.py.

References exahype2.Project.Project._load_balancer_arguments, swift2.Project.Project._load_balancer_arguments, api.Project.Project._load_balancer_arguments, exahype2.Project.Project._load_balancer_name, swift2.Project.Project._load_balancer_name, and api.Project.Project._load_balancer_name.

◆ set_output_path() [1/2]

api.Project.Project.set_output_path ( self,
path )

◆ set_output_path() [2/2]

api.Project.Project.set_output_path ( self,
path )

◆ set_Peano4_installation() [1/2]

api.Project.Project.set_Peano4_installation ( self,
src_path,
mode = peano4.output.CompileMode.Release )

Tell the project where to find Peano.

Once we know where to find Peano, we can parse the configuration/makefile there and know which compile parameters to use. We also know then where to search for the static libraries.

Parameters
src_pathstring Path (relative or absolute) to the src directory of Peano. This path should hold both the headers (in subdirectories) and all the static libraries.
modepeano4.output.CompileMode

Definition at line 110 of file Project.py.

References exahype2.Project.Project._build_mode, swift2.Project.Project._build_mode, api.Project.Project._build_mode, exahype2.Project.Project._Peano_src_directory, swift2.Project.Project._Peano_src_directory, and api.Project.Project._Peano_src_directory.

◆ set_Peano4_installation() [2/2]

api.Project.Project.set_Peano4_installation ( self,
src_path,
mode = peano4.output.CompileMode.Release )

src_path: string Path (relative or absolute) to the src directory of Peano.

This path should hold both the headers (in subdirectories) and all the static libraries.

mode: peano4.output.CompileMode

Definition at line 127 of file Project.py.

References exahype2.Project.Project._build_mode, swift2.Project.Project._build_mode, api.Project.Project._build_mode, exahype2.Project.Project._Peano_src_directory, swift2.Project.Project._Peano_src_directory, and api.Project.Project._Peano_src_directory.

◆ subdirectory() [1/2]

◆ subdirectory() [2/2]

Field Documentation

◆ _abstract_overwrite

api.Project.Project._abstract_overwrite
protected

◆ _algorithm_step_init_petsc

api.Project.Project._algorithm_step_init_petsc
protected

◆ _algorithm_step_solve

api.Project.Project._algorithm_step_solve
protected

Definition at line 91 of file Project.py.

Referenced by api.Project.Project.generate_Peano4_project().

◆ _aux_solvers

api.Project.Project._aux_solvers
protected

Definition at line 75 of file Project.py.

Referenced by api.Project.Project.add_solver().

◆ _build_mode

◆ _dimensions

◆ _domain_offset

◆ _domain_size

◆ _executable_name

◆ _load_balancer_arguments

◆ _load_balancer_name

◆ _max_iterations

api.Project.Project._max_iterations
protected

Definition at line 170 of file Project.py.

Referenced by api.Project.Project.generate_Peano4_project().

◆ _output_path

◆ _Peano_src_directory

◆ _plot_after_each_mesh_sweep

api.Project.Project._plot_after_each_mesh_sweep
protected

Definition at line 169 of file Project.py.

Referenced by api.Project.Project.generate_Peano4_project().

◆ _plotter_precision

◆ _project

◆ _solvers

◆ _subdirectory

◆ algorithm_step_assemble

api.Project.Project.algorithm_step_assemble

◆ algorithm_step_create_grid

◆ algorithm_step_enumerate_and_init_solution

api.Project.Project.algorithm_step_enumerate_and_init_solution

◆ algorithm_step_init_solution

api.Project.Project.algorithm_step_init_solution

◆ algorithm_step_map_solution_onto_mesh

api.Project.Project.algorithm_step_map_solution_onto_mesh

◆ algorithm_step_plot

◆ algorithm_step_solve

api.Project.Project.algorithm_step_solve

◆ dictionary

api.Project.Project.dictionary

◆ LibraryAsserts

str api.Project.Project.LibraryAsserts = "_asserts"
static

Definition at line 36 of file Project.py.

◆ LibraryDebug

str api.Project.Project.LibraryDebug = "_debug"
static

Definition at line 33 of file Project.py.

◆ LibraryRelease

str api.Project.Project.LibraryRelease = ""
static

Definition at line 34 of file Project.py.

◆ LibraryStats

str api.Project.Project.LibraryStats = "_stats"
static

Definition at line 37 of file Project.py.

◆ LibraryTrace

str api.Project.Project.LibraryTrace = "_trace"
static

Definition at line 35 of file Project.py.

◆ preconditioner_type

api.Project.Project.preconditioner_type

Definition at line 95 of file Project.py.

Referenced by api.Project.Project.__set_solver_repository_dict().

◆ solver_type

api.Project.Project.solver_type

Definition at line 96 of file Project.py.

Referenced by api.Project.Project.__set_solver_repository_dict().


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