ug4
ug::DimCRFVGeometry< TDim, TWorldDim > Class Template Reference

Geometry and shape functions for 1st order Vertex-Centered Finite Volume with Crouzeix-Raviart elements. More...

#include <fvcr_geom.h>

+ Inheritance diagram for ug::DimCRFVGeometry< TDim, TWorldDim >:

Classes

class  BF
 boundary face More...
 
class  CONSTRAINED_DOF
 
class  HandledEdge
 
class  SCV
 sub control volume structure More...
 
class  SCVF
 Sub-Control Volume Face structure. More...
 

Public Types

typedef crfv_traits< TWorldDim, TWorldDim >::face_type face_type0
 
typedef crfv_traits< TWorldDim, TWorldDim+1 >::face_type face_type1
 
typedef hcrfv_traits< TDim, TDim > htraits
 
typedef crfv_traits< TWorldDim, TWorldDim >::scv_type scv_type0
 traits More...
 
typedef crfv_traits< TWorldDim, TWorldDim+1 >::scv_type scv_type1
 
typedef crfv_traits< TDim, TDim > traits
 used traits More...
 

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 access to constrained dof i More...
 
 DimCRFVGeometry ()
 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
 number of constrained dofs More...
 
size_t num_constrained_scvf ()
 number of constrained dof scvfs More...
 
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_geometric_data (GridObject *elem, const MathVector< worldDim > *vCornerCoords, const ISubsetHandler *ish=NULL)
 update data for given element More...
 
void update_hanging (GridObject *elem, const MathVector< worldDim > *vCornerCoords, const ISubsetHandler *ish=NULL, bool keepSCV=false, bool keepSCVF=false)
 update 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 = TDim
 dimension of reference element More...
 
static const size_t maxNSH = htraits::maxNSH
 max number of shape functions More...
 
static const size_t maxNumCo = traits::maxNumCo
 
static const size_t maxNumSCV = htraits::maxNumSCV
 number of SubControlVolumes More...
 
static const size_t maxNumSCVF = htraits::maxNumSCVF
 max number of SubControlVolumeFaces More...
 
static const size_t nip = 1
 number of integration points More...
 
static const int order = 1
 order More...
 
static const bool staticLocalData = false
 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::vector< HandledEdgehandledEdges
 
std::map< int, std::vector< BF > > m_mapVectorBF
 
CONSTRAINED_DOF m_vCD [maxNumSCV]
 constrained Dofs More...
 
MathVector< worldDimm_vGlobSCVF_IP [maxNumSCVF]
 
MathVector< worldDimm_vGlobUnkCoords [maxNumSCV]
 
MathVector< dimm_vLocSCVF_IP [maxNumSCVF]
 
MathVector< dimm_vLocUnkCoords [maxNumSCV]
 

Private Attributes

MathVector< dimcornerCoord [maxNumCo]
 
MathVector< dimm_ipCoord [maxNumSCVF]
 
size_t m_nsh
 current number of shape functions More...
 
size_t m_numConstrainedDofs
 
size_t m_numConstrainedSCVF
 
size_t m_numDofs
 numDofs number of all dofs including constraining and constrained dofs
More...
 
size_t m_numSCV
 current number of scv More...
 
size_t m_numSCVF
 current number of scvf More...
 
GridObjectm_pElem
 pointer to current element More...
 
ReferenceObjectID m_roid
 current reference object id More...
 
DimReferenceElement< dimm_rRefElem
 current reference element More...
 
SCVF m_vConstrainedSCVF [maxNumSCVF]
 SubControlVolumeFaces for constrained dofs. More...
 
SCV m_vSCV [maxNumSCV]
 SubControlVolumes. More...
 
SCVF m_vSCVF [maxNumSCVF]
 SubControlVolumeFaces. More...
 

Static Private Attributes

static const size_t deleted = 117
 

Detailed Description

template<int TDim, int TWorldDim = TDim>
class ug::DimCRFVGeometry< TDim, TWorldDim >

Geometry and shape functions for 1st order Vertex-Centered Finite Volume with Crouzeix-Raviart elements.

Template Parameters
TDimreference element dim
TWorldDim(physical) world dimension

Member Typedef Documentation

