33#ifndef __H__UG__LIB_DISC__SPATIAL_DISC__DISC_HELPER__FV1_GEOMETRY__
34#define __H__UG__LIB_DISC__SPATIAL_DISC__DISC_HELPER__FV1_GEOMETRY__
63template <
typename TElem,
int TWorldDim,
bool TCondensed>
class FV1Geometry_gen;
75template <
typename TElem,
int TWorldDim>
94template <
typename TElem,
int TWorldDim>
112template <
typename TElem,
int TWorldDim,
bool TCondensed>
127 static const int dim = ref_elem_type::dim;
146 static const size_t numSCV = traits::numSCV;
152 static const size_t numSCVF = traits::numSCVF;
158 static const size_t nsh = local_shape_fct_set_type::nsh;
161 static const size_t nip = 1;
178 static const size_t numCo = traits::NumCornersOfSCVF;
187 inline size_t to()
const {
return To;}
277 static const size_t numCo = traits::NumCornersOfSCV;
373 static const size_t numCo = traits::NumCornersOfBF;
543 UG_ASSERT(nodeID < (
size_t) ref_elem_type::numCorners,
"Invalid node id.");
550 UG_ASSERT(nodeID < (
size_t) ref_elem_type::numCorners,
"Invalid node id.");
585 typename std::map<int, std::vector<BF> >::const_iterator it;
588 num += (*it).second.size();
595 typename std::map<int, std::vector<BF> >::const_iterator it;
598 else return (*it).second.size();
602 inline const BF&
bf(
int si,
size_t i)
const
605 typename std::map<int, std::vector<BF> >::const_iterator it;
608 return (*it).second[i];
602 inline const BF&
bf(
int si,
size_t i)
const {
…}
612 inline const std::vector<BF>&
bf(
int si)
const
614 typename std::map<int, std::vector<BF> >::const_iterator it;
612 inline const std::vector<BF>&
bf(
int si)
const {
…}
663template <
int TDim,
int TWorldDim = TDim>
672 static const int dim = TDim;
697 static const size_t maxNSH = traits::maxNSH;
700 static const size_t nip = 1;
717 static const size_t numCo = traits::NumCornersOfSCVF;
726 inline size_t to()
const {
return To;}
817 static const size_t numCo = traits::NumCornersOfSCV;
906 static const size_t numCo = traits::NumCornersOfSCVF;
1118 typename std::map<int, std::vector<BF> >::const_iterator it;
1121 num += (*it).second.size();
1128 typename std::map<int, std::vector<BF> >::const_iterator it;
1131 else return (*it).second.size();
1135 inline const BF&
bf(
int si,
size_t i)
const
1137 typename std::map<int, std::vector<BF> >::const_iterator it;
1140 return (*it).second[i];
1135 inline const BF&
bf(
int si,
size_t i)
const {
…}
1144 inline const std::vector<BF>&
bf(
int si)
const
1146 typename std::map<int, std::vector<BF> >::const_iterator it;
1149 return (*it).second;
1144 inline const std::vector<BF>&
bf(
int si)
const {
…}
1192template <
typename TElem,
int TWorldDim>
1207 static const size_t m_numBF = ref_elem_type::numCorners;
1210 static const int dim = ref_elem_type::dim;
1343 inline const BF&
bf(
size_t i)
const
boundary face
Definition fv1_geom.h:903
MathVector< dim > localIP
Definition fv1_geom.h:986
const MathMatrix< worldDim, dim > & JTInv() const
Transposed Inverse of Jacobian in integration point.
Definition fv1_geom.h:930
const MathVector< dim > & local_grad(size_t sh) const
value of local gradient of shape function i in integration point
Definition fv1_geom.h:946
const number * shape_vector() const
vector of local gradients in ip point
Definition fv1_geom.h:943
const MathVector< worldDim > & global_corner(size_t co) const
return global corner number i
Definition fv1_geom.h:967
const MathVector< dim > * local_grad_vector() const
vector of local gradients in ip point
Definition fv1_geom.h:950
MathVector< dim > vLocalGrad[maxNSH]
Definition fv1_geom.h:994
MidID vMidID[numCo]
Definition fv1_geom.h:983
MathVector< worldDim > Normal
Definition fv1_geom.h:988
number shape(size_t sh) const
value of shape function i in integration point
Definition fv1_geom.h:939
MathMatrix< worldDim, dim > JtInv
Definition fv1_geom.h:996
size_t node_id() const
index of SubControlVolume of the bf
Definition fv1_geom.h:912
size_t numSH
Definition fv1_geom.h:992
number vShape[maxNSH]
Definition fv1_geom.h:993
const MathVector< worldDim > & normal() const
outer normal on bf. Norm is equal to area
Definition fv1_geom.h:924
number Vol
Definition fv1_geom.h:989
MathVector< dim > vLocPos[numCo]
Definition fv1_geom.h:981
const MathVector< dim > & local_ip() const
local integration point of bf
Definition fv1_geom.h:918
MathVector< worldDim > vGloPos[numCo]
Definition fv1_geom.h:982
number detj
Definition fv1_geom.h:997
BF()
Definition fv1_geom.h:909
static const size_t numCo
Number of corners of bf.
Definition fv1_geom.h:906
size_t num_sh() const
number of shape functions
Definition fv1_geom.h:936
const MathVector< worldDim > & global_ip() const
global integration point of bf
Definition fv1_geom.h:921
const MathVector< dim > & local_corner(size_t co) const
return local corner number i
Definition fv1_geom.h:963
size_t num_ip() const
number of integration points on bf
Definition fv1_geom.h:915
MathVector< worldDim > vGlobalGrad[maxNSH]
Definition fv1_geom.h:995
MathVector< worldDim > globalIP
Definition fv1_geom.h:987
const MathVector< worldDim > * global_grad_vector() const
vector of global gradients in ip point
Definition fv1_geom.h:957
size_t nodeId
Definition fv1_geom.h:975
size_t num_corners() const
number of corners, that bound the scvf
Definition fv1_geom.h:960
const MathVector< worldDim > & global_grad(size_t sh) const
value of global gradient of shape function i in integration point
Definition fv1_geom.h:953
number volume() const
volume of bf
Definition fv1_geom.h:927
number detJ() const
Determinant of Jacobian in integration point.
Definition fv1_geom.h:933
Sub-Control Volume Face structure.
Definition fv1_geom.h:714
size_t From
Definition fv1_geom.h:786
size_t num_ip() const
number of integration points on scvf
Definition fv1_geom.h:729
MathVector< worldDim > globalIP
Definition fv1_geom.h:801
const MathVector< dim > & local_corner(size_t co) const
return local corner number i
Definition fv1_geom.h:773
MathVector< dim > localIP
Definition fv1_geom.h:800
MathVector< worldDim > Normal
Definition fv1_geom.h:789
const MathVector< dim > * local_grad_vector() const
vector of local gradients in ip point
Definition fv1_geom.h:760
number vShape[maxNSH]
Definition fv1_geom.h:805
const MathVector< worldDim > * global_grad_vector() const
vector of gloabl gradients in ip point
Definition fv1_geom.h:767
size_t to() const
index of SubControlVolume on one side of the scvf
Definition fv1_geom.h:726
size_t num_sh() const
number of shape functions
Definition fv1_geom.h:747
const MathVector< worldDim > & normal() const
normal on scvf (points direction "from"->"to"). Norm is equal to area
Definition fv1_geom.h:738
MathVector< dim > vLocPos[numCo]
Definition fv1_geom.h:795
MathVector< dim > vLocalGrad[maxNSH]
Definition fv1_geom.h:806
const MathMatrix< worldDim, dim > & JTInv() const
Transposed Inverse of Jacobian in integration point.
Definition fv1_geom.h:741
const number * shape_vector() const
vector of shape functions in ip point
Definition fv1_geom.h:753
size_t numSH
Definition fv1_geom.h:804
const MathVector< worldDim > & global_corner(size_t co) const
return glbal corner number i
Definition fv1_geom.h:777
MathVector< worldDim > vGloPos[numCo]
Definition fv1_geom.h:796
MathVector< worldDim > vGlobalGrad[maxNSH]
Definition fv1_geom.h:807
const MathVector< dim > & local_grad(size_t sh) const
value of local gradient of shape function i in integration point
Definition fv1_geom.h:756
number detj
Definition fv1_geom.h:809
size_t To
Definition fv1_geom.h:786
const MathVector< dim > & local_ip() const
local integration point of scvf
Definition fv1_geom.h:732
size_t from() const
index of SubControlVolume on one side of the scvf
Definition fv1_geom.h:723
static const size_t numCo
Number of corners of scvf.
Definition fv1_geom.h:717
number detJ() const
Determinant of Jacobian in integration point.
Definition fv1_geom.h:744
MidID vMidID[numCo]
Definition fv1_geom.h:797
MathMatrix< worldDim, dim > JtInv
Definition fv1_geom.h:808
const MathVector< worldDim > & global_ip() const
global integration point of scvf
Definition fv1_geom.h:735
number shape(size_t sh) const
value of shape function i in integration point
Definition fv1_geom.h:750
SCVF()
Definition fv1_geom.h:720
size_t num_corners() const
number of corners, that bound the scvf
Definition fv1_geom.h:770
const MathVector< worldDim > & global_grad(size_t sh) const
value of global gradient of shape function i in integration point
Definition fv1_geom.h:763
sub control volume structure
Definition fv1_geom.h:814
size_t num_ip() const
number of integration points
Definition fv1_geom.h:840
size_t num_sh() const
number of shape functions
Definition fv1_geom.h:855
const MathVector< dim > & local_grad(size_t sh) const
value of local gradient of shape function i in integration point
Definition fv1_geom.h:864
MathVector< worldDim > vGloPos[numCo]
Definition fv1_geom.h:889
static const size_t numCo
Number of corners of scv.
Definition fv1_geom.h:817
const MathVector< dim > & local_corner(size_t co) const
return local corner number i
Definition fv1_geom.h:829
const number * shape_vector() const
vector of shape functions in ip point
Definition fv1_geom.h:861
number volume() const
volume of scv
Definition fv1_geom.h:823
const MathVector< worldDim > & global_grad(size_t sh) const
value of global gradient of shape function i in integration point
Definition fv1_geom.h:871
MathVector< worldDim > vGlobalGrad[maxNSH]
Definition fv1_geom.h:896
number detj
Definition fv1_geom.h:898
const MathMatrix< worldDim, dim > & JTInv() const
Transposed Inverse of Jacobian in integration point.
Definition fv1_geom.h:849
size_t numSH
Definition fv1_geom.h:893
const MathVector< worldDim > & global_ip() const
global integration point
Definition fv1_geom.h:846
number detJ() const
Determinant of Jacobian in integration point.
Definition fv1_geom.h:852
number shape(size_t sh) const
value of shape function i in integration point
Definition fv1_geom.h:858
MidID vMidID[numCo]
Definition fv1_geom.h:890
size_t nodeId
Definition fv1_geom.h:882
const MathVector< dim > * local_grad_vector() const
vector of local gradients in ip point
Definition fv1_geom.h:868
MathMatrix< worldDim, dim > JtInv
Definition fv1_geom.h:897
MathVector< dim > vLocPos[numCo]
Definition fv1_geom.h:888
number vShape[maxNSH]
Definition fv1_geom.h:894
SCV()
Definition fv1_geom.h:820
const MathVector< worldDim > & global_corner(size_t co) const
return global corner number i
Definition fv1_geom.h:833
const MathVector< worldDim > * global_grad_vector() const
vector of global gradients in ip point
Definition fv1_geom.h:875
size_t node_id() const
node id that this scv is associated to
Definition fv1_geom.h:837
number Vol
Definition fv1_geom.h:885
size_t num_corners() const
number of corners, that bound the scv
Definition fv1_geom.h:826
const MathVector< dim > & local_ip() const
local integration point of scv
Definition fv1_geom.h:843
MathVector< dim > vLocalGrad[maxNSH]
Definition fv1_geom.h:895
Geometry and shape functions for 1st order Vertex-Centered Finite Volume.
Definition fv1_geom.h:665
GridObject * m_pElem
pointer to current element
Definition fv1_geom.h:1158
MathVector< dim > m_vLocSCV_IP[maxNumSCV]
Definition fv1_geom.h:1100
size_t num_scv() const
number of SubControlVolumes
Definition fv1_geom.h:1029
static const int order
order
Definition fv1_geom.h:685
static const size_t maxNSH
max number of shape functions
Definition fv1_geom.h:697
static const size_t maxNumSCVF
max number of SubControlVolumeFaces
Definition fv1_geom.h:694
size_t m_numSCV
current number of scv
Definition fv1_geom.h:1164
const MathVector< worldDim > * scvf_global_ips() const
returns all ips of scvf as they appear in scv loop
Definition fv1_geom.h:1046
static const int dim
dimension of reference element
Definition fv1_geom.h:672
const MathVector< worldDim > * coe_global() const
returns the global coordinates of the center of mass of the element
Definition fv1_geom.h:1085
const MathVector< worldDim > * scv_global_ips() const
returns all ips of scv as they appear in scv loop
Definition fv1_geom.h:1060
MathVector< dim > m_vLocSCVF_IP[maxNumSCVF]
Definition fv1_geom.h:1096
const SCVF & scvf(size_t i) const
const access to SubControlVolumeFace number i
Definition fv1_geom.h:1023
static const bool usesHangingNodes
Hanging node flag: this Geometry does not support hanging nodes.
Definition fv1_geom.h:678
MathVector< worldDim > m_vGlobSCVF_IP[maxNumSCVF]
Definition fv1_geom.h:1095
MathVector< dim > m_vvLocMid[dim+1][maxMid]
local and global geom object midpoints for each dimension
Definition fv1_geom.h:1177
static const int maxMid
max number of geometric objects in a dimension
Definition fv1_geom.h:1174
const MathVector< dim > * coe_local() const
returns the local coordinates of the center of mass of the element
Definition fv1_geom.h:1082
size_t num_sh() const
number of shape functions
Definition fv1_geom.h:1036
const BF & bf(int si, size_t i) const
returns the boundary face i for subsetIndex
Definition fv1_geom.h:1135
const MathVector< worldDim > * corners() const
get vector of corners for current element
Definition fv1_geom.h:1017
const MathVector< dim > * scv_local_ips() const
returns all ips of scv as they appear in scv loop
Definition fv1_geom.h:1052
MathVector< worldDim > m_vGlobSCV_IP[maxNumSCV]
Definition fv1_geom.h:1099
static const int worldDim
dimension of world
Definition fv1_geom.h:675
fv1_dim_traits< TDim, TWorldDim > traits
used traits
Definition fv1_geom.h:668
const MathVector< dim > * scvf_local_ips() const
returns all ips of scvf as they appear in scv loop
Definition fv1_geom.h:1043
size_t num_bf() const
number of all boundary faces
Definition fv1_geom.h:1116
void update(GridObject *elem, const MathVector< worldDim > *vCornerCoords, const ISubsetHandler *ish=NULL)
update data for given element
Definition fv1_geom.cpp:669
ReferenceObjectID roid() const
returns reference object id
Definition fv1_geom.h:1088
DimFV1Geometry()
construct object and initialize local values and sizes
Definition fv1_geom.h:1002
size_t num_bf(int si) const
number of boundary faces on subset 'subsetIndex'
Definition fv1_geom.h:1126
static const size_t nip
number of integration points
Definition fv1_geom.h:700
SCV m_vSCV[maxNumSCV]
SubControlVolumes.
Definition fv1_geom.h:1184
const std::vector< BF > & bf(int si) const
returns reference to vector of boundary faces for subsetIndex
Definition fv1_geom.h:1144
const MathVector< dim > & local_node_position(size_t nodeID) const
return local coords for node ID
Definition fv1_geom.h:1068
SCVF m_vSCVF[maxNumSCVF]
SubControlVolumeFaces.
Definition fv1_geom.h:1181
std::vector< BF > m_vEmptyVectorBF
Definition fv1_geom.h:1154
GridObject * elem() const
get the element
Definition fv1_geom.h:1014
void add_boundary_subset(int subsetIndex)
add subset that is interpreted as boundary subset.
Definition fv1_geom.h:1104
traits::scv_type scv_type
type of SubControlVolume
Definition fv1_geom.h:691
void update_boundary_faces(GridObject *elem, const MathVector< worldDim > *vCornerCoords, const ISubsetHandler *ish=NULL)
update boundary data for given element
Definition fv1_geom.cpp:779
size_t m_nsh
current number of shape functions
Definition fv1_geom.h:1170
size_t num_boundary_subsets()
number of registered boundary subsets
Definition fv1_geom.h:1113
void update_local(ReferenceObjectID roid)
update local data
Definition fv1_geom.cpp:578
static const bool staticLocalData
flag indicating if local data may change
Definition fv1_geom.h:681
MathVector< worldDim > m_vvGloMid[dim+1][maxMid]
Definition fv1_geom.h:1178
size_t num_scvf_ips() const
returns number of all scvf ips
Definition fv1_geom.h:1040
void remove_boundary_subset(int subsetIndex)
removes subset that is interpreted as boundary subset.
Definition fv1_geom.h:1107
ReferenceObjectID m_roid
current reference object id
Definition fv1_geom.h:1161
size_t num_scv_ips() const
returns number of all scv ips
Definition fv1_geom.h:1049
void clear_boundary_subsets()
reset all boundary subsets
Definition fv1_geom.h:1110
const SCV & scv(size_t i) const
const access to SubControlVolume number i
Definition fv1_geom.h:1032
const MathVector< worldDim > & global_node_position(size_t nodeID) const
return global coords for node ID
Definition fv1_geom.h:1075
size_t m_numSCVF
current number of scvf
Definition fv1_geom.h:1167
static const size_t maxNumSCV
number of SubControlVolumes
Definition fv1_geom.h:688
size_t num_scvf() const
number of SubControlVolumeFaces
Definition fv1_geom.h:1020
std::map< int, std::vector< BF > > m_mapVectorBF
Definition fv1_geom.h:1153
Geometry and shape functions for 1st order Vertex-Centered Finite Volume.
Definition fv1_geom.h:95
boundary face
Definition fv1_geom.h:370
MathVector< worldDim > globalIP
Definition fv1_geom.h:454
number vShape[nsh]
Definition fv1_geom.h:459
BF()
Definition fv1_geom.h:376
MathMatrix< worldDim, dim > JtInv
Definition fv1_geom.h:462
MathVector< dim > vLocalGrad[nsh]
Definition fv1_geom.h:460
number shape(size_t sh) const
value of shape function i in integration point
Definition fv1_geom.h:406
const number * shape_vector() const
vector of local gradients in ip point
Definition fv1_geom.h:410
const MathVector< worldDim > * global_grad_vector() const
vector of global gradients in ip point
Definition fv1_geom.h:424
const MathVector< worldDim > & global_corner(size_t co) const
return global corner number i
Definition fv1_geom.h:434
const MathVector< dim > & local_ip() const
local integration point of bf
Definition fv1_geom.h:385
static const size_t numCo
Number of corners of bf.
Definition fv1_geom.h:373
MathVector< worldDim > Normal
Definition fv1_geom.h:455
number detj
Definition fv1_geom.h:463
size_t num_ip() const
number of integration points on bf
Definition fv1_geom.h:382
const MathVector< worldDim > & global_grad(size_t sh) const
value of global gradient of shape function i in integration point
Definition fv1_geom.h:420
const MathVector< worldDim > & normal() const
outer normal on bf. Norm is equal to area
Definition fv1_geom.h:391
number volume() const
volume of bf
Definition fv1_geom.h:394
MathVector< worldDim > vGloPos[numCo]
Definition fv1_geom.h:449
MidID vMidID[numCo]
Definition fv1_geom.h:450
size_t node_id() const
index of SubControlVolume of the bf
Definition fv1_geom.h:379
size_t nodeId
Definition fv1_geom.h:442
const MathMatrix< worldDim, dim > & JTInv() const
Transposed Inverse of Jacobian in integration point.
Definition fv1_geom.h:397
const MathVector< dim > & local_corner(size_t co) const
return local corner number i
Definition fv1_geom.h:430
MathVector< dim > localIP
Definition fv1_geom.h:453
const MathVector< worldDim > & global_ip() const
global integration point of bf
Definition fv1_geom.h:388
size_t num_corners() const
number of corners, that bound the scvf
Definition fv1_geom.h:427
MathVector< dim > vLocPos[numCo]
Definition fv1_geom.h:448
number Vol
Definition fv1_geom.h:456
const MathVector< dim > * local_grad_vector() const
vector of local gradients in ip point
Definition fv1_geom.h:417
number detJ() const
Determinant of Jacobian in integration point.
Definition fv1_geom.h:400
MathVector< worldDim > vGlobalGrad[nsh]
Definition fv1_geom.h:461
const MathVector< dim > & local_grad(size_t sh) const
value of local gradient of shape function i in integration point
Definition fv1_geom.h:413
size_t num_sh() const
number of shape functions
Definition fv1_geom.h:403
Sub-Control Volume Face structure.
Definition fv1_geom.h:175
MathVector< dim > localIP
Definition fv1_geom.h:261
const number * shape_vector() const
vector of shape functions in ip point
Definition fv1_geom.h:214
MathVector< dim > vLocalGrad[nsh]
Definition fv1_geom.h:266
number detJ() const
Determinant of Jacobian in integration point.
Definition fv1_geom.h:205
SCVF()
Definition fv1_geom.h:181
const MathMatrix< worldDim, dim > & JTInv() const
Transposed Inverse of Jacobian in integration point.
Definition fv1_geom.h:202
size_t From
Definition fv1_geom.h:247
const MathVector< worldDim > & global_grad(size_t sh) const
value of global gradient of shape function i in integration point
Definition fv1_geom.h:224
number shape(size_t sh) const
value of shape function i in integration point
Definition fv1_geom.h:211
number vShape[nsh]
Definition fv1_geom.h:265
size_t num_sh() const
number of shape functions
Definition fv1_geom.h:208
static const size_t numCo
Number of corners of scvf.
Definition fv1_geom.h:178
MathVector< worldDim > vGlobalGrad[nsh]
Definition fv1_geom.h:267
const MathVector< dim > & local_corner(size_t co) const
return local corner number i
Definition fv1_geom.h:234
MathVector< worldDim > globalIP
Definition fv1_geom.h:262
MathVector< dim > vLocPos[numCo]
Definition fv1_geom.h:256
MathVector< worldDim > vGloPos[numCo]
Definition fv1_geom.h:257
MathVector< worldDim > Normal
Definition fv1_geom.h:250
MathMatrix< worldDim, dim > JtInv
Definition fv1_geom.h:268
number detj
Definition fv1_geom.h:269
const MathVector< worldDim > & normal() const
normal on scvf (points direction "from"->"to"). Norm is equal to area
Definition fv1_geom.h:190
const MathVector< worldDim > & global_ip() const
global integration point of scvf
Definition fv1_geom.h:199
size_t num_corners() const
number of corners, that bound the scvf
Definition fv1_geom.h:231
MidID vMidID[numCo]
Definition fv1_geom.h:258
const MathVector< dim > & local_grad(size_t sh) const
value of local gradient of shape function i in integration point
Definition fv1_geom.h:217
const MathVector< worldDim > * global_grad_vector() const
vector of global gradients in ip point
Definition fv1_geom.h:228
const MathVector< dim > * local_grad_vector() const
vector of local gradients in ip point
Definition fv1_geom.h:221
size_t num_ip() const
number of integration points on scvf
Definition fv1_geom.h:193
size_t To
Definition fv1_geom.h:247
size_t from() const
index of SubControlVolume on one side of the scvf
Definition fv1_geom.h:184
const MathVector< worldDim > & global_corner(size_t co) const
return global corner number i
Definition fv1_geom.h:238
size_t to() const
index of SubControlVolume on one side of the scvf
Definition fv1_geom.h:187
const MathVector< dim > & local_ip() const
local integration point of scvf
Definition fv1_geom.h:196
sub control volume structure
Definition fv1_geom.h:274
MidID midId[numCo]
Definition fv1_geom.h:358
const MathVector< dim > * local_grad_vector() const
vector of local gradients in ip point
Definition fv1_geom.h:336
MathVector< worldDim > vGloPos[numCo]
Definition fv1_geom.h:357
const MathVector< dim > & local_corner(size_t co) const
return local corner number i
Definition fv1_geom.h:289
MathMatrix< worldDim, dim > JtInv
Definition fv1_geom.h:364
const MathVector< worldDim > * global_corners() const
return global corners
Definition fv1_geom.h:301
number shape(size_t sh) const
value of shape function i in integration point
Definition fv1_geom.h:326
SCV()
Definition fv1_geom.h:280
const MathVector< dim > & local_ip() const
local integration point of scv
Definition fv1_geom.h:311
MathVector< dim > vLocPos[numCo]
Definition fv1_geom.h:356
static const size_t numCo
Number of corners of scvf.
Definition fv1_geom.h:277
size_t num_corners() const
number of corners, that bound the scvf
Definition fv1_geom.h:286
const MathVector< worldDim > & global_ip() const
global integration point
Definition fv1_geom.h:314
const MathVector< dim > & local_grad(size_t sh) const
value of local gradient of shape function i in integration point
Definition fv1_geom.h:332
MathVector< dim > vLocalGrad[nsh]
Definition fv1_geom.h:362
const number * shape_vector() const
vector of shape functions in ip point
Definition fv1_geom.h:329
size_t nodeId
Definition fv1_geom.h:350
const MathVector< worldDim > & global_grad(size_t sh) const
value of global gradient of shape function i in integration point
Definition fv1_geom.h:339
const MathVector< worldDim > * global_grad_vector() const
vector of global gradients in ip point
Definition fv1_geom.h:343
number detj
Definition fv1_geom.h:365
size_t num_ip() const
number of integration points
Definition fv1_geom.h:308
const MathVector< worldDim > & global_corner(size_t co) const
return global corner number i
Definition fv1_geom.h:293
number detJ() const
Determinant of Jacobian in integration point.
Definition fv1_geom.h:320
MathVector< worldDim > vGlobalGrad[nsh]
Definition fv1_geom.h:363
number vShape[nsh]
Definition fv1_geom.h:361
number Vol
Definition fv1_geom.h:353
const MathMatrix< worldDim, dim > & JTInv() const
Transposed Inverse of Jacobian in integration point.
Definition fv1_geom.h:317
size_t num_sh() const
number of shape functions
Definition fv1_geom.h:323
number volume() const
volume of scv
Definition fv1_geom.h:283
const MathVector< dim > * local_corners() const
return local corners
Definition fv1_geom.h:297
size_t node_id() const
node id that this scv is associated to
Definition fv1_geom.h:305
Geometry and shape functions for 1st order Vertex-Centered Finite Volume.
Definition fv1_geom.h:114
TElem * elem() const
get the element
Definition fv1_geom.h:483
size_t num_boundary_subsets()
number of registered boundary subsets
Definition fv1_geom.h:580
const MathVector< worldDim > * corners() const
get vector of the global coordinates of corners for current element
Definition fv1_geom.h:486
static const size_t numSCV
number of SubControlVolumes
Definition fv1_geom.h:146
TElem * m_pElem
pointer to current element
Definition fv1_geom.h:628
void reset_curr_elem()
Definition fv1_geom.h:620
const BF & bf(int si, size_t i) const
returns the boundary face i for subsetIndex
Definition fv1_geom.h:602
const local_shape_fct_set_type & m_rTrialSpace
Shape function set.
Definition fv1_geom.h:651
FV1Geometry_gen()
construct object and initialize local values and sizes
Definition fv1_geom.cpp:251
const MathVector< dim > * scv_local_ips() const
returns all ips of scv as they appear in scv loop
Definition fv1_geom.h:525
const std::vector< BF > & bf(int si) const
returns reference to vector of boundary faces for subsetIndex
Definition fv1_geom.h:612
ReferenceMapping< ref_elem_type, worldDim > m_mapping
Reference Mapping.
Definition fv1_geom.h:645
void update_boundary_faces(GridObject *elem, const MathVector< worldDim > *vCornerCoords, const ISubsetHandler *ish=NULL)
update boundary data for given element
Definition fv1_geom.cpp:468
size_t num_bf() const
number of all boundary faces
Definition fv1_geom.h:583
LagrangeP1< ref_elem_type > local_shape_fct_set_type
type of Shape function used
Definition fv1_geom.h:155
void remove_boundary_subset(int subsetIndex)
removes subset that is interpreted as boundary subset.
Definition fv1_geom.h:574
MathVector< dim > m_vLocSCV_IP[numSCV]
Definition fv1_geom.h:567
MathVector< worldDim > m_vGlobSCVF_IP[numSCVF]
Definition fv1_geom.h:562
const MathVector< worldDim > & global_node_position(size_t nodeID) const
return global coords for node ID
Definition fv1_geom.h:548
static const bool staticLocalData
flag indicating if local data may change
Definition fv1_geom.h:136
static const int order
order
Definition fv1_geom.h:143
static const int worldDim
dimension of world
Definition fv1_geom.h:130
SCV m_vSCV[numSCV]
SubControlVolumes.
Definition fv1_geom.h:642
void clear_boundary_subsets()
reset all boundary subsets
Definition fv1_geom.h:577
size_t num_bf(int si) const
number of boundary faces on subset 'subsetIndex'
Definition fv1_geom.h:593
static const int dim
dimension of reference element
Definition fv1_geom.h:127
size_t num_scv() const
number of SubControlVolumes
Definition fv1_geom.h:498
static const bool condensed_scvf_ips
whether the scheme shifts the scvf ip's to midpoints of the edges
Definition fv1_geom.h:139
MathVector< worldDim > m_vGlobSCV_IP[numSCV]
Definition fv1_geom.h:566
fv1_traits< ref_elem_type, TWorldDim > traits
used traits
Definition fv1_geom.h:123
size_t num_scvf_ips() const
returns number of all scvf ips
Definition fv1_geom.h:513
ReferenceObjectID roid() const
returns reference object id
Definition fv1_geom.h:508
static const int maxMid
max number of geom objects in all dimensions
Definition fv1_geom.h:632
const SCVF & scvf(size_t i) const
const access to SubControlVolumeFace number i
Definition fv1_geom.h:492
reference_element_traits< TElem >::reference_element_type ref_elem_type
type of reference element
Definition fv1_geom.h:120
std::vector< BF > m_vEmptyVectorBF
Definition fv1_geom.h:624
const MathVector< dim > & local_node_position(size_t nodeID) const
return local coords for node ID
Definition fv1_geom.h:541
const MathVector< worldDim > * scvf_global_ips() const
returns all ips of scvf as they appear in scv loop
Definition fv1_geom.h:519
size_t num_scvf() const
number of SubControlVolumeFaces
Definition fv1_geom.h:489
const MathVector< worldDim > * scv_global_ips() const
returns all ips of scv as they appear in scv loop
Definition fv1_geom.h:533
static const bool usesHangingNodes
Hanging node flag: this Geometry does not support hanging nodes.
Definition fv1_geom.h:133
size_t num_scv_ips() const
returns number of all scv ips
Definition fv1_geom.h:522
static const size_t numSCVF
number of SubControlVolumeFaces
Definition fv1_geom.h:152
SCVF m_vSCVF[numSCVF]
SubControlVolumeFaces.
Definition fv1_geom.h:639
TElem elem_type
type of element
Definition fv1_geom.h:117
void add_boundary_subset(int subsetIndex)
add subset that is interpreted as boundary subset.
Definition fv1_geom.h:571
MathVector< dim > m_vLocSCVF_IP[numSCVF]
Definition fv1_geom.h:563
const MathVector< dim > * scvf_local_ips() const
returns all ips of scvf as they appear in scv loop
Definition fv1_geom.h:516
void update_local_data()
update local data
Definition fv1_geom.cpp:260
MathVector< worldDim > m_vvGloMid[dim+1][maxMid]
Definition fv1_geom.h:636
const MathVector< worldDim > * coe_global() const
returns the global coordinates of the center of mass of the element
Definition fv1_geom.h:558
void update(GridObject *elem, const MathVector< worldDim > *vCornerCoords, const ISubsetHandler *ish=NULL)
update data for given element
Definition fv1_geom.cpp:331
traits::scv_type scv_type
type of SubControlVolume
Definition fv1_geom.h:149
size_t num_sh() const
number of shape functions
Definition fv1_geom.h:505
static const size_t nsh
number of shape functions
Definition fv1_geom.h:158
static const size_t nip
number of integration points
Definition fv1_geom.h:161
std::map< int, std::vector< BF > > m_mapVectorBF
Definition fv1_geom.h:623
const ref_elem_type & m_rRefElem
Reference Element.
Definition fv1_geom.h:648
MathVector< dim > m_vvLocMid[dim+1][maxMid]
local and global geom object midpoints for each dimension
Definition fv1_geom.h:635
const MathVector< dim > * coe_local() const
returns the local coordinates of the center of mass of the element
Definition fv1_geom.h:555
const SCV & scv(size_t i) const
const access to SubControlVolume number i
Definition fv1_geom.h:501
Geometry and shape functions for 1st order Vertex-Centered Finite Volume.
Definition fv1_geom.h:76
Definition fv1_geom.h:1235
MidID midId[numCorners]
Definition fv1_geom.h:1292
const MathVector< worldDim > & global_corner(size_t i) const
return global position of corner number i
Definition fv1_geom.h:1274
MathVector< worldDim > vGloPos[numCorners]
Definition fv1_geom.h:1291
BF()
Definition fv1_geom.h:1247
size_t num_ip() const
number of integration points
Definition fv1_geom.h:1253
size_t num_sh() const
number of shape functions
Definition fv1_geom.h:1278
size_t nodeId
Definition fv1_geom.h:1285
const MathVector< dim > & local_corner(size_t i) const
return local position of corner number i
Definition fv1_geom.h:1270
size_t num_corners() const
number of corners, that bound the bf
Definition fv1_geom.h:1267
const MathVector< worldDim > & global_ip() const
global integration point
Definition fv1_geom.h:1260
number shape(size_t i, size_t ip) const
value of shape function i in integration point
Definition fv1_geom.h:1281
number volume() const
volume of bf
Definition fv1_geom.h:1264
const MathVector< dim > & local_ip() const
local integration point of bf
Definition fv1_geom.h:1256
static const size_t numCorners
Definition fv1_geom.h:1244
size_t node_id() const
node id that this bf is associated to
Definition fv1_geom.h:1250
number vol
Definition fv1_geom.h:1297
static const size_t m_numIP
Definition fv1_geom.h:1241
MathVector< dim > vLocPos[numCorners]
Definition fv1_geom.h:1290
std::vector< number > vShape
Definition fv1_geom.h:1295
Definition fv1_geom.h:1194
const MathVector< worldDim > * bf_global_ips() const
returns all ips of scvf as they appear in scv loop
Definition fv1_geom.h:1347
static const bool usesHangingNodes
Definition fv1_geom.h:1219
static const int dim
Definition fv1_geom.h:1210
static const size_t m_numBF
Definition fv1_geom.h:1207
void copy_local_corners(BF &bf)
Definition fv1_geom.h:1301
size_t num_bf() const
number of BoundaryFaces
Definition fv1_geom.h:1340
ReferenceMapping< ref_elem_type, worldDim > m_rMapping
Definition fv1_geom.h:1370
static const bool staticLocalData
flag indicating if local data may change
Definition fv1_geom.h:1222
static const int worldDim
Definition fv1_geom.h:1213
size_t num_bf_local_ips() const
returns number of all BF ips
Definition fv1_geom.h:1356
MathVector< dim > m_locMid[dim+1][m_numBF]
Definition fv1_geom.h:1363
GridObject * m_pElem
Definition fv1_geom.h:1360
const BF & bf(size_t i) const
const access to Boundary Face number i
Definition fv1_geom.h:1343
void update(GridObject *elem, const MathVector< worldDim > *vCornerCoords, const ISubsetHandler *ish=NULL)
update data for given element
Definition fv1_geom.cpp:999
static const int order
Definition fv1_geom.h:1204
BF m_vBF[m_numBF]
Definition fv1_geom.h:1367
TElem elem_type
Definition fv1_geom.h:1197
const ref_elem_type & m_rRefElem
Definition fv1_geom.h:1373
fv1_traits< ref_elem_type, dim >::scv_type bf_type
Definition fv1_geom.h:1216
reference_element_traits< TElem >::reference_element_type ref_elem_type
Definition fv1_geom.h:1200
std::vector< MathVector< dim > > m_vLocBFIP
Definition fv1_geom.h:1321
void copy_global_corners(BF &bf)
Definition fv1_geom.h:1311
FV1ManifoldGeometry()
constructor
Definition fv1_geom.cpp:903
size_t num_bf_global_ips() const
returns number of all BF ips
Definition fv1_geom.h:1350
GridObject * elem() const
get the element
Definition fv1_geom.h:1334
std::vector< MathVector< worldDim > > m_vGlobBFIP
Definition fv1_geom.h:1322
const MathVector< worldDim > * corners() const
get vector of corners for current element
Definition fv1_geom.h:1337
MathVector< worldDim > m_gloMid[dim+1][m_numBF]
Definition fv1_geom.h:1364
const MathVector< dim > * bf_local_ips() const
returns all ips of BF as they appear in scv loop
Definition fv1_geom.h:1353
base class for all FVGeometries
Definition fv_geom_base.h:76
The base class for all geometric objects, such as vertices, edges, faces, volumes,...
Definition grid_base_objects.h:157
Definition subset_handler_interface.h:223
Lagrange shape functions of first order.
Definition lagrangep1.h:55
A class for fixed size, dense matrices.
Definition math_matrix.h:63
a mathematical Vector with N entries.
Definition math_vector.h:97
Definition reference_mapping.h:65
#define UG_ASSERT(expr, msg)
Definition assert.h:70
#define UG_THROW(msg)
Definition error.h:57
double number
Definition types.h:124
ReferenceObjectID
these ids are used to identify the shape of a geometric object.
Definition grid_base_objects.h:74
@ ROID_PYRAMID
Definition grid_base_objects.h:83
@ ROID_UNKNOWN
Definition grid_base_objects.h:75
@ ROID_OCTAHEDRON
Definition grid_base_objects.h:84
Definition fv1_geom.h:1226
size_t dim
Definition fv1_geom.h:1229
size_t id
Definition fv1_geom.h:1230
MidID(size_t dim_, size_t id_)
Definition fv1_geom.h:1228
MidID()
Definition fv1_geom.h:1227
helper class to store dimension and id of a midpoint of a sub-element
Definition fv_geom_base.h:41
Traits for Finite Volumes for a generic element of the fixed dimensionalities.
Definition fv_util.h:1325
Traits for Finite Volumes (dummy implementation, s. the instantiations below)
Definition fv_util.h:178
void scv_type
Definition fv_util.h:204
traits for reference elements
Definition reference_element_traits.h:48