picongpu.pypicongpu
internal representation of params to generate PIConGPU input files
Submodules
- picongpu.pypicongpu.customuserinput
- picongpu.pypicongpu.grid
- picongpu.pypicongpu.laser
- picongpu.pypicongpu.movingwindow
- picongpu.pypicongpu.output
- picongpu.pypicongpu.rendering
- picongpu.pypicongpu.runner
- picongpu.pypicongpu.simulation
- picongpu.pypicongpu.solver
- picongpu.pypicongpu.species
- picongpu.pypicongpu.util
Classes
Represents all parameters required to build & run a PIConGPU simulation. |
|
Accepts a PyPIConGPU Simulation and runs it |
Package Contents
- class picongpu.pypicongpu.Simulation
Bases:
picongpu.pypicongpu.rendering.RenderedObject
Represents all parameters required to build & run a PIConGPU simulation.
Most of the individual parameters are delegated to other objects held as attributes.
To run a Simulation object pass it to the Runner (for details see there).
- delta_t_si
Width of a single timestep, given in seconds.
- time_steps
Total number of time steps to be executed.
- grid
Used grid Object
- laser
Used (gaussian) Laser
- solver
Used Solver
- init_manager
init manager holding all species & their information
- typical_ppc
typical number of macro particles spawned per cell, >=1
used for normalization of units
- custom_user_input
object that contains additional user specified input parameters to be used in custom templates
@attention custom user input is global to the simulation
- moving_window
used moving Window, set to None to disable
- __hash__()
custom hash function for indexing in dicts
- get_rendering_context() dict | None
get rendering context representation of this object
delegates work to _get_serialized and invokes checks performed by check_context_for_type(). :raise ValidationError: on schema violation :raise RuntimeError: on schema not found :return: self as rendering context
- static check_context_for_type(type_to_check: type, context: dict | None) None
check if the given context is valid for the given type
Raises on error, passes silently if okay.
- Raises:
ValidationError – on schema violation
RuntimeError – on schema not found
- class picongpu.pypicongpu.Runner(sim, pypicongpu_template_dir: str | None = None, scratch_dir: str | None = None, setup_dir: str | None = None, run_dir: str | None = None)
Accepts a PyPIConGPU Simulation and runs it
Manages 2 basic parts:
where which data is stored (various
..._dir
options)what is done (generate, build, run)
Where:
scratch_dir: (optional) directory where many simulation results can be stored
run_dir: directory where data for an execution is stored
setup_dir: directory where data is generated to and the simulation executable is built
These dirs are either copied from params or guessed. See __init__() for a detailed description.
The initialization of the dirs happens only once (!) inside __init__(). Any changes performed after that will be accepted and might lead to broken builds.
What:
generate(): create a setup (directory) which represents the parameters given
build(): run pic-build
run(): run tbg
Typically these can only be performed in that order, and each once. Whether a step can be started is determined by some sanity checks: Are the inputs (e.g. the setup dir, the
.build
dir) ready, and is the output location empty (e.g. the run dir). If those sanity checks pass, the respective process is launched. If this launched program (e.g. pic-build) fails, the process output (stdout & stderr) is printed. While a process is running, all output is silenced (and collected into an internal buffer).- SCRATCH_ENV_NAME = 'SCRATCH'
name of the environment variable where the scratch dir defaults to
- setup_dir
directory containing the experiment setup (scenario)
pic-build is called here
- scratch_dir
directory where run directories can be store
- run_dir
directory where run results (and a copy of the inputs) will be stored
- sim
the picongpu simulation to be run
- generate(printDirToConsole=False)
generate the picongpu-compatible input files
- build()
build (compile) picongpu-compatible input files
- run()
run compiled picongpu simulation