Plugins
Loading...
Searching...
No Matches
ug::d3f::VertexWellRecharge< TGridFunction > Class Template Reference

#include <rivers.h>

+ Inheritance diagram for ug::d3f::VertexWellRecharge< TGridFunction >:

Classes

struct  well_recharge_data_t
 data of a recharge well More...
 

Public Types

typedef TGridFunction::algebra_type algebra_type
 type of the algebra
 
typedef TGridFunction::domain_type domain_type
 type of the domain
 
typedef TGridFunction grid_func_type
 grid function type
 
typedef domain_type::grid_type grid_type
 grid type
 
- Public Types inherited from ug::d3f::VertexLowDimRecharge< TGridFunction >
typedef TGridFunction::algebra_type algebra_type
 type of the algebra
 
typedef TGridFunction::domain_type domain_type
 type of the domain
 
typedef grid_dim_traits< dim >::side_type g_surf_elem_t
 type of the elements constituting surfaces in the grid
 
typedef geometry_traits< g_surf_elem_t >::iterator g_surf_iter_t
 type of the iterator of the grid surface elements
 
typedef TGridFunction grid_func_type
 grid function type
 
typedef domain_type::grid_type grid_type
 grid type
 
typedef RayElemIntersectionRecord< g_surf_elem_t * > top_intersection_record_t
 
typedef lg_ntree< dim-1, dim, g_surf_elem_ttop_tracer_tree_t
 

Public Member Functions

void add_well (MathVector< dim-1 > &x, number depth)
 adds a well
 
void add_well (std::vector< number > coord, number depth)
 adds a well
 
void set_width (number riverWidth)
 sets the diameter of the wells
 
 VertexWellRecharge (number smoothLen, SmartPtr< grid_func_type > spLSF)
 class constructor
 
virtual ~VertexWellRecharge ()
 class destructor
 
- Public Member Functions inherited from ug::d3f::VertexLowDimRecharge< TGridFunction >
void compute (SmartPtr< grid_func_type > spRecharge)
 computes the recharge at the vertices
 
number max_depth_diff () const
 returns the set maximum depth difference
 
bool no_inflow () const
 returns the state of the possible inflow
 
bool restrict_depth () const
 returns the state of the depth restriction
 
void restrict_depth (number max_depth_diff)
 restricts the depth
 
void set_bottom_thickness (number e)
 sets the thickness of the bottom
 
void set_constant_flux (number flux)
 sets the constant flux (mainly for debugging purposes)
 
void set_density (number rho)
 sets the density of the water
 
void set_gravity (number g)
 sets the gravity
 
void set_no_inflow (bool b)
 switches the possible inflow on/off
 
void set_permeability (number k)
 sets the permeability of the bottom
 
void set_relative_to (const char *subsetNames)
 specifyes the subsets of the top
 
void set_relative_to (const char *subsetNames, number top_tolerance)
 specifyes the subsets of the top
 
void set_relative_to (const char *subsetNames, number top_tolerance, int top_grid_level)
 specifyes the subsets of the top
 
void set_viscosity (number mu)
 sets the viscosity of the water
 
void simple_compute (SmartPtr< grid_func_type > spRecharge)
 computes the recharge at the vertices
 
number smooth_len () const
 returns the smoothing parameter
 
 VertexLowDimRecharge (number smoothLen, SmartPtr< grid_func_type > spLSF)
 constructor
 

Static Public Attributes

static const int dim = TGridFunction::dim
 world dimension
 
- Static Public Attributes inherited from ug::d3f::VertexLowDimRecharge< TGridFunction >
static const int dim = TGridFunction::dim
 world dimension
 
static const int mol_dim = dim - 1
 dimension of the mollifier
 

Private Types

typedef VertexWellRecharge< TGridFunction > this_type
 this type
 

Private Member Functions

virtual void compute_depths ()
 fills the attachment with the depths of the free surface
 
virtual number simple_smoothed_recharge_at (MathVector< dim > &x) const
 computes the smoothed recharge at a given point
 
virtual number smoothed_recharge_at (MathVector< dim > &x) const
 computes the smoothed recharge at a given point
 

Private Attributes

std::vector< well_recharge_data_tm_wells
 array of the wells:
 
number m_width
 diameter of the wells - meant to be the default one
 

Additional Inherited Members

- Protected Member Functions inherited from ug::d3f::VertexLowDimRecharge< TGridFunction >
number get_ls_height_at (MathVector< dim-1 > &x)
 computes the z-coordinate of the level set at a given point
 
size_t get_top_z (const MathVector< dim > &over)
 get the intersection with the top
 
bool ls_depth_is_relative ()
 returns true iff the depths should be relative
 
size_t min_top_depth (MathVector< dim-1 > &x, number &min_depth)
 computes the minimum z-coordinate of the top surface (returns the number of the intersections)
 
number object_recharge (number h_s, number h_fs, number w) const
 the river recharge intensivity (according to the model)
 
void prepare_ls_height ()
 initializes the level-set z-coordinate computations
 
- Protected Attributes inherited from ug::d3f::VertexLowDimRecharge< TGridFunction >
number m_constant_flux
 the intensity per unit length if constant (all other parameters are ignored)
 
number m_density
 density of the water
 
number m_e
 thickness of the bottom
 
