ug4
ug::CRFVGeometry< TElem, TWorldDim > Class Template Reference

#include <fvcr_geom.h>

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

Classes

class  BF
 boundary face More...
 
class  CONSTRAINED_DOF
 public hanging node interface for compatibility reasons More...
 
class  SCV
 sub control volume structure More...
 
class  SCVF
 Sub-Control Volume Face structure. More...
 

Public Types

typedef TElem elem_type
 type of element More...
 
typedef crfv_traits< TWorldDim, TWorldDim >::face_type face_type0
 
typedef crfv_traits< TWorldDim, TWorldDim+1 >::face_type face_type1
 
typedef CrouzeixRaviartLSFS< ref_elem_typelocal_shape_fct_set_type
 type of Shape function used More...
 
typedef reference_element_traits< TElem >::reference_element_type ref_elem_type
 type of reference element More...
 
typedef crfv_traits< TWorldDim, TWorldDim >::scv_type scv_type0
 traits More...
 
typedef crfv_traits< TWorldDim, TWorldDim+1 >::scv_type scv_type1
 

Public Member Functions

void add_boundary_subset (int subsetIndex)
 add subset that is interpreted as boundary subset. More...
 
const std::vector< BF > & bf (int subsetIndex) const
 returns reference to vector of boundary faces for subsetIndex More...
 
const BFbf (int subsetIndex, size_t i) const
 returns the boundary face i for subsetIndex More...
 
void clear_boundary_subsets ()
 reset all boundary subsets More...
 
const CONSTRAINED_DOFconstrained_dof (size_t i) const
 
const MathVector< worldDim > * corners () const
 
 CRFVGeometry ()
 construct object and initialize local values and sizes More...
 
const MathVector< worldDimglobal_bary () const
 returns global barycenter More...
 
const MathVector< dimlocal_bary () const
 returns local barycenter More...
 
size_t num_bf () const
 number of all boundary faces More...
 
size_t num_bf (int subsetIndex) const
 number of boundary faces on subset 'subsetIndex' More...
 
size_t num_boundary_subsets ()
 number of registered boundary subsets More...
 
size_t num_constrained_dofs () const
 
size_t num_scv () const
 number of SubControlVolumes More...
 
size_t num_scv_ips () const
 returns number of all scv ips More...
 
size_t num_scvf () const
 number of SubControlVolumeFaces More...
 
size_t num_scvf_ips () const
 returns number of all scvf ips More...
 
size_t num_sh () const
 number of shape functions More...
 
void remove_boundary_subset (int subsetIndex)
 removes subset that is interpreted as boundary subset. More...
 
const SCVscv (size_t i) const
 const access to SubControlVolume number i More...
 
const MathVector< worldDim > * scv_global_ips () const
 returns all ips of scv as they appear in scv loop More...
 
const MathVector< dim > * scv_local_ips () const
 returns all ips of scv as they appear in scv loop More...
 
const SCVFscvf (size_t i) const
 const access to SubControlVolumeFace number i More...
 
const MathVector< worldDim > * scvf_global_ips () const
 returns all ips of scvf as they appear in scv loop More...
 
const MathVector< dim > * scvf_local_ips () const
 returns all ips of scvf as they appear in scv loop More...
 
void update (GridObject *elem, const MathVector< worldDim > *vCornerCoords, const ISubsetHandler *ish=NULL)
 update data for given element More...
 
void update_boundary_faces (GridObject *elem, const MathVector< worldDim > *vCornerCoords, const ISubsetHandler *ish=NULL)
 update boundary data for given element More...
 
void update_local_data ()
 update local data More...
 

Public Attributes

MathVector< worldDimglobalBary
 
MathVector< dimlocalBary
 

Static Public Attributes

static const int dim = ref_elem_type::dim
 dimension of reference element More...
 
static const size_t maxNumSCVF = ref_elem_type::numEdges
 
static const size_t nip = 1
 number of integration points More...
 
static const size_t nsh = local_shape_fct_set_type::nsh
 number of shape functions More...
 
static const size_t numSCV = nsh
 number of SubControlVolumes More...
 
