|
Peano
|
ExaHyPE 2 project. More...


Data Structures | |
| class | Generator |
| Base class for the code generation steps that turn an ExaHyPE 2 Project's configuration into actual generated files. More... | |
Public Member Functions | |
| __init__ (self, namespace, project_name, executable, directory=".", subdirectory="", abstract_overwrite=True) | |
| set_load_balancing (self, load_balancer_name, load_balancer_arguments="") | |
| Set load balancing scheme. | |
| set_log_filter_file (self, file_name) | |
| Set a log filter file name. | |
| set_number_of_threads (self, value) | |
| Set number of threads to use. | |
| set_multicore_orchestration (self, value) | |
| Set orchestration. | |
| set_timeout (self, value) | |
| Set timeout value has to be a number greater or equal to zero, this then sets the timeout in seconds after which a node waiting for an MPI message shall quit an shutdown the whole application with an error report. | |
| set_step_report_class (self, class_name) | |
| Set the C++ class the generated main instantiates to report on steps. | |
| set_gpus (self, value) | |
| Set GPUs to be used value is a list of integers or the empty list if you want the code to use all GPUs that are visible to a rank. | |
| set_Peano4_installation (self, src_path, mode=peano4.api.output.CompileMode.RELEASE) | |
| src_path: string Path (relative or absolute) to the src directory of Peano. | |
| add_solver (self, solver) | |
| remove_all_solvers (self) | |
| set_global_simulation_parameters (self, dimensions, offset, size, min_end_time, periodic_BC=[False, False, False], max_end_time=0.0) | |
| ! Set the global simulation parameters | |
| set_output_path (self, path) | |
| generate_Peano4_project (self, verbosity=peano4.api.LoggerVerbosity.OFF) | |
| Construct a Peano 4 project and return it. | |
| periodic_BC (self) | |
| One boolean per axis (dimensions entries) telling whether the domain is periodic along this axis. | |
| subdirectory (self) | |
| additional_includes (self) | |
Data Fields | |
| mainfile_generator | |
| solver_repository_generator | |
| compiler | |
Static Public Attributes | |
| str | LibraryDebug = "_debug" |
| str | LibraryRelease = "" |
| str | LibraryTrace = "_trace" |
| str | LibraryAsserts = "_asserts" |
| str | LibraryStats = "_stats" |
Protected Attributes | |
| _namespace | |
| _project_name | |
| _directory | |
| _subdirectory | |
| _abstract_overwrite | |
| _solvers | |
| _domain_offset | |
| ! Set the global simulation parameters | |
| _domain_size | |
| _dimensions | |
| _min_terminal_time | |
| include <bitset> | |
| _max_terminal_time | |
| _load_balancer_name | |
| Set load balancing scheme. | |
| _load_balancer_arguments | |
| _log_filter_file | |
| Set a log filter file name. | |
| _number_of_threads | |
| Set number of threads to use. | |
| _multicore_orchestration | |
| Set orchestration. | |
| _timeout | |
| Set timeout value has to be a number greater or equal to zero, this then sets the timeout in seconds after which a node waiting for an MPI message shall quit an shutdown the whole application with an error report. | |
| _gpus | |
| Set GPUs to be used value is a list of integers or the empty list if you want the code to use all GPUs that are visible to a rank. | |
| _step_report_class | |
| Set the C++ class the generated main instantiates to report on steps. | |
| _additional_includes | |
| _Peano_src_directory | |
| src_path: string Path (relative or absolute) to the src directory of Peano. | |
| _build_mode | |
| _executable_name | |
| _periodic_BC | |
| One boolean per axis (dimensions entries) telling whether the domain is periodic along this axis. | |
| _output_path | |
| _EXAHYPE_PACKAGE_DESCRIPTION | |
Static Protected Attributes | |
| str | _EXAHYPE_PACKAGE_DESCRIPTION |
Private Member Functions | |
| __export_constants (self, peano_project) | |
| We export ExaHyPE's constants. | |
ExaHyPE 2 project.
Represents an ExaHyPE 2 project. An ExaHyPE2 project is a Peano 4 project with a particular set of actions (algorithmic phases) that you can choose from and with particular solver types. It realises a builder mechanism, i.e. you build up your ExaHyPE 2 project and then you finally tell the project "give me the Peano 4 project". From hereon, you can use this Peano 4 project to actually set up the Peano 4 application.
The project will have a marker per cell that encodes stuff alike a boundary marker. But it is also used to coordinate different solver types.
Definition at line 15 of file Project.py.
| exahype2.api.Project.Project.__init__ | ( | self, | |
| namespace, | |||
| project_name, | |||
| executable, | |||
directory = ".", |
|||
subdirectory = "", |
|||
abstract_overwrite = True |
|||
| ) |
Definition at line 67 of file Project.py.
|
private |
We export ExaHyPE's constants.
Besides the constants from ExaHyPE, we 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.
peano_project: peano4.api.Project The Peano 4 project that generate_Peano4_project() is currently assembling. It is a local variable there, not an attribute - merely passed through here, so this routine can export onto it.
Definition at line 284 of file Project.py.
References convert::input::PeanoTextPatchFileReader._dimensions, exahype2.api.dslhype.SyntaxTree.Subscript._dimensions, exahype2.api.dslhype.SyntaxTree.Matrix._dimensions, exahype2.api.dslhype.SyntaxTree.TSimpleMemref._dimensions, exahype2.api.dslhype.SyntaxTree.TDataBlock._dimensions, exahype2.api.dslhype.SyntaxTree.MemoryAllocation._dimensions, exahype2.api.dslhype.SyntaxTree.MemoryDeallocation._dimensions, exahype2.api.Project.Project._dimensions, exaparty.api.Project.Project._dimensions, api.Project.Project._dimensions, solvers.api.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi._dimensions, solvers.api.DiscontinuousGalerkinDiscretisationPointWiseRiemannSolver.DiscontinuousGalerkinDiscretisationPointWiseRiemannSolver._dimensions, tarch.plotter.api.output.Visualiser.PatchFileData._dimensions, tarch.plotter.api.output.Visualiser.Visualiser._dimensions, tarch.plotter::griddata::blockstructured::PeanoBinaryPatchFileWriter._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.api.Project.Project._domain_offset, exaparty.api.Project.Project._domain_offset, api.Project.Project._domain_offset, api.Tree.Tree._domain_offset, exahype2.api.Project.Project._domain_size, exaparty.api.Project.Project._domain_size, api.Project.Project._domain_size, api.Tree.Tree._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.api.Project.Project._max_terminal_time, exaparty.api.Project.Project._max_terminal_time, exahype2.api.Project.Project._min_terminal_time, exaparty.api.Project.Project._min_terminal_time, exahype2.api.Project.Project._periodic_BC, exaparty.api.Project.Project._periodic_BC, exahype2.api.Project.Project._solvers, and api.Project.Project._solvers.
Referenced by api.Project.Project.__configure_makefile(), and exaparty.api.Project.Project.generate_Peano4_project().

