ug4
ug::DimFEGeometry< TWorldDim, TRefDim > Class Template Reference

#include <fe_geom.h>

Classes

class  BF
 boundary face 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...
 
 DimFEGeometry ()
 default Constructor More...
 
 DimFEGeometry (ReferenceObjectID roid, size_t order, LFEID lfeid)
 Constructor. More...
 
 DimFEGeometry (size_t order, LFEID lfeid)
 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_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_ip () const
 number of integration points 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...
 
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_boundary_faces (GridObject *pElem, const MathVector< worldDim > *vCornerCoords, size_t orderQuad, const ISubsetHandler *ish)
 update boundary data for given element 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 = TRefDim
 reference element dimension More...
 
static const bool staticLocalData = false
 flag indicating if local data may change More...
 
static const int worldDim = TWorldDim
 world dimension More...
 

Protected Attributes

LFEID m_lfeID
 current local finite element id More...
 
std::map< int, std::vector< BF > > m_mapVectorBF
 
size_t m_nip
 number of integration point More...
 
size_t m_nsh
 number of shape functions More...
 
GridObjectm_pElem
 current element More...
 
int m_quadOrder
 current integration order More...
 
ReferenceObjectID m_roid
 current reference object id the local values are prepared for More...
 
std::vector< numberm_vDetJ
 determinant of transformation at ip (size = nip) More...
 
std::vector< BFm_vEmptyVectorBF
 
std::vector< MathVector< worldDim > > m_vIPGlobal
 global integration points (size = nip) More...
 
const MathVector< dim > * m_vIPLocal
 local quadrature points More...
 
std::vector< MathMatrix< worldDim, dim > > m_vJTInv
 jacobian of transformation at ip (size = nip) More...
 
const numberm_vQuadWeight
 local quadrature weights More...
 
std::vector< std::vector< MathVector< worldDim > > > m_vvGradGlobal
 local gradient evaluated at ip (size = nip x nsh) More...
 
std::vector< std::vector< MathVector< dim > > > m_vvGradLocal
 global gradient evaluated at ip (size = nip x nsh) More...
 
std::vector< std::vector< number > > m_vvShape
 shape functions evaluated at ip (size = nip x nsh) More...
 

Constructor & Destructor Documentation

◆ DimFEGeometry() [1/3]

template<int TWorldDim, int TRefDim>
ug::DimFEGeometry< TWorldDim, TRefDim >::DimFEGeometry

default Constructor

◆ DimFEGeometry() [2/3]

template<int TWorldDim, int TRefDim>
ug::DimFEGeometry< TWorldDim, TRefDim >::DimFEGeometry ( size_t  order,
LFEID  lfeid 
)

Constructor.

◆ DimFEGeometry() [3/3]

template<int TWorldDim, int TRefDim>
ug::DimFEGeometry< TWorldDim, TRefDim >::DimFEGeometry ( ReferenceObjectID  roid,
size_t  order,
LFEID  lfeid 
)

Constructor.

Member Function Documentation

◆ add_boundary_subset()

template<int TWorldDim, int TRefDim = TWorldDim>
void ug::DimFEGeometry< TWorldDim, TRefDim >::add_boundary_subset ( int  subsetIndex)
inline

add subset that is interpreted as boundary subset.

References ug::DimFEGeometry< TWorldDim, TRefDim >::m_mapVectorBF.

◆ bf() [1/2]

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

returns reference to vector of boundary faces for subsetIndex

References ug::DimFEGeometry< TWorldDim, TRefDim >::m_mapVectorBF, and ug::DimFEGeometry< TWorldDim, TRefDim >::m_vEmptyVectorBF.

◆ bf() [2/2]

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

◆ clear_boundary_subsets()

template<int TWorldDim, int TRefDim = TWorldDim>
void ug::DimFEGeometry< TWorldDim, TRefDim >::clear_boundary_subsets ( )
inline

reset all boundary subsets

References ug::DimFEGeometry< TWorldDim, TRefDim >::m_mapVectorBF.

◆ global_grad()

template<int TWorldDim, int TRefDim = TWorldDim>
const MathVector<worldDim>& ug::DimFEGeometry< TWorldDim, TRefDim >::global_grad ( size_t  ip,
size_t  sh 
) const
inline

