xarray-contrib/xarray-simlab

Default simulation setup

Opened this issue · 1 comments

Related to #21

This would be useful to create full, self-contained simulation setups that don't require any user input, e.g., using the %create_setup magic command or later when a command-line interface is available.

xsimlab.Model could provide a default_setup argument that accepts a dictionary with the exact same structure than the xsimlab.create_setup arguments (i.e., clocks, input_vars, output_vars).

If default_setup is provided, then xsimlab.create_setup is called at model creation and the resulting dataset is attached to the new Model object. This dataset could be accessible, e.g., with the Model.default_setup property.

Pros:

This would allow something like:

with model:
    out_ds = (
        model.default_setup
        .xsimlab.update_vars(input_vars={...})
        .xsimlab.run()
    )

Cons:

Default setup would likely break when creating new models with update_processes or drop_processes. It would be tricky to propagate the default setup.