diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 3f290386..00000000 --- a/.travis.yml +++ /dev/null @@ -1,20 +0,0 @@ -language: python -sudo: false -dist: xenial - -python: - - "3.7" - - "3.5" - -# command to install dependencies -install: - - pip install numpy - # - bash tools/install_solvers.sh - - pip install scipy - - python setup.py build_ext - - python setup.py build_py - - python setup.py install - -# command to run tests -script: - - bash tools/test.sh diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index 5f77efe9..00000000 --- a/appveyor.yml +++ /dev/null @@ -1,50 +0,0 @@ -environment: - PYPIPASSWORD: - secure: LmtnXHQhfACj8oOpwYehsFPkdhPHGLq84SIqn+ixfS8= - matrix: - # Windows w/64 bit python 3.7 - - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 - PYTHON: "C:\\Python37-x64" - PYTHON_ARCH: "64" - # Windows w/64 bit python 3.6 - - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 - PYTHON: "C:\\Python36-x64" - PYTHON_ARCH: "64" - # Windows w/64 bit python 3.6 - - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 - PYTHON: "C:\\Python35-x64" - PYTHON_ARCH: "64" - -install: - # We need vcvarsall to build sundials - - cmd: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat" - # We need wheel installed to build wheels - - cmd: "%PYTHON%\\Scripts\\pip install -r requirements.txt" - - -build_script: - - cmd: "%PYTHON%\\python.exe setup.py install" - - -test_script: - # Put your test command here. - # If you don't need to build C extensions on 64-bit Python 3.3 or 3.4, - # you can remove "build.cmd" from the front of the command, as it's - # only needed to support those cases. - # Note that you must use the environment variable %PYTHON% to refer to - # the interpreter you're using - Appveyor does not do anything special - # to put the Python version you want to use on PATH. - - cmd: "%PYTHON%\\python.exe tools\\test.py" - - -after_test: - # This step builds your wheels. - # Again, you only need build.cmd if you're building C extensions for - # 64-bit Python 3.3/3.4. And you need to use %PYTHON% to get the correct - # interpreter - - cmd: "%PYTHON%\\python.exe setup.py bdist_wheel" - -artifacts: - # bdist_wheel puts your built wheel in the dist directory - - path: dist\* - diff --git a/docs/CmfTutSimpleInfiltration.png b/docs/CmfTutSimpleInfiltration.png deleted file mode 100644 index 24a9352e..00000000 Binary files a/docs/CmfTutSimpleInfiltration.png and /dev/null differ diff --git a/docs/annotated.html b/docs/annotated.html index 6eee6a6c..3201f301 100644 --- a/docs/annotated.html +++ b/docs/annotated.html @@ -2,33 +2,37 @@
- - - - -▼Ncmf | The main namespace of the model framework. Contains the other namespaces and the project class |
▶Natmosphere | Contains classes to describe interactions with the atmosphere |
▼Ncmf | The main namespace of the model framework. Contains the other namespaces and the project class |
►Natmosphere | Contains classes to describe interactions with the atmosphere |
▶Ndraw | |
▶Ngeometry | Contains geometric features like point (=location) and raster datasets |
►Ndraw | |
►Ngeometry | Contains geometric features like point (=location) and raster datasets |
▶Njacobian | |
▶Nmaps | |
►Njacobian | |
►Nmaps | |
▶Nmath | Contains classes for numerical solving of ODE's |
▶Nriver | Contains storages and connection for the simulation of surface water bodies, like rivers, channels, lakes and dams |
►Nmath | Contains classes for numerical solving of ODE's |
►Nriver | Contains storages and connection for the simulation of surface water bodies, like rivers, channels, lakes and dams |
▶Ntimetools | |
▶Nupslope | Contains the classes to describe the discretization of the soil continuum |
►Ntimetools | |
►Nupslope | Contains the classes to describe the discretization of the soil continuum |
▶Nwater | Contains generic classes for solute and water transport |
Cproject | The study area, holding all cells, outlets and streams |
►Nwater | Contains generic classes for solute and water transport |
C_Options | Holds global options for specific cmf behaviour, accessbile via cmf.options |
Cproject | The study area, holding all cells, outlets and streams |
This is the complete list of members for ConstantMeteorology, including all inherited members.
ConstantMeteorology() | ConstantMeteorology | |
ConstantMeteorology(const cmf::atmosphere::Weather &w) | ConstantMeteorology | |
ConstantMeteorology(const cmf::atmosphere::Weather &w) | ConstantMeteorology | |
ConstantMeteorology(const cmf::atmosphere::ConstantMeteorology &other) | ConstantMeteorology | |
copy() const | ConstantMeteorology | virtual |
copy() const | ConstantMeteorology | virtual |
get_instrument_height() const | ConstantMeteorology | virtual |
get_weather(cmf::math::Time t) const | ConstantMeteorology | virtual |
get_weather(cmf::math::Time t) const | ConstantMeteorology | virtual |
operator()(cmf::math::Time t) | Meteorology | |
weather | ConstantMeteorology | |
weather | ConstantMeteorology |
A primitive implementation of the Meteorology interface. - More...
-A primitive implementation of the Meteorology interface. + More...
+A primitive implementation of the Meteorology interface.
+A primitive implementation of the Meteorology interface.
Holds a Weather record and returns it for any date
+Public Member Functions
- | ConstantMeteorology () | | Creates a ConstantMeteorology with a standard weather. |
+ | ConstantMeteorology () | |
- | ConstantMeteorology (const cmf::atmosphere::Weather &w) | | Creates a ConstantMeteorology with weather w. | |
- | ConstantMeteorology (const cmf::atmosphere::ConstantMeteorology &other) | |
-ConstantMeteorology * | copy () const | | Creates a new instannce of the ConstantMeteorology with the same weather. | |
-virtual real | get_instrument_height () const |
+ | ConstantMeteorology (const cmf::atmosphere::Weather &w) | | Creates a ConstantMeteorology with weather w. | |
+ConstantMeteorology * | copy () const | | Creates a new instannce of the ConstantMeteorology with the same weather. | | |
-virtual cmf::atmosphere::Weather | get_weather (cmf::math::Time t) const | |
-cmf::atmosphere::Weather | operator() (cmf::math::Time t) | | Creates a ConstantMeteorology with a standard weather. | + | ConstantMeteorology (const cmf::atmosphere::ConstantMeteorology &other) | Copy constructor. | +virtual real | get_instrument_height () const | Returns the height of the instruments above canopy. | +virtual cmf::atmosphere::Weather | get_weather (cmf::math::Time t) const | Returns weather, regardless of t. | +cmf::atmosphere::Weather | operator() (cmf::math::Time t) | Returns the Weather at time t. |
+Public Attributes
-Weather | weather | | +Weather | weather | The constant, but changeable Weather record. |
This is the complete list of members for ConstantRainSource, including all inherited members.
conc(cmf::math::Time t, const cmf::water::solute &Solute) const | ConstantRainSource | virtual |
connection_to(const cmf::water::flux_node &target) | flux_node | |
connection_to(const cmf::water::flux_node &target) | flux_node | |
ConstantRainSource(cmf::project &_project, cmf::geometry::point location, real _intensity) | ConstantRainSource | |
flux_to(const cmf::water::flux_node &target, cmf::math::Time t) | flux_node | |
flux_to(const cmf::water::flux_node &target, cmf::math::Time t) | flux_node | |
get_3d_flux(cmf::math::Time t) | flux_node | |
get_intensity(cmf::math::Time t) const | ConstantRainSource | virtual |
get_potential() const | flux_node | virtual |
get_project() const | flux_node | |
get_intensity(cmf::math::Time t) const | ConstantRainSource | virtual |
get_potential(cmf::math::Time=cmf::math::never) const | flux_node | virtual |
get_project() const | flux_node | |
intensity | ConstantRainSource | |
is_empty() const | RainSource | virtual |
is_empty() const | RainSource | virtual |
is_storage() const | flux_node | virtual |
Name | flux_node | |
Name | flux_node | |
node_id | flux_node | |
operator()(cmf::math::Time t) const | RainSource | |
operator()(cmf::math::Time t) const | RainSource | |
position | flux_node | |
ptr typedef | ConstantRainSource | |
ptr typedef | ConstantRainSource | |
RainSource(cmf::project &_project, cmf::geometry::point location=cmf::geometry::point()) | RainSource | protected |
RecalcFluxes(cmf::math::Time t) | RainSource | virtual |
RecalcFluxes(cmf::math::Time t) | RainSource | virtual |
remove_connection(cmf::water::flux_node::ptr To) | flux_node | |
set_conc(const cmf::water::solute &Solute, real value) | ConstantRainSource | |
set_conc(const cmf::water::solute &Solute, real value) | ConstantRainSource | |
set_potential(real new_potential) | flux_node | virtual |
waterbalance(cmf::math::Time t, const flux_connection *Without=0) const | flux_node | |
waterbalance(cmf::math::Time t, const flux_connection *Without=0) const | flux_node | |
~flux_node() | flux_node | virtual |
A simple implementation of RainSource. - More...
-A simple implementation of RainSource. + More...
+A simple implementation of RainSource.
+A simple implementation of RainSource.
Returns intensity for any time step.
+Public Types
-typedef std::shared_ptr< ConstantRainSource > | ptr | | +typedef std::shared_ptr< ConstantRainSource > | ptr | shared pointer |
+Public Member Functions | ConstantRainSource (cmf::project &_project, cmf::geometry::point location, real _intensity) | | Creates a new ConstantRainSource. More... | | ConstantRainSource (cmf::project &_project, cmf::geometry::point location, real _intensity) | |
-virtual real | conc (cmf::math::Time t, const cmf::water::solute &Solute) const | |
-cmf::water::flux_connection * | connection_to (const cmf::water::flux_node &target) | | Returns the connection between this and target. | |
-real | flux_to (const cmf::water::flux_node &target, cmf::math::Time t) |
+cmf::water::flux_connection * | connection_to (const cmf::water::flux_node &target) | | Returns the connection between this and target. | | |
-cmf::geometry::point | get_3d_flux (cmf::math::Time t) | |
-real | get_intensity (cmf::math::Time t) const | | virtual real | get_potential () const | | Returns the water potential of the node in m waterhead. More... | |
-cmf::project & | get_project () const | | Returns the project, this node is part of. | |
-virtual double | is_empty () const | virtual real | get_potential (cmf::math::Time=cmf::math::never) const | | Returns the water potential of the node in m waterhead. | |
+cmf::project & | get_project () const | | Returns the project, this node is part of. | | |
-virtual bool | is_storage () const | |
-real | operator() (cmf::math::Time t) const | | virtual bool | RecalcFluxes (cmf::math::Time t) | | Pure flux_nodes do not influence fluxes, therefore no recalculation of fluxes is required by flux_node. More... | virtual bool | RecalcFluxes (cmf::math::Time t) | |
-bool | remove_connection (cmf::water::flux_node::ptr To) | |
-void | set_conc (const cmf::water::solute &Solute, real value) | |
-virtual void | set_potential (real new_potential) | | real | waterbalance (cmf::math::Time t, const flux_connection *Without=0) const | | Returns the sum of all fluxes (positive and negative) at time t. More... | real | waterbalance (cmf::math::Time t, const flux_connection *Without=0) const | | Creates a new ConstantRainSource. | +virtual real | conc (cmf::math::Time t, const cmf::water::solute &Solute) const | Returns the concentration of a solute in the rainfall at time t. | +real | flux_to (const cmf::water::flux_node &target, cmf::math::Time t) | Returns the actual flux between this and target (positive sign means "from this into target") | +cmf::geometry::point | get_3d_flux (cmf::math::Time t) | Returns the sum of all flux vectors. | +real | get_intensity (cmf::math::Time t) const | Returns the actual rainfall intensity in mm/day. | +virtual double | is_empty () const | Returns false. | +virtual bool | is_storage () const | true, if this is a waterstorage | +real | operator() (cmf::math::Time t) const | Functor declaration RainSource(t) = RainSource.get_intensity(t) | Pure flux_nodes do not influence fluxes, therefore no recalculation of fluxes is required by flux_node. | +bool | remove_connection (cmf::water::flux_node::ptr To) | Remove the connection. | +void | set_conc (const cmf::water::solute &Solute, real value) | Sets the concentration of a solute in the rainfall. | +virtual void | set_potential (real new_potential) | Sets the potential of this flux node. | Returns the sum of all fluxes (positive and negative) at time t. |
+Public Attributes
-real | intensity | |
-std::string | Name | |
-const int | node_id | |
-cmf::geometry::point | position | | +real | intensity | The rain fall intensity in mm/day. This value is returned by. | +std::string | Name | The Name of this node. | +const int | node_id | The Id of the node. | +cmf::geometry::point | position | The spatial position of the node. |
Creates a new ConstantRainSource.
+Creates a new ConstantRainSource.
Consider using Cell::set_rainfall for internal creation of a constant rain source, instead of direct use
_project | The project the rain source is belonging to. | ( | -) | +cmf::math::Time | = cmf::math::never | ) | const |
Reimplemented in MacroPore, SoilLayer, DirichletBoundary, and WaterStorage.
0
Returns the sum of all fluxes (positive and negative) at time t.
-Single fluxes can be excluded from the calculation
+ Single fluxes can be excluded from the calculation
t | Time of the query |
Without | A flux_connection that is excluded from the waterbalance (e.g. to prevent closed circuits) | Generated: Fri Apr 26 2019 12:43:39 | +Generated: Fri Jan 19 2024 16:10:56 |
This is the complete list of members for IDW_Meteorology, including all inherited members.
copy() const | IDW_Meteorology | virtual |
get_instrument_height() const | IDW_Meteorology | virtual |
copy() const | IDW_Meteorology | virtual |
get_instrument_height() const | IDW_Meteorology | virtual |
get_weather(cmf::math::Time t) const | IDW_Meteorology | virtual |
IDW_Meteorology(const cmf::geometry::point &position, const MeteoStationList &stations, double z_weight, double power) | IDW_Meteorology | |
IDW_Meteorology(const cmf::geometry::point &position, const MeteoStationList &stations, double z_weight, double power) | IDW_Meteorology | |
IDW_Meteorology(const IDW_Meteorology ©) | IDW_Meteorology | |
operator()(cmf::math::Time t) | Meteorology | |
operator()(cmf::math::Time t) | Meteorology |
Regionalizes meteorological measurements using a simple inverse distance weighted (IDW) method. - More...
-Regionalizes meteorological measurements using a simple inverse distance weighted (IDW) method.
+Public Member Functions | IDW_Meteorology (const cmf::geometry::point &position, const MeteoStationList &stations, double z_weight, double power) | | Creates an reference to a list of stations and interpolates the weather using IDW. More... | | IDW_Meteorology (const cmf::geometry::point &position, const MeteoStationList &stations, double z_weight, double power) | |
- | IDW_Meteorology (const IDW_Meteorology ©) | |
-virtual IDW_Meteorology * | copy () const | | Returns a copy of the meteorology object. Pure virtual function, needs to be implemented. | |
-virtual real | get_instrument_height () const |
+virtual IDW_Meteorology * | copy () const | | Returns a copy of the meteorology object. Pure virtual function, needs to be implemented. | | |
-virtual Weather | get_weather (cmf::math::Time t) const | |
-cmf::atmosphere::Weather | operator() (cmf::math::Time t) | | Creates an reference to a list of stations and interpolates the weather using IDW. | + | IDW_Meteorology (const IDW_Meteorology ©) | Copy c'tor. | +virtual real | get_instrument_height () const | Returns the height of the instruments above canopy. | +virtual Weather | get_weather (cmf::math::Time t) const | Returns the Weather at time t. Pure virtual function. Must get implemented by child functions. | +cmf::atmosphere::Weather | operator() (cmf::math::Time t) | Returns the Weather at time t. |
This is the complete list of members for IDWRainfall, including all inherited members.
conc(cmf::math::Time t, const cmf::water::solute &Solute) const | IDWRainfall | virtual |
connection_to(const cmf::water::flux_node &target) | flux_node | |
connection_to(const cmf::water::flux_node &target) | flux_node | |
create(cmf::project &project, cmf::geometry::point position, double z_weight, double power) | IDWRainfall | static |
flux_to(const cmf::water::flux_node &target, cmf::math::Time t) | flux_node | |
flux_to(const cmf::water::flux_node &target, cmf::math::Time t) | flux_node | |
get_3d_flux(cmf::math::Time t) | flux_node | |
get_intensity(cmf::math::Time t) const | IDWRainfall | virtual |
get_potential() const | flux_node | virtual |
get_project() const | flux_node | |
get_intensity(cmf::math::Time t) const | IDWRainfall | virtual |
get_potential(cmf::math::Time=cmf::math::never) const | flux_node | virtual |
get_project() const | flux_node | |
is_empty() const | RainSource | virtual |
is_storage() const | flux_node | virtual |
is_storage() const | flux_node | virtual |
Name | flux_node | |
node_id | flux_node | |
node_id | flux_node | |
operator()(cmf::math::Time t) const | RainSource | |
position | flux_node | |
position | flux_node | |
ptr typedef | RainSource | |
RainSource(cmf::project &_project, cmf::geometry::point location=cmf::geometry::point()) | RainSource | protected |
RainSource(cmf::project &_project, cmf::geometry::point location=cmf::geometry::point()) | RainSource | protected |
RecalcFluxes(cmf::math::Time t) | RainSource | virtual |
remove_connection(cmf::water::flux_node::ptr To) | flux_node | |
remove_connection(cmf::water::flux_node::ptr To) | flux_node | |
set_potential(real new_potential) | flux_node | virtual |
waterbalance(cmf::math::Time t, const flux_connection *Without=0) const | flux_node | |
waterbalance(cmf::math::Time t, const flux_connection *Without=0) const | flux_node | |
~flux_node() | flux_node | virtual |
A RainSource using a spatially interpolated rainfall intensity from all stations. - More...
-A RainSource using a spatially interpolated rainfall intensity from all stations. + More...
+A RainSource using a spatially interpolated rainfall intensity from all stations.
+A RainSource using a spatially interpolated rainfall intensity from all stations.
Interpolation method is inverse distance weighted (IDW)
+Public Types
-typedef std::shared_ptr< RainSource > | ptr | | +typedef std::shared_ptr< RainSource > | ptr | shared pointer |
+Public Member Functions
-real | conc (cmf::math::Time t, const cmf::water::solute &Solute) const | |
-cmf::water::flux_connection * | connection_to (const cmf::water::flux_node &target) | | Returns the connection between this and target. | |
-real | flux_to (const cmf::water::flux_node &target, cmf::math::Time t) |
+cmf::water::flux_connection * | connection_to (const cmf::water::flux_node &target) | | Returns the connection between this and target. | | |
-cmf::geometry::point | get_3d_flux (cmf::math::Time t) | |
-real | get_intensity (cmf::math::Time t) const | | virtual real | get_potential () const | | Returns the water potential of the node in m waterhead. More... | |
-cmf::project & | get_project () const | | Returns the project, this node is part of. | |
-virtual double | is_empty () const | virtual real | get_potential (cmf::math::Time=cmf::math::never) const | | Returns the water potential of the node in m waterhead. | |
+cmf::project & | get_project () const | | Returns the project, this node is part of. | | |
-virtual bool | is_storage () const | |
-real | operator() (cmf::math::Time t) const | | virtual bool | RecalcFluxes (cmf::math::Time t) | | Pure flux_nodes do not influence fluxes, therefore no recalculation of fluxes is required by flux_node. More... | virtual bool | RecalcFluxes (cmf::math::Time t) | |
-bool | remove_connection (cmf::water::flux_node::ptr To) | |
-virtual void | set_potential (real new_potential) | | real | waterbalance (cmf::math::Time t, const flux_connection *Without=0) const | | Returns the sum of all fluxes (positive and negative) at time t. More... | real | waterbalance (cmf::math::Time t, const flux_connection *Without=0) const | | +real | conc (cmf::math::Time t, const cmf::water::solute &Solute) const | Returns the concentration of a solute in the rainfall at time t. | +real | flux_to (const cmf::water::flux_node &target, cmf::math::Time t) | Returns the actual flux between this and target (positive sign means "from this into target") | +cmf::geometry::point | get_3d_flux (cmf::math::Time t) | Returns the sum of all flux vectors. | +real | get_intensity (cmf::math::Time t) const | Returns the actual rainfall intensity in mm/day. | +virtual double | is_empty () const | Returns false. | +virtual bool | is_storage () const | true, if this is a waterstorage | +real | operator() (cmf::math::Time t) const | Functor declaration RainSource(t) = RainSource.get_intensity(t) | Pure flux_nodes do not influence fluxes, therefore no recalculation of fluxes is required by flux_node. | +bool | remove_connection (cmf::water::flux_node::ptr To) | Remove the connection. | +virtual void | set_potential (real new_potential) | Sets the potential of this flux node. | Returns the sum of all fluxes (positive and negative) at time t. |
+Static Public Member Functionsstatic ptr | create (cmf::project &project, cmf::geometry::point position, double z_weight, double power) | | Creates an IDWRainfall object. More... | static ptr | create (cmf::project &project, cmf::geometry::point position, double z_weight, double power) | | Creates an IDWRainfall object. |
+Public Attributes
-std::string | Name | |
-const int | node_id | |
-cmf::geometry::point | position | | +std::string | Name | The Name of this node. | +const int | node_id | The Id of the node. | +cmf::geometry::point | position | The spatial position of the node. |
Creates an IDWRainfall object.
-This method is invoked by cmf::project::use_IDW_rainfall.
Creates an IDWRainfall object.
+This method is invoked by cmf::project::use_IDW_rainfall.
( | -) | +cmf::math::Time | = cmf::math::never | ) | const |
Reimplemented in MacroPore, SoilLayer, DirichletBoundary, and WaterStorage.
0
Returns the sum of all fluxes (positive and negative) at time t.
-Single fluxes can be excluded from the calculation
+ Single fluxes can be excluded from the calculation
t | Time of the query |
Without | A flux_connection that is excluded from the waterbalance (e.g. to prevent closed circuits) | Generated: Fri Apr 26 2019 12:43:40 | +Generated: Fri Jan 19 2024 16:10:56 |
This is the complete list of members for MeteoStation, including all inherited members.
A meteorological station holding timeseries to create Weather records. - More...
-A meteorological station holding timeseries to create Weather records.
-In order to calculate ETpot with cmf a big amount of meteorological data is needed, more data than usually available. The MeteoStation class can estimate missing data from a minimal set. As more data, as one provides, the better the calculation of ETpot becomes. The minimal data needed is Tmin and Tmax (daily) and precipitation. To calculate the global radiation (although measured global radiation could be inserted), the position of meteorological station in geographic coordinates has to be set.
-A meteorological station is created by cmf::atmosphere::MeteoStationList::add_station . Usage from python:
There are two modes for the meteorology: daily=true and daily=false. If daily=true, Radiation is given as a daily mean value. If daily=false, Radiation is given as an hourly mean value, which shows the dial ETpot variation but results in erronous results if the timestep is daily.
+In order to calculate ETpot with cmf a big amount of meteorological data is needed, more data than usually available. The MeteoStation class can estimate missing data from a minimal set. As more data, as one provides, the better the calculation of ETpot becomes. The minimal data needed is Tmin and Tmax (daily) and precipitation. To calculate the global radiation (although measured global radiation could be inserted), the position of meteorological station in geographic coordinates has to be set.
+A meteorological station is created by cmf::atmosphere::MeteoStationList::add_station . Usage from python:
There are two modes for the meteorology: daily=true and daily=false. If daily=true, Radiation is given as a daily mean value. If daily=false, Radiation is given as an hourly mean value, which shows the dial ETpot variation but results in erronous results if the timestep is daily.
+Public Types
-typedef std::shared_ptr< MeteoStation > | ptr | | +typedef std::shared_ptr< MeteoStation > | ptr | shared pointer |
+Public Member Functions
- | MeteoStation (const cmf::atmosphere::MeteoStation &other) | | Copy c'tor. | Data access methods
-cmf::atmosphere::Weather | get_data (cmf::math::Time t, double height) const | |
-void | use_for_cell (cmf::upslope::Cell &c) | | void | SetSunshineFraction (cmf::math::timeseries sunshine_duration) | | -Calculates a timeseries of the sunshine fraction (to put into Sunshine) from a timeseries of absolute sunshine duration More... void | SetSunshineFraction (cmf::math::timeseries sunshine_duration) | | +cmf::atmosphere::Weather | get_data (cmf::math::Time t, double height) const | Returns the current Atmosphere state. Uses default values for missing timeseries. | +void | use_for_cell (cmf::upslope::Cell &c) | Connects this meteostation as a meteo data provider with the cell. | Calculates a timeseries of the sunshine fraction (to put into Sunshine) from a timeseries of absolute sunshine duration. |
+Public Attributes
+cmf::math::timeseries | T | | Timeseries of Temperature \( T\left[^\circ C\right] \) Optional, can be calculated from \( T=\frac{T_{max} + T_{min}} 2 \). | | Timeseries of daily maximum Temperature \( T_{max} \left[^\circ C\right] \) Required, but it can be generated from T | | Timeseries of daily minimum Temperature \( T_{min}\left[^\circ C\right] \) Required, but it can generate from T |
+cmf::math::timeseries | Tground | | Timeseries of upper soil temperature \( T_{ground}\left[^\circ C\right] \) Optional, if missing \( T_{ground} = T \). | | Timeseries of windspeed at instrument height (default 2m) in \(m/s\). |
+cmf::math::timeseries | rHmean | | Timeseries of relative mean Humidity \( rH_{mean} \left[\%\right] \) Optional, not used if rHmax or Tdew is available |
+cmf::math::timeseries | rHmin | | Timeseries of daily minimum relative Humidity \( rH_{min} \left[\%\right] \) Optional, only used if rHmax is used |
+cmf::math::timeseries | rHmax | | Timeseries of daily maximum relative Humidity \( rH_{max} \left[\%\right] \)Optional, not used if Tdew is available |
+cmf::math::timeseries | Tdew | | Timeseries of dew point temperature \( T_{dew}\left[^\circ C\right]\) Optional, if neither Tdew, rHmax or rHmean is available then Tdew = Tmin | | Fractional sunshine \(\frac{n}{N}\). | | Global Radiation in \( \frac{MJ}{m^2 day} \) Optional, if not available cmf::atmosphere::global_radiation is used |
+cmf::math::timeseries | T_lapse | | Temperature lapse, the slope of the temperature / height regression. Typical values are \( -0.0004 .. -0.001 \frac{^\circ C}{m} \), default is \( 0\frac{^\circ C}{m} \) (no temperature adjusting) | | |
-Location and behaviour properties | |
-double | Latitude |
Location and behaviour properties | |
+double | Latitude |
Latitude in dec. deg. | |
-double | Longitude |
+double | Longitude |
Longitude in dec. deg. | |
-double | Timezone |
+double | Timezone |
Time zone, 1 Germany, 0 UK, -8 Pacific U.S. | |
-double | x |
-double | y |
-double | z |
+double | z |
position of the station in m | |
-std::string | Name |
+std::string | Name |
Name of the Station. | |
-bool | daily |
+bool | daily |
If true, the global radiation is calculated for daily averages (no day-night cycle), if false the hourly average is calculated. | |
real | InstrumentHeight |
The height of the meteorological instruments above the surface in m. More... | |
real | InstrumentHeight |
The height of the meteorological instruments above the surface in m. | |
-cmf::geometry::point | get_position () const |
+ | MeteoStation (const cmf::atmosphere::MeteoStation &other) |
Copy c'tor. | |
-Calculates a timeseries of the sunshine fraction (to put into Sunshine) from a timeseries of absolute sunshine duration
see http://www.fao.org/docrep/X0490E/x0490e07.htm#radiation
-\begin{eqnarray*} \phi &=& \frac{(\mbox{geogr. Latitude})^\circ \pi}{180^\circ} \mbox{ Latitude in }rad \\ \delta &=& 0.409 \sin\left(\frac{2\pi}{365}DOY - 1.39\right) \mbox{ Declination, DOY is day of year}\\ \omega_s &=& \arccos(-\tan\phi\tan\delta) \mbox{ Sunset angle in }rad \\ N &=& \frac{24}{\pi}\omega_s \mbox{ potential duration of sunshine in }h \\ \frac n N &=& n\mbox{ absolute sunshine duration in }h \end{eqnarray*} +
Calculates a timeseries of the sunshine fraction (to put into Sunshine) from a timeseries of absolute sunshine duration.
+see http://www.fao.org/docrep/X0490E/x0490e07.htm#radiation
+\begin{eqnarray*} +\phi &=& \frac{(\mbox{geogr. Latitude})^\circ \pi}{180^\circ} \mbox{ Latitude in }rad \\ +\delta &=& 0.409 \sin\left(\frac{2\pi}{365}DOY - 1.39\right) \mbox{ Declination, DOY is day of year}\\ +\omega_s &=& \arccos(-\tan\phi\tan\delta) \mbox{ Sunset angle in }rad \\ +N &=& \frac{24}{\pi}\omega_s \mbox{ potential duration of sunshine in }h \\ +\frac n N &=& n\mbox{ absolute sunshine duration in }h +\end{eqnarray*}
Fractional sunshine \(\frac{n}{N}\).
-Sunshine duration per potential sunshine durationOptional, if not present 0.5 If you have the total duration of sunshine, use cmf::atmosphere::MeteoStation::SetSunshineFraction. If you have cloud coverage instead of total sunshine duration you may assume that the fractional sunshine duration equals 1-cloudfraction
+Sunshine duration per potential sunshine durationOptional, if not present 0.5 If you have the total duration of sunshine, use cmf::atmosphere::MeteoStation::SetSunshineFraction. If you have cloud coverage instead of total sunshine duration you may assume that the fractional sunshine duration equals 1-cloudfraction
This is the complete list of members for MeteoStationList, including all inherited members.
add_station(std::string name, cmf::geometry::point position, double latitude=51.0, double longitude=8.0, double tz=1.0, cmf::math::Time startTime=cmf::math::Time(1, 1, 2001), cmf::math::Time timestep=cmf::math::day) | MeteoStationList | |
calculate_Temp_lapse(cmf::math::Time begin, cmf::math::Time step, cmf::math::Time end) | MeteoStationList | |
calculate_Temp_lapse(cmf::math::Time begin, cmf::math::Time step, cmf::math::Time end) | MeteoStationList | |
MeteoStationList() | MeteoStationList | |
MeteoStationList(const MeteoStationList ©) | MeteoStationList | |
MeteoStationList(const MeteoStationList ©) | MeteoStationList | |
operator[](ptrdiff_t index) const | MeteoStationList | |
operator[](const std::string &Name) const | MeteoStationList | |
operator[](const std::string &Name) const | MeteoStationList | |
reference_to_nearest(const cmf::geometry::point &position, double z_weight=0) const | MeteoStationList | |
remove_station(ptrdiff_t index) | MeteoStationList | |
remove_station(ptrdiff_t index) | MeteoStationList | |
size() const | MeteoStationList |
A list of meteorological stations. - More...
+ More...A list of meteorological stations.
Can find the nearest station for a position and calculate the temperature lapse
+Public Member Functions
- | MeteoStationList () | |
- | MeteoStationList (const MeteoStationList ©) | | MeteoStation::ptr | add_station (std::string name, cmf::geometry::point position, double latitude=51.0, double longitude=8.0, double tz=1.0, cmf::math::Time startTime=cmf::math::Time(1, 1, 2001), cmf::math::Time timestep=cmf::math::day) | | Creates a meteorological station at a certain position and adds it to the list. More... | MeteoStation::ptr | add_station (std::string name, cmf::geometry::point position, double latitude=51.0, double longitude=8.0, double tz=1.0, cmf::math::Time startTime=cmf::math::Time(1, 1, 2001), cmf::math::Time timestep=cmf::math::day) | | double | calculate_Temp_lapse (cmf::math::Time begin, cmf::math::Time step, cmf::math::Time end) | | Calculates the temperature lapse from all stations in the list and sets the T_lapse attribute of each station. More... | double | calculate_Temp_lapse (cmf::math::Time begin, cmf::math::Time step, cmf::math::Time end) | |
-MeteoStation::ptr | operator[] (ptrdiff_t index) const | | Gets the station at index. | |
-MeteoStation::ptr | operator[] (const std::string &Name) const | | MeteoStationReference | reference_to_nearest (const cmf::geometry::point &position, double z_weight=0) const | | Creates a MeteoStationReference from the nearest station to position at position. More... |
+MeteoStation::ptr | operator[] (ptrdiff_t index) const | | Gets the station at index. | | MeteoStationReference | reference_to_nearest (const cmf::geometry::point &position, double z_weight=0) const | |
-ptrdiff_t | remove_station (ptrdiff_t index) | |
-size_t | size () const | | + | MeteoStationList () | Create empty list. | + | MeteoStationList (const MeteoStationList ©) | Copy c'tor. | Creates a meteorological station at a certain position and adds it to the list. | Calculates the temperature lapse from all stations in the list and sets the T_lapse attribute of each station. | +MeteoStation::ptr | operator[] (const std::string &Name) const | gets a station by name | Creates a MeteoStationReference from the nearest station to position at position. | +ptrdiff_t | remove_station (ptrdiff_t index) | Removes a station and returns the number of remaining references to the removed station. If the station is deleted, 0 is returned. | +size_t | size () const | Returns the number of stations. |
51.0
, 8.0
, 1.0
, cmf::math::Time(1, 1, 2001)
, cmf::math::day
0
Creates a MeteoStationReference from the nearest station to position at position.
-The distance is calculated as \( d=\sqrt{(x_{s} - x_{l})^2 + (y_{s} - y_{l})^2} + \lambda_z\|z_{s} - z_{l}\| \) Where \(s\) is the station and \(l\) is the locatable
Creates a MeteoStationReference from the nearest station to position at position.
+The distance is calculated as \( d=\sqrt{(x_{s} - x_{l})^2 + (y_{s} - y_{l})^2} + \lambda_z\|z_{s} - z_{l}\| \) Where \(s\) is the station and \(l\) is the locatable
position | The position (any locatable, like e.g. Cell possible) to look for the station. The reference should be owned by the locatable | Generated: Fri Apr 26 2019 12:43:40 | +Generated: Fri Jan 19 2024 16:10:56 |
This is the complete list of members for MeteoStationReference, including all inherited members.
copy() const | MeteoStationReference | virtual |
get_instrument_height() const | MeteoStationReference | virtual |
copy() const | MeteoStationReference | virtual |
get_instrument_height() const | MeteoStationReference | virtual |
get_position() const | MeteoStationReference | |
get_station() const | MeteoStationReference | |
get_station() const | MeteoStationReference | |
get_weather(cmf::math::Time t) const | MeteoStationReference | virtual |
MeteoStationReference(MeteoStation::ptr station, cmf::geometry::point location) | MeteoStationReference | |
MeteoStationReference(MeteoStation::ptr station, cmf::geometry::point location) | MeteoStationReference | |
operator()(cmf::math::Time t) | Meteorology |
A reference to a meteorological station. - More...
-A reference to a meteorological station.
-Returns the weather at a given time for its place using MeteoStation::T_lapse
+Returns the weather at a given time for its place using MeteoStation::T_lapse
+Public Member Functions | MeteoStationReference (MeteoStation::ptr station, cmf::geometry::point location) | | Create a located reference to a meteo station. More... | | MeteoStationReference (MeteoStation::ptr station, cmf::geometry::point location) | |
-MeteoStationReference * | copy () const | | Returns a copy of the meteorology object. Pure virtual function, needs to be implemented. | |
-real | get_instrument_height () const | | Creates a reference for a MeteoStation at a location. |
+MeteoStationReference * | copy () const | | Returns a copy of the meteorology object. Pure virtual function, needs to be implemented. | |
+real | get_instrument_height () const | |
-cmf::geometry::point | get_position () const | |
-MeteoStation::ptr | get_station () const | |
-cmf::atmosphere::Weather | get_weather (cmf::math::Time t) const | |
-cmf::atmosphere::Weather | operator() (cmf::math::Time t) | | Create a located reference to a meteo station. | Creates a reference for a MeteoStation at a location. | +cmf::geometry::point | get_position () const | Returns the position of the reference. | +MeteoStation::ptr | get_station () const | Returns the station referenced. | +cmf::atmosphere::Weather | get_weather (cmf::math::Time t) const | Returns the weather at the time t. | +cmf::atmosphere::Weather | operator() (cmf::math::Time t) | Returns the Weather at time t. |
station | MeteoStation |
station | MeteoStation |
location | Location of the reference |
This is the complete list of members for Meteorology, including all inherited members.
copy() const =0 | Meteorology | pure virtual |
get_instrument_height() const =0 | Meteorology | pure virtual |
copy() const =0 | Meteorology | pure virtual |
get_instrument_height() const =0 | Meteorology | pure virtual |
get_weather(cmf::math::Time t) const =0 | Meteorology | pure virtual |
operator()(cmf::math::Time t) | Meteorology | |
operator()(cmf::math::Time t) | Meteorology |
An abstract class, for objects generating Weather records at a specific time. - More...
-An abstract class, for objects generating Weather records at a specific time.
+Public Member Functions
-virtual Meteorology * | copy () const =0 | | Returns a copy of the meteorology object. Pure virtual function, needs to be implemented. | |
-virtual real | get_instrument_height () const =0 |
+virtual Meteorology * | copy () const =0 | | Returns a copy of the meteorology object. Pure virtual function, needs to be implemented. | | |
-virtual cmf::atmosphere::Weather | get_weather (cmf::math::Time t) const =0 | |
-cmf::atmosphere::Weather | operator() (cmf::math::Time t) | | +virtual real | get_instrument_height () const =0 | Returns the height of the instruments above canopy. | +virtual cmf::atmosphere::Weather | get_weather (cmf::math::Time t) const =0 | Returns the Weather at time t. Pure virtual function. Must get implemented by child functions. | +cmf::atmosphere::Weather | operator() (cmf::math::Time t) | Returns the Weather at time t. |
This is the complete list of members for RainSource, including all inherited members.
conc(cmf::math::Time t, const cmf::water::solute &Solute) const =0 | RainSource | pure virtual |
connection_to(const cmf::water::flux_node &target) | flux_node | |
connection_to(const cmf::water::flux_node &target) | flux_node | |
flux_to(const cmf::water::flux_node &target, cmf::math::Time t) | flux_node | |
get_3d_flux(cmf::math::Time t) | flux_node | |
get_3d_flux(cmf::math::Time t) | flux_node | |
get_intensity(cmf::math::Time t) const =0 | RainSource | pure virtual |
get_potential() const | flux_node | virtual |
get_project() const | flux_node | |
is_empty() const | RainSource | virtual |
get_potential(cmf::math::Time=cmf::math::never) const | flux_node | virtual |
get_project() const | flux_node | |
is_empty() const | RainSource | virtual |
is_storage() const | flux_node | virtual |
Name | flux_node | |
Name | flux_node | |
node_id | flux_node | |
operator()(cmf::math::Time t) const | RainSource | |
operator()(cmf::math::Time t) const | RainSource | |
position | flux_node | |
ptr typedef | RainSource | |
ptr typedef | RainSource | |
RainSource(cmf::project &_project, cmf::geometry::point location=cmf::geometry::point()) | RainSource | protected |
RecalcFluxes(cmf::math::Time t) | RainSource | virtual |
RecalcFluxes(cmf::math::Time t) | RainSource | virtual |
remove_connection(cmf::water::flux_node::ptr To) | flux_node | |
set_potential(real new_potential) | flux_node | virtual |
set_potential(real new_potential) | flux_node | virtual |
waterbalance(cmf::math::Time t, const flux_connection *Without=0) const | flux_node | |
~flux_node() | flux_node | virtual |
~flux_node() | flux_node | virtual |
An abstract class for different types of rainfall sources. - More...
-An abstract class for different types of rainfall sources.
+Public Types
-typedef std::shared_ptr< RainSource > | ptr | | +typedef std::shared_ptr< RainSource > | ptr | shared pointer |
+Public Member Functions
-virtual real | conc (cmf::math::Time t, const cmf::water::solute &Solute) const =0 | |
-cmf::water::flux_connection * | connection_to (const cmf::water::flux_node &target) | | Returns the connection between this and target. | |
-real | flux_to (const cmf::water::flux_node &target, cmf::math::Time t) |
+cmf::water::flux_connection * | connection_to (const cmf::water::flux_node &target) | | Returns the connection between this and target. | | |
-cmf::geometry::point | get_3d_flux (cmf::math::Time t) | |
-virtual real | get_intensity (cmf::math::Time t) const =0 | | virtual real | get_potential () const | | Returns the water potential of the node in m waterhead. More... | |
-cmf::project & | get_project () const | | Returns the project, this node is part of. | |
-virtual double | is_empty () const | virtual real | get_potential (cmf::math::Time=cmf::math::never) const | | Returns the water potential of the node in m waterhead. | |
+cmf::project & | get_project () const | | Returns the project, this node is part of. | | |
-virtual bool | is_storage () const | |
-real | operator() (cmf::math::Time t) const | | virtual bool | RecalcFluxes (cmf::math::Time t) | | Pure flux_nodes do not influence fluxes, therefore no recalculation of fluxes is required by flux_node. More... | virtual bool | RecalcFluxes (cmf::math::Time t) | |
-bool | remove_connection (cmf::water::flux_node::ptr To) | |
-virtual void | set_potential (real new_potential) | | real | waterbalance (cmf::math::Time t, const flux_connection *Without=0) const | | Returns the sum of all fluxes (positive and negative) at time t. More... | real | waterbalance (cmf::math::Time t, const flux_connection *Without=0) const | | +virtual real | conc (cmf::math::Time t, const cmf::water::solute &Solute) const =0 | Returns the concentration of a solute in the rainfall at time t. | +real | flux_to (const cmf::water::flux_node &target, cmf::math::Time t) | Returns the actual flux between this and target (positive sign means "from this into target") | +cmf::geometry::point | get_3d_flux (cmf::math::Time t) | Returns the sum of all flux vectors. | +virtual real | get_intensity (cmf::math::Time t) const =0 | Returns the actual rainfall intensity in mm/day. | +virtual double | is_empty () const | Returns false. | +virtual bool | is_storage () const | true, if this is a waterstorage | +real | operator() (cmf::math::Time t) const | Functor declaration RainSource(t) = RainSource.get_intensity(t) | Pure flux_nodes do not influence fluxes, therefore no recalculation of fluxes is required by flux_node. | +bool | remove_connection (cmf::water::flux_node::ptr To) | Remove the connection. | +virtual void | set_potential (real new_potential) | Sets the potential of this flux node. | Returns the sum of all fluxes (positive and negative) at time t. |
+Public Attributes
-std::string | Name | |
-const int | node_id | |
-cmf::geometry::point | position | | +std::string | Name | The Name of this node. | +const int | node_id | The Id of the node. | +cmf::geometry::point | position | The spatial position of the node. |
+Protected Member Functions
- | RainSource (cmf::project &_project, cmf::geometry::point location=cmf::geometry::point()) | | + | RainSource (cmf::project &_project, cmf::geometry::point location=cmf::geometry::point()) | protected c'tor |
Reimplemented in MacroPore, SoilLayer, DirichletBoundary, and WaterStorage.
0
Returns the sum of all fluxes (positive and negative) at time t.
-Single fluxes can be excluded from the calculation
+ Single fluxes can be excluded from the calculation
t | Time of the query |
Without | A flux_connection that is excluded from the waterbalance (e.g. to prevent closed circuits) | Generated: Fri Apr 26 2019 12:43:40 | +Generated: Fri Jan 19 2024 16:10:56 |
This is the complete list of members for RainfallStation, including all inherited members.
concentration | RainfallStation | |
create(size_t Id, std::string Name, cmf::math::timeseries Data, cmf::geometry::point position) | RainfallStation | static |
create(size_t Id, std::string Name, cmf::math::timeseries Data, cmf::geometry::point position) | RainfallStation | static |
data | RainfallStation | |
id | RainfallStation | |
id | RainfallStation | |
Location | RainfallStation | |
name | RainfallStation | |
name | RainfallStation | |
RainfallStation(const RainfallStation ©) | RainfallStation | |
tostring() const | RainfallStation | |
tostring() const | RainfallStation | |
use_for_cell(cmf::upslope::Cell &c) | RainfallStation |
RainfallStation describes a rainfall timeseries in mm/day at a certain place. - More...
-RainfallStation describes a rainfall timeseries in mm/day at a certain place. + More...
+RainfallStation describes a rainfall timeseries in mm/day at a certain place.
-Use RainfallStationReference or IDWRainfall to distribute the data into space
+RainfallStation describes a rainfall timeseries in mm/day at a certain place.
+Use RainfallStationReference or IDWRainfall to distribute the data into space
+Public Member Functions
- | RainfallStation (const RainfallStation ©) | |
-std::string | tostring () const | |
-void | use_for_cell (cmf::upslope::Cell &c) | | + | RainfallStation (const RainfallStation ©) | copy c'tor | +std::string | tostring () const | Returns the name and the mean yearly rainfall. | +void | use_for_cell (cmf::upslope::Cell &c) | Connects a cell with this rainfall station. |
+Static Public Member Functionsstatic ptr | create (size_t Id, std::string Name, cmf::math::timeseries Data, cmf::geometry::point position) | | Creates a new RainfallStation. More... | static ptr | create (size_t Id, std::string Name, cmf::math::timeseries Data, cmf::geometry::point position) | | Creates a new RainfallStation. |
+Public Attributes
-cmf::water::SoluteTimeseries | concentration | |
-cmf::math::timeseries | data | |
-const size_t | id | |
-cmf::geometry::point | Location | |
-const std::string | name | | +cmf::water::SoluteTimeseries | concentration | Contains the solute cocentration data. | +cmf::math::timeseries | data | The timeseries data. | +const size_t | id | A numerical identifier. | +cmf::geometry::point | Location | Location of the station. | +const std::string | name | The name of the station. |
Creates a new RainfallStation.
-Is called by RainfallStationList::add. Using RainfallStationList::add is in most cases the better choice, eg. from Python
Creates a new RainfallStation.
+Is called by RainfallStationList::add. Using RainfallStationList::add is in most cases the better choice, eg. from Python
Id | An identifying number | Generated: Fri Apr 26 2019 12:43:40 | +Generated: Fri Jan 19 2024 16:10:56 |
This is the complete list of members for RainfallStationList, including all inherited members.
add(std::string Name, cmf::math::timeseries Data, cmf::geometry::point Position) | RainfallStationList | |
operator[](ptrdiff_t index) | RainfallStationList | |
operator[](ptrdiff_t index) | RainfallStationList | |
operator[](ptrdiff_t index) const | RainfallStationList | |
remove(ptrdiff_t index) | RainfallStationList | |
remove(ptrdiff_t index) | RainfallStationList | |
size() const | RainfallStationList |
A list of rainfall stations. - More...
+ More...A list of rainfall stations.
+Public Member FunctionsRainfallStation::ptr | add (std::string Name, cmf::math::timeseries Data, cmf::geometry::point Position) | | Creates a new RainfallStation and adds it to the list. More... | RainfallStation::ptr | add (std::string Name, cmf::math::timeseries Data, cmf::geometry::point Position) | |
-RainfallStation::ptr | operator[] (ptrdiff_t index) | |
-const RainfallStation::ptr | operator[] (ptrdiff_t index) const | |
-void | remove (ptrdiff_t index) | |
-size_t | size () const | | Creates a new RainfallStation and adds it to the list. | +RainfallStation::ptr | operator[] (ptrdiff_t index) | Returns the station at index. | +const RainfallStation::ptr | operator[] (ptrdiff_t index) const | Returns the station at index. | +void | remove (ptrdiff_t index) | Removes the station at index from this list. | +size_t | size () const | Returns the number of rainfall stations. |
Creates a new RainfallStation and adds it to the list.
-Usage:
The position of the rainfall station will be used as identifier
Creates a new RainfallStation and adds it to the list.
+Usage:
The position of the rainfall station will be used as identifier
Name | Name of the station | Generated: Fri Apr 26 2019 12:43:40 | +Generated: Fri Jan 19 2024 16:10:56 |
This is the complete list of members for RainfallStationReference, including all inherited members.
conc(cmf::math::Time t, const cmf::water::solute &Solute) const | RainfallStationReference | virtual |
connection_to(const cmf::water::flux_node &target) | flux_node | |
connection_to(const cmf::water::flux_node &target) | flux_node | |
flux_to(const cmf::water::flux_node &target, cmf::math::Time t) | flux_node | |
from_nearest_station(cmf::project &project, cmf::geometry::point position, double z_weight) | RainfallStationReference | static |
from_nearest_station(cmf::project &project, cmf::geometry::point position, double z_weight) | RainfallStationReference | static |
from_station_id(cmf::project &project, cmf::geometry::point position, size_t id) | RainfallStationReference | static |
get_3d_flux(cmf::math::Time t) | flux_node | |
get_3d_flux(cmf::math::Time t) | flux_node | |
get_intensity(cmf::math::Time t) const | RainfallStationReference | virtual |
get_potential() const | flux_node | virtual |
get_project() const | flux_node | |
is_empty() const | RainSource | virtual |
get_potential(cmf::math::Time=cmf::math::never) const | flux_node | virtual |
get_project() const | flux_node | |
is_empty() const | RainSource | virtual |
is_storage() const | flux_node | virtual |
Name | flux_node | |
Name | flux_node | |
node_id | flux_node | |
operator()(cmf::math::Time t) const | RainSource | |
operator()(cmf::math::Time t) const | RainSource | |
position | flux_node | |
RainSource(cmf::project &_project, cmf::geometry::point location=cmf::geometry::point()) | RainSource | protected |
RainSource(cmf::project &_project, cmf::geometry::point location=cmf::geometry::point()) | RainSource | protected |
RecalcFluxes(cmf::math::Time t) | RainSource | virtual |
remove_connection(cmf::water::flux_node::ptr To) | flux_node | |
remove_connection(cmf::water::flux_node::ptr To) | flux_node | |
set_potential(real new_potential) | flux_node | virtual |
waterbalance(cmf::math::Time t, const flux_connection *Without=0) const | flux_node | |
waterbalance(cmf::math::Time t, const flux_connection *Without=0) const | flux_node | |
~flux_node() | flux_node | virtual |
References a single RainfallStation to provide rainfall intensity data. - More...
-References a single RainfallStation to provide rainfall intensity data. + More...
+References a single RainfallStation to provide rainfall intensity data.
+References a single RainfallStation to provide rainfall intensity data.
+Public Member Functions
-real | conc (cmf::math::Time t, const cmf::water::solute &Solute) const | |
-cmf::water::flux_connection * | connection_to (const cmf::water::flux_node &target) | | Returns the connection between this and target. | |
-real | flux_to (const cmf::water::flux_node &target, cmf::math::Time t) |
+cmf::water::flux_connection * | connection_to (const cmf::water::flux_node &target) | | Returns the connection between this and target. | | |
-cmf::geometry::point | get_3d_flux (cmf::math::Time t) | |
-real | get_intensity (cmf::math::Time t) const | | virtual real | get_potential () const | | Returns the water potential of the node in m waterhead. More... | |
-cmf::project & | get_project () const | | Returns the project, this node is part of. | |
-virtual double | is_empty () const | virtual real | get_potential (cmf::math::Time=cmf::math::never) const | | Returns the water potential of the node in m waterhead. | |
+cmf::project & | get_project () const | | Returns the project, this node is part of. | | |
-virtual bool | is_storage () const | |
-real | operator() (cmf::math::Time t) const | | virtual bool | RecalcFluxes (cmf::math::Time t) | | Pure flux_nodes do not influence fluxes, therefore no recalculation of fluxes is required by flux_node. More... | virtual bool | RecalcFluxes (cmf::math::Time t) | |
-bool | remove_connection (cmf::water::flux_node::ptr To) | |
-virtual void | set_potential (real new_potential) | | real | waterbalance (cmf::math::Time t, const flux_connection *Without=0) const | | Returns the sum of all fluxes (positive and negative) at time t. More... | real | waterbalance (cmf::math::Time t, const flux_connection *Without=0) const | | +real | conc (cmf::math::Time t, const cmf::water::solute &Solute) const | Returns the concentration of a solute in [solute unit]/m3 at time t in rainfall. | +real | flux_to (const cmf::water::flux_node &target, cmf::math::Time t) | Returns the actual flux between this and target (positive sign means "from this into target") | +cmf::geometry::point | get_3d_flux (cmf::math::Time t) | Returns the sum of all flux vectors. | +real | get_intensity (cmf::math::Time t) const | Returns the rainfall intensity in mm/day at time t. | +virtual double | is_empty () const | Returns false. | +virtual bool | is_storage () const | true, if this is a waterstorage | +real | operator() (cmf::math::Time t) const | Functor declaration RainSource(t) = RainSource.get_intensity(t) | Pure flux_nodes do not influence fluxes, therefore no recalculation of fluxes is required by flux_node. | +bool | remove_connection (cmf::water::flux_node::ptr To) | Remove the connection. | +virtual void | set_potential (real new_potential) | Sets the potential of this flux node. | Returns the sum of all fluxes (positive and negative) at time t. |
+Static Public Member Functionsstatic ptr | from_nearest_station (cmf::project &project, cmf::geometry::point position, double z_weight) | | Finds the nearest RainfallStation to position using z_weight for cmf::geometry::point::z_weight_distance This method is used by cmf::project::use_nearest_rainfall. More... | static ptr | from_nearest_station (cmf::project &project, cmf::geometry::point position, double z_weight) | |
-static ptr | from_station_id (cmf::project &project, cmf::geometry::point position, size_t id) | | Creates a RainfallStationReference for a certain rainfall station. |
+static ptr | from_station_id (cmf::project &project, cmf::geometry::point position, size_t id) | | Finds the nearest RainfallStation to position using z_weight for cmf::geometry::point::z_weight_distance This method is used by cmf::project::use_nearest_rainfall. | Creates a RainfallStationReference for a certain rainfall station. |
+Public Attributes
-std::string | Name | |
-const int | node_id | |
-cmf::geometry::point | position | | +std::string | Name | The Name of this node. | +const int | node_id | The Id of the node. | +cmf::geometry::point | position | The spatial position of the node. |
static ptr from_nearest_station | +static ptr from_nearest_station | ( | -cmf::project & | -project, | +cmf::project & | project, |
- | cmf::geometry::point | -position, | +cmf::geometry::point | position, | ||
- | double | -z_weight | -||||
- | ) | -+ | double | z_weight ) |
Finds the nearest RainfallStation to position using z_weight for cmf::geometry::point::z_weight_distance This method is used by cmf::project::use_nearest_rainfall.
+Finds the nearest RainfallStation to position using z_weight for cmf::geometry::point::z_weight_distance This method is used by cmf::project::use_nearest_rainfall.
( | -) | +cmf::math::Time | = cmf::math::never | ) | const |
Reimplemented in MacroPore, SoilLayer, DirichletBoundary, and WaterStorage.
0
Returns the sum of all fluxes (positive and negative) at time t.
-Single fluxes can be excluded from the calculation
+ Single fluxes can be excluded from the calculation
t | Time of the query |
Without | A flux_connection that is excluded from the waterbalance (e.g. to prevent closed circuits) | Generated: Fri Apr 26 2019 12:43:40 | +Generated: Fri Jan 19 2024 16:10:56 |
This is the complete list of members for TimeseriesRainSource, including all inherited members.
conc(cmf::math::Time t, const cmf::water::solute &Solute) const | TimeseriesRainSource | virtual |
concentrations | TimeseriesRainSource | |
connection_to(const cmf::water::flux_node &target) | flux_node | |
data | TimeseriesRainSource | |
concentrations | TimeseriesRainSource | |
connection_to(const cmf::water::flux_node &target) | flux_node | |
data | TimeseriesRainSource | |
flux_to(const cmf::water::flux_node &target, cmf::math::Time t) | flux_node | |
get_3d_flux(cmf::math::Time t) | flux_node | |
get_3d_flux(cmf::math::Time t) | flux_node | |
get_intensity(cmf::math::Time t) const | TimeseriesRainSource | virtual |
get_potential() const | flux_node | virtual |
get_project() const | flux_node | |
is_empty() const | RainSource | virtual |
get_potential(cmf::math::Time=cmf::math::never) const | flux_node | virtual |
get_project() const | flux_node | |
is_empty() const | RainSource | virtual |
is_storage() const | flux_node | virtual |
Name | flux_node | |
Name | flux_node | |
node_id | flux_node | |
operator()(cmf::math::Time t) const | RainSource | |
operator()(cmf::math::Time t) const | RainSource | |
position | flux_node | |
ptr typedef | TimeseriesRainSource | |
ptr typedef | TimeseriesRainSource | |
RainSource(cmf::project &_project, cmf::geometry::point location=cmf::geometry::point()) | RainSource | protected |
RecalcFluxes(cmf::math::Time t) | RainSource | virtual |
RecalcFluxes(cmf::math::Time t) | RainSource | virtual |
remove_connection(cmf::water::flux_node::ptr To) | flux_node | |
set_potential(real new_potential) | flux_node | virtual |
set_potential(real new_potential) | flux_node | virtual |
waterbalance(cmf::math::Time t, const flux_connection *Without=0) const | flux_node | |
~flux_node() | flux_node | virtual |
~flux_node() | flux_node | virtual |
A rainsource with a timeseries. - More...
-A rainsource with a timeseries.
Simpler to use than a rainfall station if there are only few cells in the project
+Public Types
-typedef std::shared_ptr< TimeseriesRainSource > | ptr | | +typedef std::shared_ptr< TimeseriesRainSource > | ptr | shared pointer |
+Public Member Functions
-virtual real | conc (cmf::math::Time t, const cmf::water::solute &Solute) const | |
-cmf::water::flux_connection * | connection_to (const cmf::water::flux_node &target) | | Returns the connection between this and target. | |
-real | flux_to (const cmf::water::flux_node &target, cmf::math::Time t) |
+cmf::water::flux_connection * | connection_to (const cmf::water::flux_node &target) | | Returns the connection between this and target. | | |
-cmf::geometry::point | get_3d_flux (cmf::math::Time t) | |
-real | get_intensity (cmf::math::Time t) const | | virtual real | get_potential () const | | Returns the water potential of the node in m waterhead. More... | |
-cmf::project & | get_project () const | | Returns the project, this node is part of. | |
-virtual double | is_empty () const | virtual real | get_potential (cmf::math::Time=cmf::math::never) const | | Returns the water potential of the node in m waterhead. | |
+cmf::project & | get_project () const | | Returns the project, this node is part of. | | |
-virtual bool | is_storage () const | |
-real | operator() (cmf::math::Time t) const | | virtual bool | RecalcFluxes (cmf::math::Time t) | | Pure flux_nodes do not influence fluxes, therefore no recalculation of fluxes is required by flux_node. More... | virtual bool | RecalcFluxes (cmf::math::Time t) | |
-bool | remove_connection (cmf::water::flux_node::ptr To) | |
-virtual void | set_potential (real new_potential) | | real | waterbalance (cmf::math::Time t, const flux_connection *Without=0) const | | Returns the sum of all fluxes (positive and negative) at time t. More... | real | waterbalance (cmf::math::Time t, const flux_connection *Without=0) const | | +virtual real | conc (cmf::math::Time t, const cmf::water::solute &Solute) const | Returns the concentration of a solute in the rainfall at time t. | +real | flux_to (const cmf::water::flux_node &target, cmf::math::Time t) | Returns the actual flux between this and target (positive sign means "from this into target") | +cmf::geometry::point | get_3d_flux (cmf::math::Time t) | Returns the sum of all flux vectors. | +real | get_intensity (cmf::math::Time t) const | Returns the actual rainfall intensity in mm/day. | +virtual double | is_empty () const | Returns false. | +virtual bool | is_storage () const | true, if this is a waterstorage | +real | operator() (cmf::math::Time t) const | Functor declaration RainSource(t) = RainSource.get_intensity(t) | Pure flux_nodes do not influence fluxes, therefore no recalculation of fluxes is required by flux_node. | +bool | remove_connection (cmf::water::flux_node::ptr To) | Remove the connection. | +virtual void | set_potential (real new_potential) | Sets the potential of this flux node. | Returns the sum of all fluxes (positive and negative) at time t. |
+Public Attributes
-cmf::water::SoluteTimeseries | concentrations | |
-cmf::math::timeseries | data | |
-std::string | Name | |
-const int | node_id | |
-cmf::geometry::point | position | | +cmf::water::SoluteTimeseries | concentrations | The concentration timeseries. | +cmf::math::timeseries | data | The rainfall intensity in mm/day. | +std::string | Name | The Name of this node. | +const int | node_id | The Id of the node. | +cmf::geometry::point | position | The spatial position of the node. |
Reimplemented in MacroPore, SoilLayer, DirichletBoundary, and WaterStorage.
0
Returns the sum of all fluxes (positive and negative) at time t.
-Single fluxes can be excluded from the calculation
+ Single fluxes can be excluded from the calculation
t | Time of the query |
Without | A flux_connection that is excluded from the waterbalance (e.g. to prevent closed circuits) | Generated: Fri Apr 26 2019 12:43:40 | +Generated: Fri Jan 19 2024 16:10:56 |
This is the complete list of members for aerodynamic_resistance, including all inherited members.
get_aerodynamic_resistance(double &r_ag, double &r_ac, cmf::math::Time t) const =0 | aerodynamic_resistance | pure virtual |
ptr typedef | aerodynamic_resistance | |
ptr typedef | aerodynamic_resistance |
Abstract class. Child classes can be used to calculate aerodynamic resistances against turbulent heat fluxes. - More...
-Abstract class. Child classes can be used to calculate aerodynamic resistances against turbulent heat fluxes.
+Public Types
-typedef std::shared_ptr< aerodynamic_resistance > | ptr | | +typedef std::shared_ptr< aerodynamic_resistance > | ptr | shared pointer |
+Public Member Functions
-virtual void | get_aerodynamic_resistance (double &r_ag, double &r_ac, cmf::math::Time t) const =0 | | +virtual void | get_aerodynamic_resistance (double &r_ag, double &r_ac, cmf::math::Time t) const =0 | aerodynamic resistance from ground to atmosphere (r_ag) and from canopy to atmosphere (r_ac) |
This is the complete list of members for log_wind_profile, including all inherited members.
get_aerodynamic_resistance(double &r_ag, double &r_ac, cmf::math::Time t) const final | log_wind_profile | virtual |
ptr typedef | aerodynamic_resistance | |
ptr typedef | aerodynamic_resistance |
, A logarithmic wind profile - More...
-, A logarithmic wind profile
-
+Public Types
-typedef std::shared_ptr< aerodynamic_resistance > | ptr | | +typedef std::shared_ptr< aerodynamic_resistance > | ptr | shared pointer |
+Public Member Functions
-void | get_aerodynamic_resistance (double &r_ag, double &r_ac, cmf::math::Time t) const final | | +void | get_aerodynamic_resistance (double &r_ag, double &r_ac, cmf::math::Time t) const final | aerodynamic resistance from ground to atmosphere (r_ag) and from canopy to atmosphere (r_ac) |
This is the complete list of members for CellMap, including all inherited members.
__init__(self, cells, value_function, cmap=default_colormap, hold=True, vmin=None, vmax=None, kwargs) | CellMap | |
autoscale(self) | CellMap | |
autoscale_None(self) | CellMap | |
get_artists(self) | CellMap | |
__init__(self, cells, value_function, cmap=default_colormap, hold=True, vmin=None, vmax=None, **kwargs) | CellMap | |
autoscale(self) | CellMap | |
autoscale_None(self) | CellMap | |
get_artists(self) | CellMap |
+Public Member Functionsdef | __init__ (self, cells, value_function, cmap=default_colormap, hold=True, vmin=None, vmax=None, kwargs) | | def | autoscale (self) | | def | autoscale_None (self) | | def | get_artists (self) | | | __init__ (self, cells, value_function, cmap=default_colormap, hold=True, vmin=None, vmax=None, **kwargs) | | | autoscale (self) | | | autoscale_None (self) | | | get_artists (self) | |
def __init__ | +__init__ | ( | -- | self, | +self, | |
- | - | cells, | +cells, | |||
- | - | value_function, | +value_function, | |||
- | - | cmap = default_colormap , |
+ cmap = default_colormap, | |||
- | - | hold = True , |
+ hold = True, | |||
- | - | vmin = None , |
+ vmin = None, | |||
- | - | vmax = None , |
+ vmax = None, | |||
- | - | kwargs | -||||
- | ) | -+ | ** | kwargs ) |
def autoscale | +autoscale | ( | -- | self | ) | +self | ) |
def autoscale_None | +autoscale_None | ( | -- | self | ) | +self | ) |
def get_artists | +get_artists | ( | -- | self | ) | +self | ) |
+Public Member Functionsdef | __init__ (self, cells, t, kwargs) | | | __init__ (self, cells, t, **kwargs) | |
def __init__ | +__init__ | ( | -- | self, | +self, | |
- | - | cells, | +cells, | |||
- | - | t, | +t, | |||
- | - | kwargs | -||||
- | ) | -+ | ** | kwargs ) |
This is the complete list of members for HillPlot, including all inherited members.
__call__(self, t, text='') | HillPlot | |
__init__(self, cells, t, solute=None, cmap=default_color_map) | HillPlot | |
get_animator(self, integration) | HillPlot | |
__call__(self, t, text='') | HillPlot | |
__init__(self, cells, t, solute=None, cmap=default_color_map) | HillPlot | |
get_animator(self, integration) | HillPlot |
+Public Member Functionsdef | __init__ (self, cells, t, solute=None, cmap=default_color_map) | | def | __call__ (self, t, text='') | | def | get_animator (self, integration) | | | __init__ (self, cells, t, solute=None, cmap=default_color_map) | | | __call__ (self, t, text='') | | | get_animator (self, integration) | |
def __init__ | +__init__ | ( | -- | self, | +self, | |
- | - | cells, | +cells, | |||
- | - | t, | +t, | |||
- | - | solute = None , |
+ solute = None, | |||
- | - | cmap = default_color_map |
- ||||
- | ) | -+ | cmap = default_color_map ) |
Creates a new HillPlot on the active figure, showing the state of each layer - cells: The a sequence of cmf cells to use in this hill_plot. You can - use the whole project if you like + use the whole project if you like - t: Current time step. Needed to retrieve the fluxes - solute:The solute concentration to show. If None, the wetness of the - layer will be shown + layer will be shown - cmap: a matplotlib colormap (see module cm) for coloring
def __call__ | +__call__ | ( | -- | self, | +self, | |
- | - | t, | +t, | |||
- | - | text = '' |
- ||||
- | ) | -+ | text = '' ) |
def get_animator | +get_animator | ( | -- | self, | +self, | |
- | - | integration | -||||
- | ) | -+ | integration ) |
This is the complete list of members for ShapeMap, including all inherited members.
-Inherits object.
self.fc_function: A callable taking a feature and returning a color (fillcolor) +self.fc_function: A callable taking a feature and returning a color (fillcolor) self.lw_function: A callable taking a feature and returning a scalar (line width)
This is the complete list of members for point, including all inherited members.
angleToXAxis(point p) const | point | |
azimuth(point p) const | point | |
azimuth(point p) const | point | |
distance(point p1, point p2) | point | static |
distance3DTo(point p) const | point | |
distance3DTo(point p) const | point | |
distance_max(point p) const | point | |
distanceTo(point p) const | point | |
distanceTo(point p) const | point | |
point() | point | |
point(const point &p) | point | |
point(const point &p) | point | |
point(double x_, double y_, double z_=0.0) | point | |
sum() const | point | |
sum() const | point | |
x | point | |
y | point | |
y | point | |
z | point | |
z_weight_distance(point p, double z_weight) const | point | |
z_weight_distance(point p, double z_weight) const | point |
2D-Point Class. - More...
+ More...2D-Point Class.
Used as location property anywhere in the text
+Public Member Functions
- | point () | |
- | point (const point &p) | |
- | point (double x_, double y_, double z_=0.0) | |
-double | angleToXAxis (point p) const | |
-double | azimuth (point p) const | |
-double | distance3DTo (point p) const | |
-double | distance_max (point p) const | | double | distanceTo (point p) const | | Returns the horizontal euclidian distance to another point p. More... | double | distanceTo (point p) const | |
-double | sum () const | | double | z_weight_distance (point p, double z_weight) const | | Returns the horizontal euclidian distance plus the absolute of the height difference times a factor. More... | double | z_weight_distance (point p, double z_weight) const | | + | point () | Empty Constructor. Creates an (0 0) location. | + | point (const point &p) | Copy Constructor. | + | point (double x_, double y_, double z_=0.0) | Creates a point from two doubles. | +double | angleToXAxis (point p) const | Returns the angle between the line \( \overline{this,p} \) to the x-Axis in degrees. | +double | azimuth (point p) const | Returns the azimuth angle of the line \( \overline{this,p} \) to the Azimuth in degrees. | +double | distance3DTo (point p) const | Returns the euclidian distance in space to another point p. | +double | distance_max (point p) const | Returns the distance by the maximum orthogonal offset. | Returns the horizontal euclidian distance to another point p. | +double | sum () const | Returns x+y+z. | Returns the horizontal euclidian distance plus the absolute of the height difference times a factor. |
+Static Public Member Functions
-static double | distance (point p1, point p2) | | +static double | distance (point p1, point p2) | Returns the horizontal euclidian distance between p1 and p2. |
+Public Attributes
-double | x | |
-double | y | | double | z | | Height of the location in m.a.s.l. More... |
+double | z | | +double | x | East-value of the location in m. | +double | y | North-value of the location in m. | Height of the location in m.a.s.l. |
double z | -
Height of the location in m.a.s.l.
-This is the complete list of members for point_vector, including all inherited members.
get(ptrdiff_t index) const | point_vector | |
operator[](ptrdiff_t index) const | point_vector | |
operator[](ptrdiff_t index) const | point_vector | |
point_vector(ptrdiff_t size) | point_vector | |
set(ptrdiff_t index, cmf::geometry::point p) | point_vector | |
set(ptrdiff_t index, cmf::geometry::point p) | point_vector | |
size() const | point_vector | |
X | point_vector | |
X | point_vector | |
Y | point_vector | |
Z | point_vector | |
Z | point_vector |
Holds three arrays x,y and z for fast access of point coordinates. - More...
-Holds three arrays x,y and z for fast access of point coordinates.
+Public Member Functions
- | point_vector (ptrdiff_t size) | |
-point | get (ptrdiff_t index) const | |
-point | operator[] (ptrdiff_t index) const | |
-void | set (ptrdiff_t index, cmf::geometry::point p) | |
-size_t | size () const | | Return the number of points in the point_vector. |
+size_t | size () const | | + | point_vector (ptrdiff_t size) | Create a point vector of a specific size. | +point | get (ptrdiff_t index) const | Return a point at index. | +point | operator[] (ptrdiff_t index) const | Return point at index. | +void | set (ptrdiff_t index, cmf::geometry::point p) | Change the point at index. | Return the number of points in the point_vector. |
+Public Attributes
-cmf::math::num_array | X | |
-cmf::math::num_array | Y | |
-cmf::math::num_array | Z | | +cmf::math::num_array | X | x coordinates | +cmf::math::num_array | Y | y coordinates | +cmf::math::num_array | Z | z coordinates |
This is the complete list of members for Quadtree, including all inherited members.
__call__(self, bounds) | Quadtree | |
__init__(self, area, divisions=50) | Quadtree | |
append(self, obj, bounds) | Quadtree | |
extend(self, objects_with_boundaries) | Quadtree | |
iterbounds(self, bounds) | Quadtree | |
__call__(self, bounds) | Quadtree | |
__init__(self, area, divisions=50) | Quadtree | |
append(self, obj, bounds) | Quadtree | |
extend(self, objects_with_boundaries) | Quadtree | |
iterbounds(self, bounds) | Quadtree |
A simple quad tree to check if the boundaries of geometries overlap or not
+Public Member Functionsdef | __init__ (self, area, divisions=50) | | def | __call__ (self, bounds) | | def | append (self, obj, bounds) | | def | extend (self, objects_with_boundaries) | | def | iterbounds (self, bounds) | | | __init__ (self, area, divisions=50) | | | __call__ (self, bounds) | | | append (self, obj, bounds) | | | extend (self, objects_with_boundaries) | | | iterbounds (self, bounds) | |
def __init__ | +__init__ | ( | -- | self, | +self, | |
- | - | area, | +area, | |||
- | - | divisions = 50 |
- ||||
- | ) | -+ | divisions = 50 ) |
def __call__ | +__call__ | ( | -- | self, | +self, | |
- | - | bounds | -||||
- | ) | -+ | bounds ) |
def append | +append | ( | -- | self, | +self, | |
- | - | obj, | +obj, | |||
- | - | bounds | -||||
- | ) | -+ | bounds ) |
def extend | +extend | ( | -- | self, | +self, | |
- | - | objects_with_boundaries | -||||
- | ) | -+ | objects_with_boundaries ) |
def iterbounds | +iterbounds | ( | -- | self, | +self, | |
- | - | bounds | -||||
- | ) | -+ | bounds ) |
- |
- 2.0.0a0
- The Catchment Modelling Framework
- |
-
This is the complete list of members for Shapefile, including all inherited members.
-__init__(self, filename, coordinatedigits=12) | Shapefile | |
readheader(self, f) | Shapefile | |
readrecord(self, f, coordinatedigits) | Shapefile | |
shapes(self) | Shapefile |
- |
- 2.0.0a0
- The Catchment Modelling Framework
- |
-
The shapefile class, create it from a .shp file - -The shapefile class implements most of the sequence protocol -Usage: -shp=Shapefile('theshapes.shp') # Load the shape file -print(shp[0].shape.area) # Print area of shape -print(shp[0].Name) # Prints the name of the shape, assuming theshapes.dbf has a field 'Name' -
-Public Member Functions | |
def | __init__ (self, filename, coordinatedigits=12) |
def | readheader (self, f) |
def | readrecord (self, f, coordinatedigits) |
def | shapes (self) |
def __init__ | -( | -- | self, | -
- | - | - | filename, | -
- | - | - | coordinatedigits = 12 |
-
- | ) | -- |
Loads a shapefile from a filename-
def readheader | -( | -- | self, | -
- | - | - | f | -
- | ) | -- |
reads the header of a shape file (see ESRI Shapefile Whitepaper -http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf)-
def readrecord | -( | -- | self, | -
- | - | - | f, | -
- | - | - | coordinatedigits | -
- | ) | -- |
Reads a record from the shapefile see: http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf-
def shapes | -( | -- | self | ) | -- |
Returns a list of shapes-
+Public Member Functionsdef | __init__ (self, solver, delta=1e-6) | | def | dxdt (self) | | | __init__ (self, solver, delta=1e-6) | | | dxdt (self) | |
def __init__ | +__init__ | ( | -- | self, | +self, | |
- | - | solver, | +solver, | |||
- | - | delta = 1e-6 |
- ||||
- | ) | -+ | delta = 1e-6 ) |
def dxdt | +dxdt | ( | -- | self | ) | +self | ) |
+Public Member Functionsdef | __call__ (self, x, y, z=0) | | | __call__ (self, x, y, z=0) | |
def __call__ | +__call__ | ( | -- | self, | +self, | |
- | - | x, | +x, | |||
- | - | y, | +y, | |||
- | - | z = 0 |
- ||||
- | ) | -+ | z = 0 ) |
returns default, regardless of the position given+
returns default, regardless of the position given+
Reimplemented in NearestNeighborMap, and PolygonMap.
+This is the complete list of members for NearestNeighborMap, including all inherited members.
__call__(self, x, y, z=0) | NearestNeighborMap | |
__call__(self, x, y, z=0) | NearestNeighborMap |
+Public Member Functionsdef | __call__ (self, x, y, z=0) | | | __call__ (self, x, y, z=0) | |
def __call__ | +__call__ | ( | -- | self, | +self, | |
- | - | x, | +x, | |||
- | - | y, | +y, | |||
- | - | z = 0 |
- ||||
- | ) | -+ | z = 0 ) |
returns the nearest neighbor object to the given position +returns the nearest neighbor object to the given position The distance to be minimized is calculated as: sqrt((x1-x2)**2+(y1-y2)**2)+abs(z1-z2)*z_weight+Reimplemented from Map.
+
This is the complete list of members for PolygonMap, including all inherited members.
__call__(self, x, y, z=0) | PolygonMap |
+Public Member Functions | |
__call__ (self, x, y, z=0) | |
__call__ | +( | +self, | +|
+ | + | x, | +|
+ | + | y, | +|
+ | + | z = 0 ) | +
returns default, regardless of the position given+
Reimplemented from Map.
+ +This is the complete list of members for BDF2, including all inherited members.
BDF2(real epsilon=1e-9, cmf::math::Time tStepMin=cmf::math::timespan(10)) | BDF2 | explicit |
BDF2(const cmf::math::state_list &states, real epsilon=1e-9, cmf::math::Time tStepMin=cmf::math::timespan(10)) | BDF2 | explicit |
BDF2(const cmf::math::state_list &states, real epsilon=1e-9, cmf::math::Time tStepMin=cmf::math::timespan(10)) | BDF2 | explicit |
BDF2(const Integrator &templ) | BDF2 | explicit |
copy() const override | BDF2 | virtual |
copy() const override | BDF2 | virtual |
Epsilon | Integrator | protected |
get_dt() const | Integrator | |
get_dt() const | Integrator | |
get_error_position() const | BDF2 | |
get_t() const | Integrator | |
integratables | Integrator | |
integrate(cmf::math::Time MaxTime, cmf::math::Time TimeStep) override | BDF2 | virtual |
integrate_until(cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | Integrator | |
Integrator(real epsilon=1e-9) | Integrator | explicit |
m_dt | Integrator | protected |
m_t | Integrator | protected |
max_order | BDF2 | |
reset() override | BDF2 | virtual |
reset_integratables | Integrator | |
set_t(cmf::math::Time val) | Integrator | |
get_t() const | Integrator | |
integrate(cmf::math::Time MaxTime, cmf::math::Time TimeStep) override | BDF2 | virtual |
integrate_until(cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | Integrator | |
Integrator(real epsilon=1e-9) | Integrator | explicit |
m_dt | Integrator | protected |
m_t | Integrator | protected |
max_order | BDF2 | |
reset() override | BDF2 | virtual |
set_t(cmf::math::Time val) | Integrator | |
to_string() const override | BDF2 | virtual |
An order 2 BDF-Method with fixed-point iteration and variable step size. - More...
-Most important function: Integrate
+Public Member Functions | BDF2 (real epsilon=1e-9, cmf::math::Time tStepMin=cmf::math::timespan(10)) | | Constructs a new BDF2 integrator. More... | | | BDF2 (const cmf::math::state_list &states, real epsilon=1e-9, cmf::math::Time tStepMin=cmf::math::timespan(10)) | | Constructs a new Gears_var_Step. More... | | | BDF2 (const Integrator &templ) | | Constructs a new BDF2 integrator. More... | |
-Integrator * | copy () const override | | Polymorphic copy constructor. | |
-ptrdiff_t | get_error_position () const | | Returns the position of the biggest error. | | int | integrate (cmf::math::Time MaxTime, cmf::math::Time TimeStep) override | | Integrates the vector of state variables. More... | |
-void | reset () override | | Resets any saved history (for multistep methods) | |
-std::string | to_string () const override | | Desrcibes the iterator. | Integrate void | integrate_until (cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | | Integrates the vector of state variables until t_max. More... | void | integrate_until (cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | | Integrates the vector of state variables until t_max. |
-Public Attributes | |
-integratable_list | integratables |
Public access to integratables. | |
-int | max_order |
Maximum order, can be 1 (implicit euler) or 2 (BDF2) | |
-bool | reset_integratables =false |
If true, the integratables of this solver are reset. | |
+Protected Attributes
+const real | Epsilon =1e-9 | | Tolerable error. | | |
-model time | |
-cmf::math::Time | get_t () const |
Gear functions: The following functions evaluate the Gear formulas of specified order, loading the results into compareStates. | |
+int | max_order |
Maximum order, can be 1 (implicit euler) or 2 (BDF2) | |
+ptrdiff_t | get_error_position () const |
Returns the position of the biggest error. | |
+void | reset () override |
Resets any saved history (for multistep methods) | |
BDF2 (real epsilon=1e-9, cmf::math::Time tStepMin=cmf::math::timespan(10)) | |
Constructs a new BDF2 integrator. | |
BDF2 (const cmf::math::state_list &states, real epsilon=1e-9, cmf::math::Time tStepMin=cmf::math::timespan(10)) | |
Constructs a new Gears_var_Step. | |
BDF2 (const Integrator &templ) | |
Constructs a new BDF2 integrator. | |
+Integrator * | copy () const override |
Polymorphic copy constructor. | |
+std::string | to_string () const override |
Desrcibes the iterator. | |
int | integrate (cmf::math::Time MaxTime, cmf::math::Time TimeStep) override |
Integrates the vector of state variables. | |
model time | |
+cmf::math::Time | get_t () const |
Returns the current model time. | |
-void | set_t (cmf::math::Time val) |
+void | set_t (cmf::math::Time val) |
Sets the current model time. | |
-cmf::math::Time | get_dt () const |
+cmf::math::Time | get_dt () const |
Returns the last time step. | |
-cmf::math::Time | m_t |
+cmf::math::Time | m_t |
Actual time of the solver. | |
-cmf::math::Time | m_dt |
+cmf::math::Time | m_dt |
last time step of the solver | |
-int | m_Iterations =0 |
1e-9
, cmf::math::timespan(10)
Constructs a new BDF2 integrator.
+Constructs a new BDF2 integrator.
epsilon | relative error tolerance per time step (default=1e-9) | ( | -const cmf::math::state_list & | -states, | +const cmf::math::state_list & | states, |
- | real | -epsilon = 1e-9 , |
+ real | epsilon = 1e-9, | |
- | cmf::math::Time | -tStepMin = cmf::math::timespan(10) |
- |||
- | ) | -+ | cmf::math::Time | tStepMin = cmf::math::timespan(10) ) |
Constructs a new BDF2 integrator.
+Constructs a new BDF2 integrator.
templ | Template to be used to construct a BDF2 method |
templ | Template to be used to construct a BDF2 method |
Time()
, false
t_max | Time, the solver should run to |
dt | Time step (may be omitted) |
t_max | Time, the solver should run to |
dt | Time step (may be omitted) |
reset | If true, solver is reseted before integration starts |
+ |
+ 2.0.0b10
+ catchment modelling framework
+ |
+
This is the complete list of members for CVodeAdams, including all inherited members.
+_get_jacobian() const | CVodeBase | virtual |
copy() const override | CVodeAdams | virtual |
Epsilon | Integrator | protected |
get_dt() const | Integrator | |
get_error() const | CVodeBase | |
get_info() const | CVodeBase | |
get_t() const | Integrator | |
initialize() | CVodeBase | |
integrate(cmf::math::Time t_max, cmf::math::Time dt) | CVodeBase | virtual |
integrate_until(cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | Integrator | |
Integrator(real epsilon=1e-9) | Integrator | explicit |
m_dt | Integrator | protected |
m_t | Integrator | protected |
options | CVodeBase | |
reset() | CVodeBase | virtual |
set_error_msg(std::string error) | CVodeBase | |
set_t(cmf::math::Time val) | Integrator | |
to_string() const override | CVodeAdams | virtual |
+ |
+ 2.0.0b10
+ catchment modelling framework
+ |
+
Explizit multistep solver using CVode. + More...
+Explizit multistep solver using CVode.
++Public Member Functions | |
virtual cmf::math::num_array | _get_jacobian () const |
Returns a continuous 1D array representing the Jacobian columns concatenated. | |
+cmf::math::CVodeAdams * | copy () const override |
Returns a copy of the solver. | |
+cmf::math::num_array | get_error () const |
Error vector of the integrator. | |
+CVodeInfo | get_info () const |
Returns the current solver statistics. | |
int | initialize () |
Initialize the internal memory. | |
virtual int | integrate (cmf::math::Time t_max, cmf::math::Time dt) |
Integrates the vector of state variables. | |
+virtual void | reset () |
Resets the history of the multispte solver and overwrites the internal state cache. | |
+void | set_error_msg (std::string error) |
Sets an error message. | |
+std::string | to_string () const override |
Returns a string representation of the solver. | |
Integrate | |
void | integrate_until (cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) |
Integrates the vector of state variables until t_max. | |
+Public Attributes | |
+CVodeOptions | options |
the limits for the CVode solver, see CVodeOptions | |
+Protected Attributes | |
Accuracy parameters | |
+const real | Epsilon =1e-9 |
Tolerable error. | |
model time | |
+cmf::math::Time | get_t () const |
Returns the current model time. | |
+void | set_t (cmf::math::Time val) |
Sets the current model time. | |
+cmf::math::Time | get_dt () const |
Returns the last time step. | |
+cmf::math::Time | m_t |
Actual time of the solver. | |
+cmf::math::Time | m_dt |
last time step of the solver | |
+
|
+ +virtualinherited | +
Returns a continuous 1D array representing the Jacobian columns concatenated.
+In Python, get_jacobian returns the Jacobian as a 2D array
+ +Reimplemented in CVodeDense.
+ +
+
|
+ +inherited | +
Initialize the internal memory.
+Automatically called, when one starts to integrate
+ +
+
|
+ +virtualinherited | +
Integrates the vector of state variables.
+t_max | To stop the model (if running in a model framework) at time steps of value exchange e.g. full hours, the next value exchange time can be given |
dt | Takes the proposed time step, and changes it into the effectively used time step according to the local stiffness of the problem and MaxTime |
Implements Integrator.
+ +
+
|
+ +inherited | +
+ |
+ 2.0.0b10
+ catchment modelling framework
+ |
+
This is the complete list of members for CVodeBanded, including all inherited members.
+_get_jacobian() const | CVodeBase | virtual |
bandwidth | CVodeBanded | |
copy() const override | CVodeBanded | virtual |
Epsilon | Integrator | protected |
get_dt() const | Integrator | |
get_error() const | CVodeBase | |
get_info() const | CVodeBase | |
get_t() const | Integrator | |
initialize() | CVodeBase | |
integrate(cmf::math::Time t_max, cmf::math::Time dt) | CVodeBase | virtual |
integrate_until(cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | Integrator | |
Integrator(real epsilon=1e-9) | Integrator | explicit |
m_dt | Integrator | protected |
m_t | Integrator | protected |
options | CVodeBase | |
reset() | CVodeBase | virtual |
set_error_msg(std::string error) | CVodeBase | |
set_t(cmf::math::Time val) | Integrator | |
to_string() const override | CVodeBanded | virtual |
+ |
+ 2.0.0b10
+ catchment modelling framework
+ |
+
implicit BDF CVode solver with a banded Jacobian approximation + More...
+implicit BDF CVode solver with a banded Jacobian approximation
++Public Member Functions | |
virtual cmf::math::num_array | _get_jacobian () const |
Returns a continuous 1D array representing the Jacobian columns concatenated. | |
+cmf::math::CVodeBanded * | copy () const override |
Returns a copy of the solver. | |
+cmf::math::num_array | get_error () const |
Error vector of the integrator. | |
+CVodeInfo | get_info () const |
Returns the current solver statistics. | |
int | initialize () |
Initialize the internal memory. | |
virtual int | integrate (cmf::math::Time t_max, cmf::math::Time dt) |
Integrates the vector of state variables. | |
+virtual void | reset () |
Resets the history of the multispte solver and overwrites the internal state cache. | |
+void | set_error_msg (std::string error) |
Sets an error message. | |
+std::string | to_string () const override |
Returns a string representation of the solver. | |
Integrate | |
void | integrate_until (cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) |
Integrates the vector of state variables until t_max. | |
+Public Attributes | |
+int | bandwidth |
Width of the band to both sides of the diagonal. | |
+CVodeOptions | options |
the limits for the CVode solver, see CVodeOptions | |
+Protected Attributes | |
Accuracy parameters | |
+const real | Epsilon =1e-9 |
Tolerable error. | |
model time | |
+cmf::math::Time | get_t () const |
Returns the current model time. | |
+void | set_t (cmf::math::Time val) |
Sets the current model time. | |
+cmf::math::Time | get_dt () const |
Returns the last time step. | |
+cmf::math::Time | m_t |
Actual time of the solver. | |
+cmf::math::Time | m_dt |
last time step of the solver | |
+
|
+ +virtualinherited | +
Returns a continuous 1D array representing the Jacobian columns concatenated.
+In Python, get_jacobian returns the Jacobian as a 2D array
+ +Reimplemented in CVodeDense.
+ +
+
|
+ +inherited | +
Initialize the internal memory.
+Automatically called, when one starts to integrate
+ +
+
|
+ +virtualinherited | +
Integrates the vector of state variables.
+t_max | To stop the model (if running in a model framework) at time steps of value exchange e.g. full hours, the next value exchange time can be given |
dt | Takes the proposed time step, and changes it into the effectively used time step according to the local stiffness of the problem and MaxTime |
Implements Integrator.
+ +
+
|
+ +inherited | +
+ |
+ 2.0.0b10
+ catchment modelling framework
+ |
+
This is the complete list of members for CVodeBase, including all inherited members.
+_get_jacobian() const | CVodeBase | virtual |
copy() const override=0 | CVodeBase | pure virtual |
Epsilon | Integrator | protected |
get_dt() const | Integrator | |
get_error() const | CVodeBase | |
get_info() const | CVodeBase | |
get_t() const | Integrator | |
initialize() | CVodeBase | |
integrate(cmf::math::Time t_max, cmf::math::Time dt) | CVodeBase | virtual |
integrate_until(cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | Integrator | |
Integrator(real epsilon=1e-9) | Integrator | explicit |
m_dt | Integrator | protected |
m_t | Integrator | protected |
options | CVodeBase | |
reset() | CVodeBase | virtual |
set_error_msg(std::string error) | CVodeBase | |
set_t(cmf::math::Time val) | Integrator | |
to_string() const override=0 | CVodeBase | pure virtual |
+ |
+ 2.0.0b10
+ catchment modelling framework
+ |
+
Abstract base class for different modes of the CVode solver. + More...
+Abstract base class for different modes of the CVode solver.
+Initantiate one of the child classes to gain different modes of the CVode solver
++Public Member Functions | |
virtual cmf::math::num_array | _get_jacobian () const |
Returns a continuous 1D array representing the Jacobian columns concatenated. | |
+CVodeBase * | copy () const override=0 |
Returns a copy of the solver. | |
+cmf::math::num_array | get_error () const |
Error vector of the integrator. | |
+CVodeInfo | get_info () const |
Returns the current solver statistics. | |
int | initialize () |
Initialize the internal memory. | |
virtual int | integrate (cmf::math::Time t_max, cmf::math::Time dt) |
Integrates the vector of state variables. | |
+virtual void | reset () |
Resets the history of the multispte solver and overwrites the internal state cache. | |
+void | set_error_msg (std::string error) |
Sets an error message. | |
+std::string | to_string () const override=0 |
Returns a string representation of the solver. | |
Integrate | |
void | integrate_until (cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) |
Integrates the vector of state variables until t_max. | |
+Public Attributes | |
+CVodeOptions | options |
the limits for the CVode solver, see CVodeOptions | |
+Protected Attributes | |
Accuracy parameters | |
+const real | Epsilon =1e-9 |
Tolerable error. | |
model time | |
+cmf::math::Time | m_t |
Actual time of the solver. | |
+cmf::math::Time | m_dt |
last time step of the solver | |
+cmf::math::Time | get_t () const |
Returns the current model time. | |
+void | set_t (cmf::math::Time val) |
Sets the current model time. | |
+cmf::math::Time | get_dt () const |
Returns the last time step. | |
+
|
+ +virtual | +
Returns a continuous 1D array representing the Jacobian columns concatenated.
+In Python, get_jacobian returns the Jacobian as a 2D array
+ +Reimplemented in CVodeDense.
+ +int initialize | +( | +) | ++ |
Initialize the internal memory.
+Automatically called, when one starts to integrate
+ +
+
|
+ +virtual | +
Integrates the vector of state variables.
+t_max | To stop the model (if running in a model framework) at time steps of value exchange e.g. full hours, the next value exchange time can be given |
dt | Takes the proposed time step, and changes it into the effectively used time step according to the local stiffness of the problem and MaxTime |
Implements Integrator.
+ +
+
|
+ +inherited | +
+ |
+ 2.0.0b10
+ catchment modelling framework
+ |
+
This is the complete list of members for CVodeDense, including all inherited members.
+_get_jacobian() const override | CVodeDense | virtual |
copy() const override | CVodeDense | virtual |
CVodeDense(const cmf::math::state_list &states, real epsilon=1e-9) | CVodeDense | explicit |
Epsilon | Integrator | protected |
get_dt() const | Integrator | |
get_error() const | CVodeBase | |
get_info() const | CVodeBase | |
get_t() const | Integrator | |
initialize() | CVodeBase | |
integrate(cmf::math::Time t_max, cmf::math::Time dt) | CVodeBase | virtual |
integrate_until(cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | Integrator | |
Integrator(real epsilon=1e-9) | Integrator | explicit |
m_dt | Integrator | protected |
m_t | Integrator | protected |
options | CVodeBase | |
reset() | CVodeBase | virtual |
set_error_msg(std::string error) | CVodeBase | |
set_t(cmf::math::Time val) | Integrator | |
to_string() const override | CVodeDense | virtual |
+ |
+ 2.0.0b10
+ catchment modelling framework
+ |
+
implicit BDF CVode solver with full Jacobian approximation + More...
+implicit BDF CVode solver with full Jacobian approximation
+Use this solver for small but stiff systems (<20 state variables)
+The solver calculates for each step the full Jacobian matrix of the system using a difference quotient approximation of the real Jacobian
++Public Member Functions | |
+ | CVodeDense (const cmf::math::state_list &states, real epsilon=1e-9) |
Creates a new implicit dense CVode solver. | |
cmf::math::num_array | _get_jacobian () const override |
Returns a continuous 1D array representing the Jacobian columns concatenated. | |
+cmf::math::CVodeDense * | copy () const override |
Returns a copy of the solver. | |
+cmf::math::num_array | get_error () const |
Error vector of the integrator. | |
+CVodeInfo | get_info () const |
Returns the current solver statistics. | |
int | initialize () |
Initialize the internal memory. | |
virtual int | integrate (cmf::math::Time t_max, cmf::math::Time dt) |
Integrates the vector of state variables. | |
+virtual void | reset () |
Resets the history of the multispte solver and overwrites the internal state cache. | |
+void | set_error_msg (std::string error) |
Sets an error message. | |
+std::string | to_string () const override |
Returns a string representation of the solver. | |
Integrate | |
void | integrate_until (cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) |
Integrates the vector of state variables until t_max. | |
+Public Attributes | |
+CVodeOptions | options |
the limits for the CVode solver, see CVodeOptions | |
+Protected Attributes | |
Accuracy parameters | |
+const real | Epsilon =1e-9 |
Tolerable error. | |
model time | |
+cmf::math::Time | get_t () const |
Returns the current model time. | |
+void | set_t (cmf::math::Time val) |
Sets the current model time. | |
+cmf::math::Time | get_dt () const |
Returns the last time step. | |
+cmf::math::Time | m_t |
Actual time of the solver. | |
+cmf::math::Time | m_dt |
last time step of the solver | |
+
|
+ +overridevirtual | +
Returns a continuous 1D array representing the Jacobian columns concatenated.
+In Python, get_jacobian returns the Jacobian as a 2D array
+ +Reimplemented from CVodeBase.
+ +
+
|
+ +inherited | +
Initialize the internal memory.
+Automatically called, when one starts to integrate
+ +
+
|
+ +virtualinherited | +
Integrates the vector of state variables.
+t_max | To stop the model (if running in a model framework) at time steps of value exchange e.g. full hours, the next value exchange time can be given |
dt | Takes the proposed time step, and changes it into the effectively used time step according to the local stiffness of the problem and MaxTime |
Implements Integrator.
+ +
+
|
+ +inherited | +
+ |
+ 2.0.0b10
+ catchment modelling framework
+ |
+
This is the complete list of members for CVodeDiag, including all inherited members.
+_get_jacobian() const | CVodeBase | virtual |
copy() const | CVodeDiag | virtual |
Epsilon | Integrator | protected |
get_dt() const | Integrator | |
get_error() const | CVodeBase | |
get_info() const | CVodeBase | |
get_t() const | Integrator | |
initialize() | CVodeBase | |
integrate(cmf::math::Time t_max, cmf::math::Time dt) | CVodeBase | virtual |
integrate_until(cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | Integrator | |
Integrator(real epsilon=1e-9) | Integrator | explicit |
m_dt | Integrator | protected |
m_t | Integrator | protected |
options | CVodeBase | |
reset() | CVodeBase | virtual |
set_error_msg(std::string error) | CVodeBase | |
set_t(cmf::math::Time val) | Integrator | |
to_string() const | CVodeDiag | virtual |
+ |
+ 2.0.0b10
+ catchment modelling framework
+ |
+
implicit BDF CVode solver with a one line diagonal Jacobian approximation + More...
+implicit BDF CVode solver with a one line diagonal Jacobian approximation
++Public Member Functions | |
virtual cmf::math::num_array | _get_jacobian () const |
Returns a continuous 1D array representing the Jacobian columns concatenated. | |
+cmf::math::CVodeDiag * | copy () const |
Returns a copy of the solver. | |
+cmf::math::num_array | get_error () const |
Error vector of the integrator. | |
+CVodeInfo | get_info () const |
Returns the current solver statistics. | |
int | initialize () |
Initialize the internal memory. | |
virtual int | integrate (cmf::math::Time t_max, cmf::math::Time dt) |
Integrates the vector of state variables. | |
+virtual void | reset () |
Resets the history of the multispte solver and overwrites the internal state cache. | |
+void | set_error_msg (std::string error) |
Sets an error message. | |
+std::string | to_string () const |
Returns a string representation of the solver. | |
Integrate | |
void | integrate_until (cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) |
Integrates the vector of state variables until t_max. | |
+Public Attributes | |
+CVodeOptions | options |
the limits for the CVode solver, see CVodeOptions | |
+Protected Attributes | |
Accuracy parameters | |
+const real | Epsilon =1e-9 |
Tolerable error. | |
model time | |
+cmf::math::Time | get_t () const |
Returns the current model time. | |
+void | set_t (cmf::math::Time val) |
Sets the current model time. | |
+cmf::math::Time | get_dt () const |
Returns the last time step. | |
+cmf::math::Time | m_t |
Actual time of the solver. | |
+cmf::math::Time | m_dt |
last time step of the solver | |
+
|
+ +virtualinherited | +
Returns a continuous 1D array representing the Jacobian columns concatenated.
+In Python, get_jacobian returns the Jacobian as a 2D array
+ +Reimplemented in CVodeDense.
+ +
+
|
+ +inherited | +
Initialize the internal memory.
+Automatically called, when one starts to integrate
+ +
+
|
+ +virtualinherited | +
Integrates the vector of state variables.
+t_max | To stop the model (if running in a model framework) at time steps of value exchange e.g. full hours, the next value exchange time can be given |
dt | Takes the proposed time step, and changes it into the effectively used time step according to the local stiffness of the problem and MaxTime |
Implements Integrator.
+ +
+
|
+ +inherited | +
+ |
+ 2.0.0b10
+ catchment modelling framework
+ |
+
This is the complete list of members for CVodeKrylov, including all inherited members.
+_get_jacobian() const | CVodeBase | virtual |
bandwidth | CVodeKrylov | |
copy() const | CVodeKrylov | virtual |
Epsilon | Integrator | protected |
get_dt() const | Integrator | |
get_error() const | CVodeBase | |
get_info() const | CVodeBase | |
get_t() const | Integrator | |
initialize() | CVodeBase | |
integrate(cmf::math::Time t_max, cmf::math::Time dt) | CVodeBase | virtual |
integrate_until(cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | Integrator | |
Integrator(real epsilon=1e-9) | Integrator | explicit |
m_dt | Integrator | protected |
m_t | Integrator | protected |
options | CVodeBase | |
preconditioner | CVodeKrylov | |
reset() | CVodeBase | virtual |
set_error_msg(std::string error) | CVodeBase | |
set_t(cmf::math::Time val) | Integrator | |
to_string() const | CVodeKrylov | virtual |
+ |
+ 2.0.0b10
+ catchment modelling framework
+ |
+
implicit BDF CVode solver with a Krylov preconditioner + More...
+implicit BDF CVode solver with a Krylov preconditioner
++Public Member Functions | |
virtual cmf::math::num_array | _get_jacobian () const |
Returns a continuous 1D array representing the Jacobian columns concatenated. | |
+cmf::math::CVodeKrylov * | copy () const |
Returns a copy of the solver. | |
+cmf::math::num_array | get_error () const |
Error vector of the integrator. | |
+CVodeInfo | get_info () const |
Returns the current solver statistics. | |
int | initialize () |
Initialize the internal memory. | |
virtual int | integrate (cmf::math::Time t_max, cmf::math::Time dt) |
Integrates the vector of state variables. | |
+virtual void | reset () |
Resets the history of the multispte solver and overwrites the internal state cache. | |
+void | set_error_msg (std::string error) |
Sets an error message. | |
+std::string | to_string () const |
Returns a string representation of the solver. | |
Integrate | |
void | integrate_until (cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) |
Integrates the vector of state variables until t_max. | |
+Public Attributes | |
+int | bandwidth |
Band width of the preconditioner (both sides of the diagonal) | |
+CVodeOptions | options |
the limits for the CVode solver, see CVodeOptions | |
+char | preconditioner |
Type of the preconditioner 'L'->left, 'R'->right, 'B'->both, 'N'->None, default 'L'. | |
+Protected Attributes | |
Accuracy parameters | |
+const real | Epsilon =1e-9 |
Tolerable error. | |
model time | |
+cmf::math::Time | get_t () const |
Returns the current model time. | |
+void | set_t (cmf::math::Time val) |
Sets the current model time. | |
+cmf::math::Time | get_dt () const |
Returns the last time step. | |
+cmf::math::Time | m_t |
Actual time of the solver. | |
+cmf::math::Time | m_dt |
last time step of the solver | |
+
|
+ +virtualinherited | +
Returns a continuous 1D array representing the Jacobian columns concatenated.
+In Python, get_jacobian returns the Jacobian as a 2D array
+ +Reimplemented in CVodeDense.
+ +
+
|
+ +inherited | +
Initialize the internal memory.
+Automatically called, when one starts to integrate
+ +
+
|
+ +virtualinherited | +
Integrates the vector of state variables.
+t_max | To stop the model (if running in a model framework) at time steps of value exchange e.g. full hours, the next value exchange time can be given |
dt | Takes the proposed time step, and changes it into the effectively used time step according to the local stiffness of the problem and MaxTime |
Implements Integrator.
+ +
+
|
+ +inherited | +
This is the complete list of members for ExplicitEuler_fixed, including all inherited members.
copy() const | ExplicitEuler_fixed | virtual |
Epsilon | Integrator | protected |
copy() const | ExplicitEuler_fixed | virtual |
Epsilon | Integrator | protected |
ExplicitEuler_fixed(const cmf::math::state_list &states) | ExplicitEuler_fixed | explicit |
ExplicitEuler_fixed() | ExplicitEuler_fixed | |
ExplicitEuler_fixed() | ExplicitEuler_fixed | |
ExplicitEuler_fixed(const Integrator ©) | ExplicitEuler_fixed | |
get_dt() const | Integrator | |
get_dt() const | Integrator | |
get_t() const | Integrator | |
integratables | Integrator | |
integrate(cmf::math::Time MaxTime, cmf::math::Time TimeStep) | ExplicitEuler_fixed | virtual |
integrate_until(cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | Integrator | |
Integrator(real epsilon=1e-9) | Integrator | explicit |
m_dt | Integrator | protected |
m_t | Integrator | protected |
reset() | Integrator | virtual |
reset_integratables | Integrator | |
set_t(cmf::math::Time val) | Integrator | |
integrate(cmf::math::Time MaxTime, cmf::math::Time TimeStep) | ExplicitEuler_fixed | virtual |
integrate_until(cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | Integrator | |
Integrator(real epsilon=1e-9) | Integrator | explicit |
m_dt | Integrator | protected |
m_t | Integrator | protected |
reset() | Integrator | virtual |
set_t(cmf::math::Time val) | Integrator | |
to_string() const override | ExplicitEuler_fixed | virtual |
An explicit Euler integrator, with a fixed time step. - More...
-An explicit Euler integrator, with a fixed time step.
+Public Member Functions | ExplicitEuler_fixed (const cmf::math::state_list &states) | | Constructs a new ExplicitEuler_fixed from a pointer to a vector of state variables. More... | |
- | ExplicitEuler_fixed () | | Constructs a new ExplicitEuler_fixed. |
+ | ExplicitEuler_fixed () | |
- | ExplicitEuler_fixed (const Integrator ©) | | ExplicitEuler_fixed (const cmf::math::state_list &states) | | Constructs a new ExplicitEuler_fixed from a pointer to a vector of state variables. | | |
-virtual Integrator * | copy () const | | Polymorphic copy constructor. | | int | integrate (cmf::math::Time MaxTime, cmf::math::Time TimeStep) | | Integrates the vector of state variables. More... |
+virtual Integrator * | copy () const | | Polymorphic copy constructor. | | int | integrate (cmf::math::Time MaxTime, cmf::math::Time TimeStep) | |
-std::string | to_string () const override | Integrate void | integrate_until (cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | | Integrates the vector of state variables until t_max. More... | void | integrate_until (cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | | Constructs a new ExplicitEuler_fixed. | + | ExplicitEuler_fixed (const Integrator ©) | copy constructor | Integrates the vector of state variables. | +std::string | to_string () const override | Desrcibes the iterator. | Integrates the vector of state variables until t_max. |
-Public Attributes | |
-integratable_list | integratables |
Public access to integratables. | |
-bool | reset_integratables =false |
If true, the integratables of this solver are reset. | |
+Protected Attributes
+const real | Epsilon =1e-9 | | Tolerable error. | | |
-model time | |
-cmf::math::Time | get_t () const |
model time | |
+cmf::math::Time | get_t () const |
Returns the current model time. | |
-void | set_t (cmf::math::Time val) |
+void | set_t (cmf::math::Time val) |
Sets the current model time. | |
-cmf::math::Time | get_dt () const |
+cmf::math::Time | get_dt () const |
Returns the last time step. | |
-virtual void | reset () |
+virtual void | reset () |
Resets any saved history (for multistep methods) | |
-cmf::math::Time | m_t |
+cmf::math::Time | m_t |
Actual time of the solver. | |
-cmf::math::Time | m_dt |
+cmf::math::Time | m_dt |
last time step of the solver | |
-int | m_Iterations =0 |
Constructs a new ExplicitEuler_fixed from a pointer to a vector of state variables.
-Constructs a new ExplicitEuler_fixed from a pointer to a vector of state variables.
+states | Statevariables of the system | ( | -cmf::math::Time | -MaxTime, | +cmf::math::Time | MaxTime, |
- | cmf::math::Time | -TimeStep | -|||
- | ) | -+ | cmf::math::Time | TimeStep ) |
Time()
, false
t_max | Time, the solver should run to |
dt | Time step (may be omitted) |
t_max | Time, the solver should run to |
dt | Time step (may be omitted) |
reset | If true, solver is reseted before integration starts |
This is the complete list of members for HeunIntegrator, including all inherited members.
alpha | HeunIntegrator | |
copy() const | HeunIntegrator | virtual |
copy() const | HeunIntegrator | virtual |
Epsilon | Integrator | protected |
get_dt() const | Integrator | |
get_dt() const | Integrator | |
get_t() const | Integrator | |
HeunIntegrator(const cmf::math::state_list &states, real Alpha=0.5) | HeunIntegrator | explicit |
HeunIntegrator(const cmf::math::state_list &states, real Alpha=0.5) | HeunIntegrator | explicit |
HeunIntegrator(real Alpha=0.5) | HeunIntegrator | |
HeunIntegrator(const Integrator ©) | HeunIntegrator | |
integratables | Integrator | |
integrate(cmf::math::Time MaxTime, cmf::math::Time TimeStep) | HeunIntegrator | virtual |
integrate_until(cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | Integrator | |
Integrator(real epsilon=1e-9) | Integrator | explicit |
m_dt | Integrator | protected |
m_t | Integrator | protected |
reset() override | HeunIntegrator | virtual |
reset_integratables | Integrator | |
HeunIntegrator(const Integrator ©) | HeunIntegrator | |
integrate(cmf::math::Time MaxTime, cmf::math::Time TimeStep) | HeunIntegrator | virtual |
integrate_until(cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | Integrator | |
Integrator(real epsilon=1e-9) | Integrator | explicit |
m_dt | Integrator | protected |
m_t | Integrator | protected |
reset() override | HeunIntegrator | virtual |
set_t(cmf::math::Time val) | Integrator | |
to_string() const override | HeunIntegrator | virtual |
to_string() const override | HeunIntegrator | virtual |
A simple predictor - corrector solver. - More...
-A simple predictor - corrector solver.
Not tested and very experimentally \( y^{n+1} = y^n + \alpha f(y^n + f(y^n)dt)dt + (1-\alpha)f(y^n)dt \)
+Public Member Functions | HeunIntegrator (const cmf::math::state_list &states, real Alpha=0.5) | | Constructs a new PredictCorrectSimple from a pointer to a vector of state variables. More... | | HeunIntegrator (const cmf::math::state_list &states, real Alpha=0.5) | | | HeunIntegrator (real Alpha=0.5) | | Constructs a new Heun integrator. More... | |
- | HeunIntegrator (const Integrator ©) | |
-virtual Integrator * | copy () const | | Polymorphic copy constructor. | | int | integrate (cmf::math::Time MaxTime, cmf::math::Time TimeStep) | | Integrates the vector of state variables. More... | | HeunIntegrator (real Alpha=0.5) | | Constructs a new Heun integrator. | |
+virtual Integrator * | copy () const | | Polymorphic copy constructor. | | int | integrate (cmf::math::Time MaxTime, cmf::math::Time TimeStep) | |
-void | reset () override | |
-std::string | to_string () const override | Integrate void | integrate_until (cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | | Integrates the vector of state variables until t_max. More... | void | integrate_until (cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | | Constructs a new PredictCorrectSimple from a pointer to a vector of state variables. | + | HeunIntegrator (const Integrator ©) | copy constructor | Integrates the vector of state variables. | +void | reset () override | Resets any saved history (for multistep methods) | +std::string | to_string () const override | Desrcibes the iterator. | Integrates the vector of state variables until t_max. |
+Public Attributes
-real | alpha | |
-integratable_list | integratables | | Public access to integratables. | |
-bool | reset_integratables =false | | If true, the integratables of this solver are reset. | | +real | alpha | Alpha Weight factor \(\alpha\) to weight \(f(y^n)\) and \(f(y^{n+1})\). |
+Protected Attributes
+const real | Epsilon =1e-9 | | Tolerable error. | | |
-model time | |
-cmf::math::Time | get_t () const |
model time | |
+cmf::math::Time | get_t () const |
Returns the current model time. | |
-void | set_t (cmf::math::Time val) |
+void | set_t (cmf::math::Time val) |
Sets the current model time. | |
-cmf::math::Time | get_dt () const |
+cmf::math::Time | get_dt () const |
Returns the last time step. | |
-cmf::math::Time | m_t |
+cmf::math::Time | m_t |
Actual time of the solver. | |
-cmf::math::Time | m_dt |
+cmf::math::Time | m_dt |
last time step of the solver | |
-int | m_Iterations =0 |
0.5
Constructs a new PredictCorrectSimple from a pointer to a vector of state variables.
-states | Statevariable owner of the system | ( | -real | -Alpha = 0.5 | ) | +real | Alpha = 0.5 | ) |
Time()
, false
t_max | Time, the solver should run to |
dt | Time step (may be omitted) |
t_max | Time, the solver should run to |
dt | Time step (may be omitted) |
reset | If true, solver is reseted before integration starts |
This is the complete list of members for ImplicitEuler, including all inherited members.
copy() const | ImplicitEuler | virtual |
dt_min | ImplicitEuler | |
copy() const | ImplicitEuler | virtual |
dt_min | ImplicitEuler | |
Epsilon | Integrator | protected |
get_dt() const | Integrator | |
get_dt() const | Integrator | |
get_t() const | Integrator | |
ImplicitEuler(const cmf::math::state_list &states, real epsilon=1e-9, cmf::math::Time tStepMin=cmf::math::timespan(10)) | ImplicitEuler | |
ImplicitEuler(const cmf::math::state_list &states, real epsilon=1e-9, cmf::math::Time tStepMin=cmf::math::timespan(10)) | ImplicitEuler | |
ImplicitEuler(real epsilon=1e-9, cmf::math::Time tStepMin=cmf::math::timespan(10)) | ImplicitEuler | |
ImplicitEuler(const Integrator &) | ImplicitEuler | |
integratables | Integrator | |
integrate(cmf::math::Time MaxTime, cmf::math::Time TimeStep) | ImplicitEuler | virtual |
integrate_until(cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | Integrator | |
Integrator(real epsilon=1e-9) | Integrator | explicit |
m_dt | Integrator | protected |
m_t | Integrator | protected |
reset() override | ImplicitEuler | virtual |
reset_integratables | Integrator | |
ImplicitEuler(const Integrator &) | ImplicitEuler | |
integrate(cmf::math::Time MaxTime, cmf::math::Time TimeStep) | ImplicitEuler | virtual |
integrate_until(cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | Integrator | |
Integrator(real epsilon=1e-9) | Integrator | explicit |
m_dt | Integrator | protected |
m_t | Integrator | protected |
reset() override | ImplicitEuler | virtual |
set_t(cmf::math::Time val) | Integrator | |
to_string() const override | ImplicitEuler | virtual |
to_string() const override | ImplicitEuler | virtual |
An implicit (backward) Euler integrator using fixpoint iteration. - More...
-An implicit (backward) Euler integrator using fixpoint iteration.
+Public Member Functions | ImplicitEuler (const cmf::math::state_list &states, real epsilon=1e-9, cmf::math::Time tStepMin=cmf::math::timespan(10)) | | Constructs a new FixPointImplicitEuler from a pointer to a vector of state variables. More... | | | ImplicitEuler (real epsilon=1e-9, cmf::math::Time tStepMin=cmf::math::timespan(10)) | | Constructs a new FixPointImplicitEuler. More... | |
- | ImplicitEuler (const Integrator &) | | copy constructor | |
-virtual Integrator * | copy () const | | Polymorphic copy constructor. | | int | integrate (cmf::math::Time MaxTime, cmf::math::Time TimeStep) | | Integrates the vector of state variables. More... | |
-void | reset () override | | Resets any saved history (for multistep methods) | |
-std::string | to_string () const override | | Desrcibes the iterator. | Integrate void | integrate_until (cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | | Integrates the vector of state variables until t_max. More... | void | integrate_until (cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | | Integrates the vector of state variables until t_max. |
-Public Attributes | |
-Time | dt_min |
The shortest allowed timestep. | |
-integratable_list | integratables |
Public access to integratables. | |
-bool | reset_integratables =false |
If true, the integratables of this solver are reset. | |
+Protected Attributes
+const real | Epsilon =1e-9 | | Tolerable error. | | |
-model time | |
-cmf::math::Time | get_t () const |
Internal data storages | |
+Time | dt_min |
The shortest allowed timestep. | |
ImplicitEuler (const cmf::math::state_list &states, real epsilon=1e-9, cmf::math::Time tStepMin=cmf::math::timespan(10)) | |
Constructs a new FixPointImplicitEuler from a pointer to a vector of state variables. | |
ImplicitEuler (real epsilon=1e-9, cmf::math::Time tStepMin=cmf::math::timespan(10)) | |
Constructs a new FixPointImplicitEuler. | |
+ | ImplicitEuler (const Integrator &) |
copy constructor | |
+virtual Integrator * | copy () const |
Polymorphic copy constructor. | |
+std::string | to_string () const override |
Desrcibes the iterator. | |
int | integrate (cmf::math::Time MaxTime, cmf::math::Time TimeStep) |
Integrates the vector of state variables. | |
+void | reset () override |
Resets any saved history (for multistep methods) | |
model time | |
+cmf::math::Time | get_t () const |
Returns the current model time. | |
-void | set_t (cmf::math::Time val) |
+void | set_t (cmf::math::Time val) |
Sets the current model time. | |
-cmf::math::Time | get_dt () const |
+cmf::math::Time | get_dt () const |
Returns the last time step. | |
-cmf::math::Time | m_t |
+cmf::math::Time | m_t |
Actual time of the solver. | |
-cmf::math::Time | m_dt |
+cmf::math::Time | m_dt |
last time step of the solver | |
-int | m_Iterations =0 |
1e-9
, cmf::math::timespan(10)
Constructs a new FixPointImplicitEuler from a pointer to a vector of state variables.
-states | Statevariables of the system | ( | -real | -epsilon = 1e-9 , |
+ real | epsilon = 1e-9, |
- | cmf::math::Time | -tStepMin = cmf::math::timespan(10) |
- |||
- | ) | -+ | cmf::math::Time | tStepMin = cmf::math::timespan(10) ) |
Time()
, false
t_max | Time, the solver should run to |
dt | Time step (may be omitted) |
t_max | Time, the solver should run to |
dt | Time step (may be omitted) |
reset | If true, solver is reseted before integration starts |
This is the complete list of members for Integrator, including all inherited members.
copy() const =0 | Integrator | pure virtual |
Epsilon | Integrator | protected |
copy() const =0 | Integrator | pure virtual |
Epsilon | Integrator | protected |
get_dt() const | Integrator | |
get_t() const | Integrator | |
integratables | Integrator | |
integrate(cmf::math::Time t_max, cmf::math::Time dt)=0 | Integrator | pure virtual |
integrate_until(cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | Integrator | |
Integrator(real epsilon=1e-9) | Integrator | explicit |
m_dt | Integrator | protected |
m_t | Integrator | protected |
reset() | Integrator | virtual |
reset_integratables | Integrator | |
get_t() const | Integrator | |
integrate(cmf::math::Time t_max, cmf::math::Time dt)=0 | Integrator | pure virtual |
integrate_until(cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | Integrator | |
Integrator(real epsilon=1e-9) | Integrator | explicit |
m_dt | Integrator | protected |
m_t | Integrator | protected |
reset() | Integrator | virtual |
set_t(cmf::math::Time val) | Integrator | |
to_string() const =0 | Integrator | pure virtual |
to_string() const =0 | Integrator | pure virtual |
Base class for any kind of integrator. - More...
-
+Public Member Functions
-virtual std::string | to_string () const =0 | Constructors and Destructors | Integrator (real epsilon=1e-9) | | Constructs a new Integrator with a new own state vector. More... | | Integrator (real epsilon=1e-9) | |
- | Integrator (const state_list &states, real epsilon=1e-9) | |
- | Integrator (const cmf::math::Integrator &other) | |
-virtual Integrator * | copy () const =0 | | Polymorphic copy constructor. | |
+virtual Integrator * | copy () const =0 | | Polymorphic copy constructor. | Integrate virtual int | integrate (cmf::math::Time t_max, cmf::math::Time dt)=0 | | Integrates the vector of state variables. More... | virtual int | integrate (cmf::math::Time t_max, cmf::math::Time dt)=0 | | void | integrate_until (cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | | Integrates the vector of state variables until t_max. More... | void | integrate_until (cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | | +virtual std::string | to_string () const =0 | Desrcibes the iterator. | Constructs a new Integrator with a new own state vector. | Integrates the vector of state variables. | Integrates the vector of state variables until t_max. |
-Public Attributes | |
-integratable_list | integratables |
Public access to integratables. | |
-bool | reset_integratables =false |
If true, the integratables of this solver are reset. | |
+Protected Attributes
+const real | Epsilon =1e-9 | | Tolerable error. | | |
-model time | |
-cmf::math::Time | m_t |
model time | |
+cmf::math::Time | m_t |
Actual time of the solver. | |
-cmf::math::Time | m_dt |
+cmf::math::Time | m_dt |
last time step of the solver | |
-int | m_Iterations =0 |
-cmf::math::Time | get_t () const |
+cmf::math::Time | get_t () const |
Returns the current model time. | |
-void | set_t (cmf::math::Time val) |
+void | set_t (cmf::math::Time val) |
Sets the current model time. | |
-cmf::math::Time | get_dt () const |
+cmf::math::Time | get_dt () const |
Returns the last time step. | |
-virtual void | reset () |
+virtual void | reset () |
Resets any saved history (for multistep methods) | |
1e-9
Constructs a new Integrator with a new own state vector.
+Constructs a new Integrator with a new own state vector.
epsilon | relative error tolerance per time step (default=1e-9) | ( | -cmf::math::Time | -t_max, | +cmf::math::Time | t_max, |
- | cmf::math::Time | -dt | -|||
- | ) | -+ | cmf::math::Time | dt ) |
Implemented in ExplicitEuler_fixed, HeunIntegrator, ImplicitEuler, RKFIntegrator, BDF2, CVodeBase, MultiIntegrator, and SoluteWaterIntegrator.
Time()
, false
t_max | Time, the solver should run to |
dt | Time step (may be omitted) |
t_max | Time, the solver should run to |
dt | Time step (may be omitted) |
reset | If true, solver is reseted before integration starts |
This is the complete list of members for MultiIntegrator, including all inherited members.
copy() const | MultiIntegrator | virtual |
Epsilon | Integrator | protected |
copy() const | MultiIntegrator | virtual |
Epsilon | Integrator | protected |
get_dt() const | Integrator | |
get_t() const | Integrator | |
integratables | Integrator | |
integrate(cmf::math::Time t_max, cmf::math::Time dt) | MultiIntegrator | virtual |
integrate_until(cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | Integrator | |
Integrator(real epsilon=1e-9) | Integrator | explicit |
m_dt | Integrator | protected |
m_t | Integrator | protected |
MultiIntegrator(const cmf::math::Integrator &template_integrator, int count) | MultiIntegrator | |
reset() | MultiIntegrator | virtual |
reset_integratables | Integrator | |
set_t(cmf::math::Time val) | Integrator | |
get_t() const | Integrator | |
integrate(cmf::math::Time t_max, cmf::math::Time dt) | MultiIntegrator | virtual |
integrate_until(cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | Integrator | |
Integrator(real epsilon=1e-9) | Integrator | explicit |
m_dt | Integrator | protected |
m_t | Integrator | protected |
MultiIntegrator(const cmf::math::Integrator &template_integrator, int count) | MultiIntegrator | |
reset() | MultiIntegrator | virtual |
set_t(cmf::math::Time val) | Integrator | |
to_string() const override | MultiIntegrator | virtual |
The MultiIntegrator is a wrapper for a bunch integrators. The states of the integrators should not have direct connections over integrator boundaries. - More...
-The MultiIntegrator is a wrapper for a bunch integrators. The states of the integrators should not have direct connections over integrator boundaries.
+Public Member Functions | MultiIntegrator (const cmf::math::Integrator &template_integrator, int count) | | Creates a new MultiIntegrator. More... | | MultiIntegrator (const cmf::math::Integrator &template_integrator, int count) | |
-virtual cmf::math::MultiIntegrator * | copy () const | | Polymorphic copy constructor. | | int | integrate (cmf::math::Time t_max, cmf::math::Time dt) | | Integrates the vector of state variables. More... |
+virtual cmf::math::MultiIntegrator * | copy () const | | Polymorphic copy constructor. | | int | integrate (cmf::math::Time t_max, cmf::math::Time dt) | |
-virtual void | reset () | |
-std::string | to_string () const override | Integrate void | integrate_until (cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | | Integrates the vector of state variables until t_max. More... | void | integrate_until (cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | | Creates a new MultiIntegrator. | Integrates the vector of state variables. | +virtual void | reset () | Resets the integrator. | +std::string | to_string () const override | Desrcibes the iterator. | Integrates the vector of state variables until t_max. |
-Public Attributes | |
-integratable_list | integratables |
Public access to integratables. | |
-bool | reset_integratables =false |
If true, the integratables of this solver are reset. | |
+Protected Attributes
+const real | Epsilon =1e-9 | | Tolerable error. | | |
-model time | |
-cmf::math::Time | get_t () const |
model time | |
+cmf::math::Time | get_t () const |
Returns the current model time. | |
-void | set_t (cmf::math::Time val) |
+void | set_t (cmf::math::Time val) |
Sets the current model time. | |
-cmf::math::Time | get_dt () const |
+cmf::math::Time | get_dt () const |
Returns the last time step. | |
-cmf::math::Time | m_t |
+cmf::math::Time | m_t |
Actual time of the solver. | |
-cmf::math::Time | m_dt |
+cmf::math::Time | m_dt |
last time step of the solver | |
-int | m_Iterations =0 |
Time()
, false
t_max | Time, the solver should run to |
dt | Time step (may be omitted) |
t_max | Time, the solver should run to |
dt | Time step (may be omitted) |
reset | If true, solver is reseted before integration starts |
This is the complete list of members for RKFIntegrator, including all inherited members.
AdjustTimestep(Time &TimeStep, Time MaxTime) | RKFIntegrator | protected |
copy() const | RKFIntegrator | virtual |
copy() const | RKFIntegrator | virtual |
Epsilon | Integrator | protected |
get_dt() const | Integrator | |
get_dt() const | Integrator | |
get_t() const | Integrator | |
integratables | Integrator | |
integrate(cmf::math::Time MaxTime, cmf::math::Time TimeStep) | RKFIntegrator | virtual |
integrate_until(cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | Integrator | |
Integrator(real epsilon=1e-9) | Integrator | explicit |
m_dt | Integrator | protected |
m_t | Integrator | protected |
reset() override | RKFIntegrator | virtual |
reset_integratables | Integrator | |
RKFIntegrator(const cmf::math::state_list &states, real epsilon=1e-9, cmf::math::Time dt_min=cmf::math::timespan(1000)) | RKFIntegrator | |
integrate(cmf::math::Time MaxTime, cmf::math::Time TimeStep) | RKFIntegrator | virtual |
integrate_until(cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | Integrator | |
Integrator(real epsilon=1e-9) | Integrator | explicit |
m_dt | Integrator | protected |
m_t | Integrator | protected |
reset() override | RKFIntegrator | virtual |
RKFIntegrator(const cmf::math::state_list &states, real epsilon=1e-9, cmf::math::Time dt_min=cmf::math::timespan(1000)) | RKFIntegrator | |
RKFIntegrator(real epsilon=1e-9, cmf::math::Time dt_min=cmf::math::timespan(1000)) | RKFIntegrator | |
set_t(cmf::math::Time val) | Integrator | |
set_t(cmf::math::Time val) | Integrator | |
to_string() const override | RKFIntegrator | virtual |
Integrates a vector of cmf::math::StateVariable with the Runge-Kutta-Fehlberg (RKF54) method. - More...
-Integrates a vector of cmf::math::StateVariable with the Runge-Kutta-Fehlberg (RKF54) method. + More...
+Integrates a vector of cmf::math::StateVariable with the Runge-Kutta-Fehlberg (RKF54) method.
+Integrates a vector of cmf::math::StateVariable with the Runge-Kutta-Fehlberg (RKF54) method.
+Public Member Functions | RKFIntegrator (const cmf::math::state_list &states, real epsilon=1e-9, cmf::math::Time dt_min=cmf::math::timespan(1000)) | | Constructs a new RKFIntegrator from a pointer to a vector of state variables. More... | | RKFIntegrator (const cmf::math::state_list &states, real epsilon=1e-9, cmf::math::Time dt_min=cmf::math::timespan(1000)) | | | RKFIntegrator (real epsilon=1e-9, cmf::math::Time dt_min=cmf::math::timespan(1000)) | | Constructs a new RKFIntegrator. More... | | RKFIntegrator (real epsilon=1e-9, cmf::math::Time dt_min=cmf::math::timespan(1000)) | |
-virtual Integrator * | copy () const | | Polymorphic copy constructor. | | int | integrate (cmf::math::Time MaxTime, cmf::math::Time TimeStep) | | Integrates the vector of state variables. More... |
+virtual Integrator * | copy () const | | Polymorphic copy constructor. | | int | integrate (cmf::math::Time MaxTime, cmf::math::Time TimeStep) | |
-void | reset () override | |
-std::string | to_string () const override | Integrate void | integrate_until (cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | | Integrates the vector of state variables until t_max. More... | void | integrate_until (cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | | Constructs a new RKFIntegrator from a pointer to a vector of state variables. | Constructs a new RKFIntegrator. | Integrates the vector of state variables. | +void | reset () override | Resets any saved history (for multistep methods) | +std::string | to_string () const override | Desrcibes the iterator. | Integrates the vector of state variables until t_max. |
-Public Attributes | |
-integratable_list | integratables |
Public access to integratables. | |
-bool | reset_integratables =false |
If true, the integratables of this solver are reset. | |
+Protected Member Functions
-void | AdjustTimestep (Time &TimeStep, Time MaxTime) | | +void | AdjustTimestep (Time &TimeStep, Time MaxTime) | Protected function to adjust the step width for stability reasons. |
+Protected Attributes
+const real | Epsilon =1e-9 | | Tolerable error. | | |
-model time | |
-cmf::math::Time | get_t () const |
model time | |
+cmf::math::Time | get_t () const |
Returns the current model time. | |
-void | set_t (cmf::math::Time val) |
+void | set_t (cmf::math::Time val) |
Sets the current model time. | |
-cmf::math::Time | get_dt () const |
+cmf::math::Time | get_dt () const |
Returns the last time step. | |
-cmf::math::Time | m_t |
+cmf::math::Time | m_t |
Actual time of the solver. | |
-cmf::math::Time | m_dt |
+cmf::math::Time | m_dt |
last time step of the solver | |
-int | m_Iterations =0 |
1e-9
, cmf::math::timespan(1000)
Constructs a new RKFIntegrator from a pointer to a vector of state variables.
-Constructs a new RKFIntegrator from a pointer to a vector of state variables.
+states | Statevariables of the system | ( | -real | -epsilon = 1e-9 , |
+ real | epsilon = 1e-9, |
- | cmf::math::Time | -dt_min = cmf::math::timespan(1000) |
- |||
- | ) | -+ | cmf::math::Time | dt_min = cmf::math::timespan(1000) ) |
Constructs a new RKFIntegrator.
+Constructs a new RKFIntegrator.
epsilon | relative error tolerance per time step (default=1e-9) | ( | -cmf::math::Time | -MaxTime, | +cmf::math::Time | MaxTime, |
- | cmf::math::Time | -TimeStep | -|||
- | ) | -+ | cmf::math::Time | TimeStep ) |
Time()
, false
t_max | Time, the solver should run to |
dt | Time step (may be omitted) |
t_max | Time, the solver should run to |
dt | Time step (may be omitted) |
reset | If true, solver is reseted before integration starts |
This is the complete list of members for SoluteWaterIntegrator, including all inherited members.
copy() const | SoluteWaterIntegrator | virtual |
Epsilon | Integrator | protected |
copy() const override | SoluteWaterIntegrator | virtual |
Epsilon | Integrator | protected |
get_dt() const | Integrator | |
get_t() const | Integrator | |
integratables | Integrator | |
integrate(cmf::math::Time t_max, cmf::math::Time dt) | SoluteWaterIntegrator | virtual |
integrate_until(cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | Integrator | |
Integrator(real epsilon=1e-9) | Integrator | explicit |
m_dt | Integrator | protected |
m_t | Integrator | protected |
reset() | SoluteWaterIntegrator | virtual |
reset_integratables | Integrator | |
get_t() const | Integrator | |
integrate(cmf::math::Time t_max, cmf::math::Time dt) override | SoluteWaterIntegrator | virtual |
integrate_until(cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | Integrator | |
Integrator(real epsilon=1e-9) | Integrator | explicit |
m_dt | Integrator | protected |
m_t | Integrator | protected |
reset() override | SoluteWaterIntegrator | virtual |
set_t(cmf::math::Time val) | Integrator | |
SoluteWaterIntegrator(const cmf::water::solute_vector &solutes, const cmf::math::Integrator &water_integrator, const cmf::math::Integrator &solute_integrator) | SoluteWaterIntegrator | |
SoluteWaterIntegrator(cmf::water::solute_vector solutes, const cmf::math::Integrator &water_integrator, const cmf::math::Integrator &solute_integrator, const cmf::math::state_list &states) | SoluteWaterIntegrator | |
to_string() const override | SoluteWaterIntegrator | virtual |
SoluteWaterIntegrator(const cmf::water::solute_vector &solutes, const cmf::math::Integrator &water_integrator, const cmf::math::Integrator &solute_integrator) | SoluteWaterIntegrator | |
SoluteWaterIntegrator(const cmf::water::solute_vector &solutes, const cmf::math::Integrator &water_integrator, const cmf::math::Integrator &solute_integrator, const cmf::math::state_list &states) | SoluteWaterIntegrator | |
to_string() const override | SoluteWaterIntegrator | virtual |
A SoluteWaterIntegrator implements the cmf::math::Integrator interface, but consists of two independent ODE-solvers. - More...
-A SoluteWaterIntegrator implements the cmf::math::Integrator interface, but consists of two independent ODE-solvers. + More...
+A SoluteWaterIntegrator implements the cmf::math::Integrator interface, but consists of two independent ODE-solvers.
+A SoluteWaterIntegrator implements the cmf::math::Integrator interface, but consists of two independent ODE-solvers.
Added statevariables are sorted by waterstorages and solute storages and assigned to the correct solver.
+Public Member Functions | SoluteWaterIntegrator (const cmf::water::solute_vector &solutes, const cmf::math::Integrator &water_integrator, const cmf::math::Integrator &solute_integrator) | | Creates a new SoluteWaterIntegrator. More... | | SoluteWaterIntegrator (const cmf::water::solute_vector &solutes, const cmf::math::Integrator &water_integrator, const cmf::math::Integrator &solute_integrator) | | | SoluteWaterIntegrator (cmf::water::solute_vector solutes, const cmf::math::Integrator &water_integrator, const cmf::math::Integrator &solute_integrator, const cmf::math::state_list &states) | | Creates a new SoluteWaterIntegrator. More... | |
-virtual cmf::math::SoluteWaterIntegrator * | copy () const | | Polymorphic copy constructor. | |
-int | integrate (cmf::math::Time t_max, cmf::math::Time dt) | | Add state variables from a cmf::math::state_list. | |
-virtual void | reset () | | Resets the integrators (only needed for multistep methods) | |
-std::string | to_string () const override | | SoluteWaterIntegrator (const cmf::water::solute_vector &solutes, const cmf::math::Integrator &water_integrator, const cmf::math::Integrator &solute_integrator, const cmf::math::state_list &states) | | Creates a new SoluteWaterIntegrator. | |
+cmf::math::SoluteWaterIntegrator * | copy () const override | | Polymorphic copy constructor. | |
+int | integrate (cmf::math::Time t_max, cmf::math::Time dt) override | | Add state variables from a cmf::math::state_list. | |
+void | reset () override | | Resets the integrators (only needed for multistep methods) | | Integrate void | integrate_until (cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | | Integrates the vector of state variables until t_max. More... | void | integrate_until (cmf::math::Time t_max, cmf::math::Time dt=Time(), bool reset=false) | | Creates a new SoluteWaterIntegrator. | +std::string | to_string () const override | Desrcibes the iterator. | Integrates the vector of state variables until t_max. |
-Public Attributes | |
-integratable_list | integratables |
Public access to integratables. | |
-bool | reset_integratables =false |
If true, the integratables of this solver are reset. | |
+Protected Attributes
+const real | Epsilon =1e-9 | | Tolerable error. | | |
-model time | |
-cmf::math::Time | m_t |
model time | |
+cmf::math::Time | m_t |
Actual time of the solver. | |
-cmf::math::Time | m_dt |
+cmf::math::Time | m_dt |
last time step of the solver | |
-int | m_Iterations =0 |
-cmf::math::Time | get_t () const |
+cmf::math::Time | get_t () const |
Returns the current model time. | |
-void | set_t (cmf::math::Time val) |
+void | set_t (cmf::math::Time val) |
Sets the current model time. | |
-cmf::math::Time | get_dt () const |
+cmf::math::Time | get_dt () const |
Returns the last time step. | |
Time()
, false
t_max | Time, the solver should run to |
dt | Time step (may be omitted) |
t_max | Time, the solver should run to |
dt | Time step (may be omitted) |
reset | If true, solver is reseted before integration starts |
This is the complete list of members for StateVariable, including all inherited members.
dxdt(const cmf::math::Time &time)=0 | StateVariable | pure virtual |
get_state() const | StateVariable | |
list typedef | StateVariable | |
MarkStateChangeHandled() | StateVariable | protected |
set_state(real newState) | StateVariable | |
StateIsChanged() | StateVariable | protected |
StateVariable(real InitialState=0, real scale=1) | StateVariable | |
get_state() const | StateVariable | |
MarkStateChangeHandled() | StateVariable | protected |
set_state(real newState) | StateVariable | |
StateIsChanged() | StateVariable | protected |
StateVariable(real InitialState=0, real scale=1) | StateVariable |
Abstract class state variable. - More...
-Abstract class state variable.
-Simple exponential system class header implementing a state variable:
-Public Types | |
-typedef std::vector< StateVariable * > | list |
Not part of the API, used to create sparse structure. | |
+ |
-
Public Member Functions | |
- | StateVariable (real InitialState=0, real scale=1) |
+ | StateVariable (real InitialState=0, real scale=1) |
ctor | |
-virtual real | dxdt (const cmf::math::Time &time)=0 |
+virtual real | dxdt (const cmf::math::Time &time)=0 |
Returns the derivate of the state variable at time time . | |
-real | get_state () const |
+real | get_state () const |
Returns the current state of the variable. | |
-void | set_state (real newState) |
+void | set_state (real newState) |
Gives access to the state variable. | |
+Protected Member Functions
-void | MarkStateChangeHandled () | |
-bool | StateIsChanged () | | +void | MarkStateChangeHandled () | Sets the updated flag (m_StateIsNew) to false. | +bool | StateIsChanged () | Returns if the state was currently updated. |
- |
- 2.0.0a0
- The Catchment Modelling Framework
- |
-
This is the complete list of members for StateVariableOwner, including all inherited members.
-get_states()=0 | StateVariableOwner | pure virtual |
- |
- 2.0.0a0
- The Catchment Modelling Framework
- |
-
An abstract class, that owns one or more state variables, that can add them to a vector of state variables in a certain order. - More...
-An abstract class, that owns one or more state variables, that can add them to a vector of state variables in a certain order.
--Public Member Functions | |
-virtual StateVariableList | get_states ()=0 |
Add the state variables, owned by an object derived from StateVariableOwner, to the given vector. | |
This is the complete list of members for Time, including all inherited members.
AsDays() const | Time | |
AsHours() const | Time | |
AsHours() const | Time | |
AsMilliseconds() const | Time | |
AsMinutes() const | Time | |
AsMinutes() const | Time | |
AsSeconds() const | Time | |
operator!=(const Time &t1) const | Time | |
operator!=(const Time &t1) const | Time | |
operator%(const Time &t1) const | Time | |
operator%=(const Time &t1) | Time | |
operator%=(const Time &t1) | Time | |
operator*(double x) const | Time | |
operator*(long long x) const | Time | |
operator*(long long x) const | Time | |
operator*(int x) const | Time | |
operator*=(double x) | Time | |
operator*=(long long x) | Time | |
operator*=(int x) | Time | |
operator*=(double x) | Time | |
operator*=(long long x) | Time | |
operator*=(int x) | Time | |
operator+(const Time &t1) const | Time | |
operator+=(const Time &t1) | Time | |
operator+=(const Time &t1) | Time | |
operator-(const Time &t1) const | Time | |
operator-=(const Time &t1) | Time | |
operator-=(const Time &t1) | Time | |
operator/(double x) const | Time | |
operator/(long long x) const | Time | |
operator/(long long x) const | Time | |
operator/(int x) const | Time | |
operator/(const Time &t1) const | Time | |
operator/=(double x) | Time | |
operator/=(long long x) | Time | |
operator/=(int x) | Time | |
operator<(const Time &t1) const | Time | |
operator/(const Time &t1) const | Time | |
operator/=(double x) | Time | |
operator/=(long long x) | Time | |
operator/=(int x) | Time | |
operator<(const Time &t1) const | Time | |
operator<=(const Time &t1) const | Time | |
operator==(const Time &t1) const | Time | |
operator==(const Time &t1) const | Time | |
operator>(const Time &t1) const | Time | |
operator>=(const Time &t1) const | Time | |
operator>=(const Time &t1) const | Time | |
Time(int day, int month, int year, int hour=0, int minute=0, int second=0, int ms=0) | Time | |
Time(Date date) | Time | |
Time(Date date) | Time | |
Time(const Time &t) | Time | |
Time() | Time | |
Time() | Time | |
times_in(const Time &t1) const | Time |
A time class, used to pass around current modelling times. - More...
+ More...A time class, used to pass around current modelling times.
-Timespans and dates in cmf are used with a special object, called Time. An extra class has the advantage, that the user does not have to remember, which unit of time he or she uses or what time unit is accepted by a specific function of the model. Arithmetic and boolean operators are supported by Time. Internally the time classes stores the time as integer milliseconds, therefore rounding issues will only appear at very small time ranges. Absolute time (like dates) are represented as milliseconds gone by from Dec, 31st 1899. Microsoft Excel dates are represented as days from that time, using floating point numbers, therefore it is very simple to convert Excel time representations to cmf time.
-Another object is Date, which is doesn't provide the operators, but has a nice printed version and some special date functions, like day of year (DOY) and provides access to the current hour of day and so on, which only applyto dates and not to time spans. You can convert Time to Date an vice versa. The printing is not culture aware and uses the European representation. If you use the Python standard library datetime, conversion between Python time and cmf time is possible
-Creating absolute time values (dates)
Creating time spans
+Timespans and dates in cmf are used with a special object, called Time. An extra class has the advantage, that the user does not have to remember, which unit of time he or she uses or what time unit is accepted by a specific function of the model. Arithmetic and boolean operators are supported by Time. Internally the time classes stores the time as integer milliseconds, therefore rounding issues will only appear at very small time ranges. Absolute time (like dates) are represented as milliseconds gone by from Dec, 31st 1899. Microsoft Excel dates are represented as days from that time, using floating point numbers, therefore it is very simple to convert Excel time representations to cmf time.
+Another object is Date, which is doesn't provide the operators, but has a nice printed version and some special date functions, like day of year (DOY) and provides access to the current hour of day and so on, which only applyto dates and not to time spans. You can convert Time to Date an vice versa. The printing is not culture aware and uses the European representation. If you use the Python standard library datetime, conversion between Python time and cmf time is possible
+Creating absolute time values (dates)
Creating time spans
In principle, there are three ways to create time spans. One is to use one of the static functions, another is to multiply an existing time span (like one of the build in constants) or to substrate two absolute times.
Available constants
Available operators:
Conversions
-Converting to python datetime
Converting to numbers
+Converting to python datetime
Converting to numbers
Creating time ranges
+Creating time ranges import cmf
+start=cmf.Time(5,1,2001)
+end=cmf.Time(6,1,2001)
+step=cmf.h * 6
+for t in cmf.timerange(start,end,step):
+ print t.AsDate()
+# Prints:
+# 05.01.2001
+# 05.01.2001 06:00
+# 05.01.2001 12:00
+# 05.01.2001 18:00
+
|
-Generated: Fri Apr 26 2019 12:43:43 | +Generated: Fri Jan 19 2024 16:10:56 |
This is the complete list of members for cubicspline, including all inherited members.
-Interpolates points with a cubic spline interpolation. - More...
+ More...Interpolates points with a cubic spline interpolation.
Code is modified after: http://ganeshtiwaridotcomdotnp.blogspot.de/2009/12/c-c-code-cubic-spline-interpolation.html
@@ -114,7 +125,7 @@ Institute of Landscape Ecology and Resources Management,University of Gießen -- |
- 2.0.0b2
- catchment modelling framework
- |
-
This is the complete list of members for integratable, including all inherited members.
-avg() const =0 | integratable | pure virtual |
integrate(Time t)=0 | integratable | pure virtual |
reset(Time t)=0 | integratable | pure virtual |
sum() const =0 | integratable | pure virtual |
- |
- 2.0.0b2
- catchment modelling framework
- |
-
integratable is a functionality for different classes for integrating values over time. - More...
-integratable is a functionality for different classes for integrating values over time.
-Main usage of an integratable is the calculation of average fluxes over time e.g.
-\[ \int_{t_0}^{t_{end}}q\left(t,V_i,V_j\right)dt \] -
--Public Member Functions | |
-virtual double | avg () const =0 |
Returns average of the integrated variable (eg. flux) from the last reset until the last call of integrate. | |
-virtual void | integrate (Time t)=0 |
Integrates the variable until time t. | |
-virtual void | reset (Time t)=0 |
Sets the start time of the integral. | |
-virtual double | sum () const =0 |
Get the integral from the last reset until the last call of integrate. | |
- |
- 2.0.0b2
- catchment modelling framework
- |
-
This is the complete list of members for integratable_list, including all inherited members.
-append(cmf::math::integratable::ptr add) | integratable_list | |
remove(cmf::math::integratable::ptr rm) | integratable_list | |
size() const | integratable_list |
- |
- 2.0.0b2
- catchment modelling framework
- |
-
A list of cmf::math::integratable objects. - More...
-A list of cmf::math::integratable objects.
--Public Member Functions | |
-void | append (cmf::math::integratable::ptr add) |
Adds an integratable to the list. | |
-void | remove (cmf::math::integratable::ptr rm) |
Removes an integratable from the list. | |
-size_t | size () const |
Number of integratables in the list. | |
A valarray kind of vector implementation with OpenMP capabilities. - More...
+ More...A valarray kind of vector implementation with OpenMP capabilities.
+Public Member Functions
- | num_array () | |
- | ~num_array () | | void | set (const num_array &other) | | Prevents deletion of the stored data. More... | void | set (const num_array &other) | | + | num_array () | constructors | + | ~num_array () | destructor | Prevents deletion of the stored data. |
This is the complete list of members for timeseries, including all inherited members.
add(double Value) | timeseries | |
begin() const | timeseries | |
begin() const | timeseries | |
count_values() const | timeseries | |
end() const | timeseries | |
end() const | timeseries | |
interpolationpower() const | timeseries | |
is_empty() const | timeseries | |
operator*=(cmf::math::timeseries) | timeseries | |
operator*=(double) | timeseries | |
operator+=(cmf::math::timeseries) | timeseries | |
operator+=(double) | timeseries | |
operator-=(cmf::math::timeseries) | timeseries | |
operator-=(double) | timeseries | |
operator/=(cmf::math::timeseries) | timeseries | |
operator/=(double) | timeseries | |
is_empty() const | timeseries | |
operator*=(cmf::math::timeseries) | timeseries | |
operator*=(double) | timeseries | |
operator+=(cmf::math::timeseries) | timeseries | |
operator+=(double) | timeseries | |
operator-=(cmf::math::timeseries) | timeseries | |
operator-=(double) | timeseries | |
operator/=(cmf::math::timeseries) | timeseries | |
operator/=(double) | timeseries | |
operator[](cmf::math::Time t) const | timeseries | |
operator[](ptrdiff_t i) | timeseries | |
operator[](ptrdiff_t i) | timeseries | |
reduce_avg(cmf::math::Time begin, cmf::math::Time step) const | timeseries | |
reduce_max(cmf::math::Time begin, cmf::math::Time step) const | timeseries | |
reduce_max(cmf::math::Time begin, cmf::math::Time step) const | timeseries | |
reduce_min(cmf::math::Time begin, cmf::math::Time step) const | timeseries | |
reduce_sum(cmf::math::Time begin, cmf::math::Time step) const | timeseries | |
reduce_sum(cmf::math::Time begin, cmf::math::Time step) const | timeseries | |
size() const | timeseries | |
step() const | timeseries | |
step() const | timeseries | |
timeseries(cmf::math::Time begin=cmf::math::Time(), cmf::math::Time step=cmf::math::day, int interpolationmethod=1, size_t count=0) | timeseries |
A timeseries is a list of values, equally distributed over time. - More...
+ More...A timeseries is a list of values, equally distributed over time.
To create one, one have to provide as start date and a step size. The end time is calculated from the number of values. Values queried for times before the start time are returned as the first item, values after the end time equal the last item. A timeseries with only one item reacts like a scalar value.
-Creating a time series
With this technique it is simple to read files or databases to fill timeseries.
<b> Using a timeseries</b> -
+Creating a time series import cmf
+# Start date is the January 5th 2001 at 2:30 pm
+start=cmf.Time(5,1,2001,14,30)
+# time step of the timeseries is 20 minutes
+step=cmf.min*20
+# Type of interpolation between values
+# 0 - Nearest neighbor,
+# 1 - Linear,
+# 2 - Squared,
+# 3 - Cubic, etc.
+interpolation=1
+# Create timeseries
+timeseries=cmf.timeseries(begin=start,step=step,interpolation=interpolation)
+# add data
+timeseries.add(0.1) # Value at 2001/5/1 2:30pm is 0.1
+timeseries.add(0.2) # Value at 2001/5/1 2:50pm is 0.2
+timeseries.add(0.1) # Value at 2001/5/1 3:10pm is 0.1
+With this technique it is simple to read files or databases to fill timeseries. <b> Using a timeseries</b> + Query every minute between 2:15 and 3:14 pm
+
+
+ Query a specific position of the timeseries
+print timeseries[2]
+A timeseries is a list of values, equally distributed over time. Definition timeseries.h:66 The main namespace of the model framework. Contains the other namespaces and the project class. Definition __init__.py:1
Constructor & Destructor Documentation- -◆ timeseries()+ +◆ timeseries()
@@ -285,31 +257,22 @@ timeseries |
( | -cmf::math::Time | -begin = cmf::math::Time() , |
+ cmf::math::Time | begin = cmf::math::Time(), | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- | cmf::math::Time | -step = cmf::math::day , |
+ cmf::math::Time | step = cmf::math::day, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- | int | -interpolationmethod = 1 , |
+ int | interpolationmethod = 1, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- | size_t | -count = 0 |
- ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- | ) | -+ | size_t | count = 0 ) |
begin | First date of measurement |
step | Time between measurements |
step | Time between measurements |
interpolationmethod | Method for the interpolation (0 - Nearest neighbor, 1- linear, 2 - cubic spline (not implemented yet) |
count | Initial number of items. Items are filled with 0.0 |
This is the complete list of members for project, including all inherited members.
get_cell(ptrdiff_t index) | project | |
get_cells() const | project | |
get_cell(ptrdiff_t index) | project | |
get_cells() const | project | |
get_node(ptrdiff_t index) | project | |
get_reach(ptrdiff_t index) | project | |
get_reach(ptrdiff_t index) | project | |
get_storages() | project | |
meteo_stations | project | |
NewCell(double x, double y, double z, double area, bool with_surfacewater=false) | project | |
NewNeumannBoundary(std::string name, cmf::water::WaterStorage::ptr target) | project | |
meteo_stations | project | |
NewCell(double x, double y, double z, double area, bool with_surfacewater=false) | project | |
NewNeumannBoundary(std::string name, cmf::water::WaterStorage::ptr target) | project | |
NewOpenStorage(std::string name, double x, double y, double z, double area) | project | |
NewOutlet(std::string name, double x=0, double y=0, double z=0) | project | |
NewOutlet(std::string name, double x=0, double y=0, double z=0) | project | |
NewReach(double x, double y, double z, cmf::river::IChannel &shape, bool diffusive=false) | project | |
NewStorage(std::string name, double x=0, double y=0, double z=0) | project | |
NewStorage(std::string name, double x=0, double y=0, double z=0) | project | |
node_count() const | project | |
project(std::string solute_names="") | project | |
project(std::string solute_names="") | project | |
rainfall_stations | project | |
reach_count() const | project | |
reach_count() const | project | |
remove_node(cmf::water::flux_node::ptr node) | project | |
size() const | project | |
size() const | project | |
solutes | project | |
use_IDW_meteo(double z_weight=0, double power=2) | project | |
use_IDW_meteo(double z_weight=0, double power=2) | project | |
use_IDW_rainfall(double z_weight=0, double power=2) | project | |
use_nearest_meteo(double z_weight=0) | project | |
use_nearest_meteo(double z_weight=0) | project | |
use_nearest_rainfall(double z_weight=0) | project |
The study area, holding all cells, outlets and streams. - More...
-The study area, holding all cells, outlets and streams.
-
+Public Member Functions | project (std::string solute_names="") | | Creates a new project. More... | | project (std::string solute_names="") | |
-upslope::Cell & | get_cell (ptrdiff_t index) | | Returns the reference to the cell at index in the project. | |
-const upslope::cell_vector & | get_cells () const | | Returns the cells in the project. | |
-cmf::water::flux_node::ptr | get_node (ptrdiff_t index) |
+upslope::Cell & | get_cell (ptrdiff_t index) | | Returns the reference to the cell at index in the project. | |
+const upslope::cell_vector & | get_cells () const | | Returns the cells in the project. | | |
-cmf::river::Reach::ptr | get_reach (ptrdiff_t index) | |
-cmf::water::node_list | get_storages () | | cmf::upslope::Cell * | NewCell (double x, double y, double z, double area, bool with_surfacewater=false) | | Creates a new cell. More... | | cmf::water::NeumannBoundary::ptr | NewNeumannBoundary (std::string name, cmf::water::WaterStorage::ptr target) | | Creates a new Neumann boundary for a target water storage. More... | cmf::upslope::Cell * | NewCell (double x, double y, double z, double area, bool with_surfacewater=false) | | Creates a new cell. | | cmf::water::NeumannBoundary::ptr | NewNeumannBoundary (std::string name, cmf::water::WaterStorage::ptr target) | | cmf::river::OpenWaterStorage::ptr | NewOpenStorage (std::string name, double x, double y, double z, double area) | | Creates a new open water storage with a prism geometry. More... | cmf::river::OpenWaterStorage::ptr | NewOpenStorage (std::string name, double x, double y, double z, double area) | | cmf::water::DirichletBoundary::ptr | NewOutlet (std::string name, double x=0, double y=0, double z=0) | | Creates a new Dirichlet boundary condition and adds it to the list of outlets The potential of the Dirichlet boundary equals z, but can be changed. More... | cmf::water::DirichletBoundary::ptr | NewOutlet (std::string name, double x=0, double y=0, double z=0) | | cmf::river::Reach::ptr | NewReach (double x, double y, double z, cmf::river::IChannel &shape, bool diffusive=false) | | Creates a new reach. More... | cmf::river::Reach::ptr | NewReach (double x, double y, double z, cmf::river::IChannel &shape, bool diffusive=false) | | cmf::water::WaterStorage::ptr | NewStorage (std::string name, double x=0, double y=0, double z=0) | | Creates a new generic water storage at position x,y,z. More... | cmf::water::WaterStorage::ptr | NewStorage (std::string name, double x=0, double y=0, double z=0) | |
-size_t | node_count () const | |
-size_t | reach_count () const | | size_t | remove_node (cmf::water::flux_node::ptr node) | | Removes a node from the repository. More... | size_t | remove_node (cmf::water::flux_node::ptr node) | |
-size_t | size () const | | void | use_IDW_meteo (double z_weight=0, double power=2) | | Uses IDW interpolation to generate meterological data for each cell of project. More... | void | use_IDW_meteo (double z_weight=0, double power=2) | | void | use_IDW_rainfall (double z_weight=0, double power=2) | | Uses IDW interpolation to generate rainfall data for each cell of project. More... | void | use_IDW_rainfall (double z_weight=0, double power=2) | | void | use_nearest_meteo (double z_weight=0) | | Connects all cells of the project with its nearest meteorological station. More... | void | use_nearest_meteo (double z_weight=0) | | void | use_nearest_rainfall (double z_weight=0) | | Connects all cells of the project with its nearest rainfall station. More... | void | use_nearest_rainfall (double z_weight=0) | | Creates a new project. | +cmf::water::flux_node::ptr | get_node (ptrdiff_t index) | Returns the node from the project nodes at index. | +cmf::river::Reach::ptr | get_reach (ptrdiff_t index) | Returns the reach at index. | +cmf::water::node_list | get_storages () | Returns a list of all storages of this project. | Creates a new Neumann boundary for a target water storage. | Creates a new open water storage with a prism geometry. | Creates a new Dirichlet boundary condition and adds it to the list of outlets The potential of the Dirichlet boundary equals z, but can be changed. | Creates a new reach. | Creates a new generic water storage at position x,y,z. | +size_t | node_count () const | Returns the number of nodes saved with this project. | +size_t | reach_count () const | Returns the number of reaches in this project. | Removes a node from the repository. | +size_t | size () const | The number of cells in the project. | Uses IDW interpolation to generate meterological data for each cell of project. | Uses IDW interpolation to generate rainfall data for each cell of project. | Connects all cells of the project with its nearest meteorological station. | Connects all cells of the project with its nearest rainfall station. |
+Public Attributes
-cmf::atmosphere::MeteoStationList | meteo_stations | |
-cmf::atmosphere::RainfallStationList | rainfall_stations | |
-const cmf::water::solute_vector | solutes | | +cmf::atmosphere::MeteoStationList | meteo_stations | The meteorological stations in the project. | +cmf::atmosphere::RainfallStationList | rainfall_stations | The rainfall stations of the project. | +const cmf::water::solute_vector | solutes | The solutes transported by the model. |
+Friends | + | class | cmf::upslope::Cell |
""
cmf::upslope::Cell* NewCell | +cmf::upslope::Cell * NewCell | ( | -double | -x, | +double | x, |
- | double | -y, | +double | y, | ||
- | double | -z, | +double | z, | ||
- | double | -area, | +double | area, | ||
- | bool | -with_surfacewater = false |
- ||||
- | ) | -+ | bool | with_surfacewater = false ) |
0
, 0
, 0
false
0
, 0
, 0
0
, 2
Uses IDW interpolation to generate meterological data for each cell of project.
-Creates a meteo-data source for each cell, using spatial interpolated data from all meteorological stations of the project using Inverse Distance Weighted (IDW) interpolation. The meteorolgical value f is calculated with IDW for position x,y,z and time t as follows:
-\begin{eqnarray*} f(x,y,z,t) &=& \sum^N_{i=1}{f_i(t) w_i(x,y,z)} \\ w_i(x,y,z) &=& \frac{d_i(x,y,z)^{-p}}{\sum^N_{j=0}{d_j(x,y,z)^{-p}}} \\ d_i(x,y,z) &=& w_z \left|z-z_i\right| + \sqrt{\left(x-x_i\right)^2 + \left(y-y_i\right)^2} \end{eqnarray*} +
Creates a meteo-data source for each cell, using spatial interpolated data from all meteorological stations of the project using Inverse Distance Weighted (IDW) interpolation. The meteorolgical value f is calculated with IDW for position x,y,z and time t as follows:
+\begin{eqnarray*} +f(x,y,z,t) &=& \sum^N_{i=1}{f_i(t) w_i(x,y,z)} \\ +w_i(x,y,z) &=& \frac{d_i(x,y,z)^{-p}}{\sum^N_{j=0}{d_j(x,y,z)^{-p}}} \\ +d_i(x,y,z) &=& w_z \left|z-z_i\right| + \sqrt{\left(x-x_i\right)^2 + \left(y-y_i\right)^2} +\end{eqnarray*}
0
, 2
Uses IDW interpolation to generate rainfall data for each cell of project.
-Creates a rainfall-data source for each cell, using spatial interpolated data from all meteorological stations of the project using Inverse Distance Weighted (IDW) interpolation. The rainfall intensity P is calculated with IDW for position x,y,z and time t as follows:
-\begin{eqnarray*} P(x,y,z,t) &=& \sum^N_{i=1}{P_i(t) w_i(x,y,z)} \\ w_i(x,y,z) &=& \frac{d_i(x,y,z)^{-p}}{\sum^N_{j=0}{d_j(x,y,z)^{-p}}} \\ d_i(x,y,z) &=& w_z \left|z-z_i\right| + \sqrt{\left(x-x_i\right)^2 + \left(y-y_i\right)^2} \end{eqnarray*} +
Creates a rainfall-data source for each cell, using spatial interpolated data from all meteorological stations of the project using Inverse Distance Weighted (IDW) interpolation. The rainfall intensity P is calculated with IDW for position x,y,z and time t as follows:
+\begin{eqnarray*} +P(x,y,z,t) &=& \sum^N_{i=1}{P_i(t) w_i(x,y,z)} \\ +w_i(x,y,z) &=& \frac{d_i(x,y,z)^{-p}}{\sum^N_{j=0}{d_j(x,y,z)^{-p}}} \\ +d_i(x,y,z) &=& w_z \left|z-z_i\right| + \sqrt{\left(x-x_i\right)^2 + \left(y-y_i\right)^2} +\end{eqnarray*}
0
0
This is the complete list of members for Channel, including all inherited members.
A(double V) const | IChannel | virtual |
Channel(double length) | Channel | |
Channel(double length) | Channel | |
Channel(const IChannel &for_wrapping) | Channel | |
Channel(const Channel &for_copy) | Channel | |
Channel(const Channel &for_copy) | Channel | |
Channel(char typecode, double length, double width=1., double depth=0.25) | Channel | |
get_channel_width(double depth) const | Channel | virtual |
get_channel_width(double depth) const | Channel | virtual |
get_depth(double area) const | Channel | virtual |
get_flux_crossection(double depth) const | Channel | virtual |
get_flux_crossection(double depth) const | Channel | virtual |
get_length() const | Channel | virtual |
get_wetted_perimeter(double depth) const | Channel | virtual |
get_wetted_perimeter(double depth) const | Channel | virtual |
h(double V) const | IChannel | virtual |
operator=(const Channel &for_assignment) | Channel | |
operator=(const Channel &for_assignment) | Channel | |
qManning(double A, double slope) const | IChannel | virtual |
A wrapper for channel geometries. - More...
-A wrapper for channel geometries.
+Public Member Functions
- | Channel (double length) | | Creates a triangular reach of a length. | |
- | Channel (const IChannel &for_wrapping) | | Wraps an existing channel geometry. | |
- | Channel (const Channel &for_copy) | | Channel (char typecode, double length, double width=1., double depth=0.25) | | Creates a reachtype using a short cut character. | | | | Channel (char typecode, double length, double width=1., double depth=0.25) | | Creates a reachtype using a short cut character. More... | |
-virtual double | A (double V) const |
+ | Channel (const IChannel &for_wrapping) | | Wraps an existing channel geometry. | |
+ | Channel (double length) | | Creates a triangular reach of a length. | | |
-double | get_channel_width (double depth) const | | double | get_depth (double area) const | | Calculates the actual depth of the reach using the IChannel geometry. More... | double | get_depth (double area) const | | double | get_flux_crossection (double depth) const | | Calculates the wetted area from a given depth using the IChannel geometry. More... | double | get_flux_crossection (double depth) const | |
-double | get_length () const | |
-double | get_wetted_perimeter (double depth) const | |
-virtual double | h (double V) const | |
-Channel & | operator= (const Channel &for_assignment) | | Assignable. | | virtual double | qManning (double A, double slope) const | | Calculates the flow rate from a given water volume in the reach | -\begin{eqnarray*} q_{Manning}&=& A R^{\frac 2 3} \sqrt{\frac {\Delta_z} n} \\ A &=& \frac V l \mbox{, (Crosssectional area of the wetted crossection, Volume per length)} \\ R &=& \frac A {P(d)} \\ P(d) &=& \mbox{ the perimeter of the wetted crosssection, a function of reach depth} \\ d(V) &=& \mbox{ the depth of the reach a function of the volume} \\ \Delta_z &=& \frac{z_{max} - z_{min}}{l} \mbox{ Slope of the reach} \end{eqnarray*} - -. More...
+Channel & | operator= (const Channel &for_assignment) | | Assignable. | | virtual double | qManning (double A, double slope) const | | + | Channel (const Channel &for_copy) | Copy constructable. | +virtual double | A (double V) const | Returns the area of the surface for a given volume. | +double | get_channel_width (double depth) const | Calculates the flow width from a given actual depth [m] using the actual IChannel geometry. | Calculates the actual depth of the reach using the IChannel geometry. | Calculates the wetted area from a given depth using the IChannel geometry. | +double | get_length () const | Length of the reach. | +double | get_wetted_perimeter (double depth) const | Calculates the wetted perimeter from a given actual depth [m] using the actual IChannel geometry. | +virtual double | h (double V) const | Returns the depth of a given volume. | Calculates the flow rate from a given water volume in the reach. |
1.
, 0.25
Creates a reachtype using a short cut character.
Acceptes one of the following characters:
typecode | Describes the geometry of the reach cross section. |
length | The length of the channel in m | ( | -double | -area | ) | +double | area | ) | const |
Calculates the flow rate from a given water volume in the reach
-\begin{eqnarray*} q_{Manning}&=& A R^{\frac 2 3} \sqrt{\frac {\Delta_z} n} \\ A &=& \frac V l \mbox{, (Crosssectional area of the wetted crossection, Volume per length)} \\ R &=& \frac A {P(d)} \\ P(d) &=& \mbox{ the perimeter of the wetted crosssection, a function of reach depth} \\ d(V) &=& \mbox{ the depth of the reach a function of the volume} \\ \Delta_z &=& \frac{z_{max} - z_{min}}{l} \mbox{ Slope of the reach} \end{eqnarray*} +
Calculates the flow rate from a given water volume in the reach.
++\begin{eqnarray*} +q_{Manning}&=& A R^{\frac 2 3} \sqrt{\frac {\Delta_z} n} \\ +A &=& \frac V l \mbox{, (Crosssectional area of the wetted crossection, Volume per length)} \\ +R &=& \frac A {P(d)} \\ +P(d) &=& \mbox{ the perimeter of the wetted crosssection, a function of reach depth} \\ +d(V) &=& \mbox{ the depth of the reach a function of the volume} \\ +\Delta_z &=& \frac{z_{max} - z_{min}}{l} \mbox{ Slope of the reach} +\end{eqnarray*}
-.
-A | The area of the cross section [m2] | Generated: Fri Apr 26 2019 12:43:43 | +Generated: Fri Jan 19 2024 16:10:56 |
This is the complete list of members for CrossSectionReach, including all inherited members.
A(double V) const | IChannel | virtual |
CrossSectionReach(double l, cmf::math::num_array x, cmf::math::num_array depth) | CrossSectionReach | |
CrossSectionReach(double l, cmf::math::num_array x, cmf::math::num_array depth) | CrossSectionReach | |
depth | CrossSectionReach | |
get_channel_width(double depth) const | CrossSectionReach | virtual |
get_channel_width(double depth) const | CrossSectionReach | virtual |
get_depth(double area) const | CrossSectionReach | virtual |
get_flux_crossection(double depth) const | CrossSectionReach | virtual |
get_flux_crossection(double depth) const | CrossSectionReach | virtual |
get_length() const | CrossSectionReach | virtual |
get_wetted_perimeter(double depth) const | CrossSectionReach | virtual |
get_wetted_perimeter(double depth) const | CrossSectionReach | virtual |
h(double V) const | IChannel | virtual |
qManning(double A, double slope) const | IChannel | virtual |
qManning(double A, double slope) const | IChannel | virtual |
x | CrossSectionReach |
Structure for the description of reaches with a freely defined cross section. - More...
-Structure for the description of reaches with a freely defined cross section.
Although double triangular cross section reach are rarely met, a triangular reach does scale with its water load, and is therefore preferable in case where nothing about IChannel geometry is known
+Public Member Functions
- | CrossSectionReach (double l, cmf::math::num_array x, cmf::math::num_array depth) | |
-virtual double | A (double V) const | |
-virtual double | get_channel_width (double depth) const | |
-virtual double | get_depth (double area) const | |
-virtual double | get_flux_crossection (double depth) const | |
-double | get_length () const | |
-virtual double | get_wetted_perimeter (double depth) const | |
-virtual double | h (double V) const | | virtual double | qManning (double A, double slope) const | | Calculates the flow rate from a given water volume in the reach | -\begin{eqnarray*} q_{Manning}&=& A R^{\frac 2 3} \sqrt{\frac {\Delta_z} n} \\ A &=& \frac V l \mbox{, (Crosssectional area of the wetted crossection, Volume per length)} \\ R &=& \frac A {P(d)} \\ P(d) &=& \mbox{ the perimeter of the wetted crosssection, a function of reach depth} \\ d(V) &=& \mbox{ the depth of the reach a function of the volume} \\ \Delta_z &=& \frac{z_{max} - z_{min}}{l} \mbox{ Slope of the reach} \end{eqnarray*} - -. More... virtual double | qManning (double A, double slope) const | | + | CrossSectionReach (double l, cmf::math::num_array x, cmf::math::num_array depth) | Creates a new triangular reach type. | +virtual double | A (double V) const | Returns the area of the surface for a given volume. | +virtual double | get_channel_width (double depth) const | Calculates the flow width from a given actual depth [m] using the actual IChannel geometry. | +virtual double | get_depth (double area) const | Returns the depth at a given crossection area. | +virtual double | get_flux_crossection (double depth) const | Returns the crossection area at a given depth. | +double | get_length () const | Length of the reach. | +virtual double | get_wetted_perimeter (double depth) const | Returns the wetted perimeter at a given depth. | +virtual double | h (double V) const | Returns the depth of a given volume. | Calculates the flow rate from a given water volume in the reach. |
+Public Attributes
-cmf::math::num_array | depth | |
-cmf::math::num_array | x | | +cmf::math::num_array | depth | The depth of the cross section in m below bank (depth[0]=0, usually) | +cmf::math::num_array | x | The x position in m for the depth value. |
Calculates the flow rate from a given water volume in the reach
-\begin{eqnarray*} q_{Manning}&=& A R^{\frac 2 3} \sqrt{\frac {\Delta_z} n} \\ A &=& \frac V l \mbox{, (Crosssectional area of the wetted crossection, Volume per length)} \\ R &=& \frac A {P(d)} \\ P(d) &=& \mbox{ the perimeter of the wetted crosssection, a function of reach depth} \\ d(V) &=& \mbox{ the depth of the reach a function of the volume} \\ \Delta_z &=& \frac{z_{max} - z_{min}}{l} \mbox{ Slope of the reach} \end{eqnarray*} +
Calculates the flow rate from a given water volume in the reach.
++\begin{eqnarray*} +q_{Manning}&=& A R^{\frac 2 3} \sqrt{\frac {\Delta_z} n} \\ +A &=& \frac V l \mbox{, (Crosssectional area of the wetted crossection, Volume per length)} \\ +R &=& \frac A {P(d)} \\ +P(d) &=& \mbox{ the perimeter of the wetted crosssection, a function of reach depth} \\ +d(V) &=& \mbox{ the depth of the reach a function of the volume} \\ +\Delta_z &=& \frac{z_{max} - z_{min}}{l} \mbox{ Slope of the reach} +\end{eqnarray*}
-.
-A | The area of the cross section [m2] | Generated: Fri Apr 26 2019 12:43:43 | +Generated: Fri Jan 19 2024 16:10:56 |
This is the complete list of members for IChannel, including all inherited members.
A(double V) const | IChannel | virtual |
get_channel_width(double depth) const =0 | IChannel | pure virtual |
get_channel_width(double depth) const =0 | IChannel | pure virtual |
get_depth(double area) const =0 | IChannel | pure virtual |
get_flux_crossection(double depth) const =0 | IChannel | pure virtual |
get_flux_crossection(double depth) const =0 | IChannel | pure virtual |
get_length() const =0 | IChannel | pure virtual |
get_wetted_perimeter(double depth) const =0 | IChannel | pure virtual |
get_wetted_perimeter(double depth) const =0 | IChannel | pure virtual |
h(double V) const | IChannel | virtual |
qManning(double A, double slope) const | IChannel | virtual |
qManning(double A, double slope) const | IChannel | virtual |
Structure for the description of structural parameters of a reach Abstract base class for different IChannel geometries. - More...
-Structure for the description of structural parameters of a reach Abstract base class for different IChannel geometries.
+Public Member Functions
-virtual double | A (double V) const | |
-virtual double | get_channel_width (double depth) const =0 | | virtual double | get_depth (double area) const =0 | | Calculates the actual depth of the reach using the IChannel geometry. More... | virtual double | get_depth (double area) const =0 | | virtual double | get_flux_crossection (double depth) const =0 | | Calculates the wetted area from a given depth using the IChannel geometry. More... | virtual double | get_flux_crossection (double depth) const =0 | |
-virtual double | get_length () const =0 | |
-virtual double | get_wetted_perimeter (double depth) const =0 | |
-virtual double | h (double V) const | | virtual double | qManning (double A, double slope) const | | Calculates the flow rate from a given water volume in the reach | -\begin{eqnarray*} q_{Manning}&=& A R^{\frac 2 3} \sqrt{\frac {\Delta_z} n} \\ A &=& \frac V l \mbox{, (Crosssectional area of the wetted crossection, Volume per length)} \\ R &=& \frac A {P(d)} \\ P(d) &=& \mbox{ the perimeter of the wetted crosssection, a function of reach depth} \\ d(V) &=& \mbox{ the depth of the reach a function of the volume} \\ \Delta_z &=& \frac{z_{max} - z_{min}}{l} \mbox{ Slope of the reach} \end{eqnarray*} - -. More... virtual double | qManning (double A, double slope) const | | +virtual double | A (double V) const | Returns the area of the surface for a given volume. | +virtual double | get_channel_width (double depth) const =0 | Calculates the flow width from a given actual depth [m] using the actual IChannel geometry. | Calculates the actual depth of the reach using the IChannel geometry. | Calculates the wetted area from a given depth using the IChannel geometry. | +virtual double | get_length () const =0 | Length of the reach. | +virtual double | get_wetted_perimeter (double depth) const =0 | Calculates the wetted perimeter from a given actual depth [m] using the actual IChannel geometry. | +virtual double | h (double V) const | Returns the depth of a given volume. | Calculates the flow rate from a given water volume in the reach. |
Implemented in CrossSectionReach, SWATReachType, TriangularReach, RectangularReach, PipeReach, Channel, and MeanChannel.
Implemented in CrossSectionReach, SWATReachType, TriangularReach, RectangularReach, PipeReach, Channel, and MeanChannel.
Calculates the flow rate from a given water volume in the reach
-\begin{eqnarray*} q_{Manning}&=& A R^{\frac 2 3} \sqrt{\frac {\Delta_z} n} \\ A &=& \frac V l \mbox{, (Crosssectional area of the wetted crossection, Volume per length)} \\ R &=& \frac A {P(d)} \\ P(d) &=& \mbox{ the perimeter of the wetted crosssection, a function of reach depth} \\ d(V) &=& \mbox{ the depth of the reach a function of the volume} \\ \Delta_z &=& \frac{z_{max} - z_{min}}{l} \mbox{ Slope of the reach} \end{eqnarray*} +
Calculates the flow rate from a given water volume in the reach.
++\begin{eqnarray*} +q_{Manning}&=& A R^{\frac 2 3} \sqrt{\frac {\Delta_z} n} \\ +A &=& \frac V l \mbox{, (Crosssectional area of the wetted crossection, Volume per length)} \\ +R &=& \frac A {P(d)} \\ +P(d) &=& \mbox{ the perimeter of the wetted crosssection, a function of reach depth} \\ +d(V) &=& \mbox{ the depth of the reach a function of the volume} \\ +\Delta_z &=& \frac{z_{max} - z_{min}}{l} \mbox{ Slope of the reach} +\end{eqnarray*}
-.
-A | The area of the cross section [m2] | Generated: Fri Apr 26 2019 12:43:43 | +Generated: Fri Jan 19 2024 16:10:56 |
This is the complete list of members for IVolumeHeightFunction, including all inherited members.
A(double V) const =0 | IVolumeHeightFunction | pure virtual |
h(double V) const =0 | IVolumeHeightFunction | pure virtual |
h(double V) const =0 | IVolumeHeightFunction | pure virtual |
Volume height relations are functional objects, which return a height and a crosssectional area of a volume for different geometric bodies. - More...
-Volume height relations are functional objects, which return a height and a crosssectional area of a volume for different geometric bodies.
This is the abstract base class, where the geometries derive from
+Public Member Functions
-virtual double | A (double V) const =0 | |
-virtual double | h (double V) const =0 | | +virtual double | A (double V) const =0 | Returns the area of the surface for a given volume. | +virtual double | h (double V) const =0 | Returns the depth of a given volume. |
This is the complete list of members for Manning, including all inherited members.
conc(cmf::math::Time t, const cmf::water::solute &_Solute) | flux_connection | |
flux_connection(flux_node::ptr left, flux_node::ptr right, std::string _type) | flux_connection | |
flux_connection(flux_node::ptr left, flux_node::ptr right, std::string _type) | flux_connection | |
get_target(const flux_node &inquirer) | flux_connection | |
get_target(int index) const | flux_connection | |
get_target(int index) const | flux_connection | |
get_tracer_filter() | flux_connection | |
get_tracer_filter(solute S) | flux_connection | |
get_tracer_filter(solute S) | flux_connection | |
kill_me() | flux_connection | |
left_node() const | flux_connection | |
left_node() const | flux_connection | |
q(const flux_node &inquirer, cmf::math::Time t) | flux_connection | |
refresh(cmf::math::Time t) | flux_connection | |
refresh(cmf::math::Time t) | flux_connection | |
right_node() const | flux_connection | |
set_tracer_filter(real value) | flux_connection | |
set_tracer_filter(real value) | flux_connection | |
type | flux_connection |
Calculates the flux between two open water bodies, using Manning's equation. - More...
-Calculates the flux between two open water bodies, using Manning's equation. + More...
+Calculates the flux between two open water bodies, using Manning's equation.
-This is the base class for a kinematic wave approach (topography driven) and a diffusive wave approach (water table driven). The only difference between both approaches is the calculation of the flux driving slope. For the model, one of ManningKinematic or ManningDiffusive connection is selected
-\[ v = R^{\frac 2 3} \frac{\sqrt{\Delta_z}}{n} \\ q = v \cdot A \] +
Calculates the flux between two open water bodies, using Manning's equation.
+This is the base class for a kinematic wave approach (topography driven) and a diffusive wave approach (water table driven). The only difference between both approaches is the calculation of the flux driving slope. For the model, one of ManningKinematic or ManningDiffusive connection is selected
+\[ + v = R^{\frac 2 3} \frac{\sqrt{\Delta_z}}{n} \\ + q = v \cdot A + \]
-
-Where:
Where:
For the kinematic wave the slope of the river bed is used as slope:
\[\Delta_z = \frac{|z_1 - z_2|}{l}\] @@ -150,60 +171,60 @@ \[\Delta_z = \frac{|h_1 - h_2|}{l}\]
+Public Member Functionsreal | conc (cmf::math::Time t, const cmf::water::solute &_Solute) | | Returns the concentration of the flux. More... | real | conc (cmf::math::Time t, const cmf::water::solute &_Solute) | |
-flux_node::ptr | get_target (const flux_node &inquirer) | |
-flux_node::ptr | get_target (int index) const | | real | get_tracer_filter () | | A value ranging from 0 to 1 to filter tracers out of the water flux. More... | real | get_tracer_filter () | |
-real | get_tracer_filter (solute S) | |
-bool | kill_me () | |
-flux_node::ptr | left_node () const | |
-real | q (const flux_node &inquirer, cmf::math::Time t) | |
-void | refresh (cmf::math::Time t) | |
-flux_node::ptr | right_node () const | | void | set_tracer_filter (real value) | | A value ranging from 0 to 1 to filter tracers out of the water flux. More... | void | set_tracer_filter (real value) | | Returns the concentration of the flux. | +flux_node::ptr | get_target (const flux_node &inquirer) | Returns the other end of a connection than the asking end. | +flux_node::ptr | get_target (int index) const | With index 0, the left node is returned, with index 1 the right node of the connection. | A value ranging from 0 to 1 to filter tracers out of the water flux. | +real | get_tracer_filter (solute S) | A value ranging from 0 to 1 to filter tracers out of the water flux. | +bool | kill_me () | Deregisters this connection from its nodes. Returns true if only one reference is left. | +flux_node::ptr | left_node () const | Returns the left node of this connection. | +real | q (const flux_node &inquirer, cmf::math::Time t) | Returns the current flux through a connection. Negative signs mean out of the inquirer, positive are inflows to the inquirer. | +void | refresh (cmf::math::Time t) | Performes a new calculation of the flux. | +flux_node::ptr | right_node () const | returns the right node of this connection | A value ranging from 0 to 1 to filter tracers out of the water flux. |
+Public Attributes
-const std::string | type | | +const std::string | type | A string describing the type of the connection. |
Returns the concentration of the flux.
-If not overridden, it returns the concentration of the source of the flux (direction depending)
+
+ If not overridden, it returns the concentration of the source of the flux (direction depending)
This is the complete list of members for Manning_Diffusive, including all inherited members.
conc(cmf::math::Time t, const cmf::water::solute &_Solute) | flux_connection | |
flux_connection(flux_node::ptr left, flux_node::ptr right, std::string _type) | flux_connection | |
flux_connection(flux_node::ptr left, flux_node::ptr right, std::string _type) | flux_connection | |
get_target(const flux_node &inquirer) | flux_connection | |
get_target(int index) const | flux_connection | |
get_target(int index) const | flux_connection | |
get_tracer_filter() | flux_connection | |
get_tracer_filter(solute S) | flux_connection | |
get_tracer_filter(solute S) | flux_connection | |
kill_me() | flux_connection | |
left_node() const | flux_connection | |
linear_slope_width | Manning_Diffusive | |
Manning_Diffusive(cmf::river::OpenWaterStorage::ptr left, cmf::water::flux_node::ptr right, const cmf::river::IChannel &reachtype) | Manning_Diffusive | |
q(const flux_node &inquirer, cmf::math::Time t) | flux_connection | |
refresh(cmf::math::Time t) | flux_connection | |
right_node() const | flux_connection | |
set_tracer_filter(real value) | flux_connection | |
type | flux_connection | |
left_node() const | flux_connection | |
Manning_Diffusive(cmf::river::OpenWaterStorage::ptr left, cmf::water::flux_node::ptr right, const cmf::river::IChannel &reachtype) | Manning_Diffusive | |
q(const flux_node &inquirer, cmf::math::Time t) | flux_connection | |
refresh(cmf::math::Time t) | flux_connection | |
right_node() const | flux_connection | |
set_tracer_filter(real value) | flux_connection | |
type | flux_connection |
Connecting surface water bodies using a diffusive wave. - More...
-Connecting surface water bodies using a diffusive wave.
-This approach might not be numerical stable for deep water with small gradient cmf for experimental reasons
-\begin{eqnarray*} q_{Manning}&=& A R^{\frac 2 3} \sqrt{\frac {\Delta_z} n} \\ A &=& \frac V l \mbox{, (Crosssectional area of the wetted crossection, Volume per length)} \\ R &=& \frac A {P(d)} \\ P(d) &=& \mbox{ the perimeter of the wetted crosssection, a function of reach depth} \\ d(V) &=& \mbox{ the depth of the reach a function of the volume} \\ \Delta_z = \|\frac{h_1 - h_2}{l} \mbox{ Slope of the reach waterlevels} \\ n&=&\mbox{Manning friction number} \end{eqnarray*} +
This approach might not be numerical stable for deep water with small gradient cmf for experimental reasons
+\begin{eqnarray*} + q_{Manning}&=& A R^{\frac 2 3} \sqrt{\frac {\Delta_z} n} \\ + A &=& \frac V l \mbox{, (Crosssectional area of the wetted crossection, Volume per length)} \\ + R &=& \frac A {P(d)} \\ + P(d) &=& \mbox{ the perimeter of the wetted crosssection, a function of reach depth} \\ + d(V) &=& \mbox{ the depth of the reach a function of the volume} \\ + \Delta_z = \|\frac{h_1 - h_2}{l} \mbox{ Slope of the reach waterlevels} \\ +n&=&\mbox{Manning friction number} + \end{eqnarray*}
+Public Member Functions | Manning_Diffusive (cmf::river::OpenWaterStorage::ptr left, cmf::water::flux_node::ptr right, const cmf::river::IChannel &reachtype) | | Creates a diffusive wave connection between to open water storages. More... | | Manning_Diffusive (cmf::river::OpenWaterStorage::ptr left, cmf::water::flux_node::ptr right, const cmf::river::IChannel &reachtype) | | real | conc (cmf::math::Time t, const cmf::water::solute &_Solute) | | Returns the concentration of the flux. More... | real | conc (cmf::math::Time t, const cmf::water::solute &_Solute) | |
-flux_node::ptr | get_target (const flux_node &inquirer) | |
-flux_node::ptr | get_target (int index) const | | real | get_tracer_filter () | | A value ranging from 0 to 1 to filter tracers out of the water flux. More... | real | get_tracer_filter () | |
-real | get_tracer_filter (solute S) | |
-bool | kill_me () | |
-flux_node::ptr | left_node () const | |
-real | q (const flux_node &inquirer, cmf::math::Time t) | |
-void | refresh (cmf::math::Time t) | |
-flux_node::ptr | right_node () const | | void | set_tracer_filter (real value) | | A value ranging from 0 to 1 to filter tracers out of the water flux. More... | void | set_tracer_filter (real value) | | Creates a diffusive wave connection between to open water storages. | Returns the concentration of the flux. | +flux_node::ptr | get_target (const flux_node &inquirer) | Returns the other end of a connection than the asking end. | +flux_node::ptr | get_target (int index) const | With index 0, the left node is returned, with index 1 the right node of the connection. | A value ranging from 0 to 1 to filter tracers out of the water flux. | +real | get_tracer_filter (solute S) | A value ranging from 0 to 1 to filter tracers out of the water flux. | +bool | kill_me () | Deregisters this connection from its nodes. Returns true if only one reference is left. | +flux_node::ptr | left_node () const | Returns the left node of this connection. | +real | q (const flux_node &inquirer, cmf::math::Time t) | Returns the current flux through a connection. Negative signs mean out of the inquirer, positive are inflows to the inquirer. | +void | refresh (cmf::math::Time t) | Performes a new calculation of the flux. | +flux_node::ptr | right_node () const | returns the right node of this connection | A value ranging from 0 to 1 to filter tracers out of the water flux. |
+Public Attributes
-real | linear_slope_width | | A parameter to linearize the dependency of q on slope during levelling out. | |
-const std::string | type | | +const std::string | type | A string describing the type of the connection. |
Returns the concentration of the flux.
-If not overridden, it returns the concentration of the source of the flux (direction depending)
+
+ If not overridden, it returns the concentration of the source of the flux (direction depending)
This is the complete list of members for Manning_Kinematic, including all inherited members.
conc(cmf::math::Time t, const cmf::water::solute &_Solute) | flux_connection | |
flux_connection(flux_node::ptr left, flux_node::ptr right, std::string _type) | flux_connection | |
flux_connection(flux_node::ptr left, flux_node::ptr right, std::string _type) | flux_connection | |
get_target(const flux_node &inquirer) | flux_connection | |
get_target(int index) const | flux_connection | |
get_target(int index) const | flux_connection | |
get_tracer_filter() | flux_connection | |
get_tracer_filter(solute S) | flux_connection | |
get_tracer_filter(solute S) | flux_connection | |
kill_me() | flux_connection | |
left_node() const | flux_connection | |
left_node() const | flux_connection | |
Manning_Kinematic(cmf::river::OpenWaterStorage::ptr left, cmf::water::flux_node::ptr right, const cmf::river::IChannel &reachtype) | Manning_Kinematic | |
q(const flux_node &inquirer, cmf::math::Time t) | flux_connection | |
q(const flux_node &inquirer, cmf::math::Time t) | flux_connection | |
refresh(cmf::math::Time t) | flux_connection | |
right_node() const | flux_connection | |
right_node() const | flux_connection | |
set_tracer_filter(real value) | flux_connection | |
type | flux_connection | |
type | flux_connection |
Connecting surface water bodies using a kinematic wave. - More...
-Connecting surface water bodies using a kinematic wave.
-Note the fixed gradient \(\Delta_z\)
-\begin{eqnarray*} q_{Manning}&=& A R^{\frac 2 3} \sqrt{\frac {\Delta_z} n} \\ A &=& \frac V l \mbox{, (Crosssectional area of the wetted crossection, Volume per length)} \\ R &=& \frac A {P(d)} \\ P(d) &=& \mbox{ the perimeter of the wetted crosssection, a function of reach depth} \\ d(V) &=& \mbox{ the depth of the reach a function of the volume} \\ \Delta_z &=& \frac{\|z_1 - z_2\|}{l} \mbox{ Slope of the reach} \\ n&=&\mbox{Manning friction number} \end{eqnarray*} +
Note the fixed gradient \(\Delta_z\)
+\begin{eqnarray*} + q_{Manning}&=& A R^{\frac 2 3} \sqrt{\frac {\Delta_z} n} \\ + A &=& \frac V l \mbox{, (Crosssectional area of the wetted crossection, Volume per length)} \\ + R &=& \frac A {P(d)} \\ + P(d) &=& \mbox{ the perimeter of the wetted crosssection, a function of reach depth} \\ + d(V) &=& \mbox{ the depth of the reach a function of the volume} \\ + \Delta_z &=& \frac{\|z_1 - z_2\|}{l} \mbox{ Slope of the reach} \\ +n&=&\mbox{Manning friction number} + \end{eqnarray*}
+Public Member Functions | Manning_Kinematic (cmf::river::OpenWaterStorage::ptr left, cmf::water::flux_node::ptr right, const cmf::river::IChannel &reachtype) | | Creates a kinematic wave connection between to open water storages. More... | | Manning_Kinematic (cmf::river::OpenWaterStorage::ptr left, cmf::water::flux_node::ptr right, const cmf::river::IChannel &reachtype) | | real | conc (cmf::math::Time t, const cmf::water::solute &_Solute) | | Returns the concentration of the flux. More... | real | conc (cmf::math::Time t, const cmf::water::solute &_Solute) | |
-flux_node::ptr | get_target (const flux_node &inquirer) | |
-flux_node::ptr | get_target (int index) const | | real | get_tracer_filter () | | A value ranging from 0 to 1 to filter tracers out of the water flux. More... | real | get_tracer_filter () | |
-real | get_tracer_filter (solute S) | |
-bool | kill_me () | |
-flux_node::ptr | left_node () const | |
-real | q (const flux_node &inquirer, cmf::math::Time t) | |
-void | refresh (cmf::math::Time t) | |
-flux_node::ptr | right_node () const | | void | set_tracer_filter (real value) | | A value ranging from 0 to 1 to filter tracers out of the water flux. More... | void | set_tracer_filter (real value) | | Creates a kinematic wave connection between to open water storages. | Returns the concentration of the flux. | +flux_node::ptr | get_target (const flux_node &inquirer) | Returns the other end of a connection than the asking end. | +flux_node::ptr | get_target (int index) const | With index 0, the left node is returned, with index 1 the right node of the connection. | A value ranging from 0 to 1 to filter tracers out of the water flux. | +real | get_tracer_filter (solute S) | A value ranging from 0 to 1 to filter tracers out of the water flux. | +bool | kill_me () | Deregisters this connection from its nodes. Returns true if only one reference is left. | +flux_node::ptr | left_node () const | Returns the left node of this connection. | +real | q (const flux_node &inquirer, cmf::math::Time t) | Returns the current flux through a connection. Negative signs mean out of the inquirer, positive are inflows to the inquirer. | +void | refresh (cmf::math::Time t) | Performes a new calculation of the flux. | +flux_node::ptr | right_node () const | returns the right node of this connection | A value ranging from 0 to 1 to filter tracers out of the water flux. |
+Public Attributes
-const std::string | type | | +const std::string | type | A string describing the type of the connection. |
Returns the concentration of the flux.
-If not overridden, it returns the concentration of the source of the flux (direction depending)
+
+ If not overridden, it returns the concentration of the source of the flux (direction depending)
This is the complete list of members for MeanChannel, including all inherited members.
A(double V) const | IChannel | virtual |
get_channel_width(double depth) const | MeanChannel | virtual |
get_channel_width(double depth) const | MeanChannel | virtual |
get_depth(double area) const | MeanChannel | virtual |
get_flux_crossection(double depth) const | MeanChannel | virtual |
get_flux_crossection(double depth) const | MeanChannel | virtual |
get_length() const | MeanChannel | virtual |
get_wetted_perimeter(double depth) const | MeanChannel | virtual |
get_wetted_perimeter(double depth) const | MeanChannel | virtual |
h(double V) const | IChannel | virtual |
MeanChannel(const IChannel &channel1, const IChannel &channel2) | MeanChannel | |
MeanChannel(const IChannel &channel1, const IChannel &channel2) | MeanChannel | |
qManning(double A, double slope) const | IChannel | virtual |
A combination of two channel geometries. - More...
-A combination of two channel geometries.
+Public Member Functions
- | MeanChannel (const IChannel &channel1, const IChannel &channel2) | |
-virtual double | A (double V) const | |
-double | get_channel_width (double depth) const | | double | get_depth (double area) const | | Calculates the actual depth of the reach using the IChannel geometry. More... | double | get_depth (double area) const | | double | get_flux_crossection (double depth) const | | Calculates the wetted area from a given depth using the IChannel geometry. More... | double | get_flux_crossection (double depth) const | |
-double | get_length () const | |
-double | get_wetted_perimeter (double depth) const | |
-virtual double | h (double V) const | | virtual double | qManning (double A, double slope) const | | Calculates the flow rate from a given water volume in the reach | -\begin{eqnarray*} q_{Manning}&=& A R^{\frac 2 3} \sqrt{\frac {\Delta_z} n} \\ A &=& \frac V l \mbox{, (Crosssectional area of the wetted crossection, Volume per length)} \\ R &=& \frac A {P(d)} \\ P(d) &=& \mbox{ the perimeter of the wetted crosssection, a function of reach depth} \\ d(V) &=& \mbox{ the depth of the reach a function of the volume} \\ \Delta_z &=& \frac{z_{max} - z_{min}}{l} \mbox{ Slope of the reach} \end{eqnarray*} - -. More... virtual double | qManning (double A, double slope) const | | + | MeanChannel (const IChannel &channel1, const IChannel &channel2) | Creates the mean geometry from the two channel geometries. | +virtual double | A (double V) const | Returns the area of the surface for a given volume. | +double | get_channel_width (double depth) const | Calculates the flow width from a given actual depth [m] using the actual IChannel geometry. | Calculates the actual depth of the reach using the IChannel geometry. | Calculates the wetted area from a given depth using the IChannel geometry. | +double | get_length () const | Length of the reach. | +double | get_wetted_perimeter (double depth) const | Calculates the wetted perimeter from a given actual depth [m] using the actual IChannel geometry. | +virtual double | h (double V) const | Returns the depth of a given volume. | Calculates the flow rate from a given water volume in the reach. |
Calculates the flow rate from a given water volume in the reach
-\begin{eqnarray*} q_{Manning}&=& A R^{\frac 2 3} \sqrt{\frac {\Delta_z} n} \\ A &=& \frac V l \mbox{, (Crosssectional area of the wetted crossection, Volume per length)} \\ R &=& \frac A {P(d)} \\ P(d) &=& \mbox{ the perimeter of the wetted crosssection, a function of reach depth} \\ d(V) &=& \mbox{ the depth of the reach a function of the volume} \\ \Delta_z &=& \frac{z_{max} - z_{min}}{l} \mbox{ Slope of the reach} \end{eqnarray*} +
Calculates the flow rate from a given water volume in the reach.
++\begin{eqnarray*} +q_{Manning}&=& A R^{\frac 2 3} \sqrt{\frac {\Delta_z} n} \\ +A &=& \frac V l \mbox{, (Crosssectional area of the wetted crossection, Volume per length)} \\ +R &=& \frac A {P(d)} \\ +P(d) &=& \mbox{ the perimeter of the wetted crosssection, a function of reach depth} \\ +d(V) &=& \mbox{ the depth of the reach a function of the volume} \\ +\Delta_z &=& \frac{z_{max} - z_{min}}{l} \mbox{ Slope of the reach} +\end{eqnarray*}
-.
-A | The area of the cross section [m2] | Generated: Fri Apr 26 2019 12:43:44 | +Generated: Fri Jan 19 2024 16:10:57 |
This is the complete list of members for OpenWaterStorage, including all inherited members.
cast(cmf::water::flux_node::ptr node) | OpenWaterStorage | static |
conc(cmf::math::Time t, const cmf::water::solute &solute) const | OpenWaterStorage | virtual |
conc(cmf::math::Time t, const cmf::water::solute &solute) const | OpenWaterStorage | virtual |
cmf::water::WaterStorage::conc(const cmf::water::solute &_Solute) const | WaterStorage | |
cmf::water::WaterStorage::conc(const cmf::water::solute &_Solute, real NewConcetration) | WaterStorage | |
connection_to(const cmf::water::flux_node &target) | flux_node | |
create(cmf::project &_project, real Area) | OpenWaterStorage | static |
cmf::water::WaterStorage::conc(const cmf::water::solute &_Solute, real NewConcetration) | WaterStorage | |
connection_to(const cmf::water::flux_node &target) | flux_node | |
create(cmf::project &_project, real Area) | OpenWaterStorage | static |
create(cmf::project &_project, const cmf::river::IVolumeHeightFunction &base_geo) | OpenWaterStorage | static |
dxdt(const cmf::math::Time &time) | WaterStorage | virtual |
dxdt(const cmf::math::Time &time) | WaterStorage | virtual |
flux_to(const cmf::water::flux_node &target, cmf::math::Time t) | flux_node | |
get_3d_flux(cmf::math::Time t) | flux_node | |
get_3d_flux(cmf::math::Time t) | flux_node | |
get_depth() const | OpenWaterStorage | |
get_height_function() const | OpenWaterStorage | virtual |
get_potential() const | WaterStorage | virtual |
get_project() const | flux_node | |
get_state_variable_content() const | WaterStorage | |
get_volume() const | WaterStorage | virtual |
is_connected(const cmf::math::StateVariable &other) const | WaterStorage | virtual |
is_empty() const | WaterStorage | virtual |
is_storage() const | WaterStorage | virtual |
list typedef | StateVariable | |
get_height_function() const | OpenWaterStorage | virtual |
get_potential(cmf::math::Time t=cmf::math::never) const override | WaterStorage | virtual |
get_project() const | flux_node | |
get_state() const | StateVariable | |
get_state_variable_content() const | WaterStorage | |
get_volume() const | WaterStorage | virtual |
is_connected(const cmf::math::StateVariable &other) const | WaterStorage | virtual |
is_empty() const | WaterStorage | virtual |
is_storage() const override | WaterStorage | virtual |
MarkStateChangeHandled() | StateVariable | protected |
Name | flux_node | |
Name | flux_node | |
node_id | flux_node | |
OpenWaterStorage(cmf::project &_project, real Area) | OpenWaterStorage | protected |
OpenWaterStorage(cmf::project &_project, real Area) | OpenWaterStorage | protected |
OpenWaterStorage(cmf::project &_project, const cmf::river::IVolumeHeightFunction &base_geo) | OpenWaterStorage | protected |
operator()(cmf::math::Time t) const | flux_node | |
operator()(cmf::math::Time t) const | flux_node | |
position | flux_node | |
RecalcFluxes(cmf::math::Time t) | WaterStorage | virtual |
RecalcFluxes(cmf::math::Time t) | WaterStorage | virtual |
remove_connection(cmf::water::flux_node::ptr To) | flux_node | |
set_potential(real newpotential) | WaterStorage | virtual |
set_state_variable_content(char content) | WaterStorage | |
set_volume(real newwatercontent) | WaterStorage | virtual |
Solute(const cmf::water::solute _Solute) | WaterStorage | |
StateIsChanged() | StateVariable | protected |
StateVariable(real InitialState=0, real scale=1) | StateVariable | |
waterbalance(cmf::math::Time t, const flux_connection *Without=0) const | flux_node | |
WaterStorage(cmf::project &project, const std::string &Name="", double InitialState=0, double scale=1) | WaterStorage | |
wet_area() const | OpenWaterStorage | |
~flux_node() | flux_node | virtual |
set_potential(real newpotential) override | WaterStorage | virtual |
set_state(real newState) | StateVariable | |
set_state_variable_content(char content) | WaterStorage | |
set_volume(real newwatercontent) | WaterStorage | virtual |
Solute(const cmf::water::solute _Solute) | WaterStorage | |
StateIsChanged() | StateVariable | protected |
StateVariable(real InitialState=0, real scale=1) | StateVariable | |
waterbalance(cmf::math::Time t, const flux_connection *Without=0) const | flux_node | |
WaterStorage(cmf::project &project, const std::string &Name="", double InitialState=0, double scale=1) | WaterStorage | |
wet_area() const | OpenWaterStorage | |
~flux_node() | flux_node | virtual |
An open water body. - More...
-An open water body.
The potential is calculated from the stored water using a water table function
-Public Types | |
-typedef std::vector< StateVariable * > | list |
Not part of the API, used to create sparse structure. | |
+Public Member Functions
-real | conc (cmf::math::Time t, const cmf::water::solute &solute) const | |
-real | conc (const cmf::water::solute &_Solute) const | |
-void | conc (const cmf::water::solute &_Solute, real NewConcetration) | |
-cmf::water::flux_connection * | connection_to (const cmf::water::flux_node &target) | | Returns the connection between this and target. | |
-virtual real | dxdt (const cmf::math::Time &time) |
+cmf::water::flux_connection * | connection_to (const cmf::water::flux_node &target) | | Returns the connection between this and target. | | |
-real | flux_to (const cmf::water::flux_node &target, cmf::math::Time t) | |
-cmf::geometry::point | get_3d_flux (cmf::math::Time t) | |
-real | get_depth () const | |
-virtual const IVolumeHeightFunction & | get_height_function () const | | The functional relation between volume, depth and exposed area. | | virtual real | get_potential () const | | Returns the water potential of the node in m waterhead. More... | |
-cmf::project & | get_project () const | | Returns the project, this node is part of. | |
-char | get_state_variable_content () const |
+virtual const IVolumeHeightFunction & | get_height_function () const | | The functional relation between volume, depth and exposed area. | | real | get_potential (cmf::math::Time t=cmf::math::never) const override | | Returns the water potential of the node in m waterhead. | |
+cmf::project & | get_project () const | | Returns the project, this node is part of. | |
+real | get_state () const | | Returns the current state of the variable. | | |
-virtual real | get_volume () const | |
-virtual bool | is_connected (const cmf::math::StateVariable &other) const | |
-virtual bool | is_storage () const | | Returns true, since this is a storage. | |
-real | operator() (cmf::math::Time t) const |
+bool | is_storage () const override | | Returns true, since this is a storage. | | |
-bool | remove_connection (cmf::water::flux_node::ptr To) | |
-virtual void | set_potential (real newpotential) | | Sets the potential of this flux node. | |
-void | set_state_variable_content (char content) |
+void | set_potential (real newpotential) override | | Sets the potential of this flux node. | |
+void | set_state (real newState) | | Gives access to the state variable. | | |
-virtual void | set_volume (real newwatercontent) | |
-SoluteStorage & | Solute (const cmf::water::solute _Solute) | | Returns the water quality of the water storage. | | real | waterbalance (cmf::math::Time t, const flux_connection *Without=0) const | | Returns the sum of all fluxes (positive and negative) at time t. More... |
+SoluteStorage & | Solute (const cmf::water::solute _Solute) | | Returns the water quality of the water storage. | | real | waterbalance (cmf::math::Time t, const flux_connection *Without=0) const | |
-real | wet_area () const | | Overrides of flux_node virtual bool | RecalcFluxes (cmf::math::Time t) | | Pure flux_nodes do not influence fluxes, therefore no recalculation of fluxes is required by flux_node. More... | |
-virtual double | is_empty () const | | Returns true if the node has no water. | |
-virtual std::string | to_string () const | | +real | conc (cmf::math::Time t, const cmf::water::solute &solute) const | Returns the water quality of the flux_node, if it is not overridden this is the mix of the incoming fluxes. | +real | conc (const cmf::water::solute &_Solute) const | Returns the concentration of the given solute. | +void | conc (const cmf::water::solute &_Solute, real NewConcetration) | Sets a new concentration. | +virtual real | dxdt (const cmf::math::Time &time) | Returns the derivate of the state variable at time time . | +real | flux_to (const cmf::water::flux_node &target, cmf::math::Time t) | Returns the actual flux between this and target (positive sign means "from this into target") | +cmf::geometry::point | get_3d_flux (cmf::math::Time t) | Returns the sum of all flux vectors. | +real | get_depth () const | Returns the water table depth. | +char | get_state_variable_content () const | A character indicating the integrated variable (either 'V' for Volume or 'h' for head) | +virtual real | get_volume () const | Returns the volume of water in this storage in m3 | +virtual bool | is_connected (const cmf::math::StateVariable &other) const | Returns True if this waterstorage is effected by another state. | +real | operator() (cmf::math::Time t) const | returns the waterblance | +bool | remove_connection (cmf::water::flux_node::ptr To) | Remove the connection. | +void | set_state_variable_content (char content) | A character indicating the integrated variable (either 'V' for Volume or 'h' for head) | +virtual void | set_volume (real newwatercontent) | Sets the volume of water in this storage in m3 | Returns the sum of all fluxes (positive and negative) at time t. | +real | wet_area () const | Returns the exposed surface area in m2. |
+Static Public Member Functions
-static ptr | cast (cmf::water::flux_node::ptr node) | |
-static ptr | create (cmf::project &_project, real Area) | | Creates an open water storage with a prismatic volume. | |
-static ptr | create (cmf::project &_project, const cmf::river::IVolumeHeightFunction &base_geo) | |
+static ptr | create (cmf::project &_project, real Area) | | Creates an open water storage with a prismatic volume | + | +static ptr | cast (cmf::water::flux_node::ptr node) | Casts a flux node to an open water storage. | +static ptr | create (cmf::project &_project, const cmf::river::IVolumeHeightFunction &base_geo) | Creates an open water storage with any type of a volume. |
+Public Attributes
-std::string | Name | |
-const int | node_id | |
-cmf::geometry::point | position | | +std::string | Name | The Name of this node. | +const int | node_id | The Id of the node. | +cmf::geometry::point | position | The spatial position of the node. |
+Protected Member Functions
- | OpenWaterStorage (cmf::project &_project, real Area) | | Creates an open water storage with a prismatic volume. | |
- | OpenWaterStorage (cmf::project &_project, const cmf::river::IVolumeHeightFunction &base_geo) | |
-void | MarkStateChangeHandled () |
+ | OpenWaterStorage (cmf::project &_project, real Area) | | Creates an open water storage with a prismatic volume | + | |
-bool | StateIsChanged () | | | + | OpenWaterStorage (cmf::project &_project, const cmf::river::IVolumeHeightFunction &base_geo) | Creates an open water storage with any type of a volume. | +void | MarkStateChangeHandled () | Sets the updated flag (m_StateIsNew) to false. | +bool | StateIsChanged () | Returns if the state was currently updated. |
Overrides of flux_node | |
virtual bool | RecalcFluxes (cmf::math::Time t) |
Pure flux_nodes do not influence fluxes, therefore no recalculation of fluxes is required by flux_node. | |
+virtual double | is_empty () const |
Returns true if the node has no water. | |
virtual real get_potential | +real get_potential | ( | -) | +cmf::math::Time | = cmf::math::never | ) | const |
0
Returns the sum of all fluxes (positive and negative) at time t.
-Single fluxes can be excluded from the calculation
+ Single fluxes can be excluded from the calculation
t | Time of the query |
Without | A flux_connection that is excluded from the waterbalance (e.g. to prevent closed circuits) | Generated: Fri Apr 26 2019 12:43:44 | +Generated: Fri Jan 19 2024 16:10:57 |
This is the complete list of members for PipeReach, including all inherited members.
A(double V) const | IChannel | virtual |
get_channel_width(double depth) const | PipeReach | virtual |
get_channel_width(double depth) const | PipeReach | virtual |
get_depth(double area) const | PipeReach | virtual |
get_flux_crossection(double depth) const | PipeReach | virtual |
get_flux_crossection(double depth) const | PipeReach | virtual |
get_length() const | PipeReach | virtual |
get_wetted_perimeter(double depth) const | PipeReach | virtual |
get_wetted_perimeter(double depth) const | PipeReach | virtual |
h(double V) const | IChannel | virtual |
PipeReach(double l, double diameter) | PipeReach | |
PipeReach(double l, double diameter) | PipeReach | |
qManning(double A, double slope) const | IChannel | virtual |
Describes the geometry of a closed pipe. - More...
-Describes the geometry of a closed pipe.
+Public Member Functions
- | PipeReach (double l, double diameter) | |
-virtual double | A (double V) const | |
-virtual double | get_channel_width (double depth) const | | -\[w=2\sqrt{\left|r^2-(r-d)^2\right|} \] - - |
-virtual double | get_depth (double area) const | | -\[d=r\left(1-\cos{\frac{A}{r^2}}\right) \] - - |
-virtual double | get_flux_crossection (double depth) const | | -\[A=r^2\arccos{\frac{r-d}{r}{r}} \] - - |
-double | get_length () const | |
-virtual double | get_wetted_perimeter (double depth) const | | -\[P=r\arccos{\frac{r-d}{r}} \] - - |
-virtual double | h (double V) const | | virtual double | qManning (double A, double slope) const | | Calculates the flow rate from a given water volume in the reach | -\begin{eqnarray*} q_{Manning}&=& A R^{\frac 2 3} \sqrt{\frac {\Delta_z} n} \\ A &=& \frac V l \mbox{, (Crosssectional area of the wetted crossection, Volume per length)} \\ R &=& \frac A {P(d)} \\ P(d) &=& \mbox{ the perimeter of the wetted crosssection, a function of reach depth} \\ d(V) &=& \mbox{ the depth of the reach a function of the volume} \\ \Delta_z &=& \frac{z_{max} - z_{min}}{l} \mbox{ Slope of the reach} \end{eqnarray*} - -. More... virtual double | qManning (double A, double slope) const | | + | PipeReach (double l, double diameter) | Creates a tube IChannel with diameter [m]. | +virtual double | A (double V) const | Returns the area of the surface for a given volume. | virtual double | get_channel_width (double depth) const | virtual double | get_depth (double area) const | virtual double | get_flux_crossection (double depth) const | +double | get_length () const | Length of the reach. | virtual double | get_wetted_perimeter (double depth) const | +virtual double | h (double V) const | Returns the depth of a given volume. | Calculates the flow rate from a given water volume in the reach. |
virtual double qManning | +virtual double get_channel_width | ( | -double | -A, | +double | depth | ) | +const |
+\[w=2\sqrt{\left|r^2-(r-d)^2\right|} \] +
+ +Implements IChannel.
+ +
+
|
+ +virtual | +
+\[d=r\left(1-\cos{\frac{A}{r^2}}\right) \] +
+ +Implements IChannel.
+ +
+
|
+ +virtual | +
+\[A=r^2\arccos{\frac{r-d}{r}{r}} \] +
+ +Implements IChannel.
+ +
+
|
+ +virtual | +
+\[P=r\arccos{\frac{r-d}{r}} \] +
+ +Implements IChannel.
+ +the height of a volume in a Prism with a defined base area - More...
-the height of a volume in a Prism with a defined base area + More...
+the height of a volume in a Prism with a defined base area
+the height of a volume in a Prism with a defined base area
+Public Member Functions
-double | A (double V) const | |
-double | h (double V) const | | +double | A (double V) const | \( A(V) = A_{base} \) | +double | h (double V) const | \( h(V) = \frac V A_{base} \) |
This is the complete list of members for Reach, including all inherited members.
cast(cmf::water::flux_node::ptr node) | OpenWaterStorage | static |
conc(cmf::math::Time t, const cmf::water::solute &solute) const | OpenWaterStorage | virtual |
conc(cmf::math::Time t, const cmf::water::solute &solute) const | OpenWaterStorage | virtual |
cmf::water::WaterStorage::conc(const cmf::water::solute &_Solute) const | WaterStorage | |
cmf::water::WaterStorage::conc(const cmf::water::solute &_Solute, real NewConcetration) | WaterStorage | |
cmf::water::WaterStorage::conc(const cmf::water::solute &_Solute, real NewConcetration) | WaterStorage | |
connect_to_surfacewater(cmf::upslope::Cell *cell, real width, bool diffusive) | Reach | |
connection_to(const cmf::water::flux_node &target) | flux_node | |
connection_to(const cmf::water::flux_node &target) | flux_node | |
cmf::river::OpenWaterStorage::create(cmf::project &_project, real Area) | OpenWaterStorage | static |
cmf::river::OpenWaterStorage::create(cmf::project &_project, const cmf::river::IVolumeHeightFunction &base_geo) | OpenWaterStorage | static |
cmf::river::OpenWaterStorage::create(cmf::project &_project, const cmf::river::IVolumeHeightFunction &base_geo) | OpenWaterStorage | static |
distance_to_cell(cmf::upslope::Cell *cell) const | Reach | |
dxdt(const cmf::math::Time &time) | WaterStorage | virtual |
dxdt(const cmf::math::Time &time) | WaterStorage | virtual |
flux_to(const cmf::water::flux_node &target, cmf::math::Time t) | flux_node | |
get_3d_flux(cmf::math::Time t) | flux_node | |
get_3d_flux(cmf::math::Time t) | flux_node | |
get_depth() const | OpenWaterStorage | |
get_diffusive() const | Reach | |
get_diffusive() const | Reach | |
get_downstream() const | Reach | |
get_height_function() const | OpenWaterStorage | virtual |
get_height_function() const | OpenWaterStorage | virtual |
get_length() const | Reach | |
get_potential() const | WaterStorage | virtual |
get_project() const | flux_node | |
get_reachtype() const | Reach | |
get_potential(cmf::math::Time t=cmf::math::never) const override | WaterStorage | virtual |
get_project() const | flux_node | |
get_reachtype() const | Reach | |
get_root() | Reach | |
get_state_variable_content() const | WaterStorage | |
get_upstream(int index) const | Reach | |
get_volume() const | WaterStorage | virtual |
get_width() const | Reach | |
is_connected(const cmf::math::StateVariable &other) const | WaterStorage | virtual |
is_empty() const | WaterStorage | virtual |
is_storage() const | WaterStorage | virtual |
list typedef | StateVariable | |
MarkStateChangeHandled() | StateVariable | protected |
get_state() const | StateVariable | |
get_state_variable_content() const | WaterStorage | |
get_upstream(int index) const | Reach | |
get_volume() const | WaterStorage | virtual |
get_width() const | Reach | |
is_connected(const cmf::math::StateVariable &other) const | WaterStorage | virtual |
is_empty() const | WaterStorage | virtual |
is_storage() const override | WaterStorage | virtual |
MarkStateChangeHandled() | StateVariable | protected |
Name | flux_node | |
node_id | flux_node | |
node_id | flux_node | |
OpenWaterStorage(cmf::project &_project, real Area) | OpenWaterStorage | protected |
OpenWaterStorage(cmf::project &_project, const cmf::river::IVolumeHeightFunction &base_geo) | OpenWaterStorage | protected |
OpenWaterStorage(cmf::project &_project, const cmf::river::IVolumeHeightFunction &base_geo) | OpenWaterStorage | protected |
operator()(cmf::math::Time t) const | flux_node | |
position | flux_node | |
position | flux_node | |
RecalcFluxes(cmf::math::Time t) | WaterStorage | virtual |
remove_connection(cmf::water::flux_node::ptr To) | flux_node | |
remove_connection(cmf::water::flux_node::ptr To) | flux_node | |
set_dead_end() | Reach | |
set_diffusive(bool use_diffusive_wave) | Reach | |
set_diffusive(bool use_diffusive_wave) | Reach | |
set_downstream(ptr new_downstream, bool use_meanchannel=false) | Reach | |
set_height_function(const IChannel &val) | Reach | |
set_height_function(const IChannel &val) | Reach | |
set_outlet(cmf::water::flux_node::ptr outlet) | Reach | |
set_potential(real newpotential) | WaterStorage | virtual |
set_state_variable_content(char content) | WaterStorage | |
set_volume(real newwatercontent) | WaterStorage | virtual |
Solute(const cmf::water::solute _Solute) | WaterStorage | |
StateIsChanged() | StateVariable | protected |
StateVariable(real InitialState=0, real scale=1) | StateVariable | |
upstream_count() const | Reach | |
waterbalance(cmf::math::Time t, const flux_connection *Without=0) const | flux_node | |
WaterStorage(cmf::project &project, const std::string &Name="", double InitialState=0, double scale=1) | WaterStorage | |
wet_area() const | OpenWaterStorage | |
~flux_node() | flux_node | virtual |
set_potential(real newpotential) override | WaterStorage | virtual |
set_state(real newState) | StateVariable | |
set_state_variable_content(char content) | WaterStorage | |
set_volume(real newwatercontent) | WaterStorage | virtual |
Solute(const cmf::water::solute _Solute) | WaterStorage | |
StateIsChanged() | StateVariable | protected |
StateVariable(real InitialState=0, real scale=1) | StateVariable | |
upstream_count() const | Reach | |
waterbalance(cmf::math::Time t, const flux_connection *Without=0) const | flux_node | |
WaterStorage(cmf::project &project, const std::string &Name="", double InitialState=0, double scale=1) | WaterStorage | |
wet_area() const | OpenWaterStorage | |
~flux_node() | flux_node | virtual |
A reach represents the section of a riover and is a specialization of an open water storage. - More...
-A reach represents the section of a riover and is a specialization of an open water storage.
-The OpenWaterStorage attributes and methods are extended by topological features, for the creation of a network of reaches.
+The OpenWaterStorage attributes and methods are extended by topological features, for the creation of a network of reaches.
-Public Types | |
-typedef std::vector< StateVariable * > | list |
Not part of the API, used to create sparse structure. | |
+Public Member Functions
-real | conc (cmf::math::Time t, const cmf::water::solute &solute) const | |
-real | conc (const cmf::water::solute &_Solute) const | |
-void | conc (const cmf::water::solute &_Solute, real NewConcetration) | | void | connect_to_surfacewater (cmf::upslope::Cell *cell, real width, bool diffusive) | | Connects the surfacewater of a cell with this reach. More... | void | connect_to_surfacewater (cmf::upslope::Cell *cell, real width, bool diffusive) | |
-cmf::water::flux_connection * | connection_to (const cmf::water::flux_node &target) | | Returns the connection between this and target. | | double | distance_to_cell (cmf::upslope::Cell *cell) const | | Returns the distance (d) for connections between this reach and a cell. More... |
+cmf::water::flux_connection * | connection_to (const cmf::water::flux_node &target) | | Returns the connection between this and target. | | double | distance_to_cell (cmf::upslope::Cell *cell) const | |
-virtual real | dxdt (const cmf::math::Time &time) | |
-real | flux_to (const cmf::water::flux_node &target, cmf::math::Time t) | |
-cmf::geometry::point | get_3d_flux (cmf::math::Time t) | |
-real | get_depth () const | |
-bool | get_diffusive () const | |
-cmf::water::flux_node::ptr | get_downstream () const | |
-virtual const IVolumeHeightFunction & | get_height_function () const | | The functional relation between volume, depth and exposed area. | |
-real | get_length () const |
+virtual const IVolumeHeightFunction & | get_height_function () const | | The functional relation between volume, depth and exposed area. | | | virtual real | get_potential () const | | Returns the water potential of the node in m waterhead. More... | |
-cmf::project & | get_project () const | | Returns the project, this node is part of. | |
-Channel | get_reachtype () const | real | get_potential (cmf::math::Time t=cmf::math::never) const override | | Returns the water potential of the node in m waterhead. | |
+cmf::project & | get_project () const | | Returns the project, this node is part of. | | |
-ptr | get_root () | | Returns the reach most downstream from this reach. |
+ptr | get_root () | |
-char | get_state_variable_content () const |
+real | get_state () const | | Returns the current state of the variable. | | |
-ptr | get_upstream (int index) const | |
-virtual real | get_volume () const | |
-real | get_width () const | |
-virtual bool | is_connected (const cmf::math::StateVariable &other) const | |
-virtual bool | is_storage () const | | Returns true, since this is a storage. | |
-real | operator() (cmf::math::Time t) const |
+bool | is_storage () const override | | Returns true, since this is a storage. | | |
-bool | remove_connection (cmf::water::flux_node::ptr To) | |
-void | set_dead_end () | |
-void | set_diffusive (bool use_diffusive_wave) | | Sets all Manning kind connections to either diffusive or kinematic. |
+void | set_diffusive (bool use_diffusive_wave) | |
-void | set_downstream (ptr new_downstream, bool use_meanchannel=false) | |
-void | set_height_function (const IChannel &val) | |
-void | set_outlet (cmf::water::flux_node::ptr outlet) | |
-virtual void | set_potential (real newpotential) | | Sets the potential of this flux node. | |
-void | set_state_variable_content (char content) |
+void | set_potential (real newpotential) override | | Sets the potential of this flux node. | |
+void | set_state (real newState) | | Gives access to the state variable. | | |
-virtual void | set_volume (real newwatercontent) | |
-SoluteStorage & | Solute (const cmf::water::solute _Solute) | | Returns the water quality of the water storage. | |
-int | upstream_count () const |
+SoluteStorage & | Solute (const cmf::water::solute _Solute) | | Returns the water quality of the water storage. | | | real | waterbalance (cmf::math::Time t, const flux_connection *Without=0) const | | Returns the sum of all fluxes (positive and negative) at time t. More... | real | waterbalance (cmf::math::Time t, const flux_connection *Without=0) const | |
-real | wet_area () const | | Overrides of flux_node virtual bool | RecalcFluxes (cmf::math::Time t) | | Pure flux_nodes do not influence fluxes, therefore no recalculation of fluxes is required by flux_node. More... | |
-virtual double | is_empty () const | | Returns true if the node has no water. | |
-virtual std::string | to_string () const | | +real | conc (cmf::math::Time t, const cmf::water::solute &solute) const | Returns the water quality of the flux_node, if it is not overridden this is the mix of the incoming fluxes. | +real | conc (const cmf::water::solute &_Solute) const | Returns the concentration of the given solute. | +void | conc (const cmf::water::solute &_Solute, real NewConcetration) | Sets a new concentration. | Connects the surfacewater of a cell with this reach. | Returns the distance (d) for connections between this reach and a cell. | +virtual real | dxdt (const cmf::math::Time &time) | Returns the derivate of the state variable at time time . | +real | flux_to (const cmf::water::flux_node &target, cmf::math::Time t) | Returns the actual flux between this and target (positive sign means "from this into target") | +cmf::geometry::point | get_3d_flux (cmf::math::Time t) | Returns the sum of all flux vectors. | +real | get_depth () const | Returns the water table depth. | +bool | get_diffusive () const | Returns if flow is calculated using a diffusive wave model. | +cmf::water::flux_node::ptr | get_downstream () const | Returns the reach downstream of this (or null if there is no reach downstream) | +real | get_length () const | Returns the length of the reach. | +Channel | get_reachtype () const | Returns the channel shape. | Returns the reach most downstream from this reach + | +char | get_state_variable_content () const | A character indicating the integrated variable (either 'V' for Volume or 'h' for head) | +ptr | get_upstream (int index) const | Returns a reach upstream of this. | +virtual real | get_volume () const | Returns the volume of water in this storage in m3 | +real | get_width () const | Returns the average width of the reach. | +virtual bool | is_connected (const cmf::math::StateVariable &other) const | Returns True if this waterstorage is effected by another state. | +real | operator() (cmf::math::Time t) const | returns the waterblance | +bool | remove_connection (cmf::water::flux_node::ptr To) | Remove the connection. | +void | set_dead_end () | Deletes any downstream connection. | Sets all Manning kind connections to either diffusive or kinematic. | +void | set_downstream (ptr new_downstream, bool use_meanchannel=false) | Connects the reach to another one downstream. | +void | set_height_function (const IChannel &val) | Sets the channel shape. | +void | set_outlet (cmf::water::flux_node::ptr outlet) | Connects the reach to an outlet, e.g. a boundary condition. | +void | set_state_variable_content (char content) | A character indicating the integrated variable (either 'V' for Volume or 'h' for head) | +virtual void | set_volume (real newwatercontent) | Sets the volume of water in this storage in m3 | +int | upstream_count () const | Returns the number of reaches upstream of this. | Returns the sum of all fluxes (positive and negative) at time t. | +real | wet_area () const | Returns the exposed surface area in m2. |
+Static Public Member Functions
-static ptr | cast (cmf::water::flux_node::ptr node) | |
-static ptr | create (cmf::project &_project, real Area) | | Creates an open water storage with a prismatic volume. | |
-static ptr | create (cmf::project &_project, const cmf::river::IVolumeHeightFunction &base_geo) | |
+static ptr | create (cmf::project &_project, real Area) | | Creates an open water storage with a prismatic volume | + | +static ptr | cast (cmf::water::flux_node::ptr node) | Casts a flux node to an open water storage. | +static ptr | create (cmf::project &_project, const cmf::river::IVolumeHeightFunction &base_geo) | Creates an open water storage with any type of a volume. |
+Public Attributes
-std::string | Name | |
-const int | node_id | |
-cmf::geometry::point | position | | +std::string | Name | The Name of this node. | +const int | node_id | The Id of the node. | +cmf::geometry::point | position | The spatial position of the node. |
+Protected Member Functions
-void | MarkStateChangeHandled () | |
-bool | StateIsChanged () | | | +void | MarkStateChangeHandled () | Sets the updated flag (m_StateIsNew) to false. | +bool | StateIsChanged () | Returns if the state was currently updated. |
Overrides of flux_node | |
virtual bool | RecalcFluxes (cmf::math::Time t) |
Pure flux_nodes do not influence fluxes, therefore no recalculation of fluxes is required by flux_node. | |
+virtual double | is_empty () const |
Returns true if the node has no water. | |
virtual real get_potential | +real get_potential | ( | -) | +cmf::math::Time | = cmf::math::never | ) | const |
0
Returns the sum of all fluxes (positive and negative) at time t.
-Single fluxes can be excluded from the calculation
+ Single fluxes can be excluded from the calculation
t | Time of the query |
Without | A flux_connection that is excluded from the waterbalance (e.g. to prevent closed circuits) | Generated: Fri Apr 26 2019 12:43:44 | +Generated: Fri Jan 19 2024 16:10:57 |
This is the complete list of members for ReachIterator, including all inherited members.
next() | ReachIterator | |
position() const | ReachIterator | |
position() const | ReachIterator | |
reach() const | ReachIterator | |
ReachIterator(Reach::ptr first) | ReachIterator | |
ReachIterator(Reach::ptr first) | ReachIterator | |
valid() const | ReachIterator |
An iterator over every upstream reach from a start reach. - More...
+ More...An iterator over every upstream reach from a start reach.
-Implements both the Python and the C++ iterator interface Usage C++:
Usage Python:
+Implements both the Python and the C++ iterator interface Usage C++: ptr r;
+
+An iterator over every upstream reach from a start reach. Definition Reach.h:132 bool valid() const Returns true, if reaches are left to iterate over. Usage Python:
+ pass
+ReachIterator(Reach::ptr first) Creates a ReachIterator from a first reach.
|
-Generated: Fri Apr 26 2019 12:43:44 | +Generated: Fri Jan 19 2024 16:10:57 |
This is the complete list of members for RectangularReach, including all inherited members.
A(double V) const | IChannel | virtual |
get_channel_width(double depth) const | RectangularReach | virtual |
get_channel_width(double depth) const | RectangularReach | virtual |
get_depth(double area) const | RectangularReach | virtual |
get_flux_crossection(double depth) const | RectangularReach | virtual |
get_flux_crossection(double depth) const | RectangularReach | virtual |
get_length() const | RectangularReach | virtual |
get_wetted_perimeter(double depth) const | RectangularReach | virtual |
get_wetted_perimeter(double depth) const | RectangularReach | virtual |
h(double V) const | IChannel | virtual |
qManning(double A, double slope) const | IChannel | virtual |
qManning(double A, double slope) const | IChannel | virtual |
RectangularReach(double l, double width) | RectangularReach |
Describes a IChannel with a rectangular crosssection. - More...
-Describes a IChannel with a rectangular crosssection.
+Public Member Functions
- | RectangularReach (double l, double width) | |
-virtual double | A (double V) const | |
-virtual double | get_channel_width (double depth) const | | Returns the width of the stream at a given depth | -\begin{eqnarray*} w &=& const \end{eqnarray*} - -. virtual double | get_channel_width (double depth) const | |
-virtual double | get_depth (double area) const | | Returns the depth at a given crossection area | -\begin{eqnarray*} d &=& \frac A w \end{eqnarray*} - -. virtual double | get_depth (double area) const | |
-virtual double | get_flux_crossection (double depth) const | | Returns the crossection area at a given depth | -\begin{eqnarray*} A &=& d w \end{eqnarray*} - -. virtual double | get_flux_crossection (double depth) const | |
-double | get_length () const | |
-virtual double | get_wetted_perimeter (double depth) const | | Returns the wetted perimeter at a given depth | -\begin{eqnarray*} P &=& 2 d + w \end{eqnarray*} - -. virtual double | get_wetted_perimeter (double depth) const | |
-virtual double | h (double V) const | | virtual double | qManning (double A, double slope) const | | Calculates the flow rate from a given water volume in the reach | -\begin{eqnarray*} q_{Manning}&=& A R^{\frac 2 3} \sqrt{\frac {\Delta_z} n} \\ A &=& \frac V l \mbox{, (Crosssectional area of the wetted crossection, Volume per length)} \\ R &=& \frac A {P(d)} \\ P(d) &=& \mbox{ the perimeter of the wetted crosssection, a function of reach depth} \\ d(V) &=& \mbox{ the depth of the reach a function of the volume} \\ \Delta_z &=& \frac{z_{max} - z_{min}}{l} \mbox{ Slope of the reach} \end{eqnarray*} - -. More... virtual double | qManning (double A, double slope) const | | + | RectangularReach (double l, double width) | Creates a new rectangular reach type with width [m]. | +virtual double | A (double V) const | Returns the area of the surface for a given volume. | Returns the width of the stream at a given depth. | Returns the depth at a given crossection area. | Returns the crossection area at a given depth. | +double | get_length () const | Length of the reach. | Returns the wetted perimeter at a given depth. | +virtual double | h (double V) const | Returns the depth of a given volume. | Calculates the flow rate from a given water volume in the reach. |
virtual double qManning | +virtual double get_channel_width | ( | -double | -A, | +double | depth | ) | +const |
Returns the width of the stream at a given depth.
++\begin{eqnarray*} +w &=& const +\end{eqnarray*} +
+ +Implements IChannel.
+ +
+
|
+ +virtual | +
Returns the depth at a given crossection area.
++\begin{eqnarray*} +d &=& \frac A w +\end{eqnarray*} +
+ +Implements IChannel.
+ +
+
|
+ +virtual | +
Returns the crossection area at a given depth.
++\begin{eqnarray*} +A &=& d w +\end{eqnarray*} +
+ +Implements IChannel.
+ +
+
|
+ +virtual | +
Returns the wetted perimeter at a given depth.
++\begin{eqnarray*} +P &=& 2 d + w +\end{eqnarray*} +
+ +Implements IChannel.
+ +
+
|
@@ -217,11 +344,18 @@
A | The area of the cross section [m2] | Generated: Fri Apr 26 2019 12:43:44 | +Generated: Fri Jan 19 2024 16:10:57 |
This is the complete list of members for SWATReachType, including all inherited members.
A(double V) const | IChannel | virtual |
BankSlope | SWATReachType | |
BankSlope | SWATReachType | |
BottomWidth | SWATReachType | |
ChannelDepth | SWATReachType | |
ChannelDepth | SWATReachType | |
FloodPlainSlope | SWATReachType | |
get_channel_width(double depth) const | SWATReachType | virtual |
get_channel_width(double depth) const | SWATReachType | virtual |
get_depth(double area) const | SWATReachType | virtual |
get_flux_crossection(double depth) const | SWATReachType | virtual |
get_flux_crossection(double depth) const | SWATReachType | virtual |
get_length() const | SWATReachType | virtual |
get_wetted_perimeter(double depth) const | SWATReachType | virtual |
get_wetted_perimeter(double depth) const | SWATReachType | virtual |
h(double V) const | IChannel | virtual |
qManning(double A, double slope) const | IChannel | virtual |
qManning(double A, double slope) const | IChannel | virtual |
SWATReachType(double l) | SWATReachType | |
SWATReachType(double l, double BankWidth, double Depth) | SWATReachType | |
SWATReachType(double l, double BankWidth, double Depth) | SWATReachType |
Structure for the description of structural parameters of a reach. - More...
-Structure for the description of structural parameters of a reach.
Uses the SWAT IChannel geometry (see SWAT Theoretical Documentation, Version 2005 (ch. 7:1.1), Neitsch et al. 2005), in this class referenced as SWATtheoDoc. Differences to the SWAT geometry: The flood plain is not plain, but has a small slope=0.5%, but has an infinite width
+Public Member Functions
- | SWATReachType (double l) | | | SWATReachType (double l, double BankWidth, double Depth) | | Creates a new reach structure from a give width and depth. More... | | SWATReachType (double l, double BankWidth, double Depth) | |
-virtual double | A (double V) const | | virtual double | get_channel_width (double depth) const | | Calculates the flow width from a given actual depth [m] using the actual IChannel geometry | -\begin{eqnarray*} \mbox{If } d\le d_{IChannel} && \\ w &=& w_{bottom} + 2 \Delta_{bank} d \\ \mbox{else, } && \mbox{if the river floods the flood plain} \\ w &=& w_{bank} + 2 \Delta_{Floodplain} (d-d_{IChannel} \\ \end{eqnarray*} - -. More... virtual double | get_channel_width (double depth) const | | virtual double | get_depth (double area) const | | Calculates the actual depth of the reach using the IChannel geometry | -\begin{eqnarray*} d &=& \sqrt{\frac{A}{\Delta_{bank}} + \frac{{w_{bottom}}^2}{4 {\Delta_{bank}}^2}} - \frac{w_{bottom}}{2 \Delta_{bank}} \\ \mbox{If } d>d_{IChannel} &&\\ d&=&d_{IChannel}+\sqrt{\frac{A-A(d_{IChannel})}{\Delta_{flood\ plain}} + \frac{{w(d_{IChannel})}^2}{4 {\Delta_{flood\ plain}}^2}} - \frac{w(d_{IChannel})}{2 \Delta_{flood\ plain}} \\ \end{eqnarray*} - -. More... virtual double | get_depth (double area) const | | virtual double | get_flux_crossection (double depth) const | | Calculates the wetted area from a given depth using the IChannel geometry. More... | virtual double | get_flux_crossection (double depth) const | |
-double | get_length () const | | virtual double | get_wetted_perimeter (double depth) const | | Calculates the wetted perimeter from a given actual depth [m] using the actual IChannel geometry | -\begin{eqnarray*} \mbox{If } d\le d_{IChannel} && \\ P &=& w_{bottom} + 2 \sqrt{1+ {\Delta_{bank}}^2} d \\ \mbox{else, } && \mbox{if the river floods the flood plain} \\ P &=& P(d_{IChannel} + 2 \sqrt{1+ {\Delta_{flood\ plain}}^2} (d-d_{IChannel}) \\ \end{eqnarray*} - -. More... virtual double | get_wetted_perimeter (double depth) const | |
-virtual double | h (double V) const | | virtual double | qManning (double A, double slope) const | | Calculates the flow rate from a given water volume in the reach | -\begin{eqnarray*} q_{Manning}&=& A R^{\frac 2 3} \sqrt{\frac {\Delta_z} n} \\ A &=& \frac V l \mbox{, (Crosssectional area of the wetted crossection, Volume per length)} \\ R &=& \frac A {P(d)} \\ P(d) &=& \mbox{ the perimeter of the wetted crosssection, a function of reach depth} \\ d(V) &=& \mbox{ the depth of the reach a function of the volume} \\ \Delta_z &=& \frac{z_{max} - z_{min}}{l} \mbox{ Slope of the reach} \end{eqnarray*} - -. More... virtual double | qManning (double A, double slope) const | | + | SWATReachType (double l) | Creates a new reach structure with standard values (small natural river) BottomWidth = 3m, ChannelDepth = 0.5m, BankSlope = 2, nManning = 0.0035, FloodPlainSlope = 200. | Creates a new reach structure from a give width and depth. | +virtual double | A (double V) const | Returns the area of the surface for a given volume. | Calculates the flow width from a given actual depth [m] using the actual IChannel geometry. | Calculates the actual depth of the reach using the IChannel geometry. | Calculates the wetted area from a given depth using the IChannel geometry. | +double | get_length () const | Length of the reach. | Calculates the wetted perimeter from a given actual depth [m] using the actual IChannel geometry. | +virtual double | h (double V) const | Returns the depth of a given volume. | Calculates the flow rate from a given water volume in the reach. |
+Public Attributes
-double | BankSlope | |
-double | BottomWidth | |
-double | ChannelDepth | |
-double | FloodPlainSlope | | +double | BankSlope | Inverse slope of the river bank \( \Delta_{bank} \left[\frac m m\right] \). | +double | BottomWidth | get_channel_width of the IChannel bottom \( w_{bottom} [m] \) | +double | ChannelDepth | get_depth of the IChannel \( d_{IChannel} [m] \) | +double | FloodPlainSlope | Inverse slope of the flood plain \( \Delta_{flood\ plain} \left[\frac m m\right] \). |
Calculates the flow width from a given actual depth [m] using the actual IChannel geometry
-\begin{eqnarray*} \mbox{If } d\le d_{IChannel} && \\ w &=& w_{bottom} + 2 \Delta_{bank} d \\ \mbox{else, } && \mbox{if the river floods the flood plain} \\ w &=& w_{bank} + 2 \Delta_{Floodplain} (d-d_{IChannel} \\ \end{eqnarray*} +
Calculates the flow width from a given actual depth [m] using the actual IChannel geometry.
++\begin{eqnarray*} + \mbox{If } d\le d_{IChannel} && \\ + w &=& w_{bottom} + 2 \Delta_{bank} d \\ + \mbox{else, } && \mbox{if the river floods the flood plain} \\ + w &=& w_{bank} + 2 \Delta_{Floodplain} (d-d_{IChannel} \\ + \end{eqnarray*}
-.
-Implements IChannel.
Calculates the actual depth of the reach using the IChannel geometry
-\begin{eqnarray*} d &=& \sqrt{\frac{A}{\Delta_{bank}} + \frac{{w_{bottom}}^2}{4 {\Delta_{bank}}^2}} - \frac{w_{bottom}}{2 \Delta_{bank}} \\ \mbox{If } d>d_{IChannel} &&\\ d&=&d_{IChannel}+\sqrt{\frac{A-A(d_{IChannel})}{\Delta_{flood\ plain}} + \frac{{w(d_{IChannel})}^2}{4 {\Delta_{flood\ plain}}^2}} - \frac{w(d_{IChannel})}{2 \Delta_{flood\ plain}} \\ \end{eqnarray*} +
Calculates the actual depth of the reach using the IChannel geometry.
++\begin{eqnarray*} + d &=& \sqrt{\frac{A}{\Delta_{bank}} + \frac{{w_{bottom}}^2}{4 {\Delta_{bank}}^2}} - \frac{w_{bottom}}{2 \Delta_{bank}} \\ + \mbox{If } d>d_{IChannel} &&\\ + d&=&d_{IChannel}+\sqrt{\frac{A-A(d_{IChannel})}{\Delta_{flood\ plain}} + \frac{{w(d_{IChannel})}^2}{4 {\Delta_{flood\ plain}}^2}} - \frac{w(d_{IChannel})}{2 \Delta_{flood\ plain}} \\ + \end{eqnarray*}
-.
-( | -double | -depth | ) | +double | depth | ) | const |
Calculates the wetted area from a given depth using the IChannel geometry.
-In most cases use get_flux_crossection=V/l, where V is the stored volume and l is the reach length
-\begin{eqnarray*} \mbox{If } d>d_{IChannel} &&\\ A &=& \left(w_{bottom} + \Delta_{bank} d\right) d \\ \mbox{else, } && \mbox{if the river floods the flood plain} \\ A &=& A(d_{IChannel}) + \left(w(d_{IChannel} + \Delta_{flood\ plain} \left(d-d_{IChannel}\right)\right) (d-d_{IChannel}) \\ \end{eqnarray*} +
In most cases use get_flux_crossection=V/l, where V is the stored volume and l is the reach length
+\begin{eqnarray*} +\mbox{If } d>d_{IChannel} &&\\ +A &=& \left(w_{bottom} + \Delta_{bank} d\right) d \\ +\mbox{else, } && \mbox{if the river floods the flood plain} \\ +A &=& A(d_{IChannel}) + \left(w(d_{IChannel} + \Delta_{flood\ plain} \left(d-d_{IChannel}\right)\right) (d-d_{IChannel}) \\ +\end{eqnarray*}
Calculates the wetted perimeter from a given actual depth [m] using the actual IChannel geometry
-\begin{eqnarray*} \mbox{If } d\le d_{IChannel} && \\ P &=& w_{bottom} + 2 \sqrt{1+ {\Delta_{bank}}^2} d \\ \mbox{else, } && \mbox{if the river floods the flood plain} \\ P &=& P(d_{IChannel} + 2 \sqrt{1+ {\Delta_{flood\ plain}}^2} (d-d_{IChannel}) \\ \end{eqnarray*} +
Calculates the wetted perimeter from a given actual depth [m] using the actual IChannel geometry.
++\begin{eqnarray*} + \mbox{If } d\le d_{IChannel} && \\ + P &=& w_{bottom} + 2 \sqrt{1+ {\Delta_{bank}}^2} d \\ + \mbox{else, } && \mbox{if the river floods the flood plain} \\ + P &=& P(d_{IChannel} + 2 \sqrt{1+ {\Delta_{flood\ plain}}^2} (d-d_{IChannel}) \\ + \end{eqnarray*}
-.
-depth | Actual depth of the reach [m] | ( | -double | -A, | +double | A, |
- | double | -slope | -|||
- | ) | -const | +double | slope ) const |
Calculates the flow rate from a given water volume in the reach
-\begin{eqnarray*} q_{Manning}&=& A R^{\frac 2 3} \sqrt{\frac {\Delta_z} n} \\ A &=& \frac V l \mbox{, (Crosssectional area of the wetted crossection, Volume per length)} \\ R &=& \frac A {P(d)} \\ P(d) &=& \mbox{ the perimeter of the wetted crosssection, a function of reach depth} \\ d(V) &=& \mbox{ the depth of the reach a function of the volume} \\ \Delta_z &=& \frac{z_{max} - z_{min}}{l} \mbox{ Slope of the reach} \end{eqnarray*} +
Calculates the flow rate from a given water volume in the reach.
++\begin{eqnarray*} +q_{Manning}&=& A R^{\frac 2 3} \sqrt{\frac {\Delta_z} n} \\ +A &=& \frac V l \mbox{, (Crosssectional area of the wetted crossection, Volume per length)} \\ +R &=& \frac A {P(d)} \\ +P(d) &=& \mbox{ the perimeter of the wetted crosssection, a function of reach depth} \\ +d(V) &=& \mbox{ the depth of the reach a function of the volume} \\ +\Delta_z &=& \frac{z_{max} - z_{min}}{l} \mbox{ Slope of the reach} +\end{eqnarray*}
-.
-A | The area of the cross section [m2] | Generated: Fri Apr 26 2019 12:43:44 | +Generated: Fri Jan 19 2024 16:10:57 |
This is the complete list of members for TriangularReach, including all inherited members.
A(double V) const | IChannel | virtual |
BankSlope | TriangularReach | |
BankSlope | TriangularReach | |
get_channel_width(double depth) const | TriangularReach | virtual |
get_depth(double area) const | TriangularReach | virtual |
get_depth(double area) const | TriangularReach | virtual |
get_flux_crossection(double depth) const | TriangularReach | virtual |
get_length() const | TriangularReach | virtual |
get_length() const | TriangularReach | virtual |
get_wetted_perimeter(double depth) const | TriangularReach | virtual |
h(double V) const | IChannel | virtual |
h(double V) const | IChannel | virtual |
qManning(double A, double slope) const | IChannel | virtual |
TriangularReach(double l, double bankSlope=2) | TriangularReach | |
TriangularReach(double l, double bankSlope=2) | TriangularReach |
Structure for the description of reaches with a triangular cross section. - More...
-Structure for the description of reaches with a triangular cross section.
Although double triangular cross section reach are rarely met, a triangular reach does scale with its water load, and is therefore preferable in case where nothing about IChannel geometry is known
+Public Member Functions
- | TriangularReach (double l, double bankSlope=2) | |
-virtual double | A (double V) const | |
-virtual double | get_channel_width (double depth) const | | Returns the width of the stream at a given depth | -\begin{eqnarray*} w &=& 2 \Delta\ d \end{eqnarray*} - -. virtual double | get_channel_width (double depth) const | |
-virtual double | get_depth (double area) const | | Returns the depth at a given crossection area | -\begin{eqnarray*} d &=& \sqrt{\frac{A}{\Delta}} \end{eqnarray*} - -. virtual double | get_depth (double area) const | |
-virtual double | get_flux_crossection (double depth) const | | Returns the crossection area at a given depth | -\begin{eqnarray*} A &=& d^2 \Delta \end{eqnarray*} - -. virtual double | get_flux_crossection (double depth) const | |
-double | get_length () const | |
-virtual double | get_wetted_perimeter (double depth) const | | Returns the wetted perimeter at a given depth | -\begin{eqnarray*} P &=& 2 d \sqrt{1+\Delta^2} \end{eqnarray*} - -. virtual double | get_wetted_perimeter (double depth) const | |
-virtual double | h (double V) const | | virtual double | qManning (double A, double slope) const | | Calculates the flow rate from a given water volume in the reach | -\begin{eqnarray*} q_{Manning}&=& A R^{\frac 2 3} \sqrt{\frac {\Delta_z} n} \\ A &=& \frac V l \mbox{, (Crosssectional area of the wetted crossection, Volume per length)} \\ R &=& \frac A {P(d)} \\ P(d) &=& \mbox{ the perimeter of the wetted crosssection, a function of reach depth} \\ d(V) &=& \mbox{ the depth of the reach a function of the volume} \\ \Delta_z &=& \frac{z_{max} - z_{min}}{l} \mbox{ Slope of the reach} \end{eqnarray*} - -. More... virtual double | qManning (double A, double slope) const | | + | TriangularReach (double l, double bankSlope=2) | Creates a new triangular reach type. | +virtual double | A (double V) const | Returns the area of the surface for a given volume. | Returns the width of the stream at a given depth. | Returns the depth at a given crossection area. | Returns the crossection area at a given depth. | +double | get_length () const | Length of the reach. | Returns the wetted perimeter at a given depth. | +virtual double | h (double V) const | Returns the depth of a given volume. | Calculates the flow rate from a given water volume in the reach. |
+Public Attributes
-double | BankSlope | | +double | BankSlope | Inverse slope of the bank \( \Delta = 0.5 \frac w d \). |
virtual double qManning | +virtual double get_channel_width | ( | -double | -A, | +double | depth | ) | +const |
Returns the width of the stream at a given depth.
++\begin{eqnarray*} +w &=& 2 \Delta\ d +\end{eqnarray*} +
+ +Implements IChannel.
+ +
+
|
+ +virtual | +
Returns the depth at a given crossection area.
++\begin{eqnarray*} +d &=& \sqrt{\frac{A}{\Delta}} +\end{eqnarray*} +
+ +Implements IChannel.
+ +
+
|
+ +virtual | +
Returns the crossection area at a given depth.
++\begin{eqnarray*} +A &=& d^2 \Delta +\end{eqnarray*} +
+ +Implements IChannel.
+ +
+
|
+ +virtual | +
Returns the wetted perimeter at a given depth.
++\begin{eqnarray*} +P &=& 2 d \sqrt{1+\Delta^2} +\end{eqnarray*} +
+ +Implements IChannel.
+ +
+
|
@@ -226,11 +353,18 @@
A | The area of the cross section [m2] | Generated: Fri Apr 26 2019 12:43:44 | +Generated: Fri Jan 19 2024 16:10:57 |
This is the complete list of members for volume_height_function, including all inherited members.
A(double V) const | volume_height_function | virtual |
h(double V) const | volume_height_function | virtual |
h(double V) const | volume_height_function | virtual |
volume_height_function(const volume_height_function &for_copy) | volume_height_function | |
volume_height_function(const IVolumeHeightFunction &for_copy) | volume_height_function | |
volume_height_function(const IVolumeHeightFunction &for_copy) | volume_height_function |
A wrapper class for volume / height functional relations. - More...
-A wrapper class for volume / height functional relations.
+Public Member Functions
- | volume_height_function (const volume_height_function &for_copy) | | Copy constructable. | |
- | volume_height_function (const IVolumeHeightFunction &for_copy) | |
-double | A (double V) const |
+ | volume_height_function (const volume_height_function &for_copy) | | Copy constructable. | | |
-double | h (double V) const | | + | volume_height_function (const IVolumeHeightFunction &for_copy) | Wrapper for any IVolumeHeightFunction. | +double | A (double V) const | Returns the area of the surface for a given volume. | +double | h (double V) const | Returns the depth of a given volume. |
- |
- 2.0.0a1
- The Catchment Modelling Framework
- |
-
This is the complete list of members for StopWatch, including all inherited members.
-- |
- 2.0.0a1
- The Catchment Modelling Framework
- |
-
A stopwatch to estimated the total time of a process - -Creating a StopWatch: ->>>stopwatch=StopWatch(start,stop) -Start and end are indicators to describe the progress of a process. -Start is the indicator value at the beginning of the process. As default they are 0.0 and 1.0. - -Starting the StopWatch again: ->>>stopwatch.start() - -Getting the elapsed time, the total time and the remaining time of the process in seconds: ->>>elapsed,total,remaining = stopwatch(progress) -Where progress is a process progress indicator matching start and stop - -Example: -stopwatch=StopWatch(0,10) -for i in range(10): - time.sleep(1) - print('elapsed = %0.2fs, total= %0.2fs, remaining = %0.2fs' % stopwatch(i+1))
+ |
+ 2.0.0b10
+ catchment modelling framework
+ |
+
+ |
+ 2.0.0b10
+ catchment modelling framework
+ |
+
A stopwatch to estimated the total time of a process + +Creating a StopWatch: +>>>stopwatch=StopWatch(start, stop) +Start and end are indicators to describe the progress of a process. +Start is the indicator value at the beginning of the process. As default they are 0.0 and 1.0. + +Starting the StopWatch again: +>>>stopwatch.restart() + +Getting the elapsed time, the total time and the remaining time of the process in seconds: +>>>elapsed, total, remaining = stopwatch(progress) +Where progress is a process progress indicator matching start and stop + +Example: +stopwatch=StopWatch(0,10) +for i in range(10): + time.sleep(1) + print('elapsed = %0.2fs, total= %0.2fs, remaining = %0.2fs' % stopwatch(i+1))
+Public Member Functions | |
__call__ (self, progress) | |
restart (self) | |
__call__ | +( | +self, | +|
+ | + | progress ) | +
Returns the progress in wall clock time +:param progress: The current position in the stopwatch +:return: A 3-tuple of elapsed, total and remaining seconds of the task ++
restart | +( | +self | ) | ++ |
Restarts the stopwatch+
+ |
+ 2.0.0b10
+ catchment modelling framework
+ |
+
This is the complete list of members for timerange, including all inherited members.
++ |
+ 2.0.0b10
+ catchment modelling framework
+ |
+
This is the complete list of members for BrooksCoreyRetentionCurve, including all inherited members.
BrooksCoreyRetentionCurve(real ksat=15, real porosity=0.5, real _b=5, real theta_x=0.2, real psi_x=pF_to_waterhead(2.5), real porosity_decay=0) | BrooksCoreyRetentionCurve | |
CreateFrom2Points(real ksat, real porosity, real theta1, real theta2, real psi_1=pF_to_waterhead(2.5), real psi_2=pF_to_waterhead(4.2)) | BrooksCoreyRetentionCurve | static |
CreateFrom2Points(real ksat, real porosity, real theta1, real theta2, real psi_1=pF_to_waterhead(2.5), real psi_2=pF_to_waterhead(4.2)) | BrooksCoreyRetentionCurve | static |
Diffusivity(real wetness) const | RetentionCurve | virtual |
FillHeight(real lowerDepth, real Area, real Volume) const | BrooksCoreyRetentionCurve | virtual |
FillHeight(real lowerDepth, real Area, real Volume) const | BrooksCoreyRetentionCurve | virtual |
get_b() const | BrooksCoreyRetentionCurve | |
K(real wetness) const | BrooksCoreyRetentionCurve | virtual |
K(real wetness) const | BrooksCoreyRetentionCurve | virtual |
MatricPotential(real wetness) const | BrooksCoreyRetentionCurve | virtual |
Porosity(real depth) const | BrooksCoreyRetentionCurve | virtual |
Porosity(real depth) const | BrooksCoreyRetentionCurve | virtual |
Psi_X | BrooksCoreyRetentionCurve | |
SetPorosity(real porosity, real porosity_decay=0) | BrooksCoreyRetentionCurve | |
SetPorosity(real porosity, real porosity_decay=0) | BrooksCoreyRetentionCurve | |
theta(real wetness) const | RetentionCurve | virtual |
VoidVolume(real upperDepth, real lowerDepth, real Area) const | BrooksCoreyRetentionCurve | virtual |
VoidVolume(real upperDepth, real lowerDepth, real Area) const | BrooksCoreyRetentionCurve | virtual |
Wetness(real suction) const | BrooksCoreyRetentionCurve | virtual |
Wetness_eff(real wetness, real pF_r=4.2) const | RetentionCurve | virtual |
Wetness_eff(real wetness, real pF_r=4.2) const | RetentionCurve | virtual |
Wetness_pF(real pF) const | RetentionCurve | |
wetness_X | BrooksCoreyRetentionCurve | |
wetness_X | BrooksCoreyRetentionCurve |
Provides the use of the Brooks-Corey retention curve. - More...
-Provides the use of the Brooks-Corey retention curve.
-\begin{eqnarray*} W(\theta) &=& \frac{\theta - \theta_r}{\theta_s - \theta_r} \\ K(W) &=& K_{sat} W^{2b+3} \\ \Psi(W) &=& \Psi_X \left(\frac{W}{W_X}\right)^{-b} \\ W(\Psi) &=& {\left( \frac{\Psi_X}{\Psi}\right) }^{\frac{1}{b}}\ W_X \end{eqnarray*} +\begin{eqnarray*} +W(\theta) &=& \frac{\theta - \theta_r}{\theta_s - \theta_r} \\ +K(W) &=& K_{sat} W^{2b+3} \\ +\Psi(W) &=& \Psi_X \left(\frac{W}{W_X}\right)^{-b} \\ +W(\Psi) &=& {\left( \frac{\Psi_X}{\Psi}\right) }^{\frac{1}{b}}\ W_X +\end{eqnarray*}
-
-where:
where:
+Public Member Functions | BrooksCoreyRetentionCurve (real ksat=15, real porosity=0.5, real _b=5, real theta_x=0.2, real psi_x=pF_to_waterhead(2.5), real porosity_decay=0) | | Creates a brooks corey retention curve. More... | | BrooksCoreyRetentionCurve (real ksat=15, real porosity=0.5, real _b=5, real theta_x=0.2, real psi_x=pF_to_waterhead(2.5), real porosity_decay=0) | | virtual real | Diffusivity (real wetness) const | | Returns the Diffusivity of the soil. More... | virtual real | Diffusivity (real wetness) const | |
-real | FillHeight (real lowerDepth, real Area, real Volume) const | |
-real | get_b () const | |
-virtual real | K (real wetness) const | |
-real | MatricPotential (real wetness) const | |
-real | Porosity (real depth) const | |
-void | SetPorosity (real porosity, real porosity_decay=0) | |
-virtual real | theta (real wetness) const | | real | VoidVolume (real upperDepth, real lowerDepth, real Area) const | | Returns the pore volume in a region of a soil column. More... | real | VoidVolume (real upperDepth, real lowerDepth, real Area) const | |
-real | Wetness (real suction) const | |
-virtual real | Wetness_eff (real wetness, real pF_r=4.2) const | | Returns the effective wetness, using a residual pF value | -\[w_{eff} = \frac{w_{act}-w\left(pF_r\right)}{1-w\left(pF_r\right)}\] - -. virtual real | Wetness_eff (real wetness, real pF_r=4.2) const | |
-real | Wetness_pF (real pF) const | | Creates a brooks corey retention curve. | Returns the Diffusivity of the soil. | +real | FillHeight (real lowerDepth, real Area, real Volume) const | Returns the thickness of a soil column with a certain pore volume. | +real | get_b () const | Retention curve shape parameter. | +virtual real | K (real wetness) const | Returns the conductivity in m/day at a certain depth and water content. | +real | MatricPotential (real wetness) const | Returns the suction pressure in m, use conversion functions waterhead_to_pressure and waterhead_to_pF fro conversions. | +real | Porosity (real depth) const | real (Porosity) | +void | SetPorosity (real porosity, real porosity_decay=0) | Sets the porosity (Volume of pores per volume of soil) and the exponential porosity decline with depth. | +virtual real | theta (real wetness) const | returns the water content \(theta\) for a given wetness | Returns the pore volume in a region of a soil column. | +real | Wetness (real suction) const | returns the wetness (volumetric water content per pore space) at a given suction pressure | Returns the effective wetness, using a residual pF value. | +real | Wetness_pF (real pF) const | returns the volumetric water content at a given pF value |
+Static Public Member Functionsstatic BrooksCoreyRetentionCurve | CreateFrom2Points (real ksat, real porosity, real theta1, real theta2, real psi_1=pF_to_waterhead(2.5), real psi_2=pF_to_waterhead(4.2)) | | Creates a soiltype from two known points of the retention curve (e.g. More... | static BrooksCoreyRetentionCurve | CreateFrom2Points (real ksat, real porosity, real theta1, real theta2, real psi_1=pF_to_waterhead(2.5), real psi_2=pF_to_waterhead(4.2)) | | Creates a soiltype from two known points of the retention curve (e.g. |
+Public Attributes
-real | Psi_X | |
-real | wetness_X | | +real | Psi_X | Matric potential at the wetness X in m. | +real | wetness_X | Wetness at a known point of the retention curve. |
15
, 0.5
, 5
, 0.2
, pF_to_waterhead(2.5)
, 0
pF_to_waterhead(2.5)
, pF_to_waterhead(4.2)