ug4
|
Geometry and shape functions for 1st order Vertex-Centered Finite Volume with the hanging nodes. More...
#include <hfv1_geom.h>
Classes | |
struct | MidID |
struct | NatEdgeInfo |
struct | NewEdgeInfo |
class | SCV |
class | SCVF |
Public Member Functions | |
GridObject * | elem () 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 SCV & | scv (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 SCVF & | scvf (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 |
GridObject * | m_pElem |
ReferenceMapping< ref_elem_type, worldDim > | m_rMapping |
const ref_elem_type & | m_rRefElem |
std::vector< NatEdgeInfo > | m_vNatEdgeInfo |
std::vector< NewEdgeInfo > | m_vNewEdgeInfo |
std::vector< SCV > | m_vSCV |
std::vector< SCVF > | m_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... | |
Geometry and shape functions for 1st order Vertex-Centered Finite Volume with the hanging nodes.
TElem | Element type |
TWorldDim | (physical) world dimension |
|
private |
type of reference element
ug::HFV1Geometry< TElem, TWorldDim >::HFV1Geometry |
constructor
References ug::HFV1Geometry< TElem, TWorldDim >::dim, ug::HFV1Geometry< TElem, TWorldDim >::m_gloMid, ug::HFV1Geometry< TElem, TWorldDim >::m_locMid, ug::HFV1Geometry< TElem, TWorldDim >::m_numNaturalSCV, ug::HFV1Geometry< TElem, TWorldDim >::m_rRefElem, and ug::HFV1Geometry< TElem, TWorldDim >::m_vSCV.
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
References ug::HFV1Geometry< TElem, TWorldDim >::dim, ug::HFV1Geometry< TElem, TWorldDim >::MidID::dim, ug::HFV1Geometry< TElem, TWorldDim >::MidID::id, ug::HFV1Geometry< TElem, TWorldDim >::m_gloMid, ug::HFV1Geometry< TElem, TWorldDim >::SCV::m_midId, ug::HFV1Geometry< TElem, TWorldDim >::SCV::m_vGloPos, ug::HFV1Geometry< TElem, TWorldDim >::SCV::num_corners(), ug::HFV1Geometry< TElem, TWorldDim >::scv(), and UG_ASSERT.
|
inlineprotected |
References ug::HFV1Geometry< TElem, TWorldDim >::dim, ug::HFV1Geometry< TElem, TWorldDim >::MidID::dim, ug::HFV1Geometry< TElem, TWorldDim >::MidID::id, ug::HFV1Geometry< TElem, TWorldDim >::m_gloMid, ug::HFV1Geometry< TElem, TWorldDim >::SCVF::m_midId, ug::HFV1Geometry< TElem, TWorldDim >::SCVF::m_vGloPos, ug::HFV1Geometry< TElem, TWorldDim >::SCVF::num_corners(), and ug::HFV1Geometry< TElem, TWorldDim >::scvf().
|
inlineprotected |
References ug::HFV1Geometry< TElem, TWorldDim >::dim, ug::HFV1Geometry< TElem, TWorldDim >::MidID::dim, ug::HFV1Geometry< TElem, TWorldDim >::MidID::id, ug::HFV1Geometry< TElem, TWorldDim >::m_locMid, ug::HFV1Geometry< TElem, TWorldDim >::SCV::m_midId, ug::HFV1Geometry< TElem, TWorldDim >::SCV::m_vLocPos, ug::HFV1Geometry< TElem, TWorldDim >::SCV::num_corners(), ug::HFV1Geometry< TElem, TWorldDim >::scv(), and UG_ASSERT.
|
inlineprotected |
References ug::HFV1Geometry< TElem, TWorldDim >::dim, ug::HFV1Geometry< TElem, TWorldDim >::MidID::dim, ug::HFV1Geometry< TElem, TWorldDim >::MidID::id, ug::HFV1Geometry< TElem, TWorldDim >::m_locMid, ug::HFV1Geometry< TElem, TWorldDim >::SCVF::m_midId, ug::HFV1Geometry< TElem, TWorldDim >::SCVF::m_vLocPos, ug::HFV1Geometry< TElem, TWorldDim >::SCVF::num_corners(), and ug::HFV1Geometry< TElem, TWorldDim >::scvf().
|
inline |
get the element
References ug::HFV1Geometry< TElem, TWorldDim >::m_pElem.
|
inlineprotected |
|
inline |
return global coords for node ID
References ug::HFV1Geometry< TElem, TWorldDim >::m_gloMid, and UG_ASSERT.
|
inline |
return local coords for node ID
References ug::HFV1Geometry< TElem, TWorldDim >::m_locMid, and UG_ASSERT.
|
inline |
number of SubControlVolumes
References ug::HFV1Geometry< TElem, TWorldDim >::m_vSCV.
Referenced by ug::HFV1Geometry< TElem, TWorldDim >::scv().
|
inline |
returns number of all scv ips
References ug::HFV1Geometry< TElem, TWorldDim >::m_vGlobSCVIP.
|
inline |
number of SubControlVolumeFaces
References ug::HFV1Geometry< TElem, TWorldDim >::m_vSCVF.
Referenced by ug::HFV1Geometry< TElem, TWorldDim >::scvf().
|
inline |
returns number of all scv ips
References ug::HFV1Geometry< TElem, TWorldDim >::m_vGlobSCVFIP.
|
inline |
number of shape functions
References ug::HFV1Geometry< TElem, TWorldDim >::m_numSh.
void ug::HFV1Geometry< TElem, TWorldDim >::print |
References UG_LOG.
|
inline |
const access to SubControlVolume number i
References ug::HFV1Geometry< TElem, TWorldDim >::m_vSCV, ug::HFV1Geometry< TElem, TWorldDim >::num_scv(), and UG_ASSERT.
Referenced by ug::HFV1Geometry< TElem, TWorldDim >::copy_global_corners(), and ug::HFV1Geometry< TElem, TWorldDim >::copy_local_corners().
|
inline |
returns all ips of scv as they appear in scv loop
References ug::HFV1Geometry< TElem, TWorldDim >::m_vGlobSCVIP.
|
inline |
returns all ips of scv as they appear in scv loop
References ug::HFV1Geometry< TElem, TWorldDim >::m_vLocSCVIP.
|
inline |
const access to SubControlVolumeFace number i
References ug::HFV1Geometry< TElem, TWorldDim >::m_vSCVF, ug::HFV1Geometry< TElem, TWorldDim >::num_scvf(), and UG_ASSERT.
Referenced by ug::HFV1Geometry< TElem, TWorldDim >::copy_global_corners(), and ug::HFV1Geometry< TElem, TWorldDim >::copy_local_corners().
|
inline |
returns all ips of scv as they appear in scv loop
References ug::HFV1Geometry< TElem, TWorldDim >::m_vGlobSCVFIP.
|
inline |
returns all ips of scv as they appear in scv loop
References ug::HFV1Geometry< TElem, TWorldDim >::m_vLocSCVFIP.
void ug::HFV1Geometry< TElem, TWorldDim >::update | ( | GridObject * | pElem, |
const MathVector< worldDim > * | vCornerCoords, | ||
const ISubsetHandler * | ish = NULL |
||
) |
update values for an element
References ug::AveragePositions(), ug::CollectEdgesSorted(), ug::CollectFacesSorted(), ug::CSEDGE_CONSTRAINED_EDGE, ug::CSEDGE_CONSTRAINING_EDGE, ug::CSEDGE_REGULAR_EDGE, ug::CSFACE_CONSTRAINING_QUADRILATERAL, ug::CSFACE_CONSTRAINING_TRIANGLE, dim, ug::MathVector< N, T >::from(), ug::HFV1Geometry< TElem, TWorldDim >::SCVF::global_ip(), ug::HFV1Geometry< TElem, TWorldDim >::SCV::global_ip(), ug::LocalShapeFunctionSet< TDim, TShape, TGrad >::grads(), ug::ISubsetHandler::grid(), ug::LFEID::LAGRANGE, ug::HFV1Geometry< TElem, TWorldDim >::SCVF::local_ip(), ug::HFV1Geometry< TElem, TWorldDim >::SCV::local_ip(), ug::MatVecMult(), ug::LocalShapeFunctionSet< TDim, TShape, TGrad >::shapes(), UG_ASSERT, UG_COND_THROW, UG_THROW, ug::VecDot(), ug::VecInterpolateLinear(), and ug::VecSubtract().
|
static |
|
private |
|
private |
|
staticprivate |
number of SubControlVolumes
Referenced by ug::HFV1Geometry< TElem, TWorldDim >::HFV1Geometry().
|
staticprivate |
number of SubControlVolumeFaces
|
private |
Referenced by ug::HFV1Geometry< TElem, TWorldDim >::num_sh().
|
private |
Referenced by ug::HFV1Geometry< TElem, TWorldDim >::elem().
|
private |
|
private |
|
protected |
|
protected |
|
protected |
Referenced by ug::HFV1Geometry< TElem, TWorldDim >::scvf_local_ips().
|
protected |
Referenced by ug::HFV1Geometry< TElem, TWorldDim >::scv_local_ips().
|
private |
|
private |
|
private |
|
private |
|
static |
flag indicating if local data may change
|
static |
Hanging node flag: this Geometry does support hanging nodes.
|
static |
dimension of world