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, first_checkpoint_time_stamp=0.0, time_in_between_checkpoints=0.0)
 !
 set_restart_from_checkpoint (self, expected_restart_timestamp=0, checkpoint_path="./")
 set checkpointing.
 set_output_path (self, path)
 add_mainfile_include (self, value)
 Add a new include file to the main file (but also to the solver repository)
 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_checkpoint_solution (self, action_set)
 Add a new action set to the checkpointing.
 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 = peano4.solversteps.Step("CreateGrid", False)
 init_grid = peano4.solversteps.Step("InitGrid", False)
 create_grid_but_postpone_refinement = peano4.solversteps.Step("CreateGridButPostponeRefinement", False)
 create_grid_and_converge_lb = peano4.solversteps.Step("CreateGridAndConvergeLoadBalancing", False)
 plot_solution = peano4.solversteps.Step("PlotSolution", False)
 checkpoint_solution = peano4.solversteps.Step("CheckpointSolution", False)
 perform_time_step = peano4.solversteps.Step("TimeStep", False)
dict solverRepositoryDictionary

Static Public Attributes

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

Protected Attributes

 _project = peano4.Project(namespace, project_name, directory, subdirectory)
 _subdirectory = subdirectory
bool _abstract_overwrite = abstract_overwrite
list _solvers = []
list _domain_offset = [0.0, 0.0, 0.0]
list _domain_size = [1.0, 1.0, 1.0]
int _dimensions = 3
float _min_terminal_time = 1.0
float _max_terminal_time = 0.0
float _first_plot_time_stamp = 0.0
float _time_in_between_plots = 0.1
float _first_checkpoint_time_stamp = 0.0
float _time_in_between_checkpoints = 0.0
str _load_balancer_name = ""
str _load_balancer_arguments = ""
str _log_filter_file = "exahype.log-filter"
str _number_of_threads = "tarch::multicore::Core::UseDefaultNumberOfThreads"
str _multicore_orchestration = "tarch::multicore::orchestration::createDefaultStrategy()"
int _timeout = 3600
list _gpus = []
list _additional_includes
str _Peano_src_directory = "."
 _build_mode = peano4.output.CompileMode.Asserts
 _executable_name = executable
list _periodic_BC = [False, False, False]
list _plot_filters = []
str _output_path = "./"
int _plotter_precision = 5
list _tracer_particles = []
list _tracer_particle_sets = []
bool _restart_from_checkpoint = False
int _restart_timestamp = 0
str _checkpoint_path = "./"
list _solvers_file_collection = []

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

◆ __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 206 of file Project.py.

References api.Project.Project._dimensions, convert::input::PeanoTextPatchFileReader._dimensions, exahype2.kerneldsl.SyntaxTree.MemoryAllocation._dimensions, exahype2.kerneldsl.SyntaxTree.MemoryDeallocation._dimensions, exahype2.kerneldsl.SyntaxTree.TDataBlock._dimensions, _dimensions, solvers.api.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi._dimensions, solvers.api.DiscontinuousGalerkinDiscretisationPointWiseRiemannSolver.DiscontinuousGalerkinDiscretisationPointWiseRiemannSolver._dimensions, tarch::plotter::griddata::blockstructured::PeanoHDF5PatchFileWriter._dimensions, tarch::plotter::griddata::blockstructured::PeanoTextPatchFileWriter._dimensions, api.Project.Project._domain_offset, api.Tree.Tree._domain_offset, _domain_offset, api.Project.Project._domain_size, api.Tree.Tree._domain_size, _domain_size, _first_checkpoint_time_stamp, _first_plot_time_stamp, _max_terminal_time, _min_terminal_time, _periodic_BC, api.Project.Project._plotter_precision, _plotter_precision, api.Project.Project._project, _project, _restart_from_checkpoint, _restart_timestamp, api.Project.Project._solvers, _solvers, _solvers_file_collection, _time_in_between_checkpoints, and _time_in_between_plots.

Referenced by 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

I have to call finishedTraversal() for each tracer set.

As tracers are a subclass of DoF, they have a name property.

Definition at line 494 of file Project.py.

References api.Project.Project.__set_solver_repository_dict(), __set_solver_repository_dict(), api.Project.Project._project, _project, api.Project.Project._solvers, _solvers, and solverRepositoryDictionary.

Referenced by generate_Peano4_project().

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

◆ __set_solver_repository_dict()

exahype2.Project.Project.__set_solver_repository_dict ( self)
private

Definition at line 479 of file Project.py.

Referenced by __generate_solver_repository().