static const size_t numSCVF = ref_elem_type::numEdges
 number of SubControlVolumeFaces More...
 
static const int order = 1
 order More...
 
static const bool staticLocalData = true
 flag indicating if local data may change More...
 
static const bool usesHangingNodes = false
 Hanging node flag: this Geometry does not support hanging nodes. More...
 
static const int worldDim = TWorldDim
 dimension of world More...
 

Protected Attributes

std::map< int, std::vector< BF > > m_mapVectorBF
 
MathVector< worldDimm_vCo [numMaxCo]
 
MathVector< worldDimm_vGlobSCVF_IP [numSCVF]
 
MathVector< worldDimm_vGlobUnkCoords [numSCV]
 
MathVector< dimm_vLocSCVF_IP [numSCVF]
 
MathVector< dimm_vLocUnkCoords [numSCV]
 

Static Protected Attributes

static const size_t numMaxCo = 8
 

Private Attributes

CONSTRAINED_DOF cd
 
MathVector< dimm_ipCoord [numSCVF]
 
ReferenceMapping< ref_elem_type, worldDimm_mapping
 Reference Mapping. More...
 
TElem * m_pElem
 pointer to current element More...
 
const ref_elem_typem_rRefElem
 Reference Element. More...
 
const local_shape_fct_set_typem_rTrialSpace
 Shape function set. More...
 
SCV m_vSCV [numSCV]
 SubControlVolumes. More...
 
SCVF m_vSCVF [numSCVF]
 SubControlVolumeFaces. More...
 

Member Typedef Documentation

◆ elem_type

template<typename TElem , int TWorldDim>
typedef TElem ug::CRFVGeometry< TElem, TWorldDim >::elem_type

type of element

◆ face_type0

template<typename TElem , int TWorldDim>
typedef crfv_traits<TWorldDim,TWorldDim>::face_type ug::CRFVGeometry< TElem, TWorldDim >::face_type0

◆ face_type1

template<typename TElem , int TWorldDim>
typedef crfv_traits<TWorldDim,TWorldDim+1>::face_type ug::CRFVGeometry< TElem, TWorldDim >::face_type1

◆ local_shape_fct_set_type

template<typename TElem , int TWorldDim>
typedef CrouzeixRaviartLSFS<ref_elem_type> ug::CRFVGeometry< TElem, TWorldDim >::local_shape_fct_set_type

type of Shape function used

◆ ref_elem_type

template<typename TElem , int TWorldDim>
typedef reference_element_traits<TElem>::reference_element_type ug::CRFVGeometry< TElem, TWorldDim >::ref_elem_type

type of reference element

◆ scv_type0

template<typename TElem , int TWorldDim>
typedef crfv_traits<TWorldDim,TWorldDim>::scv_type ug::CRFVGeometry< TElem, TWorldDim >::scv_type0

traits

◆ scv_type1

template<typename TElem , int TWorldDim>
typedef crfv_traits<TWorldDim,TWorldDim+1>::scv_type ug::CRFVGeometry< TElem, TWorldDim >::scv_type1

Constructor & Destructor Documentation

◆ CRFVGeometry()

template<typename TElem , int TWorldDim>
ug::CRFVGeometry< TElem, TWorldDim >::CRFVGeometry

construct object and initialize local values and sizes

References ug::CRFVGeometry< TElem, TWorldDim >::update_local_data().

Member Function Documentation

◆ add_boundary_subset()

template<typename TElem , int TWorldDim>
void ug::CRFVGeometry< TElem, TWorldDim >::add_boundary_subset ( int  subsetIndex)
inline

add subset that is interpreted as boundary subset.

References ug::CRFVGeometry< TElem, TWorldDim >::m_mapVectorBF.

◆ bf() [1/2]

template<typename TElem , int TWorldDim>
const std::vector<BF>& ug::CRFVGeometry< TElem, TWorldDim >::bf ( int  subsetIndex) const
inline

returns reference to vector of boundary faces for subsetIndex

References ug::CRFVGeometry< TElem, TWorldDim >::m_mapVectorBF, and UG_ASSERT.

