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

ExaHyPE 2 project. More...

Inheritance diagram for exahype2.Project.Project:
Collaboration diagram for exahype2.Project.Project:

Public Member Functions

 __init__ (self, namespace, project_name, executable, directory=".", subdirectory="", abstract_overwrite=True)
 
 set_load_balancing (self, load_balancer_name, load_balancer_arguments="")
 load_balancer_name: string Should be full-qualified name of the load balancer.
 
 set_log_filter_file (self, file_name)
 Set a log filter file name Pass in the empty string, if you want the code to use the hard-coded defaults.
 
 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".
 
 set_multicore_orchestration (self, value)
 Set orchestration value has to be a string which creates an orchestration object, i.e., an object of the type tarch::multicore::orchestration::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_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.output.CompileMode.Release)
 src_path: string Path (relative or absolute) to the src directory of Peano.
 
 add_solver (self, solver)
 
 add_plot_filter (self, offset, size, frequency=1)
 Add a new filter to Peano/ExaHyPE.
 
 remove_all_solvers (self)
 
 set_global_simulation_parameters (self, dimensions, offset, size, min_end_time, first_plot_time_stamp, time_in_between_plots, periodic_BC=[False, False, False], plotter_precision=5, max_end_time=0.0)
 ! Set the global simulation parameters
 
 set_output_path (self, path)
 
 add_mainfile_include (self, value)
 
 add_tracer (self, name, attribute_count=0, plot=True, sort_descend_invocation_order_within_action_sets=-1, plot_descend_invocation_order_within_action_sets=65536)
 Add a tracer to the project.
 
 add_action_set_to_timestepping (self, action_set)
 Add a new action set to the time stepping.
 
 add_action_set_to_plot_solution (self, action_set)
 Add a new action set to the plotting.
 
 add_action_set_to_initialisation (self, action_set)
 
 add_action_set_to_create_grid (self, action_set)
 Add an action set to create grid.
 
 generate_Peano4_project (self, verbose=False)
 Construct a Peano 4 project and return it.
 
 init_new_user_defined_algorithmic_step (self, step)
 Inform ExaHyPE 2 that there is an additional solver step not resulting from vanilla solver versions.
 
 subdirectory (self)
 
 additional_includes (self)
 

Data Fields

 create_grid
 
 init_grid
 
 create_grid_but_postpone_refinement
 
 create_grid_and_converge_lb
 
 plot_solution
 
 perform_time_step
 
 solverRepositoryDictionary
 

Static Public Attributes

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

Protected Attributes

 _project
 
 _subdirectory
 
 _abstract_overwrite
 
 _solvers
 
 _domain_offset
 
 _domain_size
 
 _dimensions
 
 _min_terminal_time
 
 _max_terminal_time
 
 _first_plot_time_stamp
 
 _time_in_between_plots
 
 _load_balancer_name
 
 _load_balancer_arguments
 
 _log_filter_file
 
 _number_of_threads
 
 _multicore_orchestration
 
 _timeout
 
 _gpus
 
 _additional_includes
 
 _Peano_src_directory
 
 _build_mode
 
 _executable_name
 
 _periodic_BC
 
 _plot_filters
 
 _output_path
 
 _plotter_precision
 
 _tracer_particles
 
 _tracer_particle_sets
 

Private Member Functions

 __export_constants (self)
 We export ExaHyPE's constants.
 
 __configure_makefile (self)
 
 __set_solver_repository_dict (self)
 
 __generate_solver_repository (self)
 I have to call finishedTraversal() for each tracer set.
 

Detailed Description

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.

See also
generate_Peano4_project()

Definition at line 14 of file Project.py.

Constructor & Destructor Documentation

◆ __init__()

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

Definition at line 34 of file Project.py.

Member Function Documentation

◆ __configure_makefile()

exahype2.Project.Project.__configure_makefile ( self)
private

◆ __export_constants()

exahype2.Project.Project.__export_constants ( self)
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.