| exahype2.api.Project.Project.add_solver | ( | self, | |
| solver | |||
| ) |
Definition at line 277 of file Project.py.
References exahype2.api.Project.Project._solvers, and api.Project.Project._solvers.
| exahype2.api.Project.Project.additional_includes | ( | self | ) |
Definition at line 582 of file Project.py.
References exahype2.api.Project.Project._additional_includes, and api.BackupPatchOverlap.BackupPatchOverlap._additional_includes.
Referenced by exahype2.api.fv.actionsets.RollOverUpdatedFace.RollOverUpdatedFace.get_includes(), exahype2.api.rkfd4.actionsets.RollOverUpdatedFace.RollOverUpdatedFace.get_includes(), peano4.api.toolbox.multigrid.cellbased.ScalarJacobiWithRediscretisation.ScalarJacobiWithRediscretisation.get_includes(), peano4.api.toolbox.multigrid.MatrixFreeJacobi.MatrixFreeJacobi.get_includes(), peano4.api.toolbox.multigrid.vertexbased.ScalarJacobiWithRediscretisation.ScalarJacobiWithRediscretisation.get_includes(), peano4.api.toolbox.particles.InsertParticlesAlongCartesianLayoutIntoUnrefinedCells.InsertParticlesAlongCartesianLayoutIntoUnrefinedCells.get_includes(), peano4.api.toolbox.particles.InsertParticlesByCoordinates.InsertParticlesByCoordinates.get_includes(), peano4.api.toolbox.particles.InsertRandomParticlesIntoUnrefinedCells.InsertRandomParticlesIntoUnrefinedCells.get_includes(), peano4.api.toolbox.particles.PlotParticlesInVTKFormat.PlotParticlesInVTKFormat.get_includes(), peano4.api.toolbox.PlotCellDataInPeanoBlockFormat.PlotCellDataInPeanoBlockFormat.get_includes(), peano4.api.toolbox.PlotGridInPeanoBlockFormat.PlotGridInPeanoBlockFormat.get_includes(), peano4.api.toolbox.PlotVertexDataInPeanoBlockFormat.PlotVertexDataInPeanoBlockFormat.get_includes(), api.ApplyPointWiselyToPatch.ApplyPointWiselyToPatch.get_includes(), api.DynamicAMR.DynamicAMR.get_includes(), api.InterpolateAndRestrictCells.InterpolateAndRestrictCells.get_includes(), api.InterpolateHangingFaces.InterpolateHangingFaces.get_includes(), api.PlotPatchesInPeanoBlockFormat.PlotPatchesInPeanoBlockFormat.get_includes(), api.PlotPatchesOverFacesInPeanoBlockFormat.PlotPatchesOverFacesInPeanoBlockFormat.get_includes(), api.ProjectPatchOntoFaces.ProjectPatchOntoFaces.get_includes(), api.ProjectPatchWithHaloOntoFaces.ProjectPatchWithHaloOntoFaces.get_includes(), api.ReconstructPatchWithHalo.ReconstructPatchWithHalo.get_includes(), api.RestrictHangingFaces.RestrictHangingFaces.get_includes(), and dastgen2.DataModel.DataModel.write_header_file().