Here is the caller graph for this function:

◆ add_action_set_to_checkpoint_solution()

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

Add a new action set to the checkpointing.

Definition at line 754 of file Project.py.

References checkpoint_solution.

◆ 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 765 of file Project.py.

References create_grid, create_grid_and_converge_lb, and create_grid_but_postpone_refinement.

◆ add_action_set_to_initialisation()

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

Definition at line 762 of file Project.py.

References 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 746 of file Project.py.

References 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 733 of file Project.py.

References perform_time_step.

◆ add_mainfile_include()

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

Add a new include file to the main file (but also to the solver repository)

The name is slightly misleading. As ExaHyPE's code generation never overwrites a mainfile by a user, the includes actually go into the solver repository rather than the main file.

Parameters
valueString The value is the actual content within the include, i.e. if you pass in "abc.h", then the code will insert
#include "abc.h"

into the repository file. There is no need to add the include statement.

Definition at line 457 of file Project.py.

References _additional_includes.

◆ 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 173 of file Project.py.

References _plot_filters.

◆ add_solver()

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

Definition at line 170 of file Project.py.

References api.Project.Project._solvers, and _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 527 of file Project.py.

References api.Project.Project._project, _project, _tracer_particle_sets, _tracer_particles, checkpoint_solution, create_grid, create_grid_and_converge_lb, create_grid_but_postpone_refinement, init_grid, perform_time_step, and plot_solution.

◆ additional_includes()

exahype2.Project.Project.additional_includes ( self)

Definition at line 908 of file Project.py.

References _additional_includes.

◆ 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 782 of file Project.py.

References api.Project.Project.__configure_makefile(), __configure_makefile(), api.Project.Project.__export_constants(), __export_constants(), api.Project.Project.__generate_solver_repository(), __generate_solver_repository(), api.Project.Project._abstract_overwrite, _abstract_overwrite, api.Project.Project._build_mode, _build_mode, api.Project.Project._dimensions, convert::input::PeanoTextPatchFileReader._dimensions, exahype2.kerneldsl.SyntaxTree.MemoryAllocation._dimensions, exahype2.kerneldsl.SyntaxTree.MemoryDeallocation._dimensions, exahype2.kerneldsl.SyntaxTree.TDataBlock._dimensions, _dimensions, solvers.api.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi._dimensions, solvers.api.DiscontinuousGalerkinDiscretisationPointWiseRiemannSolver.DiscontinuousGalerkinDiscretisationPointWiseRiemannSolver._dimensions, tarch::plotter::griddata::blockstructured::PeanoHDF5PatchFileWriter._dimensions, tarch::plotter::griddata::blockstructured::PeanoTextPatchFileWriter._dimensions, _first_checkpoint_time_stamp, api.Project.Project._output_path, _output_path, api.Project.Project._Peano_src_directory, _Peano_src_directory, api.Project.Project._project, _project, _restart_from_checkpoint, api.Project.Project._solvers, _solvers, api.Project.Project._subdirectory, _subdirectory, _time_in_between_checkpoints, checkpoint_solution, create_grid, create_grid_and_converge_lb, create_grid_but_postpone_refinement, init_grid, perform_time_step, and 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 874 of file Project.py.

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

◆ remove_all_solvers()

exahype2.Project.Project.remove_all_solvers ( self)

◆ 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,
first_checkpoint_time_stamp = 0.0,
time_in_between_checkpoints = 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 338 of file Project.py.

References api.Project.Project._dimensions, convert::input::PeanoTextPatchFileReader._dimensions, exahype2.kerneldsl.SyntaxTree.MemoryAllocation._dimensions, exahype2.kerneldsl.SyntaxTree.MemoryDeallocation._dimensions, exahype2.kerneldsl.SyntaxTree.TDataBlock._dimensions, _dimensions, solvers.api.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi.ContinuousGalerkinDiscretisationGaussLobattoWithBlockJacobi._dimensions, solvers.api.DiscontinuousGalerkinDiscretisationPointWiseRiemannSolver.DiscontinuousGalerkinDiscretisationPointWiseRiemannSolver._dimensions, tarch::plotter::griddata::blockstructured::PeanoHDF5PatchFileWriter._dimensions, tarch::plotter::griddata::blockstructured::PeanoTextPatchFileWriter._dimensions, api.Project.Project._domain_offset, api.Tree.Tree._domain_offset, _domain_offset, api.Project.Project._domain_size, api.Tree.Tree._domain_size, _domain_size, _first_checkpoint_time_stamp, _first_plot_time_stamp, _max_terminal_time, _min_terminal_time, _periodic_BC, api.Project.Project._plotter_precision, _plotter_precision, api.Project.Project._project, _project, _time_in_between_checkpoints, and _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 141 of file Project.py.

