ug4
ug::FEGeometry< TElem, TWorldDim, TTrialSpace, TQuadratureRule > Class Template Reference

#include <fe_geom.h>

Public Types

typedef TQuadratureRule quad_rule_type
 type of quadrature rule More...
 
typedef reference_element_traits< TElem >::reference_element_type ref_elem_type
 type of reference element More...
 
typedef TTrialSpace trial_space_type
 type of trial space More...
 

Public Member Functions

 FEGeometry ()
 Constructor. More...
 
const MathVector< worldDim > & global_grad (size_t ip, size_t sh) const
 global gradient at ip More...
 
const MathVector< worldDim > & global_ip (size_t ip) const
 global integration point More...
 
const MathVector< worldDim > * global_ips () const
 global integration point More...
 
const MathVector< dim > & local_grad (size_t ip, size_t sh) const
 local gradient at ip More...
 
const MathVector< dim > & local_ip (size_t ip) const
 local integration point More...
 
const MathVector< dim > * local_ips () const
 local integration point More...
 
size_t num_ip () const
 number of integration points More...
 
size_t num_sh () const
 number of shape functions More...
 
number shape (size_t ip, size_t sh) const
 shape function at ip More...
 
void update (GridObject *pElem, const MathVector< worldDim > *vCorner)
 update Geometry for corners More...
 
void update (GridObject *pElem, const MathVector< worldDim > *vCorner, const LFEID &lfeID)
 
void update (GridObject *pElem, const MathVector< worldDim > *vCorner, const LFEID &lfeID, size_t orderQuad)
 update Geometry for corners More...
 
void update_local (ReferenceObjectID roid, const LFEID &lfeID)
 
void update_local (ReferenceObjectID roid, const LFEID &lfeID, size_t orderQuad)
 update Geometry for roid More...
 
number weight (size_t ip) const
 weight for integration point More...
 

Static Public Attributes

static const int dim = ref_elem_type::dim
 reference element dimension More...
 
static const size_t nip = quad_rule_type::nip
 number of integration points More...
 
static const size_t nsh = trial_space_type::nsh
 number of shape functions More...
 
static const bool staticLocalData = true
 flag indicating if local data may change More...
 
static const int worldDim = TWorldDim
 world dimension More...
 

Protected Attributes

ReferenceMapping< ref_elem_type, worldDimm_mapping
 reference mapping More...
 
TElem * m_pElem
 current element More...
 
const quad_rule_typem_rQuadRule
 Quadrature rule. More...
 
const trial_space_typem_rTrialSpace
 Quadrature rule. More...
 
number m_vDetJ [nip]
 determinate of transformation at ip More...
 
MathVector< worldDimm_vIPGlobal [nip]
 global integration points More...
 
MathMatrix< worldDim, dimm_vJTInv [nip]
 jacobian of transformation at ip More...
 
MathVector< worldDimm_vvGradGlobal [nip][nsh]
 local gradient evaluated at ip More...
 
MathVector< dimm_vvGradLocal [nip][nsh]
 global gradient evaluated at ip More...
 
number m_vvShape [nip][nsh]
 shape functions evaluated at ip More...
 

Member Typedef Documentation

◆ quad_rule_type

template<typename TElem , int TWorldDim, typename TTrialSpace , typename TQuadratureRule >
typedef TQuadratureRule ug::FEGeometry< TElem, TWorldDim, TTrialSpace, TQuadratureRule >::quad_rule_type

type of quadrature rule

◆ ref_elem_type

template<typename TElem , int TWorldDim, typename TTrialSpace , typename TQuadratureRule >
typedef reference_element_traits<TElem>::reference_element_type ug::FEGeometry< TElem, TWorldDim, TTrialSpace, TQuadratureRule >::ref_elem_type

type of reference element

◆ trial_space_type

template<typename TElem , int TWorldDim, typename TTrialSpace , typename TQuadratureRule >
typedef TTrialSpace ug::FEGeometry< TElem, TWorldDim, TTrialSpace, TQuadratureRule >::trial_space_type

