6#ifndef D3F_UG4_RIVER_OBSERVER_H
7#define D3F_UG4_RIVER_OBSERVER_H
28template <
typename TDomain,
typename TAlgebra>
31 public ITimeIntegratorStageObserver_finalize<TDomain, TAlgebra>
39 static const int dim = TDomain::dim;
111 UG_LOG(
"RIVEROBSERVER: " << context <<
" | time: " << time <<
" | dt: " << dt <<
"\n");
Management of 1D-3D coupling via line singular sources and sinks (SSS).
Handles river networks as a post-process of a flow problem.
Definition river_observer.h:32
void set_bottom_permeability(number perm)
Definition river_observer.h:63
TSubModule m_sp_submodule
Definition river_observer.h:123
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.
Definition river_observer.h:107
TRiverSSSMngr m_sp_sss_mngr
Definition river_observer.h:124
bool finalize_action(SmartPtr< grid_function_type > u, int step, number time, number dt) override
Called at the end of each stage (if applicable).
Definition river_observer.h:92
RiverObserver(const char *filename, SmartPtr< grid_function_type > u)
Constructor.
Definition river_observer.h:46
RiverSingularSourcesAndSinks< TDomain::dim > TSSSManager
Definition river_observer.h:38
GridFunction< TDomain, TAlgebra > grid_function_type
Definition river_observer.h:35
SmartPtr< RiverSSSManager< TDomain, TAlgebra > > TRiverSSSMngr
Definition river_observer.h:37
void init()
Initializes the SSS managers and performs an initial submodule run.
Definition river_observer.h:77
SmartPtr< StVenantSubmodule< grid_function_type > > TSubModule
Definition river_observer.h:36
virtual ~RiverObserver()=default
void set_density(SmartPtr< CplUserData< number, dim > > density)
Setters for coupling and physical parameters.
Definition river_observer.h:61
void set_river_width(number width)
Definition river_observer.h:65
static const int dim
Definition river_observer.h:39
void set_bottom_thickness(number thickness)
Definition river_observer.h:64
void set_rainfall_rate(number qr)
Definition river_observer.h:62
ITimeIntegratorObserver< TDomain, TAlgebra > TBase
Definition river_observer.h:34
bool step_process(SmartPtr< grid_function_type > u, int step, number time, number dt) override
Called after each successful time step.
Definition river_observer.h:85
void push_sss_manager(SmartPtr< TSSSManager > ssmngr)
Attaches a singular source/sink manager to the observer.
Definition river_observer.h:70
SmartPtr< grid_function_type > get_river_u()
Returns the 1D river grid function.
Definition river_observer.h:99
Orchestrates the mass exchange between a 1D river and a 3D subsurface.
Definition add_river_sss.h:106
Specialization of the optimized SSS manager for river networks.
Definition river_sss.h:357
Handles the setup, assembly, and time-integration of the 1D Shallow Water Equations.
Definition st_venant_submodule.h:60
SmartPtr< T, FreePolicy > make_sp(T *inst)
Submodule for solving the 1D St. Venant (Shallow Water) equations.