ug4
|
Geometry and shape functions for any order Vertex-Centered Finite Volume. More...
#include <fvho_geom.h>
Classes | |
class | BF |
boundary face More... | |
class | SCV |
sub control volume structure More... | |
class | SCVF |
Sub-Control Volume Face structure. More... | |
struct | SubElement |
Public Types | |
typedef TElem | elem_type |
type of element More... | |
typedef LagrangeLSFS< ref_elem_type, p > | local_shape_fct_set_type |
type of Shape function used More... | |
typedef reference_element_traits< TElem >::reference_element_type | ref_elem_type |
type of reference element More... | |
typedef GaussQuadrature< scv_type, quadOrderSCV > | scv_quad_rule_type |
type of quadrature rule More... | |
typedef traits::scv_type | scv_type |
type of SubControlVolume More... | |
typedef GaussQuadrature< scvf_type, quadOrderSCVF > | scvf_quad_rule_type |
type of quadrature rule More... | |
typedef traits::scvf_type | scvf_type |
type of SubControlVolumeFace More... | |
typedef fv1_traits< ref_elem_type, worldDim > | traits |
traits used 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 BF & | bf (int si, size_t i) const |
returns the boundary face i for subsetIndex More... | |
void | clear_boundary_subsets () |
reset all boundary subsets More... | |
FVGeometry () | |
construct object and initialize local values and sizes 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... | |
void | reset_curr_elem () |
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 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, const LFEID &lfeID=LFEID(LFEID::LAGRANGE, worldDim, 1), size_t orderQuad=TQuadOrder) |
update Geometry for roid More... | |
void | update_local_data () |
update local data More... | |
Static Public Attributes | |
static const int | dim = ref_elem_type::dim |
dimension of reference element More... | |
static const size_t | nsh = local_shape_fct_set_type::nsh |
number of shape functions More... | |
static const size_t | numSCV = numSubElem * numSCVPerSubElem |
number of SubControlVolumes More... | |
static const size_t | numSCVF = numSubElem * numSCVFPerSubElem |
number of SubControlVolumeFaces More... | |
static const size_t | numSCVFIP = scvf_quad_rule_type::nip * numSCVF |
number of scvf ip More... | |
static const size_t | numSCVFPerSubElem = ref_elem_type::numEdges |
number of SCVF per SubElement More... | |
static const size_t | numSCVIP = scv_quad_rule_type::nip * numSCV |
number of scv ip More... | |
static const size_t | numSCVPerSubElem = ref_elem_type::numCorners |
number of SCV per SubElement More... | |
static const size_t | numSubElem = Pow<p, dim>::value |
number of subelements More... | |
static const int | order = TOrder |
order More... | |
static const int | quadOrderSCV = TQuadOrder |
quadrature order More... | |
static const int | quadOrderSCVF = TQuadOrder |
quadrature order More... | |
static const bool | staticLocalData = true |
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< BF > | m_vEmptyVectorBF |
MathVector< worldDim > | m_vGlobSCV_IP [numSCVIP] |
MathVector< worldDim > | m_vGlobSCVF_IP [numSCVFIP] |
MathVector< dim > | m_vLocSCV_IP [numSCVIP] |
MathVector< dim > | m_vLocSCVF_IP [numSCVFIP] |
SubElement | m_vSubElem [numSubElem] |
subelements More... | |
Static Protected Attributes | |
static const int | maxMid = numSCVF + 1 |
Private Attributes | |
TElem * | m_pElem |
pointer to current element More... | |
ReferenceMapping< ref_elem_type, worldDim > | m_rMapping |
Reference Mapping. More... | |
const ref_elem_type & | m_rRefElem |
Reference Element. More... | |
const scvf_quad_rule_type & | m_rSCVFQuadRule |
Quad Rule scvf. More... | |
const scv_quad_rule_type & | m_rSCVQuadRule |
Quad Rule scv. More... | |
const local_shape_fct_set_type & | m_rTrialSpace |
Shape function set. More... | |
MathVector< dim > | m_vLocCorner [ref_elem_type::numCorners] |
corners of reference element More... | |
SCV | m_vSCV [numSCV] |
SubControlVolumes. More... | |
SCVF | m_vSCVF [numSCVF] |
SubControlVolumeFaces. More... | |
Static Private Attributes | |
static const int | p = TOrder |
small abbreviation for order More... | |
Geometry and shape functions for any order Vertex-Centered Finite Volume.
TOrder | order |
TElem | Element type |
TWorldDim | (physical) world dimension |
TQuadOrderSCVF | integration order for scvf |
TQuadOrderSCV | integration order for scv |
typedef TElem ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::elem_type |
type of element
typedef LagrangeLSFS<ref_elem_type, p> ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::local_shape_fct_set_type |
type of Shape function used
typedef reference_element_traits<TElem>::reference_element_type ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::ref_elem_type |
type of reference element
typedef GaussQuadrature<scv_type, quadOrderSCV> ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::scv_quad_rule_type |
type of quadrature rule
typedef traits::scv_type ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::scv_type |
type of SubControlVolume
typedef GaussQuadrature<scvf_type, quadOrderSCVF> ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::scvf_quad_rule_type |
type of quadrature rule
typedef traits::scvf_type ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::scvf_type |
type of SubControlVolumeFace
typedef fv1_traits<ref_elem_type, worldDim> ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::traits |
traits used
ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::FVGeometry |
construct object and initialize local values and sizes
References ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::update_local_data().
|
inline |
add subset that is interpreted as boundary subset.
References ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::m_mapVectorBF.
|
inline |
returns reference to vector of boundary faces for subsetIndex
References ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::m_mapVectorBF, and ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::m_vEmptyVectorBF.
|
inline |
returns the boundary face i for subsetIndex
References ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::m_mapVectorBF, and UG_THROW.
|
inline |
reset all boundary subsets
References ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::m_mapVectorBF.
|
inline |
number of all boundary faces
References ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::m_mapVectorBF.
|
inline |
number of boundary faces on subset 'subsetIndex'
References ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::m_mapVectorBF.
|
inline |
number of registered boundary subsets
References ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::m_mapVectorBF.
|
inline |
number of SubControlVolumes
References ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::numSCV.
Referenced by ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::scv().
|
inline |
returns number of all scv ips
References ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::numSCVIP.
|
inline |
number of SubControlVolumeFaces
References ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::numSCVF.
Referenced by ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::scvf().
|
inline |
returns number of all scvf ips
References ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::numSCVFIP.
|
inline |
number of shape functions
References ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::nsh.
|
inline |
removes subset that is interpreted as boundary subset.
References ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::m_mapVectorBF.
|
inline |
|
inline |
const access to SubControlVolume number i
References ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::m_vSCV, ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::num_scv(), and UG_ASSERT.
|
inline |
returns all ips of scv as they appear in scv loop
References ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::m_vGlobSCV_IP.
|
inline |
returns all ips of scv as they appear in scv loop
References ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::m_vLocSCV_IP.
|
inline |
const access to SubControlVolumeFace number i
References ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::m_vSCVF, ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::num_scvf(), and UG_ASSERT.
|
inline |
returns all ips of scvf as they appear in scv loop
References ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::m_vGlobSCVF_IP.
|
inline |
returns all ips of scvf as they appear in scv loop
References ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::m_vLocSCVF_IP.
void ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::update | ( | GridObject * | elem, |
const MathVector< worldDim > * | vCornerCoords, | ||
const ISubsetHandler * | ish = NULL |
||
) |
update data for given element
References ug::MatVecMult(), ug::ReferenceMapping< TRefElem, TWorldDim >::sqrt_gram_det(), UG_ASSERT, and ug::VecNormalize().
void ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::update_boundary_faces | ( | GridObject * | elem, |
const MathVector< worldDim > * | vCornerCoords, | ||
const ISubsetHandler * | ish = NULL |
||
) |
update boundary data for given element
References ug::CollectEdgesSorted(), ug::CollectFacesSorted(), ug::CollectVertices(), ug::ComputeBFMidID(), dim, ug::ISubsetHandler::get_subset_index(), ug::ISubsetHandler::grid(), ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::BF::local_ip(), ug::ReferenceMapping< TRefElem, TWorldDim >::local_to_global(), ug::MatVecMult(), ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::BF::nodeId, ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::BF::Normal, ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::BF::num_corners(), ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::BF::num_ip(), ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::BF::num_sh(), UG_ASSERT, ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::BF::vDetJ, ug::VecTwoNorm(), ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::BF::vGlobalIP, ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::BF::vGloPos, ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::BF::vJtInv, ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::BF::vLocalIP, ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::BF::vLocPos, ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::BF::vMidID, ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::BF::Vol, ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::BF::vvGlobalGrad, ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::BF::vvLocalGrad, ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::BF::vvShape, and ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::BF::vWeight.
void ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::update_local | ( | ReferenceObjectID | roid, |
const LFEID & | lfeID = LFEID(LFEID::LAGRANGE, worldDim, 1) , |
||
size_t | orderQuad = TQuadOrder |
||
) |
update Geometry for roid
References ug::LFEID::LAGRANGE, ug::LFEID::order(), ug::LFEID::type(), and UG_THROW.
void ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::update_local_data |
update local data
References ug::ComputeSCVFMidID(), ug::ComputeSCVMidID(), dim, frac, ug::ReferenceMapping< TRefElem, TWorldDim >::local_to_global(), p, and ug::VecScaleAppend().
Referenced by ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::FVGeometry().
|
static |
dimension of reference element
|
protected |
Referenced by ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::add_boundary_subset(), ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::bf(), ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::clear_boundary_subsets(), ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::num_bf(), ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::num_boundary_subsets(), and ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::remove_boundary_subset().
|
private |
pointer to current element
Referenced by ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::reset_curr_elem().
|
private |
Reference Mapping.
|
private |
Reference Element.
|
private |
Quad Rule scvf.
|
private |
Quad Rule scv.
|
private |
Shape function set.
|
protected |
Referenced by ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::bf().
|
protected |
|
protected |
|
private |
corners of reference element
|
protected |
|
protected |
|
private |
SubControlVolumes.
Referenced by ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::scv().
|
private |
SubControlVolumeFaces.
Referenced by ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::scvf().
|
protected |
subelements
|
staticprotected |
|
static |
number of shape functions
Referenced by ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::SCVF::num_sh(), ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::SCV::num_sh(), ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::BF::num_sh(), and ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::num_sh().
|
static |
number of SubControlVolumes
Referenced by ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::num_scv().
|
static |
number of SubControlVolumeFaces
Referenced by ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::num_scvf().
|
static |
number of scvf ip
Referenced by ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::num_scvf_ips().
|
static |
number of SCVF per SubElement
|
static |
number of scv ip
Referenced by ug::FVGeometry< TOrder, TElem, TWorldDim, TQuadOrder >::num_scv_ips().
|
static |
number of SCV per SubElement
|
static |
number of subelements
|
static |
order
|
staticprivate |
small abbreviation for order
|
static |
quadrature order
|
static |
quadrature order
|
static |
flag indicating if local data may change
|
static |
Hanging node flag: this Geometry does not support hanging nodes.
|
static |
dimension of world