|
Plugins
|
Handles river networks as a post-process of a flow problem. More...
#include <river_observer.h>
Inheritance diagram for ug::d3f::RiverObserver< TDomain, TAlgebra >:Public Types | |
| typedef GridFunction< TDomain, TAlgebra > | grid_function_type |
| typedef ITimeIntegratorObserver< TDomain, TAlgebra > | TBase |
| typedef SmartPtr< RiverSSSManager< TDomain, TAlgebra > > | TRiverSSSMngr |
| typedef RiverSingularSourcesAndSinks< TDomain::dim > | TSSSManager |
| typedef SmartPtr< StVenantSubmodule< grid_function_type > > | TSubModule |
Public Types inherited from ug::ITimeIntegratorObserver< TDomain, TAlgebra > | |
| typedef GridFunction< TDomain, TAlgebra > | grid_function_type |
Public Member Functions | |
| bool | finalize_action (SmartPtr< grid_function_type > u, int step, number time, number dt) override |
| Called at the end of each stage (if applicable). | |
| SmartPtr< grid_function_type > | get_river_u () |
| Returns the 1D river grid function. | |
| void | init () |
| Initializes the SSS managers and performs an initial submodule run. | |
| void | push_sss_manager (SmartPtr< TSSSManager > ssmngr) |
| Attaches a singular source/sink manager to the observer. | |
| RiverObserver (const char *filename, SmartPtr< grid_function_type > u) | |
| Constructor. | |
| void | set_bottom_permeability (number perm) |
| void | set_bottom_thickness (number thickness) |
| void | set_density (SmartPtr< CplUserData< number, dim > > density) |
| Setters for coupling and physical parameters. | |
| void | set_rainfall_rate (number qr) |
| void | set_river_width (number width) |
| bool | step_process (SmartPtr< grid_function_type > u, int step, number time, number dt) override |
| Called after each successful time step. | |
| virtual | ~RiverObserver ()=default |
Public Member Functions inherited from ug::ITimeIntegratorObserver< TDomain, TAlgebra > | |
| virtual | ~ITimeIntegratorObserver () |
Static Public Attributes | |
| static const int | dim = TDomain::dim |
Private Member Functions | |
| bool | solve_submodule (SmartPtr< grid_function_type > u, number time, number dt, const char *context) |
| Unified logic for updating exchange fluxes and running the 1D solver. | |
Private Attributes | |
| TRiverSSSMngr | m_sp_sss_mngr |
| TSubModule | m_sp_submodule |
Handles river networks as a post-process of a flow problem.
This class can be attached to a time integrator. It manages the computation of a 1D surface flow sub-problem (St. Venant) and maps exchange fluxes between the surface and subsurface domains using line singular sources/sinks.
| TDomain | The primary (subsurface) domain type. |
| TAlgebra | The algebra type. |
| typedef GridFunction<TDomain, TAlgebra> ug::d3f::RiverObserver< TDomain, TAlgebra >::grid_function_type |
| typedef ITimeIntegratorObserver<TDomain, TAlgebra> ug::d3f::RiverObserver< TDomain, TAlgebra >::TBase |
| typedef SmartPtr<RiverSSSManager<TDomain, TAlgebra> > ug::d3f::RiverObserver< TDomain, TAlgebra >::TRiverSSSMngr |
| typedef RiverSingularSourcesAndSinks<TDomain::dim> ug::d3f::RiverObserver< TDomain, TAlgebra >::TSSSManager |
| typedef SmartPtr<StVenantSubmodule<grid_function_type> > ug::d3f::RiverObserver< TDomain, TAlgebra >::TSubModule |
|
inline |
Constructor.
| filename | Path to the 1D river grid file (*.ugx). |
| u | The primary domain's grid function (for coupling). |
References ug::d3f::RiverObserver< TDomain, TAlgebra >::m_sp_sss_mngr, ug::d3f::RiverObserver< TDomain, TAlgebra >::m_sp_submodule, and make_sp().
|
virtualdefault |
|
inlineoverride |
Called at the end of each stage (if applicable).
References ug::d3f::RiverObserver< TDomain, TAlgebra >::solve_submodule().
|
inline |
Returns the 1D river grid function.
References ug::d3f::RiverObserver< TDomain, TAlgebra >::m_sp_submodule.
|
inline |
Initializes the SSS managers and performs an initial submodule run.
References ug::d3f::RiverObserver< TDomain, TAlgebra >::m_sp_sss_mngr, and ug::d3f::RiverObserver< TDomain, TAlgebra >::m_sp_submodule.
|
inline |
Attaches a singular source/sink manager to the observer.
References ug::d3f::RiverObserver< TDomain, TAlgebra >::m_sp_sss_mngr.
|
inline |
|
inline |
|
inline |
Setters for coupling and physical parameters.
References ug::d3f::RiverObserver< TDomain, TAlgebra >::m_sp_sss_mngr.
|
inline |
References ug::d3f::RiverObserver< TDomain, TAlgebra >::m_sp_submodule, and make_sp().
|
inline |
|
inlineprivate |
Unified logic for updating exchange fluxes and running the 1D solver.
References ug::d3f::RiverObserver< TDomain, TAlgebra >::m_sp_sss_mngr, ug::d3f::RiverObserver< TDomain, TAlgebra >::m_sp_submodule, and UG_LOG.
Referenced by ug::d3f::RiverObserver< TDomain, TAlgebra >::finalize_action(), and ug::d3f::RiverObserver< TDomain, TAlgebra >::step_process().
|
inlineoverridevirtual |
Called after each successful time step.
Implements ug::ITimeIntegratorObserver< TDomain, TAlgebra >.
References ug::d3f::RiverObserver< TDomain, TAlgebra >::solve_submodule().
|
static |
|
private |
Referenced by ug::d3f::RiverObserver< TDomain, TAlgebra >::init(), ug::d3f::RiverObserver< TDomain, TAlgebra >::push_sss_manager(), ug::d3f::RiverObserver< TDomain, TAlgebra >::RiverObserver(), ug::d3f::RiverObserver< TDomain, TAlgebra >::set_bottom_permeability(), ug::d3f::RiverObserver< TDomain, TAlgebra >::set_bottom_thickness(), ug::d3f::RiverObserver< TDomain, TAlgebra >::set_density(), ug::d3f::RiverObserver< TDomain, TAlgebra >::set_river_width(), and ug::d3f::RiverObserver< TDomain, TAlgebra >::solve_submodule().
|
private |
Referenced by ug::d3f::RiverObserver< TDomain, TAlgebra >::get_river_u(), ug::d3f::RiverObserver< TDomain, TAlgebra >::init(), ug::d3f::RiverObserver< TDomain, TAlgebra >::RiverObserver(), ug::d3f::RiverObserver< TDomain, TAlgebra >::set_rainfall_rate(), and ug::d3f::RiverObserver< TDomain, TAlgebra >::solve_submodule().