◆ bf() [2/2]

template<typename TElem , int TWorldDim>
const BF& ug::CRFVGeometry< TElem, TWorldDim >::bf ( int  subsetIndex,
size_t  i 
) const
inline

◆ clear_boundary_subsets()

template<typename TElem , int TWorldDim>
void ug::CRFVGeometry< TElem, TWorldDim >::clear_boundary_subsets ( )
inline

reset all boundary subsets

References ug::CRFVGeometry< TElem, TWorldDim >::m_mapVectorBF.

◆ constrained_dof()

template<typename TElem , int TWorldDim>
const CONSTRAINED_DOF& ug::CRFVGeometry< TElem, TWorldDim >::constrained_dof ( size_t  i) const
inline

◆ corners()

template<typename TElem , int TWorldDim>
const MathVector<worldDim>* ug::CRFVGeometry< TElem, TWorldDim >::corners ( ) const
inline

◆ global_bary()

template<typename TElem , int TWorldDim>
const MathVector<worldDim> ug::CRFVGeometry< TElem, TWorldDim >::global_bary ( ) const
inline

returns global barycenter

References ug::CRFVGeometry< TElem, TWorldDim >::globalBary.

◆ local_bary()

template<typename TElem , int TWorldDim>
const MathVector<dim> ug::CRFVGeometry< TElem, TWorldDim >::local_bary ( ) const
inline

returns local barycenter

References ug::CRFVGeometry< TElem, TWorldDim >::localBary.

◆ num_bf() [1/2]

template<typename TElem , int TWorldDim>
size_t ug::CRFVGeometry< TElem, TWorldDim >::num_bf ( ) const
inline

◆ num_bf() [2/2]

template<typename TElem , int TWorldDim>
size_t ug::CRFVGeometry< TElem, TWorldDim >::num_bf ( int  subsetIndex) const
inline

number of boundary faces on subset 'subsetIndex'

References ug::CRFVGeometry< TElem, TWorldDim >::m_mapVectorBF.

◆ num_boundary_subsets()

template<typename TElem , int TWorldDim>
size_t ug::CRFVGeometry< TElem, TWorldDim >::num_boundary_subsets ( )
inline

number of registered boundary subsets

References ug::CRFVGeometry< TElem, TWorldDim >::m_mapVectorBF.

◆ num_constrained_dofs()

template<typename TElem , int TWorldDim>
size_t ug::CRFVGeometry< TElem, TWorldDim >::num_constrained_dofs ( ) const
inline

◆ num_scv()

template<typename TElem , int TWorldDim>
size_t ug::CRFVGeometry< TElem, TWorldDim >::num_scv ( ) const
inline

number of SubControlVolumes

References ug::CRFVGeometry< TElem, TWorldDim >::numSCV.

Referenced by ug::CRFVGeometry< TElem, TWorldDim >::scv().

◆ num_scv_ips()

template<typename TElem , int TWorldDim>
size_t ug::CRFVGeometry< TElem, TWorldDim >::num_scv_ips ( ) const
inline

returns number of all scv ips

References ug::CRFVGeometry< TElem, TWorldDim >::numSCV.

◆ num_scvf()

template<typename TElem , int TWorldDim>
size_t ug::CRFVGeometry< TElem, TWorldDim >::num_scvf ( ) const
inline

number of SubControlVolumeFaces

References ug::CRFVGeometry< TElem, TWorldDim >::numSCVF.

Referenced by ug::CRFVGeometry< TElem, TWorldDim >::scvf().

◆ num_scvf_ips()

template<typename TElem , int TWorldDim>
size_t ug::CRFVGeometry< TElem, TWorldDim >::num_scvf_ips ( ) const
inline

returns number of all scvf ips

References ug::CRFVGeometry< TElem, TWorldDim >::numSCVF.

◆ num_sh()

template<typename TElem , int TWorldDim>
size_t ug::CRFVGeometry< TElem, TWorldDim >::num_sh ( ) const
inline

number of shape functions

References ug::CRFVGeometry< TElem, TWorldDim >::nsh.

◆ remove_boundary_subset()

