Loading [MathJax]/extensions/tex2jax.js
ug4
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
ug::FV1CondensedGeometry< TElem, TWorldDim > Class Template Reference

Geometry and shape functions for 1st order Vertex-Centered Finite Volume. More...

#include <fv1_geom.h>

+ Inheritance diagram for ug::FV1CondensedGeometry< TElem, TWorldDim >:

Additional Inherited Members

- Public Types inherited from ug::FV1Geometry_gen< TElem, TWorldDim, true >
typedef TElem elem_type
 type of element
 
typedef LagrangeP1< ref_elem_typelocal_shape_fct_set_type
 type of Shape function used
 
typedef reference_element_traits< TElem >::reference_element_type ref_elem_type
 type of reference element
 
typedef traits::scv_type scv_type
 type of SubControlVolume
 
typedef fv1_traits< ref_elem_type, TWorldDim > traits
 used traits
 
- Public Member Functions inherited from ug::FV1Geometry_gen< TElem, TWorldDim, true >
void add_boundary_subset (int subsetIndex)
 add subset that is interpreted as boundary subset.
 
const std::vector< BF > & bf (int si) const
 returns reference to vector of boundary faces for subsetIndex
 
const BF & bf (int si, size_t i) const
 returns the boundary face i for subsetIndex
 
void clear_boundary_subsets ()
 reset all boundary subsets
 
const MathVector< worldDim > * coe_global () const
 returns the global coordinates of the center of mass of the element
 
const MathVector< dim > * coe_local () const
 returns the local coordinates of the center of mass of the element
 
const MathVector< worldDim > * corners () const
 get vector of the global coordinates of corners for current element
 
TElem * elem () const
 get the element
 
 FV1Geometry_gen ()
 construct object and initialize local values and sizes
 
const MathVector< worldDim > & global_node_position (size_t nodeID) const
 return global coords for node ID
 
const MathVector< dim > & local_node_position (size_t nodeID) const
 return local coords for node ID
 
size_t num_bf () const
 number of all boundary faces
 
size_t num_bf (int si) const
 number of boundary faces on subset 'subsetIndex'
 
size_t num_boundary_subsets ()
 number of registered boundary subsets
 
size_t num_scv () const
 number of SubControlVolumes
 
size_t num_scv_ips () const
 returns number of all scv ips
 
size_t num_scvf () const
 number of SubControlVolumeFaces
 
size_t num_scvf_ips () const
 returns number of all scvf ips
 
size_t num_sh () const
 number of shape functions
 
void remove_boundary_subset (int subsetIndex)
 removes subset that is interpreted as boundary subset.
 
void reset_curr_elem ()
 
ReferenceObjectID roid () const
 returns reference object id
 
const SCV & scv (size_t i) const
 const access to SubControlVolume number i
 
const MathVector< worldDim > * scv_global_ips () const
 returns all ips of scv as they appear in scv loop
 
const MathVector< dim > * scv_local_ips () const
 returns all ips of scv as they appear in scv loop
 
const SCVF & scvf (size_t i) const
 const access to SubControlVolumeFace number i
 
const MathVector< worldDim > * scvf_global_ips () const
 returns all ips of scvf as they appear in scv loop
 
const MathVector< dim > * scvf_local_ips () const
 returns all ips of scvf as they appear in scv loop
 
void update (GridObject *elem, const MathVector< worldDim > *vCornerCoords, const ISubsetHandler *ish=NULL)
 update data for given element
 
void update_boundary_faces (GridObject *elem, const MathVector< worldDim > *vCornerCoords, const ISubsetHandler *ish=NULL)
 update boundary data for given element
 
void update_local_data ()
 update local data
 
- Static Public Attributes inherited from ug::FV1Geometry_gen< TElem, TWorldDim, true >
static const bool condensed_scvf_ips
 whether the scheme shifts the scvf ip's to midpoints of the edges
 
static const int dim
 dimension of reference element
 
static const size_t nip
 number of integration points
 
static const size_t nsh
 number of shape functions
 
static const size_t numSCV
 number of SubControlVolumes
 
static const size_t numSCVF
 number of SubControlVolumeFaces
 
static const int order
 order
 
static const bool staticLocalData
 flag indicating if local data may change
 
static const bool usesHangingNodes
 Hanging node flag: this Geometry does not support hanging nodes.
 
static const int worldDim
 dimension of world
 
- Protected Attributes inherited from ug::FV1Geometry_gen< TElem, TWorldDim, true >
std::map< int, std::vector< BF > > m_mapVectorBF
 
std::vector< BF > m_vEmptyVectorBF
 
MathVector< worldDim > m_vGlobSCV_IP [numSCV]
 
MathVector< worldDim > m_vGlobSCVF_IP [numSCVF]
 
MathVector< dim > m_vLocSCV_IP [numSCV]
 
MathVector< dim > m_vLocSCVF_IP [numSCVF]
 

Detailed Description

template<typename TElem, int TWorldDim>
class ug::FV1CondensedGeometry< TElem, TWorldDim >

Geometry and shape functions for 1st order Vertex-Centered Finite Volume.

The class provides the geometry and shape functions for 1st order Vertex-Centered Finite Element Finite Volume method based on the Donald Diagrams.

This class shifts the subcontrol volume face integration points to the edges. This allows to reduce the matrix pattern and to avoid positive off-diagonal entries in some cases. (For ex., the discretization of the Laplacian on a grid of rectangles retains results in the 5-point stencil.) However note that, in many cases, this leads to the discretization order reduction.

Cf. class FV1Geometry_gen for the implementation.

Template Parameters
TElemElement type
TWorldDim(physical) world dimension

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