33 #ifndef __H__UG__LIB_DISC__SPATIAL_DISC__DISC_HELPER__FV1_GEOMETRY__
34 #define __H__UG__LIB_DISC__SPATIAL_DISC__DISC_HELPER__FV1_GEOMETRY__
63 template <
typename TElem,
int TWorldDim,
bool TCondensed>
class FV1Geometry_gen;
75 template <
typename TElem,
int TWorldDim>
94 template <
typename TElem,
int TWorldDim>
112 template <
typename TElem,
int TWorldDim,
bool TCondensed>
161 static const size_t nip = 1;
187 inline size_t to()
const {
return To;}
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];
612 inline const std::vector<BF>&
bf(
int si)
const
614 typename std::map<int, std::vector<BF> >::const_iterator it;
663 template <
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];
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;
1192 template <
typename TElem,
int TWorldDim>
1207 static const size_t m_numBF = ref_elem_type::numCorners;
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_corner(size_t co) const
return local corner number i
Definition: fv1_geom.h:963
const MathVector< worldDim > & normal() const
outer normal on bf. Norm is equal to area
Definition: fv1_geom.h:924
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
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
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
const MathVector< dim > * local_grad_vector() const
vector of local gradients in ip point
Definition: fv1_geom.h:950
size_t numSH
Definition: fv1_geom.h:992
number vShape[maxNSH]
Definition: fv1_geom.h:993
const number * shape_vector() const
vector of local gradients in ip point
Definition: fv1_geom.h:943
number Vol
Definition: fv1_geom.h:989
MathVector< dim > vLocPos[numCo]
Definition: fv1_geom.h:981
const MathVector< worldDim > * global_grad_vector() const
vector of global gradients in ip point
Definition: fv1_geom.h:957
MathVector< worldDim > vGloPos[numCo]
Definition: fv1_geom.h:982
const MathVector< worldDim > & global_ip() const
global integration point of bf
Definition: fv1_geom.h:921
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
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
size_t nodeId
Definition: fv1_geom.h:975
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
size_t num_corners() const
number of corners, that bound the scvf
Definition: fv1_geom.h:960
const MathVector< worldDim > & global_corner(size_t co) const
return global corner number i
Definition: fv1_geom.h:967
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
const MathVector< dim > & local_ip() const
local integration point of bf
Definition: fv1_geom.h:918
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
number vShape[maxNSH]
Definition: fv1_geom.h:805
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
MathVector< dim > vLocPos[numCo]
Definition: fv1_geom.h:795
MathVector< dim > vLocalGrad[maxNSH]
Definition: fv1_geom.h:806
const MathVector< worldDim > & normal() const
normal on scvf (points direction "from"->"to"). Norm is equal to area
Definition: fv1_geom.h:738
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
const MathMatrix< worldDim, dim > & JTInv() const
Transposed Inverse of Jacobian in integration point.
Definition: fv1_geom.h:741
size_t numSH
Definition: fv1_geom.h:804
MathVector< worldDim > vGloPos[numCo]
Definition: fv1_geom.h:796
MathVector< worldDim > vGlobalGrad[maxNSH]
Definition: fv1_geom.h:807
number detj
Definition: fv1_geom.h:809
size_t To
Definition: fv1_geom.h:786
size_t from() const
index of SubControlVolume on one side of the scvf
Definition: fv1_geom.h:723
const number * shape_vector() const
vector of shape functions in ip point
Definition: fv1_geom.h:753
const MathVector< worldDim > * global_grad_vector() const
vector of gloabl gradients in ip point
Definition: fv1_geom.h:767
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
const MathVector< worldDim > & global_corner(size_t co) const
return glbal corner number i
Definition: fv1_geom.h:777
MathMatrix< worldDim, dim > JtInv
Definition: fv1_geom.h:808
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
number shape(size_t sh) const
value of shape function i in integration point
Definition: fv1_geom.h:750
const MathVector< dim > & local_ip() const
local integration point of scvf
Definition: fv1_geom.h:732
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< dim > * local_grad_vector() const
vector of local gradients in ip point
Definition: fv1_geom.h:760
const MathVector< worldDim > & global_ip() const
global integration point of scvf
Definition: fv1_geom.h:735
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
MathVector< worldDim > vGloPos[numCo]
Definition: fv1_geom.h:889
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
const MathVector< dim > & local_ip() const
local integration point of scv
Definition: fv1_geom.h:843
static const size_t numCo
Number of corners of scv.
Definition: fv1_geom.h:817
number volume() const
volume of scv
Definition: fv1_geom.h:823
MathVector< worldDim > vGlobalGrad[maxNSH]
Definition: fv1_geom.h:896
number detj
Definition: fv1_geom.h:898
const MathVector< worldDim > & global_corner(size_t co) const
return global corner number i
Definition: fv1_geom.h:833
size_t numSH
Definition: fv1_geom.h:893
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
MathMatrix< worldDim, dim > JtInv
Definition: fv1_geom.h:897
MathVector< dim > vLocPos[numCo]
Definition: fv1_geom.h:888
const MathVector< dim > & local_corner(size_t co) const
return local corner number i
Definition: fv1_geom.h:829
number vShape[maxNSH]
Definition: fv1_geom.h:894
const MathMatrix< worldDim, dim > & JTInv() const
Transposed Inverse of Jacobian in integration point.
Definition: fv1_geom.h:849
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
const number * shape_vector() const
vector of shape functions in ip point
Definition: fv1_geom.h:861
SCV()
Definition: fv1_geom.h:820
size_t node_id() const
node id that this scv is associated to
Definition: fv1_geom.h:837
const MathVector< worldDim > * global_grad_vector() const
vector of global gradients in ip point
Definition: fv1_geom.h:875
number Vol
Definition: fv1_geom.h:885
const MathVector< worldDim > & global_ip() const
global integration point
Definition: fv1_geom.h:846
size_t num_corners() const
number of corners, that bound the scv
Definition: fv1_geom.h:826
const MathVector< dim > * local_grad_vector() const
vector of local gradients in ip point
Definition: fv1_geom.h:868
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
const BF & bf(int si, size_t i) const
returns the boundary face i for subsetIndex
Definition: fv1_geom.h:1135
static const int order
order
Definition: fv1_geom.h:685
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 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 std::vector< BF > & bf(int si) const
returns reference to vector of boundary faces for subsetIndex
Definition: fv1_geom.h:1144
static const int dim
dimension of reference element
Definition: fv1_geom.h:672
MathVector< dim > m_vLocSCVF_IP[maxNumSCVF]
Definition: fv1_geom.h:1096
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
const SCVF & scvf(size_t i) const
const access to SubControlVolumeFace number i
Definition: fv1_geom.h:1023
const SCV & scv(size_t i) const
const access to SubControlVolume number i
Definition: fv1_geom.h:1032
size_t num_sh() const
number of shape functions
Definition: fv1_geom.h:1036
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
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
const MathVector< dim > & local_node_position(size_t nodeID) const
return local coords for node ID
Definition: fv1_geom.h:1068
const MathVector< worldDim > * corners() const
get vector of corners for current element
Definition: fv1_geom.h:1017
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
SCVF m_vSCVF[maxNumSCVF]
SubControlVolumeFaces.
Definition: fv1_geom.h:1181
const MathVector< worldDim > * scv_global_ips() const
returns all ips of scv as they appear in scv loop
Definition: fv1_geom.h:1060
std::vector< BF > m_vEmptyVectorBF
Definition: fv1_geom.h:1154
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
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_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
GridObject * elem() const
get the element
Definition: fv1_geom.h:1014
void clear_boundary_subsets()
reset all boundary subsets
Definition: fv1_geom.h:1110
const MathVector< dim > * scv_local_ips() const
returns all ips of scv as they appear in scv loop
Definition: fv1_geom.h:1052
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
const MathVector< worldDim > & global_node_position(size_t nodeID) const
return global coords for node ID
Definition: fv1_geom.h:1075
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
const MathVector< worldDim > * coe_global() const
returns the global coordinates of the center of mass of the element
Definition: fv1_geom.h:1085
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
const MathVector< worldDim > & global_ip() const
global integration point of bf
Definition: fv1_geom.h:388
number shape(size_t sh) const
value of shape function i in integration point
Definition: fv1_geom.h:406
const MathVector< dim > * local_grad_vector() const
vector of local gradients in ip point
Definition: fv1_geom.h:417
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
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 MathVector< worldDim > & global_grad(size_t sh) const
value of global gradient of shape function i in integration point
Definition: fv1_geom.h:420
MathVector< dim > localIP
Definition: fv1_geom.h:453
const MathMatrix< worldDim, dim > & JTInv() const
Transposed Inverse of Jacobian in integration point.
Definition: fv1_geom.h:397
size_t num_corners() const
number of corners, that bound the scvf
Definition: fv1_geom.h:427
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
const MathVector< dim > & local_corner(size_t co) const
return local corner number i
Definition: fv1_geom.h:430
const MathVector< dim > & local_ip() const
local integration point of bf
Definition: fv1_geom.h:385
MathVector< dim > vLocPos[numCo]
Definition: fv1_geom.h:448
number Vol
Definition: fv1_geom.h:456
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< worldDim > & normal() const
outer normal on bf. Norm is equal to area
Definition: fv1_geom.h:391
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 number * shape_vector() const
vector of local gradients in ip point
Definition: fv1_geom.h:410
size_t num_sh() const
number of shape functions
Definition: fv1_geom.h:403
Sub-Control Volume Face structure.
Definition: fv1_geom.h:175
const MathVector< worldDim > & global_ip() const
global integration point of scvf
Definition: fv1_geom.h:199
MathVector< dim > localIP
Definition: fv1_geom.h:261
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 MathVector< dim > * local_grad_vector() const
vector of local gradients in ip point
Definition: fv1_geom.h:221
const MathVector< worldDim > & global_corner(size_t co) const
return global corner number i
Definition: fv1_geom.h:238
const MathVector< dim > & local_corner(size_t co) const
return local corner number i
Definition: fv1_geom.h:234
const MathVector< dim > & local_ip() const
local integration point of scvf
Definition: fv1_geom.h:196
size_t From
Definition: fv1_geom.h:247
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
const number * shape_vector() const
vector of shape functions in ip point
Definition: fv1_geom.h:214
static const size_t numCo
Number of corners of scvf.
Definition: fv1_geom.h:178
MathVector< worldDim > vGlobalGrad[nsh]
Definition: fv1_geom.h:267
MathVector< worldDim > globalIP
Definition: fv1_geom.h:262
MathVector< dim > vLocPos[numCo]
Definition: fv1_geom.h:256
const MathMatrix< worldDim, dim > & JTInv() const
Transposed Inverse of Jacobian in integration point.
Definition: fv1_geom.h:202
const MathVector< worldDim > * global_grad_vector() const
vector of global gradients in ip point
Definition: fv1_geom.h:228
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
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 detj
Definition: fv1_geom.h:269
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< worldDim > & normal() const
normal on scvf (points direction "from"->"to"). Norm is equal to area
Definition: fv1_geom.h:190
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< dim > & local_grad(size_t sh) const
value of local gradient of shape function i in integration point
Definition: fv1_geom.h:217
size_t to() const
index of SubControlVolume on one side of the scvf
Definition: fv1_geom.h:187
sub control volume structure
Definition: fv1_geom.h:274
const MathVector< dim > * local_corners() const
return local corners
Definition: fv1_geom.h:297
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
MidID midId[numCo]
Definition: fv1_geom.h:358
MathVector< worldDim > vGloPos[numCo]
Definition: fv1_geom.h:357
MathMatrix< worldDim, dim > JtInv
Definition: fv1_geom.h:364
number shape(size_t sh) const
value of shape function i in integration point
Definition: fv1_geom.h:326
const MathVector< dim > & local_ip() const
local integration point of scv
Definition: fv1_geom.h:311
const MathVector< dim > & local_corner(size_t co) const
return local corner number i
Definition: fv1_geom.h:289
SCV()
Definition: fv1_geom.h:280
MathVector< dim > vLocPos[numCo]
Definition: fv1_geom.h:356
const MathVector< worldDim > * global_grad_vector() const
vector of global gradients in ip point
Definition: fv1_geom.h:343
const MathMatrix< worldDim, dim > & JTInv() const
Transposed Inverse of Jacobian in integration point.
Definition: fv1_geom.h:317
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_grad(size_t sh) const
value of global gradient of shape function i in integration point
Definition: fv1_geom.h:339
MathVector< dim > vLocalGrad[nsh]
Definition: fv1_geom.h:362
size_t nodeId
Definition: fv1_geom.h:350
const number * shape_vector() const
vector of shape functions in ip point
Definition: fv1_geom.h:329
const MathVector< dim > * local_grad_vector() const
vector of local gradients in ip point
Definition: fv1_geom.h:336
number detj
Definition: fv1_geom.h:365
size_t num_ip() const
number of integration points
Definition: fv1_geom.h:308
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 MathVector< worldDim > * global_corners() const
return global corners
Definition: fv1_geom.h:301
const MathVector< worldDim > & global_ip() const
global integration point
Definition: fv1_geom.h:314
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< worldDim > & global_corner(size_t co) const
return global corner number i
Definition: fv1_geom.h:293
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
size_t num_boundary_subsets()
number of registered boundary subsets
Definition: fv1_geom.h:580
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 SCV & scv(size_t i) const
const access to SubControlVolume number i
Definition: fv1_geom.h:501
const local_shape_fct_set_type & m_rTrialSpace
Shape function set.
Definition: fv1_geom.h:651
TElem * elem() const
get the element
Definition: fv1_geom.h:483
const MathVector< worldDim > * scvf_global_ips() const
returns all ips of scvf as they appear in scv loop
Definition: fv1_geom.h:519
FV1Geometry_gen()
construct object and initialize local values and sizes
Definition: fv1_geom.cpp:251
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 > * coe_global() const
returns the global coordinates of the center of mass of the element
Definition: fv1_geom.h:558
const MathVector< worldDim > & global_node_position(size_t nodeID) const
return global coords for node ID
Definition: fv1_geom.h:548
const std::vector< BF > & bf(int si) const
returns reference to vector of boundary faces for subsetIndex
Definition: fv1_geom.h:612
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
const MathVector< dim > * coe_local() const
returns the local coordinates of the center of mass of the element
Definition: fv1_geom.h:555
const MathVector< dim > * scvf_local_ips() const
returns all ips of scvf as they appear in scv loop
Definition: fv1_geom.h:516
static const int maxMid
max number of geom objects in all dimensions
Definition: fv1_geom.h:632
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
size_t num_scvf() const
number of SubControlVolumeFaces
Definition: fv1_geom.h:489
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 BF & bf(int si, size_t i) const
returns the boundary face i for subsetIndex
Definition: fv1_geom.h:602
const MathVector< dim > & local_node_position(size_t nodeID) const
return local coords for node ID
Definition: fv1_geom.h:541
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 > * corners() const
get vector of the global coordinates of corners for current element
Definition: fv1_geom.h:486
const MathVector< worldDim > * scv_global_ips() const
returns all ips of scv as they appear in scv loop
Definition: fv1_geom.h:533
void update(GridObject *elem, const MathVector< worldDim > *vCornerCoords, const ISubsetHandler *ish=NULL)
update data for given element
Definition: fv1_geom.cpp:331
const MathVector< dim > * scv_local_ips() const
returns all ips of scv as they appear in scv loop
Definition: fv1_geom.h:525
traits::scv_type scv_type
type of SubControlVolume
Definition: fv1_geom.h:149
const SCVF & scvf(size_t i) const
const access to SubControlVolumeFace number i
Definition: fv1_geom.h:492
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
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
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
size_t num_corners() const
number of corners, that bound the bf
Definition: fv1_geom.h:1267
number shape(size_t i, size_t ip) const
value of shape function i in integration point
Definition: fv1_geom.h:1281
const MathVector< dim > & local_corner(size_t i) const
return local position of corner number i
Definition: fv1_geom.h:1270
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
const MathVector< worldDim > & global_corner(size_t i) const
return global position of corner number i
Definition: fv1_geom.h:1274
const MathVector< worldDim > & global_ip() const
global integration point
Definition: fv1_geom.h:1260
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
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
const BF & bf(size_t i) const
const access to Boundary Face number i
Definition: fv1_geom.h:1343
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
fv1_traits< ref_elem_type, dim >::scv_type bf_type
Definition: fv1_geom.h:1216
size_t num_bf_local_ips() const
returns number of all BF ips
Definition: fv1_geom.h:1356
const MathVector< dim > * bf_local_ips() const
returns all ips of BF as they appear in scv loop
Definition: fv1_geom.h:1353
MathVector< dim > m_locMid[dim+1][m_numBF]
Definition: fv1_geom.h:1363
GridObject * m_pElem
Definition: fv1_geom.h:1360
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
const MathVector< worldDim > * bf_global_ips() const
returns all ips of scvf as they appear in scv loop
Definition: fv1_geom.h:1347
TElem elem_type
Definition: fv1_geom.h:1197
const MathVector< worldDim > * corners() const
get vector of corners for current element
Definition: fv1_geom.h:1337
const ref_elem_type & m_rRefElem
Definition: fv1_geom.h:1373
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
GridObject * elem() const
get the element
Definition: fv1_geom.h:1334
size_t num_bf_global_ips() const
returns number of all BF ips
Definition: fv1_geom.h:1350
std::vector< MathVector< worldDim > > m_vGlobBFIP
Definition: fv1_geom.h:1322
MathVector< worldDim > m_gloMid[dim+1][m_numBF]
Definition: fv1_geom.h:1364
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
static const size_t nsh
Number of shape functions.
Definition: lagrangep1.h:77
#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:1228
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
static const size_t numSCVF
number of SubControlVolumeFaces (for most of the elements - overridden for e.g. ROID_PYRAMID and ROID...
Definition: fv_util.h:85
static const size_t numSCV
number of SubControlVolumes (for most of the elements - overridden for e.g. ROID_PYRAMID and ROID_OCT...
Definition: fv_util.h:82
Traits for Finite Volumes (dummy implementation, s. the instantiations below)
Definition: fv_util.h:178
static const size_t NumCornersOfSCV
Definition: fv_util.h:188
void scv_type
Definition: fv_util.h:204
static const size_t NumCornersOfSCVF
Definition: fv_util.h:185
static const size_t NumCornersOfBF
Definition: fv_util.h:191
traits for reference elements
Definition: reference_element_traits.h:48