◆ face_type0

template<int TDim, int TWorldDim = TDim>
typedef crfv_traits<TWorldDim,TWorldDim>::face_type ug::DimCRFVGeometry< TDim, TWorldDim >::face_type0

◆ face_type1

template<int TDim, int TWorldDim = TDim>
typedef crfv_traits<TWorldDim,TWorldDim+1>::face_type ug::DimCRFVGeometry< TDim, TWorldDim >::face_type1

◆ htraits

template<int TDim, int TWorldDim = TDim>
typedef hcrfv_traits<TDim, TDim> ug::DimCRFVGeometry< TDim, TWorldDim >::htraits

◆ scv_type0

template<int TDim, int TWorldDim = TDim>
typedef crfv_traits<TWorldDim,TWorldDim>::scv_type ug::DimCRFVGeometry< TDim, TWorldDim >::scv_type0

traits

◆ scv_type1

template<int TDim, int TWorldDim = TDim>
typedef crfv_traits<TWorldDim,TWorldDim+1>::scv_type ug::DimCRFVGeometry< TDim, TWorldDim >::scv_type1

◆ traits

template<int TDim, int TWorldDim = TDim>
typedef crfv_traits<TDim, TDim> ug::DimCRFVGeometry< TDim, TWorldDim >::traits

used traits

Constructor & Destructor Documentation

◆ DimCRFVGeometry()

template<int TDim, int TWorldDim = TDim>
ug::DimCRFVGeometry< TDim, TWorldDim >::DimCRFVGeometry ( )
inline

construct object and initialize local values and sizes

Member Function Documentation

◆ add_boundary_subset()

template<int TDim, int TWorldDim = TDim>
void ug::DimCRFVGeometry< TDim, TWorldDim >::add_boundary_subset ( int  subsetIndex)
inline

add subset that is interpreted as boundary subset.

References ug::DimCRFVGeometry< TDim, TWorldDim >::m_mapVectorBF.

◆ bf() [1/2]

template<int TDim, int TWorldDim = TDim>
const std::vector<BF>& ug::DimCRFVGeometry< TDim, TWorldDim >::bf ( int  subsetIndex) const
inline

returns reference to vector of boundary faces for subsetIndex

References ug::DimCRFVGeometry< TDim, TWorldDim >::m_mapVectorBF, and UG_ASSERT.

◆ bf() [2/2]

template<int TDim, int TWorldDim = TDim>
const BF& ug::DimCRFVGeometry< TDim, TWorldDim >::bf ( int  subsetIndex,
size_t  i 
) const
inline

◆ clear_boundary_subsets()

template<int TDim, int TWorldDim = TDim>
void ug::DimCRFVGeometry< TDim, TWorldDim >::clear_boundary_subsets ( )
inline

reset all boundary subsets

References ug::DimCRFVGeometry< TDim, TWorldDim >::m_mapVectorBF.

◆ constrained_dof()

template<int TDim, int TWorldDim = TDim>
const CONSTRAINED_DOF& ug::DimCRFVGeometry< TDim, TWorldDim >::constrained_dof ( size_t  i) const
inline

◆ global_bary()

template<int TDim, int TWorldDim = TDim>
const MathVector<worldDim> ug::DimCRFVGeometry< TDim, TWorldDim >::global_bary ( ) const
inline

returns global barycenter

References ug::DimCRFVGeometry< TDim, TWorldDim >::globalBary.

◆ local_bary()

template<int TDim, int TWorldDim = TDim>
const MathVector<dim> ug::DimCRFVGeometry< TDim, TWorldDim >::local_bary ( ) const
inline

returns local barycenter

References ug::DimCRFVGeometry< TDim, TWorldDim >::localBary.

◆ num_bf() [1/2]

template<int TDim, int TWorldDim = TDim>
size_t ug::DimCRFVGeometry< TDim, TWorldDim >::num_bf ( ) const
inline

◆ num_bf() [2/2]

template<int TDim, int TWorldDim = TDim>
size_t ug::DimCRFVGeometry< TDim, TWorldDim >::num_bf ( int  subsetIndex) const
inline

number of boundary faces on subset 'subsetIndex'