template<typename TElem , int TWorldDim>
void ug::CRFVGeometry< TElem, TWorldDim >::remove_boundary_subset ( int  subsetIndex)
inline

removes subset that is interpreted as boundary subset.

References ug::CRFVGeometry< TElem, TWorldDim >::m_mapVectorBF.

◆ scv()

template<typename TElem , int TWorldDim>
const SCV& ug::CRFVGeometry< TElem, TWorldDim >::scv ( size_t  i) const
inline

◆ scv_global_ips()

template<typename TElem , int TWorldDim>
const MathVector<worldDim>* ug::CRFVGeometry< TElem, TWorldDim >::scv_global_ips ( ) const
inline

returns all ips of scv as they appear in scv loop

References ug::CRFVGeometry< TElem, TWorldDim >::m_vGlobUnkCoords.

◆ scv_local_ips()

template<typename TElem , int TWorldDim>
const MathVector<dim>* ug::CRFVGeometry< TElem, TWorldDim >::scv_local_ips ( ) const
inline

returns all ips of scv as they appear in scv loop

References ug::CRFVGeometry< TElem, TWorldDim >::m_vLocUnkCoords.

◆ scvf()

template<typename TElem , int TWorldDim>
const SCVF& ug::CRFVGeometry< TElem, TWorldDim >::scvf ( size_t  i) const
inline

const access to SubControlVolumeFace number i

References ug::CRFVGeometry< TElem, TWorldDim >::m_vSCVF, ug::CRFVGeometry< TElem, TWorldDim >::num_scvf(), and UG_ASSERT.

◆ scvf_global_ips()

template<typename TElem , int TWorldDim>
const MathVector<worldDim>* ug::CRFVGeometry< TElem, TWorldDim >::scvf_global_ips ( ) const
inline

returns all ips of scvf as they appear in scv loop

References ug::CRFVGeometry< TElem, TWorldDim >::m_vGlobSCVF_IP.

◆ scvf_local_ips()

template<typename TElem , int TWorldDim>
const MathVector<dim>* ug::CRFVGeometry< TElem, TWorldDim >::scvf_local_ips ( ) const
inline

returns all ips of scvf as they appear in scv loop

References ug::CRFVGeometry< TElem, TWorldDim >::m_vLocSCVF_IP.

◆ update()

template<typename TElem , int TWorldDim>
void ug::CRFVGeometry< TElem, TWorldDim >::update ( GridObject elem,
const MathVector< worldDim > *  vCornerCoords,
const ISubsetHandler ish = NULL 
)

update data for given element

References ug::AveragePositions(), dim, ug::MatVecMult(), and UG_ASSERT.

◆ update_boundary_faces()

◆ update_local_data()

template<typename TElem , int TWorldDim>
void ug::CRFVGeometry< TElem, TWorldDim >::update_local_data

update local data

References ug::AveragePositions(), and dim.

Referenced by ug::CRFVGeometry< TElem, TWorldDim >::CRFVGeometry().

Member Data Documentation

◆ cd

template<typename TElem , int TWorldDim>
CONSTRAINED_DOF ug::CRFVGeometry< TElem, TWorldDim >::cd
private

◆ dim

template<typename TElem , int TWorldDim>
const int ug::CRFVGeometry< TElem, TWorldDim >::dim = ref_elem_type::dim
static

dimension of reference element

◆ globalBary

template<typename TElem , int TWorldDim>
MathVector<worldDim> ug::CRFVGeometry< TElem, TWorldDim >::globalBary

◆ localBary

template<typename TElem , int TWorldDim>
MathVector<dim> ug::CRFVGeometry< TElem, TWorldDim >::localBary

◆ m_ipCoord

template<typename TElem , int TWorldDim>
MathVector<dim> ug::CRFVGeometry< TElem, TWorldDim >::m_ipCoord[numSCVF]
private

◆ m_mapping

template<typename TElem , int TWorldDim>
ReferenceMapping<ref_elem_type, worldDim> ug::CRFVGeometry< TElem, TWorldDim >::m_mapping
private

Reference Mapping.

◆ m_mapVectorBF

