Plugins
Loading...
Searching...
No Matches
ug::d3f::StVenantSubmodule< TGridFunction, dim > Class Template Reference

Handles the setup, assembly, and time-integration of the 1D Shallow Water Equations. More...

#include <st_venant_submodule.h>

+ Inheritance diagram for ug::d3f::StVenantSubmodule< TGridFunction, dim >:

Public Types

typedef TGridFunction::algebra_type algebra_type
 
typedef ApproximationSpace< domain_typeapprox_space_type
 
typedef TGridFunction::domain_type domain_type
 
typedef StVenantElemDisc< domain_typeelem_disc_type
 
typedef StVenantElemDiscFactory< domain_typefactory_type
 
typedef SmartPtr< CplUserData< number, dim > > TSPNumberData
 

Public Member Functions

SmartPtr< TGridFunction > get_grid_function ()
 Returns the 1D grid function containing the river state.
 
void init (const char *filename)
 Initializes the grid and approximation space from a UGX file.
 
void interpolate_A (number A)
 
void interpolate_v (number v)
 
void run (number tStart, number tEnd, number dt) override
 Executes the simulation loop from tStart to tEnd.
 
void set_diffusion (number d)
 
void set_dirichlet (number A, number v)
 Convenience setters for common parameters.
 
void set_exfiltration_flux (TSPNumberData qex)
 Sets the exchange flux from the 3D domain.
 
void set_ks (TSPNumberData ks)
 
void set_parameters (StVenantParameters< dim > p)
 
void set_plot (bool p)
 Enables or disables VTK plotting during the run.
 
void set_qr (TSPNumberData qr)
 
void set_tolerance (number tol)
 
void set_width (TSPNumberData b)
 
 StVenantSubmodule ()=default
 
virtual ~StVenantSubmodule ()=default
 
- Public Member Functions inherited from ug::d3f::ISubmodule< TGridFunction, dim >
 ISubmodule ()=default
 
virtual ~ISubmodule ()=default
 

Public Attributes

StVenantParameters< dim > params
 Current configuration.
 

Private Attributes

SmartPtr< approx_space_typem_approx_space
 
SmartPtr< domain_typem_domain
 
SmartPtr< elem_disc_typem_elem_disc_A
 
SmartPtr< elem_disc_typem_elem_disc_v
 
bool m_plot = false
 VTK output flag.
 
TSPNumberData m_qex = make_sp(new ConstUserNumber<dim>(0.0))
 Exchange flux.
 
int m_step = 0
 Time step counter.
 
number m_tol = 0.01
 Solver tolerance.
 

Additional Inherited Members

- Protected Attributes inherited from ug::d3f::ISubmodule< TGridFunction, dim >
SmartPtr< TGridFunction > m_u
 The internal state of the submodule.
 

Detailed Description

template<typename TGridFunction, int dim = TGridFunction::dim>
class ug::d3f::StVenantSubmodule< TGridFunction, dim >

Handles the setup, assembly, and time-integration of the 1D Shallow Water Equations.

This submodule manages the discrete systems for Area (A) and Velocity (v), sets up the non-linear solvers (Newton) and time integrators (Limex), and provides an interface for coupling with 3D subsurface models.

Template Parameters
TGridFunctionThe type of the 1D grid function (typically A and v components).

Member Typedef Documentation

◆ algebra_type

template<typename TGridFunction , int dim = TGridFunction::dim>
typedef TGridFunction::algebra_type ug::d3f::StVenantSubmodule< TGridFunction, dim >::algebra_type

◆ approx_space_type

template<typename TGridFunction , int dim = TGridFunction::dim>
typedef ApproximationSpace<domain_type> ug::d3f::StVenantSubmodule< TGridFunction, dim >::approx_space_type

◆ domain_type

template<typename TGridFunction , int dim = TGridFunction::dim>
typedef TGridFunction::domain_type ug::d3f::StVenantSubmodule< TGridFunction, dim >::domain_type

◆ elem_disc_type

template<typename TGridFunction , int dim = TGridFunction::dim>
typedef StVenantElemDisc<domain_type> ug::d3f::StVenantSubmodule< TGridFunction, dim >::elem_disc_type

◆ factory_type

template<typename TGridFunction , int dim = TGridFunction::dim>
typedef StVenantElemDiscFactory<domain_type> ug::d3f::StVenantSubmodule< TGridFunction, dim >::factory_type

◆ TSPNumberData

template<typename TGridFunction , int dim = TGridFunction::dim>
typedef SmartPtr<CplUserData<number, dim> > ug::d3f::StVenantSubmodule< TGridFunction, dim >::TSPNumberData

Constructor & Destructor Documentation

◆ StVenantSubmodule()

template<typename TGridFunction , int dim = TGridFunction::dim>
ug::d3f::StVenantSubmodule< TGridFunction, dim >::StVenantSubmodule ( )
default

◆ ~StVenantSubmodule()

template<typename TGridFunction , int dim = TGridFunction::dim>
virtual ug::d3f::StVenantSubmodule< TGridFunction, dim >::~StVenantSubmodule ( )
virtualdefault

Member Function Documentation

◆ get_grid_function()

template<typename TGridFunction , int dim = TGridFunction::dim>
SmartPtr< TGridFunction > ug::d3f::StVenantSubmodule< TGridFunction, dim >::get_grid_function ( )
inline

Returns the 1D grid function containing the river state.

References ug::d3f::ISubmodule< TGridFunction, dim >::m_u.

◆ init()