| exahype2.api.Project.Project.generate_Peano4_project | ( | self, | |
verbosity = peano4.api.LoggerVerbosity.OFF |
|||
| ) |
Construct a Peano 4 project and return it.
Build the Peano 4 project, i.e., all the action sets et al that you require to run this ExaHyPE 2 application. The Peano 4 project is a local variable here - a fresh peano4.api.Project - that is populated over the course of this call and eventually returned.
This routine generates a Peano project, i.e. the domain-specific ExaHyPE view is translated into a Peano model. As the Peano project is not kept around as an attribute, calling generate_Peano4_project() again after you have altered the ExaHyPE setup gives you an independent, fresh snapshot of the Peano setup rather than an accumulation on top of a stale one.
Definition at line 433 of file Project.py.
References convert::output::PeanoWriter._directory, convert::output::VTUWriter._directory, exahype2.api.Project.Project._directory, exahype2.api.dslhype.SyntaxTree.Argument._namespace, exahype2.api.Project.Project._namespace, peano4.api.solversteps.Steps.Steps._namespace, exahype2.api.Project.Project._project_name, exahype2.api.Project.Project._subdirectory, api.Project.Project._subdirectory, peano4.api.datamodel.Model.Model._subdirectory, and peano4.api.Project.Project._subdirectory.
| exahype2.api.Project.Project.periodic_BC | ( | self | ) |
One boolean per axis (dimensions entries) telling whether the domain is periodic along this axis.
Read-only copy -
Definition at line 569 of file Project.py.
References exahype2.api.Project.Project._periodic_BC, and exaparty.api.Project.Project._periodic_BC.
| exahype2.api.Project.Project.remove_all_solvers | ( | self | ) |
Definition at line 280 of file Project.py.
References exahype2.api.Project.Project._solvers, api.Project.Project._solvers, and ScenarioFactory.createScenario().