References ug::DimCRFVGeometry< TDim, TWorldDim >::m_mapVectorBF.

◆ num_boundary_subsets()

template<int TDim, int TWorldDim = TDim>
size_t ug::DimCRFVGeometry< TDim, TWorldDim >::num_boundary_subsets ( )
inline

number of registered boundary subsets

References ug::DimCRFVGeometry< TDim, TWorldDim >::m_mapVectorBF.

◆ num_constrained_dofs()

template<int TDim, int TWorldDim = TDim>
size_t ug::DimCRFVGeometry< TDim, TWorldDim >::num_constrained_dofs ( ) const
inline

number of constrained dofs

References ug::DimCRFVGeometry< TDim, TWorldDim >::m_numConstrainedDofs.

◆ num_constrained_scvf()

template<int TDim, int TWorldDim = TDim>
size_t ug::DimCRFVGeometry< TDim, TWorldDim >::num_constrained_scvf ( )
inline

number of constrained dof scvfs

References ug::DimCRFVGeometry< TDim, TWorldDim >::m_numConstrainedSCVF.

◆ num_scv()

template<int TDim, int TWorldDim = TDim>
size_t ug::DimCRFVGeometry< TDim, TWorldDim >::num_scv ( ) const
inline

◆ num_scv_ips()

template<int TDim, int TWorldDim = TDim>
size_t ug::DimCRFVGeometry< TDim, TWorldDim >::num_scv_ips ( ) const
inline

returns number of all scv ips

References ug::DimCRFVGeometry< TDim, TWorldDim >::m_numSCV.

◆ num_scvf()

template<int TDim, int TWorldDim = TDim>
size_t ug::DimCRFVGeometry< TDim, TWorldDim >::num_scvf ( ) const
inline

◆ num_scvf_ips()

template<int TDim, int TWorldDim = TDim>
size_t ug::DimCRFVGeometry< TDim, TWorldDim >::num_scvf_ips ( ) const
inline

returns number of all scvf ips

References ug::DimCRFVGeometry< TDim, TWorldDim >::m_numSCVF.

◆ num_sh()

template<int TDim, int TWorldDim = TDim>
size_t ug::DimCRFVGeometry< TDim, TWorldDim >::num_sh ( ) const
inline

number of shape functions

References ug::DimCRFVGeometry< TDim, TWorldDim >::m_nsh.

◆ remove_boundary_subset()

template<int TDim, int TWorldDim = TDim>
void ug::DimCRFVGeometry< TDim, TWorldDim >::remove_boundary_subset ( int  subsetIndex)
inline

removes subset that is interpreted as boundary subset.

References ug::DimCRFVGeometry< TDim, TWorldDim >::m_mapVectorBF.

◆ scv()

template<int TDim, int TWorldDim = TDim>
const SCV& ug::DimCRFVGeometry< TDim, TWorldDim >::scv ( size_t  i) const
inline

◆ scv_global_ips()

template<int TDim, int TWorldDim = TDim>
const MathVector<worldDim>* ug::DimCRFVGeometry< TDim, TWorldDim >::scv_global_ips ( ) const
inline

returns all ips of scv as they appear in scv loop

References ug::DimCRFVGeometry< TDim, TWorldDim >::m_vGlobUnkCoords.

◆ scv_local_ips()

template<int TDim, int TWorldDim = TDim>
const MathVector<dim>* ug::DimCRFVGeometry< TDim, TWorldDim >::scv_local_ips ( ) const
inline

returns all ips of scv as they appear in scv loop

References ug::DimCRFVGeometry< TDim, TWorldDim >::m_vLocUnkCoords.

◆ scvf()

template<int TDim, int TWorldDim = TDim>
const SCVF& ug::DimCRFVGeometry< TDim, TWorldDim >::scvf ( size_t  i) const
inline

◆ scvf_global_ips()

template<int TDim, int TWorldDim = TDim>
const MathVector<worldDim>* ug::DimCRFVGeometry< TDim, TWorldDim >::scvf_global_ips ( ) const
inline

returns all ips of scvf as they appear in scv loop

References ug::DimCRFVGeometry< TDim, TWorldDim >::m_vGlobSCVF_IP.