Definition at line 197 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._first_plot_time_stamp, swift2.Project.Project._first_plot_time_stamp, exahype2.Project.Project._max_terminal_time, swift2.Project.Project._max_terminal_time, exahype2.Project.Project._min_terminal_time, swift2.Project.Project._min_terminal_time, exahype2.Project.Project._periodic_BC, swift2.Project.Project._periodic_BC, 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, api.Project.Project._solvers, exahype2.Project.Project._time_in_between_plots, and swift2.Project.Project._time_in_between_plots.

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()

exahype2.Project.Project.__generate_solver_repository ( self)
private

◆ __set_solver_repository_dict()

exahype2.Project.Project.__set_solver_repository_dict ( self)
private

Definition at line 366 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:

◆ add_action_set_to_create_grid()

exahype2.Project.Project.add_action_set_to_create_grid ( self,
action_set )

Add an action set to create grid.

This routine actually adds an action set to each and every grid creation routine. After all, we distinguish three flavours of it

  • with refinement;
  • without refinement as we've just refined or split up domain;
  • without refinement to let load balancing converge.

Definition at line 639 of file Project.py.

References exahype2.Project.Project.create_grid, exahype2.Project.Project.create_grid_and_converge_lb, and exahype2.Project.Project.create_grid_but_postpone_refinement.

◆ add_action_set_to_initialisation()

exahype2.Project.Project.add_action_set_to_initialisation ( self,
action_set )

Definition at line 636 of file Project.py.

References exahype2.Project.Project.init_grid.

◆ add_action_set_to_plot_solution()

exahype2.Project.Project.add_action_set_to_plot_solution ( self,
action_set )

Add a new action set to the plotting.

Definition at line 628 of file Project.py.

References exahype2.Project.Project.plot_solution.

◆ add_action_set_to_timestepping()

exahype2.Project.Project.add_action_set_to_timestepping ( self,
action_set )

Add a new action set to the time stepping.

You have to be careful with the priorities, i.e. you might want to use myproject.perform_time_step.max_priority() or myproject.perform_time_step.min_priority() to find out which priority you should assign to action_set.

Definition at line 615 of file Project.py.

References exahype2.Project.Project.perform_time_step.

◆ add_mainfile_include()

exahype2.Project.Project.add_mainfile_include ( self,
value )

◆ add_plot_filter()

exahype2.Project.Project.add_plot_filter ( self,
offset,
size,
frequency = 1 )

Add a new filter to Peano/ExaHyPE.

offset: (float,float,float)

size: (float,float,float)

frequency: int A positive value. Peano makes snapshots every dt simulation units. This is something you specify once per simulation. But you might decide only to splot every k of these snapshots.

Definition at line 164 of file Project.py.

References exahype2.Project.Project._plot_filters.

◆ add_solver()

exahype2.Project.Project.add_solver ( self,
solver )

Definition at line 161 of file Project.py.

References exahype2.Project.Project._solvers, and api.Project.Project._solvers.

◆ add_tracer()

exahype2.Project.Project.add_tracer ( self,
name,
attribute_count = 0,
plot = True,
sort_descend_invocation_order_within_action_sets = -1,
plot_descend_invocation_order_within_action_sets = 65536 )

Add a tracer to the project.

Tracers have to be the very last thing you add to your project. At this point, all solvers have to be added to the project. However, you have to add the tracers prior to any user-defined routines. See docu of init_new_user_defined_algorithmic_step().

