Plugins
Loading...
Searching...
No Matches
ug::d3f::StVenantElemDiscFactory< TDomain > Class Template Reference

Factory class to construct and link the coupled St. Venant equations. More...

#include <st_venant_elem_disc.h>

Public Types

typedef ConstantSohlGradient< TDomain > s_type
 
typedef IElemDisc< TDomain > TElemDisc
 
typedef InverseLinker< dimTInverseLinker
 
typedef CplUserData< number, dimTNumberData
 
typedef EdgeOrientation< TDomain > TOrient
 
typedef ScaleAddLinker< number, dim, numberTScaleAddLinkerNumber
 
typedef ScaleAddLinker< MathVector< dim >, dim, numberTScaleAddLinkerVector
 
typedef StVenantElemDisc< TDomain > TStVenant
 
typedef ConvectionShapesFullUpwind< dimTUpwind
 
typedef CplUserData< MathVector< dim >, dimTVectorData
 

Public Member Functions

std::vector< SmartPtr< TStVenant > > create_1d_swe (const char *subsets)
 Creates the elemental discretizations for the 1D Shallow Water Equations.
 
SmartPtr< TScaleAddLinkerNumberexport_flux ()
 
SmartPtr< TNumberDataexport_manning_roughness ()
 
SmartPtr< s_typeexport_sohle ()
 
SmartPtr< TVectorDataexport_v_flux_term ()
 
SmartPtr< TScaleAddLinkerNumberexport_velocity ()
 
SmartPtr< TNumberDataget_boundary_dir ()
 
const char * get_disc_type ()
 
SmartPtr< TNumberDataget_neumann_A ()
 
SmartPtr< TNumberDataget_neumann_V ()
 
SmartPtr< TScaleAddLinkerNumberget_source_term ()
 
void set_b (SmartPtr< TNumberData > b)
 
void set_diffusion (number nu)
 
void set_domain (SmartPtr< TDomain > domain)
 
void set_gravity (number g)
 
void set_h_threshold (number t)
 
void set_ks (SmartPtr< TNumberData > ks)
 
void set_width (SmartPtr< TNumberData > b)
 
 StVenantElemDiscFactory ()
 
virtual ~StVenantElemDiscFactory ()=default
 

Static Public Attributes

static const int dim = TDomain::dim
 

Protected Attributes

SmartPtr< TNumberDatam_A_neumann
 
SmartPtr< TScaleAddLinkerVectorm_A_velocity = make_sp<TScaleAddLinkerVector>(new TScaleAddLinkerVector())
 
SmartPtr< TNumberDatam_b = make_sp<TNumberData>(new ConstUserNumber<dim>(1.0))
 
SmartPtr< TNumberDatam_boundary_dir
 
number m_diffusion = 0.5
 
SmartPtr< TDomain > m_domain
 
SmartPtr< TNumberDatam_frictionKs = make_sp<TNumberData>(new ConstUserNumber<dim>(0.1))
 
std::vector< std::string > m_functions
 
number m_gravity = 9.81
 
SmartPtr< TNumberDatam_manningRoughness
 
SmartPtr< s_typem_s
 
number m_threshold = 1e-5
 
SmartPtr< TScaleAddLinkerNumberm_total_source_term
 
SmartPtr< TUpwindm_upwind = make_sp<TUpwind>(new TUpwind())
 
SmartPtr< TScaleAddLinkerNumberm_v_05 = make_sp<TScaleAddLinkerNumber>(new TScaleAddLinkerNumber())
 
SmartPtr< TScaleAddLinkerVectorm_v_flux = make_sp<TScaleAddLinkerVector>(new TScaleAddLinkerVector())
 
SmartPtr< TVectorDatam_v_flux_term
 
SmartPtr< TScaleAddLinkerNumberm_v_gsh = make_sp<TScaleAddLinkerNumber>(new TScaleAddLinkerNumber())
 
SmartPtr< TNumberDatam_v_neumann
 