◆ global_ip()

template<int TWorldDim, int TRefDim = TWorldDim>
const MathVector<worldDim>& ug::DimFEGeometry< TWorldDim, TRefDim >::global_ip ( size_t  ip) const
inline

global integration point

References ug::DimFEGeometry< TWorldDim, TRefDim >::m_vIPGlobal, and UG_ASSERT.

◆ global_ips()

template<int TWorldDim, int TRefDim = TWorldDim>
const MathVector<worldDim>* ug::DimFEGeometry< TWorldDim, TRefDim >::global_ips ( ) const
inline

global integration point

References ug::DimFEGeometry< TWorldDim, TRefDim >::m_vIPGlobal.

◆ local_grad()

template<int TWorldDim, int TRefDim = TWorldDim>
const MathVector<dim>& ug::DimFEGeometry< TWorldDim, TRefDim >::local_grad ( size_t  ip,
size_t  sh 
) const
inline

◆ local_ip()

template<int TWorldDim, int TRefDim = TWorldDim>
const MathVector<dim>& ug::DimFEGeometry< TWorldDim, TRefDim >::local_ip ( size_t  ip) const
inline

◆ local_ips()

template<int TWorldDim, int TRefDim = TWorldDim>
const MathVector<dim>* ug::DimFEGeometry< TWorldDim, TRefDim >::local_ips ( ) const
inline

local integration point

References ug::DimFEGeometry< TWorldDim, TRefDim >::m_vIPLocal.

◆ num_bf() [1/2]

template<int TWorldDim, int TRefDim = TWorldDim>
size_t ug::DimFEGeometry< TWorldDim, TRefDim >::num_bf ( ) const
inline

◆ num_bf() [2/2]

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

number of boundary faces on subset 'subsetIndex'

References ug::DimFEGeometry< TWorldDim, TRefDim >::m_mapVectorBF.

◆ num_boundary_subsets()

template<int TWorldDim, int TRefDim = TWorldDim>
size_t ug::DimFEGeometry< TWorldDim, TRefDim >::num_boundary_subsets ( )
inline

number of registered boundary subsets

References ug::DimFEGeometry< TWorldDim, TRefDim >::m_mapVectorBF.

◆ num_ip()

template<int TWorldDim, int TRefDim = TWorldDim>
size_t ug::DimFEGeometry< TWorldDim, TRefDim >::num_ip ( ) const
inline

number of integration points

References ug::DimFEGeometry< TWorldDim, TRefDim >::m_nip.

◆ num_sh()

template<int TWorldDim, int TRefDim = TWorldDim>
size_t ug::DimFEGeometry< TWorldDim, TRefDim >::num_sh ( ) const
inline

number of shape functions

References ug::DimFEGeometry< TWorldDim, TRefDim >::m_nsh.

◆ remove_boundary_subset()

template<int TWorldDim, int TRefDim = TWorldDim>
void ug::DimFEGeometry< TWorldDim, TRefDim >::remove_boundary_subset ( int  subsetIndex)
inline

removes subset that is interpreted as boundary subset.

References ug::DimFEGeometry< TWorldDim, TRefDim >::m_mapVectorBF.

◆ shape()

template<int TWorldDim, int TRefDim = TWorldDim>
number ug::DimFEGeometry< TWorldDim, TRefDim >::shape ( size_t  ip,
size_t  sh 
) const
inline

shape function at ip

References ug::DimFEGeometry< TWorldDim, TRefDim >::m_vvShape, and UG_ASSERT.

◆ update() [1/3]

template<int TWorldDim, int TRefDim = TWorldDim>
void ug::DimFEGeometry< TWorldDim, TRefDim >::update ( GridObject pElem,
const MathVector< worldDim > *  vCorner 
)
inline

◆ update() [2/3]

template<int TWorldDim, int TRefDim = TWorldDim>
void ug::DimFEGeometry< TWorldDim, TRefDim >::update ( GridObject pElem,
const MathVector< worldDim > *  vCorner,
const LFEID lfeID 
)
inline

