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

Geometry and shape functions for 1st order Vertex-Centered Finite Volume with the hanging nodes. More...

#include <hfv1_geom.h>

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

Classes

struct  MidID
 
struct  NatEdgeInfo
 
struct  NewEdgeInfo
 
class  SCV
 
class  SCVF
 

Public Member Functions

GridObjectelem () const
 get the element More...
 
const MathVector< worldDim > & global_node_position (size_t nodeID) const
 return global coords for node ID More...
 
 HFV1Geometry ()
 constructor More...
 
const MathVector< dim > & local_node_position (size_t nodeID) const
 return local coords for node ID 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 scv ips More...
 
size_t num_sh () const
 number of shape functions More...
 
void print ()
 
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 scv as they appear in scv loop More...
 
const MathVector< dim > * scvf_local_ips () const
 returns all ips of scv as they appear in scv loop More...
 
void update (GridObject *pElem, const MathVector< worldDim > *vCornerCoords, const ISubsetHandler *ish=NULL)
 update values for an element More...
 

Static Public Attributes

static const int dim = ref_elem_type::dim
 dimension of reference element More...
 
static const bool staticLocalData = true
 flag indicating if local data may change More...
 
static const bool usesHangingNodes = true
 Hanging node flag: this Geometry does support hanging nodes. More...
 
static const int worldDim = TWorldDim
 dimension of world More...
 

Protected Member Functions

void compute_side_midpoints (size_t i, MathVector< dim > &locSideMid, MathVector< worldDim > &gloSideMid)
 
void compute_side_midpoints (size_t i, size_t j, size_t k, MathVector< dim > &locSideMid, MathVector< worldDim > &gloSideMid)
 
void compute_side_midpoints (size_t i, size_t j, size_t k, size_t l, MathVector< dim > &locSideMid, MathVector< worldDim > &gloSideMid)
 
void copy_global_corners (SCV &scv)
 
void copy_global_corners (SCVF &scvf)
 
void copy_local_corners (SCV &scv)
 
void copy_local_corners (SCVF &scvf)
 
size_t get_child_edge_of_corner (size_t i, size_t co)
 

Protected Attributes

std::vector< MathVector< worldDim > > m_vGlobSCVFIP
 
std::vector< MathVector< worldDim > > m_vGlobSCVIP
 
std::vector< MathVector< dim > > m_vLocSCVFIP
 
std::vector< MathVector< dim > > m_vLocSCVIP
 

Private Types

typedef reference_element_traits< TElem >::reference_element_type ref_elem_type
 type of reference element More...
 

Private Attributes

std::vector< MathVector< worldDim > > m_gloMid [dim+1]
 
std::vector< MathVector< dim > > m_locMid [dim+1]
 
size_t m_numSh
 
GridObjectm_pElem
 
ReferenceMapping< ref_elem_type, worldDimm_rMapping
 
const ref_elem_typem_rRefElem
 
std::vector< NatEdgeInfom_vNatEdgeInfo
 
std::vector< NewEdgeInfom_vNewEdgeInfo
 
std::vector< SCVm_vSCV
 
std::vector< SCVFm_vSCVF
 

Static Private Attributes

static const size_t m_numNaturalSCV = ref_elem_type::numCorners
 number of SubControlVolumes More...
 
static const size_t m_numNaturalSCVF = ref_elem_type::numEdges
 number of SubControlVolumeFaces More...
 

Detailed Description

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

Geometry and shape functions for 1st order Vertex-Centered Finite Volume with the hanging nodes.

Template Parameters
TElemElement type
TWorldDim(physical) world dimension

Member Typedef Documentation

◆ ref_elem_type

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

type of reference element

Constructor & Destructor Documentation

◆ HFV1Geometry()

Member Function Documentation

◆ compute_side_midpoints() [1/3]

template<typename TElem , int TWorldDim>
void ug::HFV1Geometry< TElem, TWorldDim >::compute_side_midpoints ( size_t  i,
MathVector< dim > &  locSideMid,
MathVector< worldDim > &  gloSideMid 
)
inlineprotected

◆ compute_side_midpoints() [2/3]

template<typename TElem , int TWorldDim>
void ug::HFV1Geometry< TElem, TWorldDim >::compute_side_midpoints ( size_t  i,
size_t  j,
size_t  k,
MathVector< dim > &  locSideMid,
MathVector< worldDim > &  gloSideMid 
)
inlineprotected

◆ compute_side_midpoints() [3/3]

template<typename TElem , int TWorldDim>
void ug::HFV1Geometry< TElem, TWorldDim >::compute_side_midpoints ( size_t  i,
size_t  j,
size_t  k,
size_t  l,
MathVector< dim > &  locSideMid,
MathVector< worldDim > &  gloSideMid 
)
inlineprotected

◆ copy_global_corners() [1/2]

◆ copy_global_corners() [2/2]

◆ copy_local_corners() [1/2]

◆ copy_local_corners() [2/2]

◆ elem()

template<typename TElem , int TWorldDim>
GridObject* ug::HFV1Geometry< TElem, TWorldDim >::elem ( ) const
inline

get the element

References ug::HFV1Geometry< TElem, TWorldDim >::m_pElem.

◆ get_child_edge_of_corner()

template<typename TElem , int TWorldDim>
size_t ug::HFV1Geometry< TElem, TWorldDim >::get_child_edge_of_corner ( size_t  i,
size_t  co 
)
inlineprotected

