HydPy-Test (base model)¶
The base model test is intended for implementing small application model that allow
for testing or demonstrating specific features of the HydPy framework.
Method Features¶
- class hydpy.models.test.test_model.Model[source]¶
Bases:
ELSModelHydPy-Test (base model).
- The following methods define the relevant components of a system of ODE equations (e.g. direct runoff):
Calc_Q_V1Calculate the actual storage loss.Calc_Q_V2Calculate the actual storage loss.Calc_QV_V1Calculate the actual storage losses.
- The following methods define the complete equations of an ODE system (e.g. change in storage of fast water due to effective precipitation and direct runoff):
Calc_S_V1Calculate the actual storage content.Calc_SV_V1Calculate the actual storage contenst.
- DOCNAME = ('Test', 'base model')¶
- OBSERVER_METHODS = ()¶
- REUSABLE_METHODS = ()¶
- class hydpy.models.test.test_model.Calc_Q_V1[source]¶
Bases:
MethodCalculate the actual storage loss.
This simple equation is continuous but potentially stiff.
- Basic equation:
\(Q = K \cdot S\)
Example:
>>> from hydpy.models.test import * >>> parameterstep() >>> k(0.5) >>> states.s = 2.0 >>> model.calc_q_v1() >>> fluxes.q q(1.0)
- class hydpy.models.test.test_model.Calc_Q_V2[source]¶
Bases:
MethodCalculate the actual storage loss.
This simple equation is discontinuous.
- Basic equation:
\(Q = \Bigl \lbrace { {K \ | \ S > 0} \atop {0 \ | \ S \leq 0} }\)
Examples:
>>> from hydpy.models.test import * >>> parameterstep() >>> k(0.5) >>> states.s = 2.0 >>> model.calc_q_v2() >>> fluxes.q q(0.5) >>> states.s = -1.0 >>> model.calc_q_v2() >>> fluxes.q q(0.0)
- class hydpy.models.test.test_model.Calc_QV_V1[source]¶
Bases:
MethodCalculate the actual storage losses.
Identical with
Calc_Q_V1, but working on a vector of states.- Basic equation:
\(Q = K \cdot S\)
Example:
>>> from hydpy.models.test import * >>> parameterstep() >>> n(2) >>> k(0.5) >>> states.sv = 2.0, 3.0 >>> model.calc_qv_v1() >>> fluxes.qv qv(1.0, 1.5)
- class hydpy.models.test.test_model.Calc_S_V1[source]¶
Bases:
MethodCalculate the actual storage content.
- Basic equation:
\(\frac{dS}{dt} = Q\)
Example:
>>> from hydpy.models.test import * >>> parameterstep() >>> states.s.old = 1.0 >>> fluxes.q = 0.8 >>> model.calc_s_v1() >>> states.s s(0.2)
- class hydpy.models.test.test_model.Calc_SV_V1[source]¶
Bases:
MethodCalculate the actual storage contenst.
Identical with
Calc_S_V1, but working on a vector of fluxes.- Basic equation:
\(\frac{dS}{dt} = Q\)
Example:
>>> from hydpy.models.test import * >>> parameterstep() >>> n(2) >>> states.sv.old = 1.0, 2.0 >>> fluxes.qv = 0.8 >>> model.calc_sv_v1() >>> states.sv sv(0.2, 1.2)
Parameter Features¶
Control parameters¶
- class hydpy.models.test.ControlParameters(master: Parameters, cls_fastaccess: type[FastAccessParameter] | None = None, cymodel: CyModelProtocol | None = None)
Bases:
SubParametersControl parameters of model test.
- class hydpy.models.test.test_control.K(subvars: SubParameters)[source]¶
Bases:
ParameterStorage coefficient [1/T].
- Required by the methods:
For educational purposes, the actual value of parameter
Kdoes not depend on the difference between the actual simulation time step and the actual parameter time step.- NDIM = 0¶
- TIME = None¶
- SPAN = (0.0, None)¶
- name = 'k'¶
Name of the variable in lowercase letters.
- unit = '1/T'¶
Unit of the variable.
Solver parameters¶
- class hydpy.models.test.SolverParameters(master: Parameters, cls_fastaccess: type[FastAccessParameter] | None = None, cymodel: CyModelProtocol | None = None)
Bases:
SubParametersSolver parameters of model test.
- The following classes are selected:
AbsErrorMax()Absolute numerical error tolerance [mm/T].RelErrorMax()Relative numerical error tolerance [1/T].RelDTMin()Smallest relative integration time step size allowed [-].RelDTMax()Largest relative integration time step size allowed [-].
- class hydpy.models.test.test_solver.AbsErrorMax(subvars)[source]¶
Bases:
SolverParameterAbsolute numerical error tolerance [mm/T].
- NDIM = 0¶
- TIME = None¶
- SPAN = (0.0, None)¶
- INIT = 0.01¶
- name = 'abserrormax'¶
Name of the variable in lowercase letters.
- unit = 'mm/T'¶
Unit of the variable.
- class hydpy.models.test.test_solver.RelErrorMax(subvars)[source]¶
Bases:
SolverParameterRelative numerical error tolerance [1/T].
- NDIM = 0¶
- TIME = None¶
- SPAN = (0.0, None)¶
- INIT = nan¶
- name = 'relerrormax'¶
Name of the variable in lowercase letters.
- unit = '1/T'¶
Unit of the variable.
- class hydpy.models.test.test_solver.RelDTMin(subvars)[source]¶
Bases:
SolverParameterSmallest relative integration time step size allowed [-].
- NDIM = 0¶
- TIME = None¶
- SPAN = (0.0, 1.0)¶
- INIT = 0.001¶
- name = 'reldtmin'¶
Name of the variable in lowercase letters.
- unit = '-'¶
Unit of the variable.
Sequence Features¶
Flux sequences¶
- class hydpy.models.test.FluxSequences(master: Sequences, cls_fastaccess: type[TypeFastAccess_co] | None = None, cymodel: CyModelProtocol | None = None)
Bases:
FluxSequencesFlux sequences of model test.
- class hydpy.models.test.test_fluxes.Q(subvars: ModelIOSequences[ModelIOSequence, FastAccessIOSequence])[source]¶
Bases:
FluxSequenceStorage loss [mm/T]
- NDIM = 0¶
- NUMERIC = True¶
- SPAN = (0.0, None)¶
- name = 'q'¶
Name of the variable in lowercase letters.
- unit = 'mm/T'¶
Unit of the variable.
- class hydpy.models.test.test_fluxes.QV(subvars: ModelIOSequences[ModelIOSequence, FastAccessIOSequence])[source]¶
Bases:
FluxSequenceStorage loss vector [mm/T]
- Calculated by the method:
- Required by the method:
- NDIM = 1¶
- NUMERIC = True¶
- SPAN = (0.0, None)¶
- name = 'qv'¶
Name of the variable in lowercase letters.
- unit = 'mm/T'¶
Unit of the variable.
State sequences¶
- class hydpy.models.test.StateSequences(master: Sequences, cls_fastaccess: type[TypeFastAccess_co] | None = None, cymodel: CyModelProtocol | None = None)
Bases:
StateSequencesState sequences of model test.
- class hydpy.models.test.test_states.S(subvars: ModelIOSequences[ModelIOSequence, FastAccessIOSequence])[source]¶
Bases:
StateSequenceStorage content [mm].
- NDIM = 0¶
- NUMERIC = True¶
- SPAN = (0.0, None)¶
- name = 's'¶
Name of the variable in lowercase letters.
- unit = 'mm'¶
Unit of the variable.
- class hydpy.models.test.test_states.SV(subvars: ModelIOSequences[ModelIOSequence, FastAccessIOSequence])[source]¶
Bases:
StateSequenceStorage content vector[mm].
- Updated by the method:
- Required by the method:
- NDIM = 1¶
- NUMERIC = True¶
- SPAN = (0.0, None)¶
- name = 'sv'¶
Name of the variable in lowercase letters.
- unit = 'mm'¶
Unit of the variable.
- class hydpy.models.test.ControlParameters(master: Parameters, cls_fastaccess: type[FastAccessParameter] | None = None, cymodel: CyModelProtocol | None = None)¶
Bases:
SubParametersControl parameters of model test.
- class hydpy.models.test.FluxSequences(master: Sequences, cls_fastaccess: type[TypeFastAccess_co] | None = None, cymodel: CyModelProtocol | None = None)¶
Bases:
FluxSequencesFlux sequences of model test.
- class hydpy.models.test.SolverParameters(master: Parameters, cls_fastaccess: type[FastAccessParameter] | None = None, cymodel: CyModelProtocol | None = None)¶
Bases:
SubParametersSolver parameters of model test.
- The following classes are selected:
AbsErrorMax()Absolute numerical error tolerance [mm/T].RelErrorMax()Relative numerical error tolerance [1/T].RelDTMin()Smallest relative integration time step size allowed [-].RelDTMax()Largest relative integration time step size allowed [-].
- class hydpy.models.test.StateSequences(master: Sequences, cls_fastaccess: type[TypeFastAccess_co] | None = None, cymodel: CyModelProtocol | None = None)¶
Bases:
StateSequencesState sequences of model test.