◆ update() [3/3]

template<int TWorldDim, int TRefDim>
void ug::DimFEGeometry< TWorldDim, TRefDim >::update ( GridObject pElem,
const MathVector< worldDim > *  vCorner,
const LFEID lfeID,
size_t  orderQuad 
)

◆ update_boundary_faces()

template<int TWorldDim, int TRefDim>
void ug::DimFEGeometry< TWorldDim, TRefDim >::update_boundary_faces ( GridObject pElem,
const MathVector< worldDim > *  vCornerCoords,
size_t  orderQuad,
const ISubsetHandler ish 
)

update boundary data for given element

References ug::CollectAssociated(), ug::DimReferenceElement< d >::corner(), dim, ug::ReferenceMappingProvider::get(), ug::QuadratureRuleProvider< TDim >::get(), ug::ISubsetHandler::get_subset_index(), ug::LocalShapeFunctionSet< TDim, TShape, TGrad >::grads(), ug::ISubsetHandler::grid(), ug::ReferenceElement::id(), ug::DimReferenceMapping< TDim, TWorldDim >::jacobian_transposed_inverse(), ug::DimFEGeometry< TWorldDim, TRefDim >::BF::local_ip(), ug::DimReferenceMapping< TDim, TWorldDim >::local_to_global(), ug::MatVecMult(), ug::DimFEGeometry< TWorldDim, TRefDim >::BF::nip, ug::DimFEGeometry< TWorldDim, TRefDim >::BF::Normal, ug::DimFEGeometry< TWorldDim, TRefDim >::BF::nsh, ug::ReferenceElement::num(), ug::DimFEGeometry< TWorldDim, TRefDim >::BF::num_ip(), ug::LocalDoFSet::num_sh(), ug::DimFEGeometry< TWorldDim, TRefDim >::BF::num_sh(), ug::GridObject::reference_object_id(), ug::ReferenceElement::roid(), ug::LocalShapeFunctionSet< TDim, TShape, TGrad >::shapes(), UG_CATCH_THROW, ug::DimReferenceMapping< TDim, TWorldDim >::update(), ug::DimFEGeometry< TWorldDim, TRefDim >::BF::vDetJ, ug::VecTwoNorm(), ug::DimFEGeometry< TWorldDim, TRefDim >::BF::vGlobalIP, ug::DimFEGeometry< TWorldDim, TRefDim >::BF::vJtInv, ug::DimFEGeometry< TWorldDim, TRefDim >::BF::vLocalIP, ug::DimFEGeometry< TWorldDim, TRefDim >::BF::Vol, ug::DimFEGeometry< TWorldDim, TRefDim >::BF::vvGlobalGrad, ug::DimFEGeometry< TWorldDim, TRefDim >::BF::vvLocalGrad, ug::DimFEGeometry< TWorldDim, TRefDim >::BF::vvShape, and ug::DimFEGeometry< TWorldDim, TRefDim >::BF::vWeight.

◆ update_local() [1/2]

template<int TWorldDim, int TRefDim = TWorldDim>
void ug::DimFEGeometry< TWorldDim, TRefDim >::update_local ( ReferenceObjectID  roid,
const LFEID lfeID 
)
inline

◆ update_local() [2/2]

◆ weight()

template<int TWorldDim, int TRefDim = TWorldDim>
number ug::DimFEGeometry< TWorldDim, TRefDim >::weight ( size_t  ip) const
inline

Member Data Documentation

◆ dim

template<int TWorldDim, int TRefDim = TWorldDim>
const int ug::DimFEGeometry< TWorldDim, TRefDim >::dim = TRefDim
static

reference element dimension

◆ m_lfeID

template<int TWorldDim, int TRefDim = TWorldDim>
LFEID ug::DimFEGeometry< TWorldDim, TRefDim >::m_lfeID
protected

current local finite element id

Referenced by ug::DimFEGeometry< TWorldDim, TRefDim >::update().

◆ m_mapVectorBF

◆ m_nip

template<int TWorldDim, int TRefDim = TWorldDim>
size_t ug::DimFEGeometry< TWorldDim, TRefDim >::m_nip
protected

◆ m_nsh