◆ scvf_local_ips()

template<int TDim, int TWorldDim = TDim>
const MathVector<dim>* ug::DimCRFVGeometry< TDim, TWorldDim >::scvf_local_ips ( ) const
inline

returns all ips of scvf as they appear in scv loop

References ug::DimCRFVGeometry< TDim, TWorldDim >::m_vLocSCVF_IP.

◆ update()

◆ update_boundary_faces()

template<int TDim, int TWorldDim>
void ug::DimCRFVGeometry< TDim, TWorldDim >::update_boundary_faces ( GridObject elem,
const MathVector< worldDim > *  vCornerCoords,
const ISubsetHandler ish = NULL 
)

◆ update_geometric_data()

template<int TDim, int TWorldDim>
void ug::DimCRFVGeometry< TDim, TWorldDim >::update_geometric_data ( GridObject elem,
const MathVector< worldDim > *  vCornerCoords,
const ISubsetHandler ish = NULL 
)

update data for given element

update geometric data for given element (no shapes)

References ug::AveragePositions(), dim, ug::ReferenceElement::id(), ug::ReferenceElement::num(), ug::GridObject::reference_object_id(), and UG_CATCH_THROW.

◆ update_hanging()

◆ update_local_data()

Member Data Documentation

◆ cornerCoord

template<int TDim, int TWorldDim = TDim>
MathVector<dim> ug::DimCRFVGeometry< TDim, TWorldDim >::cornerCoord[maxNumCo]
private

◆ deleted

template<int TDim, int TWorldDim = TDim>
const size_t ug::DimCRFVGeometry< TDim, TWorldDim >::deleted = 117
staticprivate

◆ dim

template<int TDim, int TWorldDim = TDim>
const int ug::DimCRFVGeometry< TDim, TWorldDim >::dim = TDim
static

dimension of reference element

◆ globalBary

template<int TDim, int TWorldDim = TDim>
MathVector<worldDim> ug::DimCRFVGeometry< TDim, TWorldDim >::globalBary

◆ handledEdges

template<int TDim, int TWorldDim = TDim>
std::vector<HandledEdge> ug::DimCRFVGeometry< TDim, TWorldDim >::handledEdges
protected

◆ localBary

template<int TDim, int TWorldDim = TDim>
MathVector<dim> ug::DimCRFVGeometry< TDim, TWorldDim >::localBary

◆ m_ipCoord

template<int TDim, int TWorldDim = TDim>
MathVector<dim> ug::DimCRFVGeometry< TDim, TWorldDim >::m_ipCoord[maxNumSCVF]
private

◆ m_mapVectorBF

◆ m_nsh

template<int TDim, int TWorldDim = TDim>
size_t ug::DimCRFVGeometry< TDim, TWorldDim >::m_nsh
private

current number of shape functions

Referenced by ug::DimCRFVGeometry< TDim, TWorldDim >::num_sh().

◆ m_numConstrainedDofs

template<int TDim, int TWorldDim = TDim>
size_t ug::DimCRFVGeometry< TDim, TWorldDim >::m_numConstrainedDofs
private

◆ m_numConstrainedSCVF

template<int TDim, int TWorldDim = TDim>
size_t ug::DimCRFVGeometry< TDim, TWorldDim >::m_numConstrainedSCVF
private

◆ m_numDofs

template<int TDim, int TWorldDim = TDim>
size_t ug::DimCRFVGeometry< TDim, TWorldDim >::m_numDofs
private

numDofs number of all dofs including constraining and constrained dofs

◆ m_numSCV

template<int TDim, int TWorldDim = TDim>
size_t ug::DimCRFVGeometry< TDim, TWorldDim >::m_numSCV
private

◆ m_numSCVF

template<int TDim, int TWorldDim = TDim>
size_t ug::DimCRFVGeometry< TDim, TWorldDim >::m_numSCVF
private

◆ m_pElem

template<int TDim, int TWorldDim = TDim>
GridObject* ug::DimCRFVGeometry< TDim, TWorldDim >::m_pElem
private

pointer to current element

◆ m_roid

template<int TDim, int TWorldDim = TDim>
ReferenceObjectID ug::DimCRFVGeometry< TDim, TWorldDim >::m_roid
private

