|
ug4
|
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 | |
| typedef fv1_dim_traits< TDim, TWorldDim > | traits |
| used traits | |
Public Member Functions | |
| void | add_boundary_subset (int subsetIndex) |
| add subset that is interpreted as boundary subset. | |
| const std::vector< BF > & | bf (int si) const |
| returns reference to vector of boundary faces for subsetIndex | |
| const BF & | bf (int si, size_t i) const |
| returns the boundary face i for subsetIndex | |
| void | clear_boundary_subsets () |
| reset all boundary subsets | |
| const MathVector< worldDim > * | coe_global () const |
| returns the global coordinates of the center of mass of the element | |
| const MathVector< dim > * | coe_local () const |
| returns the local coordinates of the center of mass of the element | |
| const MathVector< worldDim > * | corners () const |
| get vector of corners for current element | |
| DimFV1Geometry () | |
| construct object and initialize local values and sizes | |
| GridObject * | elem () const |
| get the element | |
| const MathVector< worldDim > & | global_node_position (size_t nodeID) const |
| return global coords for node ID | |
| const MathVector< dim > & | local_node_position (size_t nodeID) const |
| return local coords for node ID | |
| size_t | num_bf () const |
| number of all boundary faces | |
| size_t | num_bf (int si) const |
| number of boundary faces on subset 'subsetIndex' | |
| size_t | num_boundary_subsets () |
| number of registered boundary subsets | |
| size_t | num_scv () const |
| number of SubControlVolumes | |
| size_t | num_scv_ips () const |
| returns number of all scv ips | |
| size_t | num_scvf () const |
| number of SubControlVolumeFaces | |
| size_t | num_scvf_ips () const |
| returns number of all scvf ips | |
| size_t | num_sh () const |
| number of shape functions | |
| void | remove_boundary_subset (int subsetIndex) |
| removes subset that is interpreted as boundary subset. | |
| ReferenceObjectID | roid () const |
| returns reference object id | |
| const SCV & | scv (size_t i) const |
| const access to SubControlVolume number i | |
| const MathVector< worldDim > * | scv_global_ips () const |
| returns all ips of scv as they appear in scv loop | |
| const MathVector< dim > * | scv_local_ips () const |
| returns all ips of scv as they appear in scv loop | |
| const SCVF & | scvf (size_t i) const |
| const access to SubControlVolumeFace number i | |
| const MathVector< worldDim > * | scvf_global_ips () const |
| returns all ips of scvf as they appear in scv loop | |
| const MathVector< dim > * | scvf_local_ips () const |
| returns all ips of scvf as they appear in scv loop | |
| void | update (GridObject *elem, const MathVector< worldDim > *vCornerCoords, const ISubsetHandler *ish=NULL) |
| update data for given element | |
| void | update_boundary_faces (GridObject *elem, const MathVector< worldDim > *vCornerCoords, const ISubsetHandler *ish=NULL) |
| update boundary data for given element | |
| void | update_local (ReferenceObjectID roid) |
| update local data | |
Static Public Attributes | |
| static const int | dim = TDim |
| dimension of reference element | |
| static const size_t | maxNSH = traits::maxNSH |
| max number of shape functions | |
| static const size_t | maxNumSCV = traits::maxNumSCV |
| number of SubControlVolumes | |
| static const size_t | maxNumSCVF = traits::maxNumSCVF |
| max number of SubControlVolumeFaces | |
| static const size_t | nip = 1 |
| number of integration points | |
| static const int | order = 1 |
| order | |
| static const bool | staticLocalData = false |
| flag indicating if local data may change | |
| static const bool | usesHangingNodes = false |
| Hanging node flag: this Geometry does not support hanging nodes. | |
| static const int | worldDim = TWorldDim |
| dimension of world | |
Protected Attributes | |
| std::map< int, std::vector< BF > > | m_mapVectorBF |
| std::vector< BF > | m_vEmptyVectorBF |
| MathVector< worldDim > | m_vGlobSCV_IP [maxNumSCV] |
| MathVector< worldDim > | m_vGlobSCVF_IP [maxNumSCVF] |
| MathVector< dim > | m_vLocSCV_IP [maxNumSCV] |
| MathVector< dim > | m_vLocSCVF_IP [maxNumSCVF] |
Private Attributes | |
| size_t | m_nsh |
| current number of shape functions | |
| size_t | m_numSCV |
| current number of scv | |
| size_t | m_numSCVF |
| current number of scvf | |
| GridObject * | m_pElem |
| pointer to current element | |
| ReferenceObjectID | m_roid |
| current reference object id | |
| SCV | m_vSCV [maxNumSCV] |
| SubControlVolumes. | |
| SCVF | m_vSCVF [maxNumSCVF] |
| SubControlVolumeFaces. | |
| MathVector< worldDim > | m_vvGloMid [dim+1][maxMid] |
| MathVector< dim > | m_vvLocMid [dim+1][maxMid] |
| local and global geom object midpoints for each dimension | |
Static Private Attributes | |
| static const int | maxMid = maxNumSCVF + 1 |
| max number of geometric objects in a dimension | |
Geometry and shape functions for 1st order Vertex-Centered Finite Volume.
| TDim | reference element dim |
| TWorldDim | (physical) world dimension |
| typedef traits::scv_type ug::DimFV1Geometry< TDim, TWorldDim >::scv_type |
type of SubControlVolume
| typedef fv1_dim_traits<TDim, TWorldDim> ug::DimFV1Geometry< TDim, TWorldDim >::traits |
used traits
|
inline |
construct object and initialize local values and sizes
|
inline |
add subset that is interpreted as boundary subset.
References ug::DimFV1Geometry< TDim, TWorldDim >::m_mapVectorBF.
Referenced by ug::IntegralNormalComponentOnManifoldUsingFV1Geom(), ug::IntegrateNormalComponentOnManifold(), and ug::IntegrateNormalGradientOnManifold().
|
inline |
returns reference to vector of boundary faces for subsetIndex
References ug::DimFV1Geometry< TDim, TWorldDim >::m_mapVectorBF, and ug::DimFV1Geometry< TDim, TWorldDim >::m_vEmptyVectorBF.
|
inline |
returns the boundary face i for subsetIndex
References ug::DimFV1Geometry< TDim, TWorldDim >::m_mapVectorBF, and UG_THROW.
Referenced by ug::IntegralNormalComponentOnManifoldUsingFV1Geom(), ug::IntegrateNormalComponentOnManifold(), and ug::IntegrateNormalGradientOnManifold().
|
inline |
reset all boundary subsets
References ug::DimFV1Geometry< TDim, TWorldDim >::m_mapVectorBF.
|
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.
|
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.
|
inline |
get vector of corners for current element
References ug::DimFV1Geometry< TDim, TWorldDim >::m_vvGloMid.
|
inline |
get the element
References ug::DimFV1Geometry< TDim, TWorldDim >::m_pElem.
|
inline |
return global coords for node ID
References ug::DimFV1Geometry< TDim, TWorldDim >::m_vvGloMid, ug::DimFV1Geometry< TDim, TWorldDim >::maxMid, and UG_ASSERT.
|
inline |
return local coords for node ID
References ug::DimFV1Geometry< TDim, TWorldDim >::m_vvLocMid, ug::DimFV1Geometry< TDim, TWorldDim >::maxMid, and UG_ASSERT.
|
inline |
number of all boundary faces
References ug::DimFV1Geometry< TDim, TWorldDim >::m_mapVectorBF.
|
inline |
number of boundary faces on subset 'subsetIndex'
References ug::DimFV1Geometry< TDim, TWorldDim >::m_mapVectorBF.
|
inline |
number of registered boundary subsets
References ug::DimFV1Geometry< TDim, TWorldDim >::m_mapVectorBF.
|
inline |
number of SubControlVolumes
References ug::DimFV1Geometry< TDim, TWorldDim >::m_numSCV.
Referenced by ug::DimFV1Geometry< TDim, TWorldDim >::scv().
|
inline |
returns number of all scv ips
References ug::DimFV1Geometry< TDim, TWorldDim >::m_numSCV.
|
inline |
number of SubControlVolumeFaces
References ug::DimFV1Geometry< TDim, TWorldDim >::m_numSCVF.
Referenced by ug::DimFV1Geometry< TDim, TWorldDim >::scvf().
|
inline |
returns number of all scvf ips
References ug::DimFV1Geometry< TDim, TWorldDim >::m_numSCVF.
|
inline |
number of shape functions
References ug::DimFV1Geometry< TDim, TWorldDim >::m_nsh.
|
inline |
removes subset that is interpreted as boundary subset.
References ug::DimFV1Geometry< TDim, TWorldDim >::m_mapVectorBF.
|
inline |
returns reference object id
References ug::DimFV1Geometry< TDim, TWorldDim >::m_roid.
|
inline |
const access to SubControlVolume number i
References ug::DimFV1Geometry< TDim, TWorldDim >::m_vSCV, ug::DimFV1Geometry< TDim, TWorldDim >::num_scv(), and UG_ASSERT.
|
inline |
returns all ips of scv as they appear in scv loop
References ug::DimFV1Geometry< TDim, TWorldDim >::m_roid, ug::DimFV1Geometry< TDim, TWorldDim >::m_vGlobSCV_IP, ug::DimFV1Geometry< TDim, TWorldDim >::m_vvGloMid, ug::ROID_OCTAHEDRON, and ug::ROID_PYRAMID.
|
inline |
returns all ips of scv as they appear in scv loop
References ug::DimFV1Geometry< TDim, TWorldDim >::m_roid, ug::DimFV1Geometry< TDim, TWorldDim >::m_vLocSCV_IP, ug::DimFV1Geometry< TDim, TWorldDim >::m_vvLocMid, ug::ROID_OCTAHEDRON, and ug::ROID_PYRAMID.
|
inline |
const access to SubControlVolumeFace number i
References ug::DimFV1Geometry< TDim, TWorldDim >::m_vSCVF, ug::DimFV1Geometry< TDim, TWorldDim >::num_scvf(), and UG_ASSERT.
|
inline |
returns all ips of scvf as they appear in scv loop
References ug::DimFV1Geometry< TDim, TWorldDim >::m_vGlobSCVF_IP.
|
inline |
returns all ips of scvf as they appear in scv loop
References ug::DimFV1Geometry< TDim, TWorldDim >::m_vLocSCVF_IP.
| void ug::DimFV1Geometry< TDim, TWorldDim >::update | ( | GridObject * | elem, |
| const MathVector< worldDim > * | vCornerCoords, | ||
| const ISubsetHandler * | ish = NULL |
||
| ) |
update data for given element
References ug::AveragePositions(), ug::DimReferenceMapping< TDim, TWorldDim >::is_linear(), ug::DimReferenceMapping< TDim, TWorldDim >::jacobian_transposed_inverse(), ug::MatVecMult(), ug::ReferenceElement::num(), ug::GridObject::reference_object_id(), ug::ROID_OCTAHEDRON, ug::ROID_PYRAMID, ug::DimReferenceMapping< TDim, TWorldDim >::sqrt_gram_det(), UG_CATCH_THROW, and ug::DimReferenceMapping< TDim, TWorldDim >::update().
Referenced by ug::IntegralNormalComponentOnManifoldUsingFV1Geom(), ug::IntegrateNormalComponentOnManifold(), and ug::IntegrateNormalGradientOnManifold().
| void ug::DimFV1Geometry< TDim, TWorldDim >::update_boundary_faces | ( | GridObject * | elem, |
| const MathVector< worldDim > * | vCornerCoords, | ||
| const ISubsetHandler * | ish = NULL |
||
| ) |
update boundary data for given element
References ug::AveragePositions(), ug::CollectEdgesSorted(), ug::CollectFacesSorted(), ug::CollectVertices(), ug::ComputeBFMidID(), ug::DimFV1Geometry< TDim, TWorldDim >::BF::detj, ug::ISubsetHandler::get_subset_index(), ug::DimFV1Geometry< TDim, TWorldDim >::BF::globalIP, ug::LocalShapeFunctionSet< TDim, TShape, TGrad >::grads(), ug::ISubsetHandler::grid(), ug::ReferenceElement::id(), ug::DimReferenceMapping< TDim, TWorldDim >::jacobian_transposed_inverse(), ug::DimFV1Geometry< TDim, TWorldDim >::BF::JtInv, ug::LFEID::LAGRANGE, ug::DimFV1Geometry< TDim, TWorldDim >::BF::localIP, ug::MatVecMult(), ug::DimFV1Geometry< TDim, TWorldDim >::BF::nodeId, ug::DimFV1Geometry< TDim, TWorldDim >::BF::Normal, ug::ReferenceElement::num(), ug::LocalDoFSet::num_sh(), ug::DimFV1Geometry< TDim, TWorldDim >::BF::num_sh(), ug::DimFV1Geometry< TDim, TWorldDim >::BF::numSH, ug::LocalShapeFunctionSet< TDim, TShape, TGrad >::shapes(), ug::DimReferenceMapping< TDim, TWorldDim >::sqrt_gram_det(), UG_CATCH_THROW, ug::DimReferenceMapping< TDim, TWorldDim >::update(), ug::VecTwoNorm(), ug::DimFV1Geometry< TDim, TWorldDim >::BF::vGlobalGrad, ug::DimFV1Geometry< TDim, TWorldDim >::BF::vGloPos, ug::DimFV1Geometry< TDim, TWorldDim >::BF::vLocalGrad, ug::DimFV1Geometry< TDim, TWorldDim >::BF::vLocPos, ug::DimFV1Geometry< TDim, TWorldDim >::BF::vMidID, ug::DimFV1Geometry< TDim, TWorldDim >::BF::Vol, and ug::DimFV1Geometry< TDim, TWorldDim >::BF::vShape.
| void ug::DimFV1Geometry< TDim, TWorldDim >::update_local | ( | ReferenceObjectID | roid | ) |
update local data
References ug::AveragePositions(), ug::ComputeSCVFMidID(), ug::ComputeSCVMidID(), ug::DimReferenceElement< d >::corner(), ug::LocalShapeFunctionSet< TDim, TShape, TGrad >::grads(), ug::LFEID::LAGRANGE, ug::ReferenceElement::num(), ug::LocalDoFSet::num_sh(), ug::ROID_OCTAHEDRON, ug::ROID_PYRAMID, ug::LocalShapeFunctionSet< TDim, TShape, TGrad >::shapes(), and UG_CATCH_THROW.
|
static |
dimension of reference element
Referenced by ug::DimFV1Geometry< TDim, TWorldDim >::coe_global(), and ug::DimFV1Geometry< TDim, TWorldDim >::coe_local().
|
protected |
Referenced by ug::DimFV1Geometry< TDim, TWorldDim >::add_boundary_subset(), ug::DimFV1Geometry< TDim, TWorldDim >::bf(), ug::DimFV1Geometry< TDim, TWorldDim >::bf(), ug::DimFV1Geometry< TDim, TWorldDim >::clear_boundary_subsets(), ug::DimFV1Geometry< TDim, TWorldDim >::num_bf(), ug::DimFV1Geometry< TDim, TWorldDim >::num_bf(), ug::DimFV1Geometry< TDim, TWorldDim >::num_boundary_subsets(), and ug::DimFV1Geometry< TDim, TWorldDim >::remove_boundary_subset().
|
private |
current number of shape functions
Referenced by ug::DimFV1Geometry< TDim, TWorldDim >::num_sh().
|
private |
current number of scv
Referenced by ug::DimFV1Geometry< TDim, TWorldDim >::num_scv(), and ug::DimFV1Geometry< TDim, TWorldDim >::num_scv_ips().
|
private |
current number of scvf
Referenced by ug::DimFV1Geometry< TDim, TWorldDim >::num_scvf(), and ug::DimFV1Geometry< TDim, TWorldDim >::num_scvf_ips().
|
private |
pointer to current element
Referenced by ug::DimFV1Geometry< TDim, TWorldDim >::elem().
|
private |
current reference object id
Referenced by ug::DimFV1Geometry< TDim, TWorldDim >::roid(), ug::DimFV1Geometry< TDim, TWorldDim >::scv_global_ips(), and ug::DimFV1Geometry< TDim, TWorldDim >::scv_local_ips().
|
protected |
Referenced by ug::DimFV1Geometry< TDim, TWorldDim >::bf().
|
protected |
Referenced by ug::DimFV1Geometry< TDim, TWorldDim >::scv_global_ips().
|
protected |
Referenced by ug::DimFV1Geometry< TDim, TWorldDim >::scvf_global_ips().
|
protected |
Referenced by ug::DimFV1Geometry< TDim, TWorldDim >::scv_local_ips().
|
protected |
Referenced by ug::DimFV1Geometry< TDim, TWorldDim >::scvf_local_ips().
|
private |
SubControlVolumes.
Referenced by ug::DimFV1Geometry< TDim, TWorldDim >::scv().
|
private |
SubControlVolumeFaces.
Referenced by ug::DimFV1Geometry< TDim, TWorldDim >::scvf().
|
private |
|
private |
local and global geom object midpoints for each dimension
Referenced by ug::DimFV1Geometry< TDim, TWorldDim >::coe_local(), ug::DimFV1Geometry< TDim, TWorldDim >::local_node_position(), and ug::DimFV1Geometry< TDim, TWorldDim >::scv_local_ips().
|
staticprivate |
max number of geometric objects in a dimension
Referenced by ug::DimFV1Geometry< TDim, TWorldDim >::global_node_position(), and ug::DimFV1Geometry< TDim, TWorldDim >::local_node_position().
|
static |
max number of shape functions
|
static |
number of SubControlVolumes
|
static |
max number of SubControlVolumeFaces
|
static |
number of integration points
Referenced by ug::DimFV1Geometry< TDim, TWorldDim >::SCVF::num_ip(), ug::DimFV1Geometry< TDim, TWorldDim >::SCV::num_ip(), and ug::DimFV1Geometry< TDim, TWorldDim >::BF::num_ip().
|
static |
order
|
static |
flag indicating if local data may change
|
static |
Hanging node flag: this Geometry does not support hanging nodes.
|
static |
dimension of world