template<int TWorldDim, int TRefDim = TWorldDim>
size_t ug::DimFEGeometry< TWorldDim, TRefDim >::m_nsh
protected

number of shape functions

Referenced by ug::DimFEGeometry< TWorldDim, TRefDim >::num_sh().

◆ m_pElem

template<int TWorldDim, int TRefDim = TWorldDim>
GridObject* ug::DimFEGeometry< TWorldDim, TRefDim >::m_pElem
protected

current element

◆ m_quadOrder

template<int TWorldDim, int TRefDim = TWorldDim>
int ug::DimFEGeometry< TWorldDim, TRefDim >::m_quadOrder
protected

current integration order

Referenced by ug::DimFEGeometry< TWorldDim, TRefDim >::update().

◆ m_roid

template<int TWorldDim, int TRefDim = TWorldDim>
ReferenceObjectID ug::DimFEGeometry< TWorldDim, TRefDim >::m_roid
protected

current reference object id the local values are prepared for

◆ m_vDetJ

template<int TWorldDim, int TRefDim = TWorldDim>
std::vector<number> ug::DimFEGeometry< TWorldDim, TRefDim >::m_vDetJ
protected

determinant of transformation at ip (size = nip)

Referenced by ug::DimFEGeometry< TWorldDim, TRefDim >::weight().

◆ m_vEmptyVectorBF

template<int TWorldDim, int TRefDim = TWorldDim>
std::vector<BF> ug::DimFEGeometry< TWorldDim, TRefDim >::m_vEmptyVectorBF
protected

◆ m_vIPGlobal

template<int TWorldDim, int TRefDim = TWorldDim>
std::vector<MathVector<worldDim> > ug::DimFEGeometry< TWorldDim, TRefDim >::m_vIPGlobal
protected

◆ m_vIPLocal

template<int TWorldDim, int TRefDim = TWorldDim>
const MathVector<dim>* ug::DimFEGeometry< TWorldDim, TRefDim >::m_vIPLocal
protected

◆ m_vJTInv

template<int TWorldDim, int TRefDim = TWorldDim>
std::vector<MathMatrix<worldDim,dim> > ug::DimFEGeometry< TWorldDim, TRefDim >::m_vJTInv
protected

jacobian of transformation at ip (size = nip)

◆ m_vQuadWeight

template<int TWorldDim, int TRefDim = TWorldDim>
const number* ug::DimFEGeometry< TWorldDim, TRefDim >::m_vQuadWeight
protected

local quadrature weights

Referenced by ug::DimFEGeometry< TWorldDim, TRefDim >::weight().

◆ m_vvGradGlobal

template<int TWorldDim, int TRefDim = TWorldDim>
std::vector<std::vector<MathVector<worldDim> > > ug::DimFEGeometry< TWorldDim, TRefDim >::m_vvGradGlobal
protected

local gradient evaluated at ip (size = nip x nsh)

Referenced by ug::DimFEGeometry< TWorldDim, TRefDim >::global_grad().

◆ m_vvGradLocal

template<int TWorldDim, int TRefDim = TWorldDim>
std::vector<std::vector<MathVector<dim> > > ug::DimFEGeometry< TWorldDim, TRefDim >::m_vvGradLocal
protected

global gradient evaluated at ip (size = nip x nsh)

Referenced by ug::DimFEGeometry< TWorldDim, TRefDim >::local_grad().

◆ m_vvShape

template<int TWorldDim, int TRefDim = TWorldDim>
std::vector<std::vector<number> > ug::DimFEGeometry< TWorldDim, TRefDim >::m_vvShape
protected

shape functions evaluated at ip (size = nip x nsh)

Referenced by ug::DimFEGeometry< TWorldDim, TRefDim >::shape().

◆ staticLocalData

template<int TWorldDim, int TRefDim = TWorldDim>
const bool ug::DimFEGeometry< TWorldDim, TRefDim >::staticLocalData = false
static

flag indicating if local data may change

◆ worldDim

template<int TWorldDim, int TRefDim = TWorldDim>
const int ug::DimFEGeometry< TWorldDim, TRefDim >::worldDim = TWorldDim
static

world dimension


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