Plugins
Loading...
Searching...
No Matches
ug::d3f::VertexLowDimRecharge< TGridFunction > Class Template Referenceabstract

#include <rivers.h>

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

Public Types

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 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 const int mol_dim = dim - 1
 dimension of the mollifier
 

Protected Member Functions

virtual void compute_depths ()=0
 prepares the depth of the recharge objects
 
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
 
virtual number simple_smoothed_recharge_at (MathVector< dim > &x) const =0
 
virtual number smoothed_recharge_at (MathVector< dim > &x) const =0
 computes the smoothed recharge at a given point
 

Protected Attributes

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::VertexLowDimRecharge< TGridFunction >

Base class for the low-dimentional recharge objects

Template Parameters
TFunctiontype of the vertex-centered grid function

Member Typedef Documentation

◆ algebra_type

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

type of the algebra

◆ domain_type

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

type of the domain

◆ g_surf_elem_t

template<typename TGridFunction >
typedef grid_dim_traits<dim>::side_type ug::d3f::VertexLowDimRecharge< TGridFunction >::g_surf_elem_t

type of the elements constituting surfaces in the grid

◆ g_surf_iter_t

template<typename TGridFunction >
typedef geometry_traits<g_surf_elem_t>::iterator ug::d3f::VertexLowDimRecharge< TGridFunction >::g_surf_iter_t

type of the iterator of the grid surface elements

◆ grid_func_type

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

grid function type

◆ grid_type

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

grid type

◆ top_intersection_record_t

template<typename TGridFunction >
typedef RayElemIntersectionRecord<g_surf_elem_t*> ug::d3f::VertexLowDimRecharge< TGridFunction >::top_intersection_record_t

◆ top_tracer_tree_t

template<typename TGridFunction >
typedef lg_ntree<dim-1, dim, g_surf_elem_t> ug::d3f::VertexLowDimRecharge< TGridFunction >::top_tracer_tree_t

Constructor & Destructor Documentation

◆ VertexLowDimRecharge()

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

constructor

Parameters
smoothLenthe smoothing parameter
spLSFthe grid function

Member Function Documentation

◆ compute()

template<typename TGridFunction >
void ug::d3f::VertexLowDimRecharge< TGridFunction >::compute ( SmartPtr< grid_func_type spRecharge)

computes the recharge at the vertices

Computes the recharge at the vertices.

Parameters
spRechargeto save the computed recharge

References ug::DoFRef().

◆ compute_depths()

template<typename TGridFunction >
virtual void ug::d3f::VertexLowDimRecharge< TGridFunction >::compute_depths ( )
protectedpure virtual

prepares the depth of the recharge objects

Implemented in ug::d3f::VertexWellRecharge< TGridFunction >, and ug::d3f::VertexRiverRecharge< TGridFunction >.

◆ get_ls_height_at()

template<typename TGridFunction >
number ug::d3f::VertexLowDimRecharge< TGridFunction >::get_ls_height_at ( MathVector< dim-1 > &  x)
inlineprotected

computes the z-coordinate of the level set at a given point

References ug::d3f::LSPositionZ< TGridFunction >::get_height_at(), and ug::d3f::VertexLowDimRecharge< TGridFunction >::m_lsPosZ.

◆ get_top_z()

template<typename TGridFunction >
size_t ug::d3f::VertexLowDimRecharge< TGridFunction >::get_top_z ( const MathVector< dim > &  over)
protected

◆ ls_depth_is_relative()

template<typename TGridFunction >
bool ug::d3f::VertexLowDimRecharge< TGridFunction >::ls_depth_is_relative ( )
inlineprotected

returns true iff the depths should be relative

References ug::d3f::VertexLowDimRecharge< TGridFunction >::m_spTopTracerTree.

◆ max_depth_diff()

template<typename TGridFunction >
number ug::d3f::VertexLowDimRecharge< TGridFunction >::max_depth_diff ( ) const
inline

◆ min_top_depth()

template<typename TGridFunction >
size_t ug::d3f::VertexLowDimRecharge< TGridFunction >::min_top_depth ( MathVector< dim-1 > &  x,
number min_depth 
)
inlineprotected

computes the minimum z-coordinate of the top surface (returns the number of the intersections)

References ug::d3f::VertexLowDimRecharge< TGridFunction >::dim, ug::d3f::VertexLowDimRecharge< TGridFunction >::get_top_z(), and ug::d3f::VertexLowDimRecharge< TGridFunction >::m_topTracePoints.

◆ no_inflow()

template<typename TGridFunction >
bool ug::d3f::VertexLowDimRecharge< TGridFunction >::no_inflow ( ) const
inline

