1 Solver
Solver()
Defines the numerical solver options.
For more details see https://docs.sciml.ai/DiffEqDocs/stable/basics/common_solver_opts/#solver_options.
1.1 Attributes
Name | Type | Description |
---|---|---|
algorithm | str | The used numerical time integration algorithm (Optional, defaults to QNDF) |
saveat | float | Time interval in seconds between saves of output data. 0 saves every timestep, inf only saves at start- and endtime. (Optional, defaults to 86400) |
dt | float | Timestep of the solver. (Optional, defaults to None which implies adaptive timestepping) |
dtmin | float | The minimum allowed timestep of the solver (Optional, defaults to 0.0) |
dtmax | float | The maximum allowed timestep size (Optional, defaults to 0.0 which implies the total length of the simulation) |
force_dtmin | bool | If a smaller dt than dtmin is needed to meet the set error tolerances, the simulation stops, unless force_dtmin = true (Optional, defaults to False) |
abstol | float | The absolute tolerance for adaptive timestepping (Optional, defaults to 1e-7) |
reltol | float | The relative tolerance for adaptive timestepping (Optional, defaults to 1e-7) |
maxiters | int | The total number of linear iterations over the whole simulation. (Defaults to 1e9, only needs to be increased for extremely long simulations) |
sparse | bool | Whether a sparse Jacobian matrix is used, which gives a significant speedup for models with >~10 basins. |
autodiff | bool | Whether automatic differentiation instead of fine difference is used to compute the Jacobian. (Optional, defaults to true) |
1.2 Methods
Name | Description |
---|---|
diff | Compare two instances of a BaseModel. |
model_dump |
1.2.1 diff
=False) Solver.diff(other, ignore_meta
Compare two instances of a BaseModel.
** Warning: This method is experimental and is likely to change. **
If they are equal, return None. Otherwise, return a nested dictionary with the differences. When the differences are not a DataFrame (like the toml config), the dict has self and other as key. For DataFrames we return a dict with diff as key, and a datacompy Comparison object.
When ignore_meta is set to True, the meta_* columns in the DataFrames are ignored. Note that in that case the key will still be returned and the value will be None.
1.2.1.1 Examples
>>> nbasic == basic
False
>>> x = nbasic.diff(basic)
'basin': {'node': {'diff': <datacompy.core.Compare object at 0x16e5a45c0>},
{'static': {'diff': <datacompy.core.Compare object at 0x16eb90080>}},
'solver': {'saveat': {'other': 86400.0, 'self': 0.0}}}
>>> x["basin"]["static"]["diff"].report()
DataComPy Comparison--------------------
...
1.2.2 model_dump
**kwargs) Solver.model_dump(