number m_gravity
 gravity
 
bool m_is_constant
 if to use the constant intensity
 
LSPositionZ< grid_func_typem_lsPosZ
 depth measurer for the level set
 
number m_max_depth_diff
 max. depth difference (if restricted)
 
bool m_no_inflow
 whether to switch the possible inflow off
 
number m_perm
 permeability of the bottom
 
bool m_restrict_depth
 if to restrict the depth
 
number m_smoothLen
 smoothing parameter (of the mollifier)
 
SmartPtr< top_tracer_tree_tm_spTopTracerTree
 tree for the top ray traicer
 
number m_top_tolerance
 tolerance for the projection to the top
 
std::vector< top_intersection_record_tm_topIntersectionRecords
 top intersection tracer auxiliary data struction
 
std::vector< MathVector< dim > > m_topTracePoints
 intersection points with the top subsets
 
number m_viscosity
 viscosity of the water
 

Detailed Description

template<typename TGridFunction>
class ug::d3f::VertexWellRecharge< TGridFunction >

Class for the computation of the "0d rivers in 2d" or the recharge wells

This class computes the (positive or negative) recharge introduced by the "0d rivers in 2d" or the recharge wells at the vertices of the computation grid.

Template Parameters
TFunctiontype of the vertex-centered grid function

Member Typedef Documentation

◆ algebra_type

template<typename TGridFunction >
typedef TGridFunction::algebra_type ug::d3f::VertexWellRecharge< TGridFunction >::algebra_type

type of the algebra

◆ domain_type

template<typename TGridFunction >
typedef TGridFunction::domain_type ug::d3f::VertexWellRecharge< TGridFunction >::domain_type

type of the domain

◆ grid_func_type

template<typename TGridFunction >
typedef TGridFunction ug::d3f::VertexWellRecharge< TGridFunction >::grid_func_type

grid function type

◆ grid_type

template<typename TGridFunction >
typedef domain_type::grid_type ug::d3f::VertexWellRecharge< TGridFunction >::grid_type

grid type

◆ this_type

template<typename TGridFunction >
typedef VertexWellRecharge<TGridFunction> ug::d3f::VertexWellRecharge< TGridFunction >::this_type
private

this type

Constructor & Destructor Documentation

◆ VertexWellRecharge()

template<typename TGridFunction >
ug::d3f::VertexWellRecharge< TGridFunction >::VertexWellRecharge ( number  smoothLen,
SmartPtr< grid_func_type spLSF 
)
inline

class constructor

Parameters
smoothLenthe smoothing parameter
spLSFthe grid function

◆ ~VertexWellRecharge()

template<typename TGridFunction >
virtual ug::d3f::VertexWellRecharge< TGridFunction >::~VertexWellRecharge ( )
inlinevirtual

class destructor

Member Function Documentation

◆ add_well() [1/2]

template<typename TGridFunction >
void ug::d3f::VertexWellRecharge< TGridFunction >::add_well ( MathVector< dim-1 > &  x,
number  depth 
)
inline

◆ add_well() [2/2]

template<typename TGridFunction >
void ug::d3f::VertexWellRecharge< TGridFunction >::add_well ( std::vector< number coord,
number  depth 
)
inline

◆ compute_depths()

◆ set_width()

template<typename TGridFunction >
void ug::d3f::VertexWellRecharge< TGridFunction >::set_width ( number  riverWidth)
inline

sets the diameter of the wells

References ug::d3f::VertexWellRecharge< TGridFunction >::m_width.

◆ simple_smoothed_recharge_at()

template<typename TGridFunction >
number ug::d3f::VertexWellRecharge< TGridFunction >::simple_smoothed_recharge_at ( MathVector< dim > &  x) const
privatevirtual

computes the smoothed recharge at a given point

Parameters
xcoordinates of the points where to get the recharge

Implements ug::d3f::VertexLowDimRecharge< TGridFunction >.

◆ smoothed_recharge_at()

template<typename TGridFunction >
number ug::d3f::VertexWellRecharge< TGridFunction >::smoothed_recharge_at ( MathVector< dim > &  x) const
privatevirtual

computes the smoothed recharge at a given point

Computes the smoothed recharge of all the wells in a given neighbourhood.

Parameters
xcoordinates of the points where to get the recharge

Implements ug::d3f::VertexLowDimRecharge< TGridFunction >.

References ug::d3f::VertexWellRecharge< TGridFunction >::well_recharge_data_t::fs_depth, ug::VecDistance(), ug::d3f::VertexWellRecharge< TGridFunction >::well_recharge_data_t::well_depth, and ug::d3f::VertexWellRecharge< TGridFunction >::well_recharge_data_t::x.

Member Data Documentation

◆ dim

template<typename TGridFunction >
const int ug::d3f::VertexWellRecharge< TGridFunction >::dim = TGridFunction::dim
static

◆ m_wells

template<typename TGridFunction >
std::vector<well_recharge_data_t> ug::d3f::VertexWellRecharge< TGridFunction >::m_wells
private

◆ m_width

template<typename TGridFunction >
number ug::d3f::VertexWellRecharge< TGridFunction >::m_width
private

diameter of the wells - meant to be the default one

Referenced by ug::d3f::VertexWellRecharge< TGridFunction >::set_width().


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