returns the state of the possible inflow

References ug::d3f::VertexLowDimRecharge< TGridFunction >::m_no_inflow.

◆ object_recharge()

template<typename TGridFunction >
number ug::d3f::VertexLowDimRecharge< TGridFunction >::object_recharge ( number  h_s,
number  h_fs,
number  w 
) const
inlineprotected

◆ prepare_ls_height()

template<typename TGridFunction >
void ug::d3f::VertexLowDimRecharge< TGridFunction >::prepare_ls_height ( )
inlineprotected

initializes the level-set z-coordinate computations

References ug::d3f::VertexLowDimRecharge< TGridFunction >::m_lsPosZ, and ug::d3f::LSPositionZ< TGridFunction >::reinit().

◆ restrict_depth() [1/2]

template<typename TGridFunction >
bool ug::d3f::VertexLowDimRecharge< TGridFunction >::restrict_depth ( ) const
inline

returns the state of the depth restriction

References ug::d3f::VertexLowDimRecharge< TGridFunction >::m_restrict_depth.

◆ restrict_depth() [2/2]

◆ set_bottom_thickness()

template<typename TGridFunction >
void ug::d3f::VertexLowDimRecharge< TGridFunction >::set_bottom_thickness ( number  e)
inline

sets the thickness of the bottom

References ug::d3f::VertexLowDimRecharge< TGridFunction >::m_e.

◆ set_constant_flux()

template<typename TGridFunction >
void ug::d3f::VertexLowDimRecharge< TGridFunction >::set_constant_flux ( number  flux)
inline

◆ set_density()

template<typename TGridFunction >
void ug::d3f::VertexLowDimRecharge< TGridFunction >::set_density ( number  rho)
inline

sets the density of the water

References ug::d3f::VertexLowDimRecharge< TGridFunction >::m_density.

◆ set_gravity()

template<typename TGridFunction >
void ug::d3f::VertexLowDimRecharge< TGridFunction >::set_gravity ( number  g)
inline

◆ set_no_inflow()

template<typename TGridFunction >
void ug::d3f::VertexLowDimRecharge< TGridFunction >::set_no_inflow ( bool  b)
inline

switches the possible inflow on/off

References ug::d3f::VertexLowDimRecharge< TGridFunction >::m_no_inflow.

◆ set_permeability()

template<typename TGridFunction >
void ug::d3f::VertexLowDimRecharge< TGridFunction >::set_permeability ( number  k)
inline

sets the permeability of the bottom

References ug::d3f::VertexLowDimRecharge< TGridFunction >::m_perm.

◆ set_relative_to() [1/3]

template<typename TGridFunction >
void ug::d3f::VertexLowDimRecharge< TGridFunction >::set_relative_to ( const char *  subsetNames)
inline

specifyes the subsets of the top

References ug::d3f::VertexLowDimRecharge< TGridFunction >::set_relative_to().

◆ set_relative_to() [2/3]

template<typename TGridFunction >
void ug::d3f::VertexLowDimRecharge< TGridFunction >::set_relative_to ( const char *  subsetNames,
number  top_tolerance 
)
inline

specifyes the subsets of the top

References ug::d3f::VertexLowDimRecharge< TGridFunction >::set_relative_to().

◆ set_relative_to() [3/3]

template<typename TGridFunction >
void ug::d3f::VertexLowDimRecharge< TGridFunction >::set_relative_to ( const char *  subsetNames,
number  top_tolerance,
int  top_grid_level 
)

specifyes the subsets of the top

Parameters
subsetNamessubsets of the top
top_tolerancetolerance for the projection to the top
top_grid_levelgrid level of the top surface (or -1 if not specified)

References ug::SubsetGroup::add(), ug::MultiGridSubsetHandler::begin(), ug::MultiGridSubsetHandler::end(), ug::MultiGrid::has_children(), ug::MultiGridSubsetHandler::num_levels(), ug::SubsetGroup::size(), and ug::TokenizeString().

Referenced by ug::d3f::VertexLowDimRecharge< TGridFunction >::set_relative_to(), and ug::d3f::VertexLowDimRecharge< TGridFunction >::set_relative_to().

◆ set_viscosity()

template<typename TGridFunction >
void ug::d3f::VertexLowDimRecharge< TGridFunction >::set_viscosity ( number  mu)
inline

sets the viscosity of the water

References ug::d3f::VertexLowDimRecharge< TGridFunction >::m_viscosity.

◆ simple_compute()

template<typename TGridFunction >
void ug::d3f::VertexLowDimRecharge< TGridFunction >::simple_compute ( SmartPtr< grid_func_type spRecharge)

computes the recharge at the vertices

Computes the recharge at the vertices.

