SimulationPlanner#

class hydromodpy.simulation.SimulationPlanner[source]#

Bases: object

Validate simulation config and emit concrete runnable units.

build(config)[source]#

Convert config into a validated ordered SimulationPlan.

The planner performs four key tasks: :rtype: SimulationPlan

  • preserve the user-declared process order instead of re-sorting runs,

  • expand one process entry into one ProcessRun per solver,

  • verify uniqueness of both process ids and concrete run ids,

  • resolve each required dependency to a previously planned run.

Example#

If the user declares:

  • mesh_main with type="mesh", backend="catchment"

  • flow_main with solvers=["modflow_nwt"]

  • transport_main with solvers=["modpath", "mt3dms"]

then the planner emits four ordered runs:

  • mesh_main::catchment

  • flow_main::modflow_nwt

  • transport_main::modpath

  • transport_main::mt3dms

and each transport run is bound to the earlier compatible flow run required by the solver compatibility rules.

param config:

type config:

SimulationConfig

Parameters:

config (SimulationConfig)

Return type:

SimulationPlan