type of trial space

Constructor & Destructor Documentation

◆ FEGeometry()

Member Function Documentation

◆ global_grad()

template<typename TElem , int TWorldDim, typename TTrialSpace , typename TQuadratureRule >
const MathVector<worldDim>& ug::FEGeometry< TElem, TWorldDim, TTrialSpace, TQuadratureRule >::global_grad ( size_t  ip,
size_t  sh 
) const
inline

◆ global_ip()

template<typename TElem , int TWorldDim, typename TTrialSpace , typename TQuadratureRule >
const MathVector<worldDim>& ug::FEGeometry< TElem, TWorldDim, TTrialSpace, TQuadratureRule >::global_ip ( size_t  ip) const
inline

◆ global_ips()

template<typename TElem , int TWorldDim, typename TTrialSpace , typename TQuadratureRule >
const MathVector<worldDim>* ug::FEGeometry< TElem, TWorldDim, TTrialSpace, TQuadratureRule >::global_ips ( ) const
inline

◆ local_grad()

template<typename TElem , int TWorldDim, typename TTrialSpace , typename TQuadratureRule >
const MathVector<dim>& ug::FEGeometry< TElem, TWorldDim, TTrialSpace, TQuadratureRule >::local_grad ( size_t  ip,
size_t  sh 
) const
inline

◆ local_ip()

template<typename TElem , int TWorldDim, typename TTrialSpace , typename TQuadratureRule >
const MathVector<dim>& ug::FEGeometry< TElem, TWorldDim, TTrialSpace, TQuadratureRule >::local_ip ( size_t  ip) const
inline

◆ local_ips()

template<typename TElem , int TWorldDim, typename TTrialSpace , typename TQuadratureRule >
const MathVector<dim>* ug::FEGeometry< TElem, TWorldDim, TTrialSpace, TQuadratureRule >::local_ips ( ) const
inline

◆ num_ip()

template<typename TElem , int TWorldDim, typename TTrialSpace , typename TQuadratureRule >
size_t ug::FEGeometry< TElem, TWorldDim, TTrialSpace, TQuadratureRule >::num_ip ( ) const
inline

◆ num_sh()

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

◆ shape()

template<typename TElem , int TWorldDim, typename TTrialSpace , typename TQuadratureRule >
number ug::FEGeometry< TElem, TWorldDim, TTrialSpace, TQuadratureRule >::shape ( size_t  ip,
size_t  sh 
) const
inline

◆ update() [1/3]

template<typename TElem , int TWorldDim, typename TTrialSpace , typename TQuadratureRule >
void ug::FEGeometry< TElem, TWorldDim, TTrialSpace, TQuadratureRule >::update ( GridObject pElem,
const MathVector< worldDim > *  vCorner 
)
inline

◆ update() [2/3]

template<typename TElem , int TWorldDim, typename TTrialSpace , typename TQuadratureRule >
void ug::FEGeometry< TElem, TWorldDim, TTrialSpace, TQuadratureRule >::update ( GridObject pElem,
const MathVector< worldDim > *  vCorner,
const LFEID lfeID 
)
inline

◆ update() [3/3]

template<typename TElem , int TWorldDim, typename TTrialSpace , typename TQuadratureRule >
void ug::FEGeometry< TElem, TWorldDim, TTrialSpace, TQuadratureRule >::update ( GridObject pElem,
const MathVector< worldDim > *  vCorner,
const LFEID lfeID,
size_t  orderQuad 
)

update Geometry for corners

References ug::MatVecMult(), and UG_ASSERT.

◆ update_local() [1/2]

template<typename TElem , int TWorldDim, typename TTrialSpace , typename TQuadratureRule >
void ug::FEGeometry< TElem, TWorldDim, TTrialSpace, TQuadratureRule >::update_local ( ReferenceObjectID  roid,
const LFEID lfeID 
)
inline

◆ update_local() [2/2]