to save the computed recharge

Parameters
spRechargeto save the computed recharge

References ug::DoFRef().

◆ simple_smoothed_recharge_at()

template<typename TGridFunction >
virtual number ug::d3f::VertexLowDimRecharge< TGridFunction >::simple_smoothed_recharge_at ( MathVector< dim > &  x) const
protectedpure virtual
Parameters
xcoordinates of the points where to get the recharge

Implemented in ug::d3f::VertexWellRecharge< TGridFunction >, and ug::d3f::VertexRiverRecharge< TGridFunction >.

◆ smooth_len()

template<typename TGridFunction >
number ug::d3f::VertexLowDimRecharge< TGridFunction >::smooth_len ( ) const
inline

returns the smoothing parameter

References ug::d3f::VertexLowDimRecharge< TGridFunction >::m_smoothLen.

◆ smoothed_recharge_at()

template<typename TGridFunction >
virtual number ug::d3f::VertexLowDimRecharge< TGridFunction >::smoothed_recharge_at ( MathVector< dim > &  x) const
protectedpure virtual

computes the smoothed recharge at a given point

Parameters
xcoordinates of the points where to get the recharge

Implemented in ug::d3f::VertexWellRecharge< TGridFunction >, and ug::d3f::VertexRiverRecharge< TGridFunction >.

Member Data Documentation

◆ dim

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

◆ m_constant_flux

template<typename TGridFunction >
number ug::d3f::VertexLowDimRecharge< TGridFunction >::m_constant_flux
protected

the intensity per unit length if constant (all other parameters are ignored)

Referenced by ug::d3f::VertexLowDimRecharge< TGridFunction >::object_recharge(), and ug::d3f::VertexLowDimRecharge< TGridFunction >::set_constant_flux().

◆ m_density

template<typename TGridFunction >
number ug::d3f::VertexLowDimRecharge< TGridFunction >::m_density
protected

◆ m_e

template<typename TGridFunction >
number ug::d3f::VertexLowDimRecharge< TGridFunction >::m_e
protected

◆ m_gravity

◆ m_is_constant

template<typename TGridFunction >
bool ug::d3f::VertexLowDimRecharge< TGridFunction >::m_is_constant
protected

◆ m_lsPosZ

template<typename TGridFunction >
LSPositionZ<grid_func_type> ug::d3f::VertexLowDimRecharge< TGridFunction >::m_lsPosZ
protected

◆ m_max_depth_diff

template<typename TGridFunction >
number ug::d3f::VertexLowDimRecharge< TGridFunction >::m_max_depth_diff
protected

◆ m_no_inflow

template<typename TGridFunction >
bool ug::d3f::VertexLowDimRecharge< TGridFunction >::m_no_inflow
protected

◆ m_perm

template<typename TGridFunction >
number ug::d3f::VertexLowDimRecharge< TGridFunction >::m_perm
protected

◆ m_restrict_depth

template<typename TGridFunction >
bool ug::d3f::VertexLowDimRecharge< TGridFunction >::m_restrict_depth
protected

◆ m_smoothLen

template<typename TGridFunction >
number ug::d3f::VertexLowDimRecharge< TGridFunction >::m_smoothLen
protected

smoothing parameter (of the mollifier)

Referenced by ug::d3f::VertexLowDimRecharge< TGridFunction >::smooth_len().

◆ m_spTopTracerTree

template<typename TGridFunction >
SmartPtr<top_tracer_tree_t> ug::d3f::VertexLowDimRecharge< TGridFunction >::m_spTopTracerTree
protected

◆ m_top_tolerance

template<typename TGridFunction >
number ug::d3f::VertexLowDimRecharge< TGridFunction >::m_top_tolerance
protected

tolerance for the projection to the top

◆ m_topIntersectionRecords

template<typename TGridFunction >
std::vector<top_intersection_record_t> ug::d3f::VertexLowDimRecharge< TGridFunction >::m_topIntersectionRecords
protected

top intersection tracer auxiliary data struction

◆ m_topTracePoints

template<typename TGridFunction >
std::vector<MathVector<dim> > ug::d3f::VertexLowDimRecharge< TGridFunction >::m_topTracePoints
protected

intersection points with the top subsets

Referenced by ug::d3f::VertexLowDimRecharge< TGridFunction >::min_top_depth().

◆ m_viscosity

template<typename TGridFunction >
number ug::d3f::VertexLowDimRecharge< TGridFunction >::m_viscosity
protected

◆ mol_dim

template<typename TGridFunction >
const int ug::d3f::VertexLowDimRecharge< TGridFunction >::mol_dim = dim - 1
static

dimension of the mollifier


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