◆ global_node_position()

template<typename TElem , int TWorldDim>
const MathVector<worldDim>& ug::HFV1Geometry< TElem, TWorldDim >::global_node_position ( size_t  nodeID) const
inline

return global coords for node ID

References ug::HFV1Geometry< TElem, TWorldDim >::m_gloMid, and UG_ASSERT.

◆ local_node_position()

template<typename TElem , int TWorldDim>
const MathVector<dim>& ug::HFV1Geometry< TElem, TWorldDim >::local_node_position ( size_t  nodeID) const
inline

return local coords for node ID

References ug::HFV1Geometry< TElem, TWorldDim >::m_locMid, and UG_ASSERT.

◆ num_scv()

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

number of SubControlVolumes

References ug::HFV1Geometry< TElem, TWorldDim >::m_vSCV.

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

◆ num_scv_ips()

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

returns number of all scv ips

References ug::HFV1Geometry< TElem, TWorldDim >::m_vGlobSCVIP.

◆ num_scvf()

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

number of SubControlVolumeFaces

References ug::HFV1Geometry< TElem, TWorldDim >::m_vSCVF.

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

◆ num_scvf_ips()

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

returns number of all scv ips

References ug::HFV1Geometry< TElem, TWorldDim >::m_vGlobSCVFIP.

◆ num_sh()

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

number of shape functions

References ug::HFV1Geometry< TElem, TWorldDim >::m_numSh.

◆ print()

template<typename TElem , int TWorldDim>
void ug::HFV1Geometry< TElem, TWorldDim >::print

References UG_LOG.

◆ scv()

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

◆ scv_global_ips()

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

returns all ips of scv as they appear in scv loop

References ug::HFV1Geometry< TElem, TWorldDim >::m_vGlobSCVIP.

◆ scv_local_ips()

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

returns all ips of scv as they appear in scv loop

References ug::HFV1Geometry< TElem, TWorldDim >::m_vLocSCVIP.

◆ scvf()

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

◆ scvf_global_ips()

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

returns all ips of scv as they appear in scv loop

References ug::HFV1Geometry< TElem, TWorldDim >::m_vGlobSCVFIP.

◆ scvf_local_ips()

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

returns all ips of scv as they appear in scv loop

References ug::HFV1Geometry< TElem, TWorldDim >::m_vLocSCVFIP.

◆ update()

Member Data Documentation

◆ dim

◆ m_gloMid

◆ m_locMid

◆ m_numNaturalSCV

template<typename TElem , int TWorldDim>
const size_t ug::HFV1Geometry< TElem, TWorldDim >::m_numNaturalSCV = ref_elem_type::numCorners
staticprivate

number of SubControlVolumes

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

◆ m_numNaturalSCVF

template<typename TElem , int TWorldDim>
const size_t ug::HFV1Geometry< TElem, TWorldDim >::m_numNaturalSCVF = ref_elem_type::numEdges
staticprivate

number of SubControlVolumeFaces

◆ m_numSh

template<typename TElem , int TWorldDim>
size_t ug::HFV1Geometry< TElem, TWorldDim >::m_numSh
private

◆ m_pElem

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

◆ m_rMapping

template<typename TElem , int TWorldDim>
ReferenceMapping<ref_elem_type, worldDim> ug::HFV1Geometry< TElem, TWorldDim >::m_rMapping
private

◆ m_rRefElem

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

◆ m_vGlobSCVFIP

template<typename TElem , int TWorldDim>
std::vector<MathVector<worldDim> > ug::HFV1Geometry< TElem, TWorldDim >::m_vGlobSCVFIP
protected

◆ m_vGlobSCVIP

template<typename TElem , int TWorldDim>
std::vector<MathVector<worldDim> > ug::HFV1Geometry< TElem, TWorldDim >::m_vGlobSCVIP
protected

◆ m_vLocSCVFIP

template<typename TElem , int TWorldDim>
std::vector<MathVector<dim> > ug::HFV1Geometry< TElem, TWorldDim >::m_vLocSCVFIP
protected

◆ m_vLocSCVIP

template<typename TElem , int TWorldDim>
std::vector<MathVector<dim> > ug::HFV1Geometry< TElem, TWorldDim >::m_vLocSCVIP
protected

◆ m_vNatEdgeInfo

template<typename TElem , int TWorldDim>
std::vector<NatEdgeInfo> ug::HFV1Geometry< TElem, TWorldDim >::m_vNatEdgeInfo
private

◆ m_vNewEdgeInfo

template<typename TElem , int TWorldDim>
std::vector<NewEdgeInfo> ug::HFV1Geometry< TElem, TWorldDim >::m_vNewEdgeInfo
private

◆ m_vSCV

template<typename TElem , int TWorldDim>
std::vector<SCV> ug::HFV1Geometry< TElem, TWorldDim >::m_vSCV
private

◆ m_vSCVF

template<typename TElem , int TWorldDim>
std::vector<SCVF> ug::HFV1Geometry< TElem, TWorldDim >::m_vSCVF
private

◆ staticLocalData

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

flag indicating if local data may change

◆ usesHangingNodes

template<typename TElem , int TWorldDim>
const bool ug::HFV1Geometry< TElem, TWorldDim >::usesHangingNodes = true
static

Hanging node flag: this Geometry does support hanging nodes.

◆ worldDim

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

dimension of world


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