◆ m_pElem

template<typename TElem , int TWorldDim>
TElem* ug::CRFVGeometry< TElem, TWorldDim >::m_pElem
private

pointer to current element

◆ m_rRefElem

template<typename TElem , int TWorldDim>
const ref_elem_type& ug::CRFVGeometry< TElem, TWorldDim >::m_rRefElem
private

Reference Element.

◆ m_rTrialSpace

template<typename TElem , int TWorldDim>
const local_shape_fct_set_type& ug::CRFVGeometry< TElem, TWorldDim >::m_rTrialSpace
private

Shape function set.

◆ m_vCo

template<typename TElem , int TWorldDim>
MathVector<worldDim> ug::CRFVGeometry< TElem, TWorldDim >::m_vCo[numMaxCo]
protected

◆ m_vGlobSCVF_IP

template<typename TElem , int TWorldDim>
MathVector<worldDim> ug::CRFVGeometry< TElem, TWorldDim >::m_vGlobSCVF_IP[numSCVF]
protected

◆ m_vGlobUnkCoords

template<typename TElem , int TWorldDim>
MathVector<worldDim> ug::CRFVGeometry< TElem, TWorldDim >::m_vGlobUnkCoords[numSCV]
protected

◆ m_vLocSCVF_IP

template<typename TElem , int TWorldDim>
MathVector<dim> ug::CRFVGeometry< TElem, TWorldDim >::m_vLocSCVF_IP[numSCVF]
protected

◆ m_vLocUnkCoords

template<typename TElem , int TWorldDim>
MathVector<dim> ug::CRFVGeometry< TElem, TWorldDim >::m_vLocUnkCoords[numSCV]
protected

◆ m_vSCV

template<typename TElem , int TWorldDim>
SCV ug::CRFVGeometry< TElem, TWorldDim >::m_vSCV[numSCV]
private

SubControlVolumes.

Referenced by ug::CRFVGeometry< TElem, TWorldDim >::scv().

◆ m_vSCVF

template<typename TElem , int TWorldDim>
SCVF ug::CRFVGeometry< TElem, TWorldDim >::m_vSCVF[numSCVF]
private

SubControlVolumeFaces.

Referenced by ug::CRFVGeometry< TElem, TWorldDim >::scvf().

◆ maxNumSCVF

template<typename TElem , int TWorldDim>
const size_t ug::CRFVGeometry< TElem, TWorldDim >::maxNumSCVF = ref_elem_type::numEdges
static

◆ nip

template<typename TElem , int TWorldDim>
const size_t ug::CRFVGeometry< TElem, TWorldDim >::nip = 1
static

◆ nsh

template<typename TElem , int TWorldDim>
const size_t ug::CRFVGeometry< TElem, TWorldDim >::nsh = local_shape_fct_set_type::nsh
static

◆ numMaxCo

template<typename TElem , int TWorldDim>
const size_t ug::CRFVGeometry< TElem, TWorldDim >::numMaxCo = 8
staticprotected

◆ numSCV

template<typename TElem , int TWorldDim>
const size_t ug::CRFVGeometry< TElem, TWorldDim >::numSCV = nsh
static

◆ numSCVF

template<typename TElem , int TWorldDim>
const size_t ug::CRFVGeometry< TElem, TWorldDim >::numSCVF = ref_elem_type::numEdges
static

◆ order

template<typename TElem , int TWorldDim>
const int ug::CRFVGeometry< TElem, TWorldDim >::order = 1
static

order

◆ staticLocalData

template<typename TElem , int TWorldDim>
const bool ug::CRFVGeometry< TElem, TWorldDim >::staticLocalData = true
static

flag indicating if local data may change

◆ usesHangingNodes

template<typename TElem , int TWorldDim>
const bool ug::CRFVGeometry< TElem, TWorldDim >::usesHangingNodes = false
static

Hanging node flag: this Geometry does not support hanging nodes.

◆ worldDim

template<typename TElem , int TWorldDim>
const int ug::CRFVGeometry< TElem, TWorldDim >::worldDim = TWorldDim
static

dimension of world


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