You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/workflow1_framework.rst
+8-5Lines changed: 8 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,20 +11,23 @@ XSO was developed as the technical foundation of the `Phydra library <https://gi
11
11
Building blocks
12
12
===============
13
13
14
-
The XSO framework is built around these concepts:
14
+
The XSO framework is built around the following concepts:
15
15
16
16
* Model data (setup and output)
17
17
* Model objects
18
18
* Components
19
19
* Variable types
20
20
21
-
The XSO framework provides several *variable types*, which directly correspond to the basic terms of models based on ordinary differential equations, e.g., state variables, parameters, forcing, and mathematical terms (here called *fluxes*) building the system of equations.
21
+
The XSO framework provides several *variable types*, which directly correspond state variables, parameters, forcing, and mathematical terms (here called *fluxes*), that together build the system of equations.
22
22
23
-
Every aspect of the model needs to be defined at the level of *variable types*. Model *components* can be flexibly constructed from the provided set of *variable types* and wrap a logical component of the model as users see fit. These components can then be modularly assembled to a *model object*, which defines the model structure.
23
+
Model *components* can be constructed as compact Python classes from the provided set of *variable types* and wrap a logical component of the model as the user sees fit.
24
24
25
-
The *model object* is then used to create a *model setup* dataset, which contains all relevant information needed at runtime, such as the solver algorithm to be used, as well as time steps and model parameterization. With both the *model object* and the corresponding *model setup*, the model can be exectued. Output is returned as an Xarray dataset with all metadata, which can be easily stored and shared.
25
+
One or more of these *components* can then be assembled to a *model object*, which defines the model structure. Components can interact with each other via the *variable types* and the labels supplied at *model setup*.
26
+
27
+
The *model setup* dataset contains all relevant information needed at runtime, such as the solver algorithm to be used, as well as time steps and model parameterization. State variables, forcing and parameters need to be initialized in one *component*, but can be referenced across the model (using the :code:`foreign=True` argument). The system of differential equations is constructed from the *fluxes* contained in the model *components* via the supplied labels at model setup.
28
+
29
+
With both the *model object* and the corresponding *model setup*, the model can be executed. Both *model setup* and the output is returned as an Xarray dataset with all metadata, which can be easily stored and shared.
26
30
27
-
State variables, forcing and parameters need to be initialized in one *component*, but can be referenced across the model (using the :code:`foreign=True` argument). The system of differential equations is constructed from the *fluxes* contained in the model *components* via the supplied labels at model setup.
0 commit comments