template<typename TGridFunction , int dim>
void ug::d3f::StVenantSubmodule< TGridFunction, dim >::init ( const char *  filename)

Initializes the grid and approximation space from a UGX file.

Initializes the grid, approximation spaces, and starting fields.

References ug::GMCT_CREATION_STARTS, ug::GMCT_CREATION_STOPS, ug::Interpolate(), ug::LoadGridFromUGX(), make_sp(), and pcl::ProcRank().

◆ interpolate_A()

template<typename TGridFunction , int dim = TGridFunction::dim>
void ug::d3f::StVenantSubmodule< TGridFunction, dim >::interpolate_A ( number  A)
inline

◆ interpolate_v()

template<typename TGridFunction , int dim = TGridFunction::dim>
void ug::d3f::StVenantSubmodule< TGridFunction, dim >::interpolate_v ( number  v)
inline

◆ run()

template<typename TGridFunction , int dim>
void ug::d3f::StVenantSubmodule< TGridFunction, dim >::run ( number  tStart,
number  tEnd,
number  dt 
)
overridevirtual

Executes the simulation loop from tStart to tEnd.

Main execution function. Configures physics linkers, boundary conditions, and runs the time loop.

Implements ug::d3f::ISubmodule< TGridFunction, dim >.

References pcl::ProcessCommunicator::barrier(), ug::d3f::create_limex_solver(), make_sp(), pcl::ProcRank(), UG_LOG_ALL_PROCS, and UG_LOGN.

◆ set_diffusion()

template<typename TGridFunction , int dim = TGridFunction::dim>
void ug::d3f::StVenantSubmodule< TGridFunction, dim >::set_diffusion ( number  d)
inline

◆ set_dirichlet()

template<typename TGridFunction , int dim = TGridFunction::dim>
void ug::d3f::StVenantSubmodule< TGridFunction, dim >::set_dirichlet ( number  A,
number  v 
)
inline

Convenience setters for common parameters.

References ug::d3f::StVenantSubmodule< TGridFunction, dim >::params.

◆ set_exfiltration_flux()

template<typename TGridFunction , int dim = TGridFunction::dim>
void ug::d3f::StVenantSubmodule< TGridFunction, dim >::set_exfiltration_flux ( TSPNumberData  qex)
inline

Sets the exchange flux from the 3D domain.

References ug::d3f::StVenantSubmodule< TGridFunction, dim >::m_qex.

◆ set_ks()

template<typename TGridFunction , int dim = TGridFunction::dim>
void ug::d3f::StVenantSubmodule< TGridFunction, dim >::set_ks ( TSPNumberData  ks)
inline

◆ set_parameters()

template<typename TGridFunction , int dim = TGridFunction::dim>
void ug::d3f::StVenantSubmodule< TGridFunction, dim >::set_parameters ( StVenantParameters< dim >  p)
inline

◆ set_plot()

template<typename TGridFunction , int dim = TGridFunction::dim>
void ug::d3f::StVenantSubmodule< TGridFunction, dim >::set_plot ( bool  p)
inline

Enables or disables VTK plotting during the run.

References ug::d3f::StVenantSubmodule< TGridFunction, dim >::m_plot, and p.

◆ set_qr()

template<typename TGridFunction , int dim = TGridFunction::dim>
void ug::d3f::StVenantSubmodule< TGridFunction, dim >::set_qr ( TSPNumberData  qr)
inline

◆ set_tolerance()

template<typename TGridFunction , int dim = TGridFunction::dim>
void ug::d3f::StVenantSubmodule< TGridFunction, dim >::set_tolerance ( number  tol)
inline

◆ set_width()

template<typename TGridFunction , int dim = TGridFunction::dim>
void ug::d3f::StVenantSubmodule< TGridFunction, dim >::set_width ( TSPNumberData  b)
inline

Member Data Documentation

◆ m_approx_space

template<typename TGridFunction , int dim = TGridFunction::dim>
SmartPtr<approx_space_type> ug::d3f::StVenantSubmodule< TGridFunction, dim >::m_approx_space
private

◆ m_domain

template<typename TGridFunction , int dim = TGridFunction::dim>
SmartPtr<domain_type> ug::d3f::StVenantSubmodule< TGridFunction, dim >::m_domain
private

◆ m_elem_disc_A

template<typename TGridFunction , int dim = TGridFunction::dim>
SmartPtr<elem_disc_type> ug::d3f::StVenantSubmodule< TGridFunction, dim >::m_elem_disc_A
private

◆ m_elem_disc_v

template<typename TGridFunction , int dim = TGridFunction::dim>
SmartPtr<elem_disc_type> ug::d3f::StVenantSubmodule< TGridFunction, dim >::m_elem_disc_v
private

◆ m_plot

template<typename TGridFunction , int dim = TGridFunction::dim>
bool ug::d3f::StVenantSubmodule< TGridFunction, dim >::m_plot = false
private

◆ m_qex

template<typename TGridFunction , int dim = TGridFunction::dim>
TSPNumberData ug::d3f::StVenantSubmodule< TGridFunction, dim >::m_qex = make_sp(new ConstUserNumber<dim>(0.0))
private

◆ m_step

template<typename TGridFunction , int dim = TGridFunction::dim>
int ug::d3f::StVenantSubmodule< TGridFunction, dim >::m_step = 0
private

Time step counter.

◆ m_tol

template<typename TGridFunction , int dim = TGridFunction::dim>
number ug::d3f::StVenantSubmodule< TGridFunction, dim >::m_tol = 0.01
private

◆ params


The documentation for this class was generated from the following files: