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

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

#include <fv1_geom.h>

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

Classes

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

Public Types

typedef traits::scv_type scv_type
 type of SubControlVolume More...
 
typedef fv1_dim_traits< TDim, TWorldDim > 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 si) const
 returns reference to vector of boundary faces for subsetIndex More...
 
const BFbf (int si, size_t i) const
 returns the boundary face i for subsetIndex More...
 
void clear_boundary_subsets ()
 reset all boundary subsets More...
 
const MathVector< worldDim > * coe_global () const
 returns the global coordinates of the center of mass of the element More...
 
const MathVector< dim > * coe_local () const
 returns the local coordinates of the center of mass of the element More...
 
const MathVector< worldDim > * corners () const
 get vector of corners for current element More...
 
 DimFV1Geometry ()
 construct object and initialize local values and sizes More...
 
GridObjectelem () const
 get the element More...
 
const MathVector< worldDim > & global_node_position (size_t nodeID) const
 return global coords for node ID More...
 
const MathVector< dim > & local_node_position (size_t nodeID) const
 return local coords for node ID More...
 
size_t num_bf () const
 number of all boundary faces More...
 
size_t num_bf (int si) const
 number of boundary faces on subset 'subsetIndex' More...
 
size_t num_boundary_subsets ()
 number of registered boundary subsets 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...
 
ReferenceObjectID roid () const
 returns reference object id 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 (ReferenceObjectID roid)
 update local data More...
 

Static Public Attributes

static const int dim = TDim
 dimension of reference element More...
 
static const size_t maxNSH = traits::maxNSH
 max number of shape functions More...
 
static const size_t maxNumSCV = traits::maxNumSCV
 number of SubControlVolumes More...
 
static const size_t maxNumSCVF = traits::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::map< int, std::vector< BF > > m_mapVectorBF
 
std::vector< BFm_vEmptyVectorBF
 
MathVector< worldDimm_vGlobSCV_IP [maxNumSCV]
 
MathVector< worldDimm_vGlobSCVF_IP [maxNumSCVF]
 
MathVector< dimm_vLocSCV_IP [maxNumSCV]
 
MathVector< dimm_vLocSCVF_IP [maxNumSCVF]
 

Private Attributes

size_t m_nsh
 current number of shape functions 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...
 
SCV m_vSCV [maxNumSCV]
 SubControlVolumes. More...
 
SCVF m_vSCVF [maxNumSCVF]
 SubControlVolumeFaces. More...
 
MathVector< worldDimm_vvGloMid [dim+1][maxMid]
 
MathVector< dimm_vvLocMid [dim+1][maxMid]
 local and global geom object midpoints for each dimension More...
 

Static Private Attributes

static const int maxMid = maxNumSCVF + 1
 max number of geometric objects in a dimension More...
 

Detailed Description

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

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

Template Parameters
TDimreference element dim
TWorldDim(physical) world dimension

Member Typedef Documentation

◆ scv_type

template<int TDim, int TWorldDim = TDim>
typedef traits::scv_type ug::DimFV1Geometry< TDim, TWorldDim >::scv_type

type of SubControlVolume

◆ traits

template<int TDim, int TWorldDim = TDim>
typedef fv1_dim_traits<TDim, TWorldDim> ug::DimFV1Geometry< TDim, TWorldDim >::traits

used traits

Constructor & Destructor Documentation

◆ DimFV1Geometry()

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

construct object and initialize local values and sizes

Member Function Documentation

◆ add_boundary_subset()

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

◆ bf() [1/2]

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

returns reference to vector of boundary faces for subsetIndex

References ug::DimFV1Geometry< TDim, TWorldDim >::m_mapVectorBF, and ug::DimFV1Geometry< TDim, TWorldDim >::m_vEmptyVectorBF.

◆ bf() [2/2]

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

◆ clear_boundary_subsets()

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

reset all boundary subsets

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

◆ coe_global()

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

returns the global coordinates of the center of mass of the element

References ug::DimFV1Geometry< TDim, TWorldDim >::dim, and ug::DimFV1Geometry< TDim, TWorldDim >::m_vvGloMid.

◆ coe_local()

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

returns the local coordinates of the center of mass of the element

References ug::DimFV1Geometry< TDim, TWorldDim >::dim, and ug::DimFV1Geometry< TDim, TWorldDim >::m_vvLocMid.