current reference object id

◆ m_rRefElem

template<int TDim, int TWorldDim = TDim>
DimReferenceElement<dim> ug::DimCRFVGeometry< TDim, TWorldDim >::m_rRefElem
private

current reference element

◆ m_vCD

template<int TDim, int TWorldDim = TDim>
CONSTRAINED_DOF ug::DimCRFVGeometry< TDim, TWorldDim >::m_vCD[maxNumSCV]
protected

◆ m_vConstrainedSCVF

template<int TDim, int TWorldDim = TDim>
SCVF ug::DimCRFVGeometry< TDim, TWorldDim >::m_vConstrainedSCVF[maxNumSCVF]
private

SubControlVolumeFaces for constrained dofs.

◆ m_vGlobSCVF_IP

template<int TDim, int TWorldDim = TDim>
MathVector<worldDim> ug::DimCRFVGeometry< TDim, TWorldDim >::m_vGlobSCVF_IP[maxNumSCVF]
protected

◆ m_vGlobUnkCoords

template<int TDim, int TWorldDim = TDim>
MathVector<worldDim> ug::DimCRFVGeometry< TDim, TWorldDim >::m_vGlobUnkCoords[maxNumSCV]
protected

◆ m_vLocSCVF_IP

template<int TDim, int TWorldDim = TDim>
MathVector<dim> ug::DimCRFVGeometry< TDim, TWorldDim >::m_vLocSCVF_IP[maxNumSCVF]
protected

◆ m_vLocUnkCoords

template<int TDim, int TWorldDim = TDim>
MathVector<dim> ug::DimCRFVGeometry< TDim, TWorldDim >::m_vLocUnkCoords[maxNumSCV]
protected

◆ m_vSCV

template<int TDim, int TWorldDim = TDim>
SCV ug::DimCRFVGeometry< TDim, TWorldDim >::m_vSCV[maxNumSCV]
private

SubControlVolumes.

Referenced by ug::DimCRFVGeometry< TDim, TWorldDim >::scv().

◆ m_vSCVF

template<int TDim, int TWorldDim = TDim>
SCVF ug::DimCRFVGeometry< TDim, TWorldDim >::m_vSCVF[maxNumSCVF]
private

SubControlVolumeFaces.

Referenced by ug::DimCRFVGeometry< TDim, TWorldDim >::scvf().

◆ maxNSH

template<int TDim, int TWorldDim = TDim>
const size_t ug::DimCRFVGeometry< TDim, TWorldDim >::maxNSH = htraits::maxNSH
static

max number of shape functions

◆ maxNumCo

template<int TDim, int TWorldDim = TDim>
const size_t ug::DimCRFVGeometry< TDim, TWorldDim >::maxNumCo = traits::maxNumCo
static

◆ maxNumSCV

template<int TDim, int TWorldDim = TDim>
const size_t ug::DimCRFVGeometry< TDim, TWorldDim >::maxNumSCV = htraits::maxNumSCV
static

number of SubControlVolumes

◆ maxNumSCVF

template<int TDim, int TWorldDim = TDim>
const size_t ug::DimCRFVGeometry< TDim, TWorldDim >::maxNumSCVF = htraits::maxNumSCVF
static

max number of SubControlVolumeFaces

◆ nip

template<int TDim, int TWorldDim = TDim>
const size_t ug::DimCRFVGeometry< TDim, TWorldDim >::nip = 1
static

◆ order

template<int TDim, int TWorldDim = TDim>
const int ug::DimCRFVGeometry< TDim, TWorldDim >::order = 1
static

order

◆ staticLocalData

template<int TDim, int TWorldDim = TDim>
const bool ug::DimCRFVGeometry< TDim, TWorldDim >::staticLocalData = false
static

flag indicating if local data may change

◆ usesHangingNodes

template<int TDim, int TWorldDim = TDim>
const bool ug::DimCRFVGeometry< TDim, TWorldDim >::usesHangingNodes = false
static

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

◆ worldDim

template<int TDim, int TWorldDim = TDim>
const int ug::DimCRFVGeometry< TDim, TWorldDim >::worldDim = TWorldDim
static

dimension of world


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