| exahype2.api.Project.Project.set_global_simulation_parameters | ( | self, | |
| dimensions, | |||
| offset, | |||
| size, | |||
| min_end_time, | |||
periodic_BC = [False, False, False], |
|||
max_end_time = 0.0 |
|||
| ) |
! Set the global simulation parameters
| dimensions | 2 or 3 |
| offset | [Float] Has to have dimension number of entries. |
| size | [Float} Has to have dimension number of entries and all of them have to be positive. At this point, we strongly suggest that all size entries are exactly the same. While Peano and ExaHyPE do support anisotropic meshes, most compute kernels do not, so working with something else than a square or cube will likely break all numerics. |
| max_end_time | Float If you set it zero (or actually any value smaller than min_end_time), then the code will run until the cell that lags behind the most hits the min time. If you specify a valid max time however, you can stop the sim as soon as the most advanced cell exceeds this threshold. |
There are no plot settings here: when and how often to plot is configured per solver on its plotter, e.g. exahype2.api.fv.PlotAsVTKFile.
Definition at line 341 of file Project.py.
References convert::input::PeanoTextPatchFileReader._dimensions, exahype2.api.dslhype.SyntaxTree.Subscript._dimensions, exahype2.api.dslhype.SyntaxTree.Matrix._dimensions, exahype2.api.dslhype.SyntaxTree.TSimpleMemref._dimensions, exahype2.api.dslhype.SyntaxTree.TDataBlock._dimensions, exahype2.api.dslhype.SyntaxTree.MemoryAllocation._dimensions, exahype2.api.dslhype.SyntaxTree.MemoryDeallocation._dimensions, exahype2.api.Project.Project._dimensions, exaparty.api.Project.Project._dimensions, api.Project.Project._dimensions, solvers.api.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi._dimensions, solvers.api.DiscontinuousGalerkinDiscretisationPointWiseRiemannSolver.DiscontinuousGalerkinDiscretisationPointWiseRiemannSolver._dimensions, tarch.plotter.api.output.Visualiser.PatchFileData._dimensions, tarch.plotter.api.output.Visualiser.Visualiser._dimensions, tarch.plotter::griddata::blockstructured::PeanoBinaryPatchFileWriter._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.api.Project.Project._domain_offset, exaparty.api.Project.Project._domain_offset, api.Project.Project._domain_offset, api.Tree.Tree._domain_offset, exahype2.api.Project.Project._domain_size, exaparty.api.Project.Project._domain_size, api.Project.Project._domain_size, api.Tree.Tree._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.api.Project.Project._max_terminal_time, exaparty.api.Project.Project._max_terminal_time, exahype2.api.Project.Project._min_terminal_time, exaparty.api.Project.Project._min_terminal_time, exahype2.api.Project.Project._periodic_BC, and exaparty.api.Project.Project._periodic_BC.
| exahype2.api.Project.Project.set_gpus | ( | self, | |
| value | |||
| ) |
Set GPUs to be used value is a list of integers or the empty list if you want the code to use all GPUs that are visible to a rank.
Definition at line 248 of file Project.py.
References exahype2.api.Project.Project._gpus.
| exahype2.api.Project.Project.set_load_balancing | ( | self, | |
| load_balancer_name, | |||
load_balancer_arguments = "" |
|||
| ) |
Set load balancing scheme.
The load balancing scheme controls how subtress are distributed both among ranks and threads, i.e. the instance is important for MPI but also whenever you use any multithreading strategy.
Similar to set_multicore_orchestration(), you have to let the project know about where the load balancing is held. If you rely on the load balancing toolbox and if you have configured Peano with the load balancing toolbox, then simply adding the right eader is sufficient:
If you use a bespoke load balancing, you also have to add the implementation file or hosting library to the project.
| load_balancer_name | string Should be full-qualified name of the load balancer. By default, I recommend to pass "toolbox::loadbalancing::strategies::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 124 of file Project.py.
References exahype2.api.Project.Project._load_balancer_arguments, exaparty.api.Project.Project._load_balancer_arguments, api.Project.Project._load_balancer_arguments, exahype2.api.Project.Project._load_balancer_name, exaparty.api.Project.Project._load_balancer_name, and api.Project.Project._load_balancer_name.
| exahype2.api.Project.Project.set_log_filter_file | ( | self, | |
| file_name | |||
| ) |
Set a log filter file name.
Pass in the empty string, if you don't want the code to use the hard-coded defaults. That is, by default an ExaHyPE2 application searches for a file exahype2.log-filter. Through this call, you can instruct the project to use another filter file.
| file_name | String Name of the log filter file that the application should load on startup. |
Definition at line 159 of file Project.py.
References exahype2.api.Project.Project._log_filter_file.
| exahype2.api.Project.Project.set_multicore_orchestration | ( | self, | |
| value | |||
| ) |
Set orchestration.
The orchestration accepts one value which is a C++ statement. This value has to be a string which creates an orchestration object, i.e. an object of the type tarch::multicore::orchestration::Orchestration, on the heap.
You can either create it directly (in this case you need to add a new), or you can use a factory method such as tarch::multicore::orchestration::StrategyFactory::createDefaultStrategy().
Depending on where you come from, you might have to add the strategy's header file to the project explicitly. By default, the ExaHyPE 2 project only is aware of very few strategies. Here's an example:
| value | C++ expression delivering a new orchestration object on the heap |
Definition at line 191 of file Project.py.
References exahype2.api.Project.Project._multicore_orchestration, and api.Project.Project._multicore_orchestration.
| exahype2.api.Project.Project.set_number_of_threads | ( | self, | |
| value | |||
| ) |
Set number of threads to use.
Pass in number of threads (positive integer) or a string such as "tarch::multicore::Core::UseDefaultNumberOfThreads". Please note that this value is handed through to Peano which in turn passes it on the tarch::multicore::Core::configure(int). It then depends on the multithreading backend if this backend allows you to set the thread count manually. Many backends (such as OpenMP) do not allow this, but require users to use environment variables (or scheduler options) instead.
Definition at line 175 of file Project.py.
References exahype2.api.Project.Project._number_of_threads.
| exahype2.api.Project.Project.set_output_path | ( | self, | |
| path | |||
| ) |
Definition at line 393 of file Project.py.
References exahype2.api.blockstructured.LoadCheckpoint.LoadCheckpoint._output_path, exahype2.api.fv.PlotAsVTKFile.PlotAsVTKFile._output_path, exahype2.api.fv.WriteCheckpoint.WriteCheckpoint._output_path, exahype2.api.Project.Project._output_path, exahype2.api.rkfd4.PlotAsVTKFile.PlotAsVTKFile._output_path, exahype2.api.rkfd4.WriteCheckpoint.WriteCheckpoint._output_path, exaparty.api.Project.Project._output_path, and api.Project.Project._output_path.
| exahype2.api.Project.Project.set_Peano4_installation | ( | self, | |
| src_path, | |||
mode = peano4.api.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.api.output.CompileMode
Definition at line 265 of file Project.py.
References exahype2.api.Project.Project._build_mode, exaparty.api.Project.Project._build_mode, api.Project.Project._build_mode, exahype2.api.Project.Project._Peano_src_directory, exaparty.api.Project.Project._Peano_src_directory, and api.Project.Project._Peano_src_directory.
| exahype2.api.Project.Project.set_step_report_class | ( | self, | |
| class_name | |||
| ) |
Set the C++ class the generated main instantiates to report on steps.
class_name: str Fully qualified C++ class name (e.g. "peano4::DefaultStepReport", the default) of a peano4::RunMultipleSteps::Report subclass. The generated main creates exactly one instance of it, so the class has to be default-constructible. If you pass in anything other than the default, its header is not included automatically - you have to make it visible to the generated main yourself.
Definition at line 234 of file Project.py.
References exahype2.api.Project.Project._step_report_class.
| exahype2.api.Project.Project.set_timeout | ( | self, | |
| value | |||
| ) |
Set timeout value has to be a number greater or equal to zero, this then sets the timeout in seconds after which a node waiting for an MPI message shall quit an shutdown the whole application with an error report.
If zero is passed, this feature is switched off and nodes will wait indefinitely.
Definition at line 221 of file Project.py.
References exahype2.api.Project.Project._timeout.
| exahype2.api.Project.Project.subdirectory | ( | self | ) |
Definition at line 578 of file Project.py.
References exahype2.api.Project.Project._subdirectory, api.Project.Project._subdirectory, peano4.api.datamodel.Model.Model._subdirectory, and peano4.api.Project.Project._subdirectory.
Referenced by peano4.api.output.ActionSet.ActionSet.__generate_header(), peano4.api.output.Observer.Observer.__generate_header(), peano4.api.datamodel.Model.Model.add_cell(), peano4.api.datamodel.Model.Model.add_face(), peano4.api.datamodel.Model.Model.add_global_object(), peano4.api.datamodel.Model.Model.add_vertex(), peano4.api.output.ActionSet.ActionSet.generate(), peano4.api.output.InvokeExternalTool.InvokeExternalTool.generate(), peano4.api.output.Jinja2TemplatedHeaderFile.Jinja2TemplatedHeaderFile.generate(), peano4.api.output.Jinja2TemplatedHeaderImplementationFilePair.Jinja2TemplatedHeaderImplementationFilePair.generate(), peano4.api.output.Jinja2TemplateStringHeaderImplementationFilePair.Jinja2TemplateStringHeaderImplementationFilePair.generate(), peano4.api.output.Observer.Observer.generate(), peano4.api.output.TemplatedHeaderFile.TemplatedHeaderFile.generate(), peano4.api.output.TemplatedHeaderImplementationFilePair.TemplatedHeaderImplementationFilePair.generate(), peano4.api.output.ActionSet.ActionSet.get_cpp_file_name(), peano4.api.output.Observer.Observer.get_cpp_file_name(), and peano4.api.datamodel.DoF.DoF.subnamespace().

|
protected |
Definition at line 77 of file Project.py.
Referenced by api.Project.Project.add_solver().
|
protected |
Definition at line 93 of file Project.py.
Referenced by exahype2.api.Project.Project.additional_includes(), and api.BackupPatchOverlap.BackupPatchOverlap.get_includes().
|
protected |
Definition at line 97 of file Project.py.
Referenced by api.Project.Project.__configure_makefile(), api.Project.Project.__init__(), exaparty.api.Project.Project.generate_Peano4_project(), exahype2.api.Project.Project.set_Peano4_installation(), exaparty.api.Project.Project.set_Peano4_installation(), and api.Project.Project.set_Peano4_installation().
|
protected |
Definition at line 82 of file Project.py.
Referenced by exaparty.api.Project.Project.__configure_makefile(), api.Project.Project.__configure_makefile(), exaparty.api.Project.Project.__export_constants(), api.Project.Project.__export_constants(), exahype2.api.Project.Project.__export_constants(), api.Project.Project.__init__(), solvers.api.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi._construct_narrow_to_interior_matrix(), scenarios.elastic_planar_waves.ElasticPlanarWaves.analytical_solution(), tarch.plotter.api.output.Visualiser.PatchFileData.apply_renderer_to_data(), exahype2.api.dslhype.SyntaxTree.Matrix.index(), scenarios.elastic_planar_waves.ElasticPlanarWaves.initial_conditions(), exahype2.api.dslhype.SyntaxTree.TSimpleMemref.print_mlir(), exahype2.api.dslhype.SyntaxTree.TDataBlock.print_mlir(), exaparty.api.Project.Project.set_global_simulation_parameters(), api.Project.Project.set_global_simulation_parameters(), api.Project.Project.set_global_simulation_parameters(), exahype2.api.Project.Project.set_global_simulation_parameters(), and scenarios.scenario.Scenario.set_global_simulation_parameters().
|
protected |
Definition at line 75 of file Project.py.
Referenced by exahype2.api.Project.Project.generate_Peano4_project().
|
protected |
! Set the global simulation parameters
| dimensions | 2 or 3 |
| offset | [Float] Has to have dimension number of entries. |
| size | [Float} Has to have dimension number of entries and all of them have to be positive. At this point, we strongly suggest that all size entries are exactly the same. While Peano and ExaHyPE do support anisotropic meshes, most compute kernels do not, so working with something else than a square or cube will likely break all numerics. |
| max_end_time | Float If you set it zero (or actually any value smaller than min_end_time), then the code will run until the cell that lags behind the most hits the min time. If you specify a valid max time however, you can stop the sim as soon as the most advanced cell exceeds this threshold. |
There are no plot settings here: when and how often to plot is configured per solver on its plotter, e.g. exahype2.api.fv.PlotAsVTKFile.
Definition at line 80 of file Project.py.
Referenced by exaparty.api.Project.Project.__export_constants(), api.Project.Project.__export_constants(), exahype2.api.Project.Project.__export_constants(), api.Project.Project.__init__(), api.Tree.Tree.__str__(), api.Project.Project.generate_Peano4_project(), exaparty.api.Project.Project.set_global_simulation_parameters(), api.Project.Project.set_global_simulation_parameters(), api.Project.Project.set_global_simulation_parameters(), and exahype2.api.Project.Project.set_global_simulation_parameters().
|
protected |
Definition at line 81 of file Project.py.
Referenced by exaparty.api.Project.Project.__export_constants(), api.Project.Project.__export_constants(), exahype2.api.Project.Project.__export_constants(), api.Project.Project.__init__(), api.Tree.Tree.__str__(), api.Project.Project.generate_Peano4_project(), exaparty.api.Project.Project.real_mesh_size(), exaparty.api.Project.Project.set_global_simulation_parameters(), api.Project.Project.set_global_simulation_parameters(), api.Project.Project.set_global_simulation_parameters(), exahype2.api.Project.Project.set_global_simulation_parameters(), and scenarios.scenario.Scenario.set_global_simulation_parameters().
|
staticprotected |
Definition at line 404 of file Project.py.
|
protected |
Definition at line 454 of file Project.py.
|
protected |
|
protected |
Set GPUs to be used value is a list of integers or the empty list if you want the code to use all GPUs that are visible to a rank.
Definition at line 91 of file Project.py.
Referenced by exahype2.api.Project.Project.set_gpus().
|
protected |
|
protected |
Set load balancing scheme.
The load balancing scheme controls how subtress are distributed both among ranks and threads, i.e. the instance is important for MPI but also whenever you use any multithreading strategy.
Similar to set_multicore_orchestration(), you have to let the project know about where the load balancing is held. If you rely on the load balancing toolbox and if you have configured Peano with the load balancing toolbox, then simply adding the right eader is sufficient:
If you use a bespoke load balancing, you also have to add the implementation file or hosting library to the project.
| load_balancer_name | string Should be full-qualified name of the load balancer. By default, I recommend to pass "toolbox::loadbalancing::strategies::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 85 of file Project.py.
Referenced by exaparty.api.Project.Project.__generate_global_state_files(), api.Project.Project.__init__(), exaparty.api.Project.Project.set_load_balancing(), api.Project.Project.set_load_balancing(), and exahype2.api.Project.Project.set_load_balancing().
|
protected |
Set a log filter file name.
Pass in the empty string, if you don't want the code to use the hard-coded defaults. That is, by default an ExaHyPE2 application searches for a file exahype2.log-filter. Through this call, you can instruct the project to use another filter file.
| file_name | String Name of the log filter file that the application should load on startup. |
Definition at line 87 of file Project.py.
Referenced by exahype2.api.Project.Project.set_log_filter_file().
|
protected |
|
protected |
include <bitset>
include "tarch/la/Vector.h"
include "peano4/utils/Globals.h"
Definition at line 83 of file Project.py.
Referenced by exaparty.api.Project.Project.__export_constants(), exahype2.api.Project.Project.__export_constants(), exaparty.api.Project.Project.set_global_simulation_parameters(), and exahype2.api.Project.Project.set_global_simulation_parameters().
|
protected |
Set orchestration.
The orchestration accepts one value which is a C++ statement. This value has to be a string which creates an orchestration object, i.e. an object of the type tarch::multicore::orchestration::Orchestration, on the heap.
You can either create it directly (in this case you need to add a new), or you can use a factory method such as tarch::multicore::orchestration::StrategyFactory::createDefaultStrategy().
Depending on where you come from, you might have to add the strategy's header file to the project explicitly. By default, the ExaHyPE 2 project only is aware of very few strategies. Here's an example:
| value | C++ expression delivering a new orchestration object on the heap |
Definition at line 89 of file Project.py.
Referenced by exahype2.api.Project.Project.set_multicore_orchestration().
|
protected |
Definition at line 73 of file Project.py.
Referenced by exahype2.api.Project.Project.generate_Peano4_project().
|
protected |
Set number of threads to use.
Pass in number of threads (positive integer) or a string such as "tarch::multicore::Core::UseDefaultNumberOfThreads". Please note that this value is handed through to Peano which in turn passes it on the tarch::multicore::Core::configure(int). It then depends on the multithreading backend if this backend allows you to set the thread count manually. Many backends (such as OpenMP) do not allow this, but require users to use environment variables (or scheduler options) instead.
Definition at line 88 of file Project.py.
Referenced by exahype2.api.Project.Project.set_number_of_threads().
|
protected |
Definition at line 100 of file Project.py.
Referenced by api.Project.Project.__init__(), exahype2.api.blockstructured.LoadCheckpoint.LoadCheckpoint.index_file_name(), exahype2.api.fv.PlotAsVTKFile.PlotAsVTKFile.output_file_prefix(), exahype2.api.fv.WriteCheckpoint.WriteCheckpoint.output_file_prefix(), exahype2.api.rkfd4.PlotAsVTKFile.PlotAsVTKFile.output_file_prefix(), exahype2.api.rkfd4.WriteCheckpoint.WriteCheckpoint.output_file_prefix(), exahype2.api.Project.Project.set_output_path(), exaparty.api.Project.Project.set_output_path(), and api.Project.Project.set_output_path().
|
protected |
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.api.output.CompileMode
Definition at line 96 of file Project.py.
Referenced by api.Project.Project.__configure_makefile(), api.Project.Project.__init__(), exaparty.api.Project.Project.generate_Peano4_project(), exahype2.api.Project.Project.set_Peano4_installation(), exaparty.api.Project.Project.set_Peano4_installation(), and api.Project.Project.set_Peano4_installation().
|
protected |
One boolean per axis (dimensions entries) telling whether the domain is periodic along this axis.
Read-only copy -
Definition at line 99 of file Project.py.
Referenced by exahype2.api.Project.Project.__export_constants(), exahype2.api.Project.Project.periodic_BC(), exaparty.api.Project.Project.set_global_simulation_parameters(), and exahype2.api.Project.Project.set_global_simulation_parameters().
|
protected |
Definition at line 74 of file Project.py.
Referenced by exahype2.api.Project.Project.generate_Peano4_project().
|
protected |
Definition at line 79 of file Project.py.
Referenced by api.Project.Project.__export_constants(), exahype2.api.Project.Project.__export_constants(), api.Project.Project.__init__(), api.Project.Project.__set_solver_repository_dict(), exahype2.api.Project.Project.add_solver(), api.Project.Project.add_solver(), api.Project.Project.add_solver(), and exahype2.api.Project.Project.remove_all_solvers().
|
protected |
Set the C++ class the generated main instantiates to report on steps.
class_name: str Fully qualified C++ class name (e.g. "peano4::DefaultStepReport", the default) of a peano4::RunMultipleSteps::Report subclass. The generated main creates exactly one instance of it, so the class has to be default-constructible. If you pass in anything other than the default, its header is not included automatically - you have to make it visible to the generated main yourself.
Definition at line 92 of file Project.py.
Referenced by exahype2.api.Project.Project.set_step_report_class().
|
protected |
Definition at line 76 of file Project.py.
Referenced by api.Project.Project.__init__(), api.Project.Project.add_solver(), api.Project.Project.add_solver(), peano4.api.Project.Project.add_subproject(), exahype2.api.Project.Project.generate_Peano4_project(), exahype2.api.Project.Project.subdirectory(), api.Project.Project.subdirectory(), peano4.api.datamodel.Model.Model.subdirectory(), and peano4.api.Project.Project.subdirectory().
|
protected |
Set timeout value has to be a number greater or equal to zero, this then sets the timeout in seconds after which a node waiting for an MPI message shall quit an shutdown the whole application with an error report.
If zero is passed, this feature is switched off and nodes will wait indefinitely.
Definition at line 90 of file Project.py.
Referenced by exahype2.api.Project.Project.set_timeout().
| exahype2.api.Project.Project.compiler |
Definition at line 121 of file Project.py.
|
static |
Definition at line 262 of file Project.py.
|
static |
Definition at line 259 of file Project.py.
|
static |
Definition at line 260 of file Project.py.
|
static |
Definition at line 263 of file Project.py.
|
static |
Definition at line 261 of file Project.py.
| exahype2.api.Project.Project.mainfile_generator |
Definition at line 107 of file Project.py.
| exahype2.api.Project.Project.solver_repository_generator |
Definition at line 113 of file Project.py.