SmartPtr< TScaleAddLinkerVectorm_v_velocity = make_sp<TScaleAddLinkerVector>(new TScaleAddLinkerVector())
 

Detailed Description

template<typename TDomain>
class ug::d3f::StVenantElemDiscFactory< TDomain >

Factory class to construct and link the coupled St. Venant equations.

Member Typedef Documentation

◆ s_type

template<typename TDomain >
typedef ConstantSohlGradient<TDomain> ug::d3f::StVenantElemDiscFactory< TDomain >::s_type

◆ TElemDisc

template<typename TDomain >
typedef IElemDisc<TDomain> ug::d3f::StVenantElemDiscFactory< TDomain >::TElemDisc

◆ TInverseLinker

template<typename TDomain >
typedef InverseLinker<dim> ug::d3f::StVenantElemDiscFactory< TDomain >::TInverseLinker

◆ TNumberData

template<typename TDomain >
typedef CplUserData<number, dim> ug::d3f::StVenantElemDiscFactory< TDomain >::TNumberData

◆ TOrient

template<typename TDomain >
typedef EdgeOrientation<TDomain> ug::d3f::StVenantElemDiscFactory< TDomain >::TOrient

◆ TScaleAddLinkerNumber

template<typename TDomain >
typedef ScaleAddLinker<number, dim, number> ug::d3f::StVenantElemDiscFactory< TDomain >::TScaleAddLinkerNumber

◆ TScaleAddLinkerVector

template<typename TDomain >
typedef ScaleAddLinker<MathVector<dim>, dim, number> ug::d3f::StVenantElemDiscFactory< TDomain >::TScaleAddLinkerVector

◆ TStVenant

template<typename TDomain >
typedef StVenantElemDisc<TDomain> ug::d3f::StVenantElemDiscFactory< TDomain >::TStVenant

◆ TUpwind

template<typename TDomain >
typedef ConvectionShapesFullUpwind<dim> ug::d3f::StVenantElemDiscFactory< TDomain >::TUpwind

◆ TVectorData

template<typename TDomain >
typedef CplUserData<MathVector<dim>, dim> ug::d3f::StVenantElemDiscFactory< TDomain >::TVectorData

Constructor & Destructor Documentation

◆ StVenantElemDiscFactory()

◆ ~StVenantElemDiscFactory()

template<typename TDomain >
virtual ug::d3f::StVenantElemDiscFactory< TDomain >::~StVenantElemDiscFactory ( )
virtualdefault

Member Function Documentation

◆ create_1d_swe()

◆ export_flux()

template<typename TDomain >
SmartPtr< TScaleAddLinkerNumber > ug::d3f::StVenantElemDiscFactory< TDomain >::export_flux ( )
inline

◆ export_manning_roughness()

template<typename TDomain >
SmartPtr< TNumberData > ug::d3f::StVenantElemDiscFactory< TDomain >::export_manning_roughness ( )
inline

◆ export_sohle()

template<typename TDomain >
SmartPtr< s_type > ug::d3f::StVenantElemDiscFactory< TDomain >::export_sohle ( )
inline

◆ export_v_flux_term()

template<typename TDomain >
SmartPtr< TVectorData > ug::d3f::StVenantElemDiscFactory< TDomain >::export_v_flux_term ( )
inline

◆ export_velocity()

template<typename TDomain >
SmartPtr< TScaleAddLinkerNumber > ug::d3f::StVenantElemDiscFactory< TDomain >::export_velocity ( )
inline

◆ get_boundary_dir()

template<typename TDomain >
SmartPtr< TNumberData > ug::d3f::StVenantElemDiscFactory< TDomain >::get_boundary_dir ( )
inline

◆ get_disc_type()

template<typename TDomain >
const char * ug::d3f::StVenantElemDiscFactory< TDomain >::get_disc_type ( )
inline

◆ get_neumann_A()

template<typename TDomain >
SmartPtr< TNumberData > ug::d3f::StVenantElemDiscFactory< TDomain >::get_neumann_A ( )
inline