We rely on the particle toolbox. Therefore, our particles have already a position x, a search radius (which we don't usually use here), and a (parallel) state. The search radius determines how Peano sorts particles within the tree, and we can set it to zero here. This ensures that the particle has no real volume and thus is always sieved through to the finest grid level.

See also
peano4.toolbox.particles.Particle

Projection of data onto particles and database dumping

The projection onto the particle has to be realised separately, as it depends on the solver variant chosen. The same holds for the dump of particle data into a database if this shall happen on-the-fly.

Most bigger applications add their solvers an add_tracer() operation, which takes all of this domain knowledge into account. This add_tracer() then forwards to this routine, adding further behaviour.

See the class application.exahype2.ccz.CCZ4Solver and its derived variants for examples.

Moving particles

Tracers in ExaHyPE can move, though they do not have to move. Even if they move, they never have a native velocity, i.e. their velocity will always be a projection of an ExaHyPE solution. We are talking about tracers after all and not about a proper PIC approach. Due to this constraint, we do not need a velocity vector. However, we need an additional enumeration which clarifies if a particle has moved already or not. This enumeration is needed by the particle update routines. Obviously, nothing stops you from adding a separate velocity field to the tracer object and thus to redefine this behaviour.

ExaHyPE-specific particle attributes

We add each particle a number which is a tuple consisting of the tree number (on which tree has a particle been generated plus what was the tree-local number of this particle at the time). Through this tuple, we can track tracers later on even if they move across domains.

We can plot the data - if there is data to be tracked - directly, as it is a large double array. For the index, we have to type cast the data, as this is a tuple of integers, and Peano's VTK plotter supports only double vectors.

See also
peano4.toolbox.particles.PlotParticlesInVTKFormat.add_attribute_to_plot()

Action set order

We add the particle ordering with descend order -1. This should do the job for most setups, but we might be wrong. The following action sets are automatically added:

Both action sets are assigned the standard priority of sort_descend_invocation_order_within_action_sets.

Arguments

name: String Has to be a unique name for this tracer

attribute_count: integer Number of attributes that we track per particle (scalar values added pre particle). Can be 0 if you don't want any attributes.

h and noise: See tracer.InsertParticles

plot: Boolean If this flag is set, ExaHyPE dumps the particles as vtu files whenever it writes patch files. You can switch this behaviour off. A lot of codes do so if they dump the tracer data independently into another database anyway.

sort_descend_invocation_order_within_action_sets: Integer You have to clarify what the priority of the tracer is within the action sets. By default, all ExaHyPE solvers start with priority 0 and then up to n. So you are fine with using the default of -1 which means that the tracer precedes any solver. However, there might be cases where you wanna move the priorities manually.

Returns the particle set that you can use to modify further

Definition at line 414 of file Project.py.

References exahype2.Project.Project._project, peano4.solversteps.Steps.Steps._project, swift2.Project.Project._project, api.Project.Project._project, exahype2.Project.Project._tracer_particle_sets, exahype2.Project.Project._tracer_particles, exahype2.Project.Project.create_grid, exahype2.Project.Project.create_grid_and_converge_lb, exahype2.Project.Project.create_grid_but_postpone_refinement, exahype2.Project.Project.init_grid, exahype2.Project.Project.perform_time_step, and exahype2.Project.Project.plot_solution.

◆ additional_includes()

exahype2.Project.Project.additional_includes ( self)

Definition at line 770 of file Project.py.

References exahype2.Project.Project._additional_includes, and peano4.toolbox.blockstructured.BackupPatchOverlap.BackupPatchOverlap._additional_includes.

Referenced by peano4.toolbox.blockstructured.DynamicAMR.DynamicAMR.get_includes(), peano4.toolbox.blockstructured.PlotPatchesInPeanoBlockFormat.PlotPatchesInPeanoBlockFormat.get_includes(), peano4.toolbox.blockstructured.PlotPatchesOverFacesInPeanoBlockFormat.PlotPatchesOverFacesInPeanoBlockFormat.get_includes(), peano4.toolbox.blockstructured.ProjectPatchOntoFaces.ProjectPatchOntoFaces.get_includes(), peano4.toolbox.multigrid.cellbased.ScalarJacobiWithRediscretisation.ScalarJacobiWithRediscretisation.get_includes(), peano4.toolbox.multigrid.MatrixFreeJacobi.MatrixFreeJacobi.get_includes(), peano4.toolbox.multigrid.vertexbased.ScalarJacobiWithRediscretisation.ScalarJacobiWithRediscretisation.get_includes(), peano4.toolbox.particles.InsertParticlesAlongCartesianLayoutIntoUnrefinedCells.InsertParticlesAlongCartesianLayoutIntoUnrefinedCells.get_includes(), peano4.toolbox.particles.InsertParticlesByCoordinates.InsertParticlesByCoordinates.get_includes(), peano4.toolbox.particles.InsertRandomParticlesIntoUnrefinedCells.InsertRandomParticlesIntoUnrefinedCells.get_includes(), peano4.toolbox.particles.PlotParticlesInVTKFormat.PlotParticlesInVTKFormat.get_includes(), peano4.toolbox.PlotCellDataInPeanoBlockFormat.PlotCellDataInPeanoBlockFormat.get_includes(), peano4.toolbox.PlotGridInPeanoBlockFormat.PlotGridInPeanoBlockFormat.get_includes(), and peano4.toolbox.PlotVertexDataInPeanoBlockFormat.PlotVertexDataInPeanoBlockFormat.get_includes().

Here is the caller graph for this function:

◆ generate_Peano4_project()

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

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 project is built within self._project and eventually returned.

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

Definition at line 656 of file Project.py.

References exahype2.Project.Project.__configure_makefile(), swift2.Project.Project.__configure_makefile(), api.Project.Project.__configure_makefile(), exahype2.Project.Project.__export_constants(), swift2.Project.Project.__export_constants(), api.Project.Project.__export_constants(), exahype2.Project.Project.__generate_solver_repository(), api.Project.Project.__generate_solver_repository(), exahype2.Project.Project._abstract_overwrite, api.Project.Project._abstract_overwrite, 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._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, exahype2.Project.Project.create_grid, exahype2.Project.Project.create_grid_and_converge_lb, exahype2.Project.Project.create_grid_but_postpone_refinement, exahype2.Project.Project.init_grid, exahype2.Project.Project.perform_time_step, and exahype2.Project.Project.plot_solution.

Here is the call graph for this function:

◆ init_new_user_defined_algorithmic_step()

exahype2.Project.Project.init_new_user_defined_algorithmic_step ( self,
step )

Inform ExaHyPE 2 that there is an additional solver step not resulting from vanilla solver versions.

Use this routine whenever you have created your own algorithmic step. Please note that the routine should be called after you have created all of your solvers. Otherwise, we'll miss out a few of your solvers and the data access patterns will/might be corrupted. Also all tracers have to be added at this point already.

The routine has no side-effects, i.e. does not alter the underlying project. It only manipulates the step. Therefore, you can even call it after you have distilled the Peano project from the ExaHyPE project, i.e. after you have called exahype2.Project.generate_Peano4_project(). In return, you however still have to add the new step manually to the Peano project. That is, this routine merely initialises the new step, but it does not yet add it to the sweeps known by Peano.

Parameters
steppeano4.solversteps.Step

Definition at line 736 of file Project.py.

References exahype2.Project.Project._solvers, api.Project.Project._solvers, and exahype2.Project.Project._tracer_particle_sets.

◆ remove_all_solvers()

◆ set_global_simulation_parameters()

exahype2.Project.Project.set_global_simulation_parameters ( self,
dimensions,
offset,
size,
min_end_time,
first_plot_time_stamp,
time_in_between_plots,
periodic_BC = [False, False, False],
plotter_precision = 5,
max_end_time = 0.0 )

! Set the global simulation parameters

Parameters
dimensions2 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.
first_plot_time_stampFloat Is irrelevant if time_in_between_plots equals zero
time_in_between_plotsFloat Set to zero if you don't want to have any plots
max_end_timeFloat 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.

Definition at line 292 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._first_plot_time_stamp, swift2.Project.Project._first_plot_time_stamp, exahype2.Project.Project._max_terminal_time, swift2.Project.Project._max_terminal_time, exahype2.Project.Project._min_terminal_time, swift2.Project.Project._min_terminal_time, exahype2.Project.Project._periodic_BC, swift2.Project.Project._periodic_BC, exahype2.Project.Project._plotter_precision, swift2.Project.Project._plotter_precision, api.Project.Project._plotter_precision, exahype2.Project.Project._time_in_between_plots, and swift2.Project.Project._time_in_between_plots.

◆ set_gpus()

exahype2.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 132 of file Project.py.

References exahype2.Project.Project._gpus.

◆ set_load_balancing()

exahype2.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::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 75 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_log_filter_file()

exahype2.Project.Project.set_log_filter_file ( self,
file_name )

Set a log filter file name Pass in the empty string, if you want the code to use the hard-coded defaults.

Definition at line 92 of file Project.py.

References exahype2.Project.Project._log_filter_file.

◆ set_multicore_orchestration()

exahype2.Project.Project.set_multicore_orchestration ( self,
value )

Set orchestration value has to be a string which creates an orchestration object, i.e., an object of the type tarch::multicore::orchestration::Orchestration.

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()".

Definition at line 108 of file Project.py.

References exahype2.Project.Project._multicore_orchestration.

◆ set_number_of_threads()

exahype2.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".

Definition at line 100 of file Project.py.

References exahype2.Project.Project._number_of_threads.

◆ set_output_path()

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

◆ set_Peano4_installation()

exahype2.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 149 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_timeout()

exahype2.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 119 of file Project.py.

References exahype2.Project.Project._timeout.

◆ subdirectory()

Field Documentation

◆ _abstract_overwrite

exahype2.Project.Project._abstract_overwrite
protected

◆ _additional_includes

◆ _build_mode

◆ _dimensions

◆ _domain_offset

◆ _domain_size

◆ _executable_name

◆ _first_plot_time_stamp

◆ _gpus

exahype2.Project.Project._gpus
protected

Definition at line 53 of file Project.py.

Referenced by exahype2.Project.Project.set_gpus().

◆ _load_balancer_arguments

◆ _load_balancer_name

◆ _log_filter_file

exahype2.Project.Project._log_filter_file
protected

Definition at line 49 of file Project.py.

Referenced by exahype2.Project.Project.set_log_filter_file().

◆ _max_terminal_time

◆ _min_terminal_time

◆ _multicore_orchestration

exahype2.Project.Project._multicore_orchestration
protected

Definition at line 51 of file Project.py.

Referenced by exahype2.Project.Project.set_multicore_orchestration().

◆ _number_of_threads

exahype2.Project.Project._number_of_threads
protected

Definition at line 50 of file Project.py.

Referenced by exahype2.Project.Project.set_number_of_threads().

◆ _output_path

◆ _Peano_src_directory

◆ _periodic_BC

◆ _plot_filters

exahype2.Project.Project._plot_filters
protected

Definition at line 61 of file Project.py.

Referenced by exahype2.Project.Project.add_plot_filter().

◆ _plotter_precision

◆ _project

◆ _solvers

◆ _subdirectory

◆ _time_in_between_plots

◆ _timeout

exahype2.Project.Project._timeout
protected

Definition at line 52 of file Project.py.

Referenced by exahype2.Project.Project.set_timeout().

◆ _tracer_particle_sets

exahype2.Project.Project._tracer_particle_sets
protected

◆ _tracer_particles

exahype2.Project.Project._tracer_particles
protected

Definition at line 64 of file Project.py.

Referenced by exahype2.Project.Project.add_tracer().

◆ create_grid

◆ create_grid_and_converge_lb

exahype2.Project.Project.create_grid_and_converge_lb

◆ create_grid_but_postpone_refinement

exahype2.Project.Project.create_grid_but_postpone_refinement

◆ init_grid

◆ LibraryAsserts

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

Definition at line 146 of file Project.py.

◆ LibraryDebug

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

Definition at line 143 of file Project.py.

◆ LibraryRelease

str exahype2.Project.Project.LibraryRelease = ""
static

Definition at line 144 of file Project.py.

◆ LibraryStats

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

Definition at line 147 of file Project.py.

◆ LibraryTrace

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

Definition at line 145 of file Project.py.

◆ perform_time_step

◆ plot_solution

◆ solverRepositoryDictionary

exahype2.Project.Project.solverRepositoryDictionary

Definition at line 367 of file Project.py.

Referenced by exahype2.Project.Project.__generate_solver_repository().


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