References _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 84 of file Project.py.

References api.Project.Project._load_balancer_arguments, _load_balancer_arguments, api.Project.Project._load_balancer_name, and _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 101 of file Project.py.

References _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 117 of file Project.py.

References api.Project.Project._multicore_orchestration, and _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 109 of file Project.py.

References _number_of_threads.

◆ set_output_path()

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

Definition at line 447 of file Project.py.

References api.Project.Project._output_path, and _output_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 158 of file Project.py.

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

◆ set_restart_from_checkpoint()

exahype2.Project.Project.set_restart_from_checkpoint ( self,
expected_restart_timestamp = 0,
checkpoint_path = "./" )

set checkpointing.

The function accept the corresponding peano patch file and create corresponding arrays recording the checkpoint file names.

Parameters
restart_timestampfloat targeting restart timestamp, the function will find the first checkpointed timestamp right after this input time. Thus the final restarting timestamp may not be equal to this specified time.
checkpoint_filestring the location of the checkpoint meta-file

Definition at line 410 of file Project.py.

References _checkpoint_path, _restart_from_checkpoint, _restart_timestamp, api.Project.Project._solvers, _solvers, and _solvers_file_collection.

◆ 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 128 of file Project.py.

References _timeout.

◆ subdirectory()

exahype2.Project.Project.subdirectory ( self)

Definition at line 904 of file Project.py.

References api.Project.Project._subdirectory, and _subdirectory.

Field Documentation

◆ _abstract_overwrite

bool exahype2.Project.Project._abstract_overwrite = abstract_overwrite
protected

Definition at line 37 of file Project.py.

Referenced by generate_Peano4_project().

◆ _additional_includes

list exahype2.Project.Project._additional_includes
protected
Initial value:
= [ "tarch/logging/LogFilterFileReader.h",
"tarch/accelerator/Device.h"
]

Definition at line 56 of file Project.py.

Referenced by add_mainfile_include(), additional_includes(), and peano4.toolbox.blockstructured.BackupPatchOverlap.BackupPatchOverlap.get_includes().

◆ _build_mode

exahype2.Project.Project._build_mode = peano4.output.CompileMode.Asserts
protected

◆ _checkpoint_path

str exahype2.Project.Project._checkpoint_path = "./"
protected

Definition at line 71 of file Project.py.

Referenced by set_restart_from_checkpoint().

◆ _dimensions

◆ _domain_offset

exahype2.Project.Project._domain_offset = [0.0, 0.0, 0.0]
protected

◆ _domain_size

◆ _executable_name

exahype2.Project.Project._executable_name = executable
protected

Definition at line 61 of file Project.py.

Referenced by __configure_makefile(), and swift2.Project.Project.__configure_makefile().

◆ _first_checkpoint_time_stamp

exahype2.Project.Project._first_checkpoint_time_stamp = 0.0
protected

◆ _first_plot_time_stamp

exahype2.Project.Project._first_plot_time_stamp = 0.0
protected

◆ _gpus

list exahype2.Project.Project._gpus = []
protected

Definition at line 55 of file Project.py.

Referenced by set_gpus().

◆ _load_balancer_arguments

str exahype2.Project.Project._load_balancer_arguments = ""
protected

◆ _load_balancer_name

str exahype2.Project.Project._load_balancer_name = ""
protected

◆ _log_filter_file

str exahype2.Project.Project._log_filter_file = "exahype.log-filter"
protected

Definition at line 51 of file Project.py.

Referenced by set_log_filter_file().

◆ _max_terminal_time

exahype2.Project.Project._max_terminal_time = 0.0
protected

◆ _min_terminal_time

exahype2.Project.Project._min_terminal_time = 1.0
protected

◆ _multicore_orchestration

str exahype2.Project.Project._multicore_orchestration = "tarch::multicore::orchestration::createDefaultStrategy()"
protected

Definition at line 53 of file Project.py.

Referenced by set_multicore_orchestration().

◆ _number_of_threads

str exahype2.Project.Project._number_of_threads = "tarch::multicore::Core::UseDefaultNumberOfThreads"
protected

Definition at line 52 of file Project.py.

Referenced by set_number_of_threads().

◆ _output_path

exahype2.Project.Project._output_path = "./"
protected

◆ _Peano_src_directory

str exahype2.Project.Project._Peano_src_directory = "."
protected

◆ _periodic_BC

exahype2.Project.Project._periodic_BC = [False, False, False]
protected

◆ _plot_filters

list exahype2.Project.Project._plot_filters = []
protected

Definition at line 63 of file Project.py.

Referenced by add_plot_filter().

◆ _plotter_precision

exahype2.Project.Project._plotter_precision = 5
protected

◆ _project

◆ _restart_from_checkpoint

◆ _restart_timestamp

exahype2.Project.Project._restart_timestamp = 0
protected

Definition at line 70 of file Project.py.

Referenced by __export_constants(), and set_restart_from_checkpoint().

◆ _solvers

◆ _solvers_file_collection

list exahype2.Project.Project._solvers_file_collection = []
protected

Definition at line 72 of file Project.py.

Referenced by __export_constants(), and set_restart_from_checkpoint().

◆ _subdirectory

◆ _time_in_between_checkpoints

exahype2.Project.Project._time_in_between_checkpoints = 0.0
protected

◆ _time_in_between_plots

exahype2.Project.Project._time_in_between_plots = 0.1
protected

◆ _timeout

int exahype2.Project.Project._timeout = 3600
protected

Definition at line 54 of file Project.py.

Referenced by set_timeout().

◆ _tracer_particle_sets

list exahype2.Project.Project._tracer_particle_sets = []
protected

Definition at line 67 of file Project.py.

Referenced by add_tracer(), and init_new_user_defined_algorithmic_step().

◆ _tracer_particles

list exahype2.Project.Project._tracer_particles = []
protected

Definition at line 66 of file Project.py.

Referenced by add_tracer().

◆ checkpoint_solution

exahype2.Project.Project.checkpoint_solution = peano4.solversteps.Step("CheckpointSolution", False)

◆ create_grid

exahype2.Project.Project.create_grid = peano4.solversteps.Step("CreateGrid", False)

Definition at line 75 of file Project.py.

Referenced by add_action_set_to_create_grid(), add_tracer(), and generate_Peano4_project().

◆ create_grid_and_converge_lb

exahype2.Project.Project.create_grid_and_converge_lb = peano4.solversteps.Step("CreateGridAndConvergeLoadBalancing", False)

Definition at line 78 of file Project.py.

Referenced by add_action_set_to_create_grid(), add_tracer(), and generate_Peano4_project().

◆ create_grid_but_postpone_refinement

exahype2.Project.Project.create_grid_but_postpone_refinement = peano4.solversteps.Step("CreateGridButPostponeRefinement", False)

Definition at line 77 of file Project.py.

Referenced by add_action_set_to_create_grid(), add_tracer(), and generate_Peano4_project().

◆ init_grid

exahype2.Project.Project.init_grid = peano4.solversteps.Step("InitGrid", False)

◆ LibraryAsserts

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

Definition at line 155 of file Project.py.

◆ LibraryDebug

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

Definition at line 152 of file Project.py.

◆ LibraryRelease

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

Definition at line 153 of file Project.py.

◆ LibraryStats

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

Definition at line 156 of file Project.py.

◆ LibraryTrace

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

Definition at line 154 of file Project.py.

◆ perform_time_step

exahype2.Project.Project.perform_time_step = peano4.solversteps.Step("TimeStep", False)

Definition at line 81 of file Project.py.

Referenced by add_action_set_to_timestepping(), add_tracer(), and generate_Peano4_project().

◆ plot_solution

exahype2.Project.Project.plot_solution = peano4.solversteps.Step("PlotSolution", False)

Definition at line 79 of file Project.py.

Referenced by add_action_set_to_plot_solution(), add_tracer(), and generate_Peano4_project().

◆ solverRepositoryDictionary

dict exahype2.Project.Project.solverRepositoryDictionary
Initial value:
= {
"SOLVERS": [],
"LOAD_BALANCER": self._load_balancer_name,
"LOAD_BALANCER_ARGUMENTS": self._load_balancer_arguments,
"PLOT_FILTER": self._plot_filters,
"TRACERS": [x.name for x in self._tracer_particles],
"LOG_FILTER_FILE": self._log_filter_file,
"NUMBER_OF_THREADS": self._number_of_threads,
"MULTICORE_ORCHESTRATION": self._multicore_orchestration,
"TIMEOUT": self._timeout,
"GPUS": self._gpus,
"ADDITIONAL_INCLUDES": self._additional_includes,
}

Definition at line 480 of file Project.py.

Referenced by __generate_solver_repository().


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