◆ get_neumann_V()

template<typename TDomain >
SmartPtr< TNumberData > ug::d3f::StVenantElemDiscFactory< TDomain >::get_neumann_V ( )
inline

◆ get_source_term()

template<typename TDomain >
SmartPtr< TScaleAddLinkerNumber > ug::d3f::StVenantElemDiscFactory< TDomain >::get_source_term ( )
inline

◆ set_b()

template<typename TDomain >
void ug::d3f::StVenantElemDiscFactory< TDomain >::set_b ( SmartPtr< TNumberData b)
inline

◆ set_diffusion()

template<typename TDomain >
void ug::d3f::StVenantElemDiscFactory< TDomain >::set_diffusion ( number  nu)
inline

◆ set_domain()

template<typename TDomain >
void ug::d3f::StVenantElemDiscFactory< TDomain >::set_domain ( SmartPtr< TDomain >  domain)
inline

◆ set_gravity()

template<typename TDomain >
void ug::d3f::StVenantElemDiscFactory< TDomain >::set_gravity ( number  g)
inline

◆ set_h_threshold()

template<typename TDomain >
void ug::d3f::StVenantElemDiscFactory< TDomain >::set_h_threshold ( number  t)
inline

◆ set_ks()

template<typename TDomain >
void ug::d3f::StVenantElemDiscFactory< TDomain >::set_ks ( SmartPtr< TNumberData ks)
inline

◆ set_width()

template<typename TDomain >
void ug::d3f::StVenantElemDiscFactory< TDomain >::set_width ( SmartPtr< TNumberData b)
inline

Member Data Documentation

◆ dim

template<typename TDomain >
const int ug::d3f::StVenantElemDiscFactory< TDomain >::dim = TDomain::dim
static

◆ m_A_neumann

template<typename TDomain >
SmartPtr<TNumberData> ug::d3f::StVenantElemDiscFactory< TDomain >::m_A_neumann
protected

◆ m_A_velocity

template<typename TDomain >
SmartPtr<TScaleAddLinkerVector> ug::d3f::StVenantElemDiscFactory< TDomain >::m_A_velocity = make_sp<TScaleAddLinkerVector>(new TScaleAddLinkerVector())
protected

◆ m_b

◆ m_boundary_dir

◆ m_diffusion

◆ m_domain

◆ m_frictionKs

◆ m_functions

template<typename TDomain >
std::vector<std::string> ug::d3f::StVenantElemDiscFactory< TDomain >::m_functions
protected

◆ m_gravity

◆ m_manningRoughness

◆ m_s

◆ m_threshold

template<typename TDomain >
number ug::d3f::StVenantElemDiscFactory< TDomain >::m_threshold = 1e-5
protected

◆ m_total_source_term

template<typename TDomain >
SmartPtr<TScaleAddLinkerNumber> ug::d3f::StVenantElemDiscFactory< TDomain >::m_total_source_term
protected

◆ m_upwind

template<typename TDomain >
SmartPtr<TUpwind> ug::d3f::StVenantElemDiscFactory< TDomain >::m_upwind = make_sp<TUpwind>(new TUpwind())
protected

◆ m_v_05

◆ m_v_flux

template<typename TDomain >
SmartPtr<TScaleAddLinkerVector> ug::d3f::StVenantElemDiscFactory< TDomain >::m_v_flux = make_sp<TScaleAddLinkerVector>(new TScaleAddLinkerVector())
protected

◆ m_v_flux_term

◆ m_v_gsh

◆ m_v_neumann

template<typename TDomain >
SmartPtr<TNumberData> ug::d3f::StVenantElemDiscFactory< TDomain >::m_v_neumann
protected

◆ m_v_velocity

template<typename TDomain >
SmartPtr<TScaleAddLinkerVector> ug::d3f::StVenantElemDiscFactory< TDomain >::m_v_velocity = make_sp<TScaleAddLinkerVector>(new TScaleAddLinkerVector())
protected

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