template<typename TElem , int TWorldDim, typename TTrialSpace , typename TQuadratureRule >
void ug::FEGeometry< TElem, TWorldDim, TTrialSpace, TQuadratureRule >::update_local ( ReferenceObjectID  roid,
const LFEID lfeID,
size_t  orderQuad 
)

◆ weight()

template<typename TElem , int TWorldDim, typename TTrialSpace , typename TQuadratureRule >
number ug::FEGeometry< TElem, TWorldDim, TTrialSpace, TQuadratureRule >::weight ( size_t  ip) const
inline

Member Data Documentation

◆ dim

template<typename TElem , int TWorldDim, typename TTrialSpace , typename TQuadratureRule >
const int ug::FEGeometry< TElem, TWorldDim, TTrialSpace, TQuadratureRule >::dim = ref_elem_type::dim
static

reference element dimension

◆ m_mapping

template<typename TElem , int TWorldDim, typename TTrialSpace , typename TQuadratureRule >
ReferenceMapping<ref_elem_type, worldDim> ug::FEGeometry< TElem, TWorldDim, TTrialSpace, TQuadratureRule >::m_mapping
protected

reference mapping

◆ m_pElem

template<typename TElem , int TWorldDim, typename TTrialSpace , typename TQuadratureRule >
TElem* ug::FEGeometry< TElem, TWorldDim, TTrialSpace, TQuadratureRule >::m_pElem
protected

current element

◆ m_rQuadRule

◆ m_rTrialSpace

template<typename TElem , int TWorldDim, typename TTrialSpace , typename TQuadratureRule >
const trial_space_type& ug::FEGeometry< TElem, TWorldDim, TTrialSpace, TQuadratureRule >::m_rTrialSpace
protected

◆ m_vDetJ

template<typename TElem , int TWorldDim, typename TTrialSpace , typename TQuadratureRule >
number ug::FEGeometry< TElem, TWorldDim, TTrialSpace, TQuadratureRule >::m_vDetJ[nip]
protected

determinate of transformation at ip

Referenced by ug::FEGeometry< TElem, TWorldDim, TTrialSpace, TQuadratureRule >::weight().

◆ m_vIPGlobal

template<typename TElem , int TWorldDim, typename TTrialSpace , typename TQuadratureRule >
MathVector<worldDim> ug::FEGeometry< TElem, TWorldDim, TTrialSpace, TQuadratureRule >::m_vIPGlobal[nip]
protected

◆ m_vJTInv

template<typename TElem , int TWorldDim, typename TTrialSpace , typename TQuadratureRule >
MathMatrix<worldDim,dim> ug::FEGeometry< TElem, TWorldDim, TTrialSpace, TQuadratureRule >::m_vJTInv[nip]
protected

jacobian of transformation at ip

◆ m_vvGradGlobal

template<typename TElem , int TWorldDim, typename TTrialSpace , typename TQuadratureRule >
MathVector<worldDim> ug::FEGeometry< TElem, TWorldDim, TTrialSpace, TQuadratureRule >::m_vvGradGlobal[nip][nsh]
protected

◆ m_vvGradLocal

template<typename TElem , int TWorldDim, typename TTrialSpace , typename TQuadratureRule >
MathVector<dim> ug::FEGeometry< TElem, TWorldDim, TTrialSpace, TQuadratureRule >::m_vvGradLocal[nip][nsh]
protected

◆ m_vvShape

template<typename TElem , int TWorldDim, typename TTrialSpace , typename TQuadratureRule >
number ug::FEGeometry< TElem, TWorldDim, TTrialSpace, TQuadratureRule >::m_vvShape[nip][nsh]
protected

◆ nip

◆ nsh

◆ staticLocalData

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

flag indicating if local data may change

◆ worldDim

template<typename TElem , int TWorldDim, typename TTrialSpace , typename TQuadratureRule >
const int ug::FEGeometry< TElem, TWorldDim, TTrialSpace, TQuadratureRule >::worldDim = TWorldDim
static

world dimension


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