◆ corners()

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

get vector of corners for current element

References ug::DimFV1Geometry< TDim, TWorldDim >::m_vvGloMid.

◆ elem()

template<int TDim, int TWorldDim = TDim>
GridObject* ug::DimFV1Geometry< TDim, TWorldDim >::elem ( ) const
inline

◆ global_node_position()

template<int TDim, int TWorldDim = TDim>
const MathVector<worldDim>& ug::DimFV1Geometry< TDim, TWorldDim >::global_node_position ( size_t  nodeID) const
inline

◆ local_node_position()

template<int TDim, int TWorldDim = TDim>
const MathVector<dim>& ug::DimFV1Geometry< TDim, TWorldDim >::local_node_position ( size_t  nodeID) const
inline

◆ num_bf() [1/2]

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

number of all boundary faces

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

◆ num_bf() [2/2]

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

number of boundary faces on subset 'subsetIndex'

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

◆ num_boundary_subsets()

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

number of registered boundary subsets

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

◆ num_scv()

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

◆ num_scv_ips()

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

returns number of all scv ips

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

◆ num_scvf()

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

number of SubControlVolumeFaces

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

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

◆ num_scvf_ips()

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

returns number of all scvf ips

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

◆ num_sh()

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

number of shape functions

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

◆ remove_boundary_subset()

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

removes subset that is interpreted as boundary subset.

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

◆ roid()

template<int TDim, int TWorldDim = TDim>
ReferenceObjectID ug::DimFV1Geometry< TDim, TWorldDim >::roid ( ) const
inline

returns reference object id

References ug::DimFV1Geometry< TDim, TWorldDim >::m_roid.

◆ scv()

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

◆ scv_global_ips()

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

◆ scv_local_ips()

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

◆ scvf()

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

◆ scvf_global_ips()

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

returns all ips of scvf as they appear in scv loop

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

◆ scvf_local_ips()

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

returns all ips of scvf as they appear in scv loop

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

◆ update()

◆ update_boundary_faces()

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

◆ update_local()

Member Data Documentation

◆ dim

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

◆ m_mapVectorBF

◆ m_nsh

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

current number of shape functions

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

◆ m_numSCV

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

◆ m_numSCVF

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

◆ m_pElem

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

pointer to current element

Referenced by ug::DimFV1Geometry< TDim, TWorldDim >::elem().

◆ m_roid

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

◆ m_vEmptyVectorBF

template<int TDim, int TWorldDim = TDim>
std::vector<BF> ug::DimFV1Geometry< TDim, TWorldDim >::m_vEmptyVectorBF
protected

◆ m_vGlobSCV_IP

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

◆ m_vGlobSCVF_IP

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

◆ m_vLocSCV_IP

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

◆ m_vLocSCVF_IP

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

◆ m_vSCV

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

SubControlVolumes.

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

◆ m_vSCVF

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

SubControlVolumeFaces.

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

◆ m_vvGloMid

◆ m_vvLocMid

template<int TDim, int TWorldDim = TDim>
MathVector<dim> ug::DimFV1Geometry< TDim, TWorldDim >::m_vvLocMid[dim+1][maxMid]
private

◆ maxMid

template<int TDim, int TWorldDim = TDim>
const int ug::DimFV1Geometry< TDim, TWorldDim >::maxMid = maxNumSCVF + 1
staticprivate

◆ maxNSH

template<int TDim, int TWorldDim = TDim>
const size_t ug::DimFV1Geometry< TDim, TWorldDim >::maxNSH = traits::maxNSH
static

max number of shape functions

◆ maxNumSCV

template<int TDim, int TWorldDim = TDim>
const size_t ug::DimFV1Geometry< TDim, TWorldDim >::maxNumSCV = traits::maxNumSCV
static

number of SubControlVolumes

◆ maxNumSCVF

template<int TDim, int TWorldDim = TDim>
const size_t ug::DimFV1Geometry< TDim, TWorldDim >::maxNumSCVF = traits::maxNumSCVF
static

max number of SubControlVolumeFaces

◆ nip

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

◆ order

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

order

◆ staticLocalData

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

flag indicating if local data may change

◆ usesHangingNodes

template<int TDim, int TWorldDim = TDim>
const bool ug::DimFV1Geometry< 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::DimFV1Geometry< TDim, TWorldDim >::worldDim = TWorldDim
static

dimension of world


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