37 #ifndef __H__UG__LIB_DISC__SPATIAL_DISC__DISC_HELPER__CR_FINITE_VOLUME_GEOMETRY__
38 #define __H__UG__LIB_DISC__SPATIAL_DISC__DISC_HELPER__CR_FINITE_VOLUME_GEOMETRY__
164 template <
int TDim,
int TWorldDim = TDim>
174 static const int dim = TDim;
207 static const size_t nip = 1;
237 inline size_t to()
const {
return To;}
302 for (
size_t i=0;i<
numSH;i++){
307 for (
size_t i=0;i<
numCo;i++){
588 const ISubsetHandler* ish = NULL,
bool keepSCV=
false,
bool keepSCVF=
false);
675 typename std::map<int, std::vector<BF> >::const_iterator it;
678 num += (*it).second.size();
683 inline size_t num_bf(
int subsetIndex)
const
685 typename std::map<int, std::vector<BF> >::const_iterator it;
688 else return (*it).second.size();
692 inline const BF&
bf(
int subsetIndex,
size_t i)
const
695 typename std::map<int, std::vector<BF> >::const_iterator it;
698 return (*it).second[i];
702 inline const std::vector<BF>&
bf(
int subsetIndex)
const
704 typename std::map<int, std::vector<BF> >::const_iterator it;
765 template <
typename TElem,
int TWorldDim>
791 static const size_t nsh = local_shape_fct_set_type::nsh;
797 static const size_t numSCVF = ref_elem_type::numEdges;
812 static const size_t nip = 1;
842 inline size_t to()
const {
return To;}
1204 typename std::map<int, std::vector<BF> >::const_iterator it;
1207 num += (*it).second.size();
1214 typename std::map<int, std::vector<BF> >::const_iterator it;
1217 else return (*it).second.size();
1221 inline const BF&
bf(
int subsetIndex,
size_t i)
const
1224 typename std::map<int, std::vector<BF> >::const_iterator it;
1227 return (*it).second[i];
1231 inline const std::vector<BF>&
bf(
int subsetIndex)
const
1233 typename std::map<int, std::vector<BF> >::const_iterator it;
1236 return (*it).second;
boundary face
Definition: fvcr_geom.h:1023
number volume() const
volume of bf
Definition: fvcr_geom.h:1047
size_t nodeID
Definition: fvcr_geom.h:1095
const MathVector< worldDim > & global_corner(size_t co) const
return global corner number i
Definition: fvcr_geom.h:1087
const MathVector< dim > & local_grad(size_t sh) const
value of local gradient of shape function i in integration point
Definition: fvcr_geom.h:1066
size_t num_ip() const
number of integration points on bf
Definition: fvcr_geom.h:1035
MathVector< worldDim > globalIP
Definition: fvcr_geom.h:1104
MathVector< dim > vLocalGrad[nsh]
Definition: fvcr_geom.h:1110
const MathMatrix< worldDim, dim > & JTInv() const
Transposed Inverse of Jacobian in integration point.
Definition: fvcr_geom.h:1050
MathVector< worldDim > Normal
Definition: fvcr_geom.h:1105
MathMatrix< worldDim, dim > JtInv
Definition: fvcr_geom.h:1112
const MathVector< dim > & local_corner(size_t co) const
return local corner number i
Definition: fvcr_geom.h:1083
number shape(size_t sh) const
value of shape function i in integration point
Definition: fvcr_geom.h:1059
MathVector< worldDim > vGlobalGrad[nsh]
Definition: fvcr_geom.h:1111
size_t num_sh() const
number of shape functions
Definition: fvcr_geom.h:1056
BF()
Definition: fvcr_geom.h:1029
size_t num_corners() const
number of corners, that bound the scvf
Definition: fvcr_geom.h:1080
MathVector< worldDim > vGloPos[maxNumCo]
Definition: fvcr_geom.h:1100
const MathVector< dim > & local_ip() const
local integration point of bf
Definition: fvcr_geom.h:1038
const MathVector< dim > * local_grad_vector() const
vector of local gradients in ip point
Definition: fvcr_geom.h:1070
const number * shape_vector() const
vector of local gradients in ip point
Definition: fvcr_geom.h:1063
MathVector< dim > vLocPos[maxNumCo]
Definition: fvcr_geom.h:1099
MathVector< dim > localIP
Definition: fvcr_geom.h:1103
number detJ() const
Determinant of Jacobian in integration point.
Definition: fvcr_geom.h:1053
static const size_t maxNumCo
max number of corners of bf
Definition: fvcr_geom.h:1026
number vShape[nsh]
Definition: fvcr_geom.h:1109
size_t node_id() const
index of SubControlVolume of the bf
Definition: fvcr_geom.h:1032
number detj
Definition: fvcr_geom.h:1113
const MathVector< worldDim > * global_grad_vector() const
vector of global gradients in ip point
Definition: fvcr_geom.h:1077
number Vol
Definition: fvcr_geom.h:1106
const MathVector< worldDim > & normal() const
outer normal on bf. Norm is equal to area
Definition: fvcr_geom.h:1044
const MathVector< worldDim > & global_ip() const
global integration point of bf
Definition: fvcr_geom.h:1041
size_t numCo
Definition: fvcr_geom.h:1097
const MathVector< worldDim > & global_grad(size_t sh) const
value of global gradient of shape function i in integration point
Definition: fvcr_geom.h:1073
public hanging node interface for compatibility reasons
Definition: fvcr_geom.h:1266
size_t constraining_dofs_weight(size_t i) const
Definition: fvcr_geom.h:1271
size_t num_constraining_dofs() const
Definition: fvcr_geom.h:1277
size_t index() const
Definition: fvcr_geom.h:1274
size_t constraining_dofs_index(size_t i) const
Definition: fvcr_geom.h:1268
Sub-Control Volume Face structure.
Definition: fvcr_geom.h:830
const MathVector< worldDim > & normal() const
normal on scvf (points direction "from"->"to"). Norm is equal to area
Definition: fvcr_geom.h:854
const MathVector< dim > & local_ip() const
local integration point of scvf
Definition: fvcr_geom.h:848
const MathVector< worldDim > * global_grad_vector() const
vector of global gradients in ip point
Definition: fvcr_geom.h:883
size_t num_ip() const
number of integration points on scvf
Definition: fvcr_geom.h:845
MathVector< dim > vLocPos[numCo]
Definition: fvcr_geom.h:907
SCVF()
Definition: fvcr_geom.h:836
MathMatrix< worldDim, dim > JtInv
Definition: fvcr_geom.h:918
size_t To
Definition: fvcr_geom.h:902
const MathVector< worldDim > & global_ip() const
global integration point of scvf
Definition: fvcr_geom.h:851
MathVector< worldDim > Normal
Definition: fvcr_geom.h:905
const MathVector< worldDim > & global_corner(size_t co) const
return glbal corner number i
Definition: fvcr_geom.h:893
const MathVector< worldDim > & global_grad(size_t sh) const
value of global gradient of shape function i in integration point
Definition: fvcr_geom.h:879
const MathVector< dim > * local_grad_vector() const
vector of local gradients in ip point
Definition: fvcr_geom.h:876
const MathVector< dim > & local_corner(size_t co) const
return local corner number i
Definition: fvcr_geom.h:889
number detj
Definition: fvcr_geom.h:919
size_t num_sh() const
number of shape functions
Definition: fvcr_geom.h:863
size_t to() const
index of SubControlVolume on one side of the scvf
Definition: fvcr_geom.h:842
MathVector< worldDim > globalIP
Definition: fvcr_geom.h:912
number detJ() const
Determinant of Jacobian in integration point.
Definition: fvcr_geom.h:860
MathVector< worldDim > vGlobalGrad[nsh]
Definition: fvcr_geom.h:917
size_t From
Definition: fvcr_geom.h:902
static const size_t numCo
Number of corners of scvf.
Definition: fvcr_geom.h:833
MathVector< dim > localIP
Definition: fvcr_geom.h:911
const MathMatrix< worldDim, dim > & JTInv() const
Transposed Inverse of Jacobian in integration point.
Definition: fvcr_geom.h:857
size_t from() const
index of SubControlVolume on one side of the scvf
Definition: fvcr_geom.h:839
number vShape[nsh]
Definition: fvcr_geom.h:915
MathVector< worldDim > vGloPos[numCo]
Definition: fvcr_geom.h:908
MathVector< dim > vLocalGrad[nsh]
Definition: fvcr_geom.h:916
number shape(size_t sh) const
value of shape function i in integration point
Definition: fvcr_geom.h:866
const number * shape_vector() const
vector of shape functions in ip point
Definition: fvcr_geom.h:869
size_t num_corners() const
number of corners, that bound the scvf
Definition: fvcr_geom.h:886
const MathVector< dim > & local_grad(size_t sh) const
value of local gradient of shape function i in integration point
Definition: fvcr_geom.h:872
sub control volume structure
Definition: fvcr_geom.h:924
MathMatrix< worldDim, dim > JtInv
Definition: fvcr_geom.h:1017
MathVector< worldDim > vGloPos[maxNumCo]
Definition: fvcr_geom.h:1008
const MathVector< dim > & local_corner(size_t co) const
return local corner number i
Definition: fvcr_geom.h:939
size_t num_ip() const
number of integration points
Definition: fvcr_geom.h:950
MathVector< worldDim > Normal
Definition: fvcr_geom.h:995
number Vol
Definition: fvcr_geom.h:1001
const MathVector< dim > & local_ip() const
local integration point of scv
Definition: fvcr_geom.h:953
number detj
Definition: fvcr_geom.h:1018
size_t num_sh() const
number of shape functions
Definition: fvcr_geom.h:968
MathVector< worldDim > vGlobIP
Definition: fvcr_geom.h:1011
const MathVector< worldDim > & global_grad(size_t sh) const
value of global gradient of shape function i in integration point
Definition: fvcr_geom.h:984
number volume() const
volume of scv
Definition: fvcr_geom.h:933
number detJ() const
Determinant of Jacobian in integration point.
Definition: fvcr_geom.h:965
const MathMatrix< worldDim, dim > & JTInv() const
Transposed Inverse of Jacobian in integration point.
Definition: fvcr_geom.h:962
size_t num_corners() const
number of corners, that bound the scvf
Definition: fvcr_geom.h:936
MathVector< dim > vLocIP
Definition: fvcr_geom.h:1010
SCV()
Definition: fvcr_geom.h:930
const MathVector< dim > * local_grad_vector() const
vector of local gradients in ip point
Definition: fvcr_geom.h:981
size_t node_id() const
node id that this scv is associated to
Definition: fvcr_geom.h:947
const MathVector< dim > & local_grad(size_t sh) const
value of local gradient of shape function i in integration point
Definition: fvcr_geom.h:977
const MathVector< worldDim > * global_grad_vector() const
vector of global gradients in ip point
Definition: fvcr_geom.h:988
size_t nodeID
Definition: fvcr_geom.h:998
MathVector< dim > vLocalGrad[nsh]
Definition: fvcr_geom.h:1015
const MathVector< worldDim > & normal() const
normal on scvf (points direction "from"->"to"). Norm is equal to area
Definition: fvcr_geom.h:959
const MathVector< worldDim > & global_corner(size_t co) const
return global corner number i
Definition: fvcr_geom.h:943
MathVector< dim > vLocPos[maxNumCo]
Definition: fvcr_geom.h:1007
number shape(size_t sh) const
value of shape function i in integration point
Definition: fvcr_geom.h:971
number vShape[nsh]
Definition: fvcr_geom.h:1014
const MathVector< worldDim > & global_ip() const
global integration point
Definition: fvcr_geom.h:956
static const size_t maxNumCo
Number of corners of scv.
Definition: fvcr_geom.h:927
int numCorners
Definition: fvcr_geom.h:1004
const number * shape_vector() const
vector of shape functions in ip point
Definition: fvcr_geom.h:974
MathVector< worldDim > vGlobalGrad[nsh]
Definition: fvcr_geom.h:1016
Definition: fvcr_geom.h:767
void remove_boundary_subset(int subsetIndex)
removes subset that is interpreted as boundary subset.
Definition: fvcr_geom.h:1193
const MathVector< dim > local_bary() const
returns local barycenter
Definition: fvcr_geom.h:1171
MathVector< dim > localBary
Definition: fvcr_geom.h:815
MathVector< worldDim > m_vGlobSCVF_IP[numSCVF]
Definition: fvcr_geom.h:1178
void clear_boundary_subsets()
reset all boundary subsets
Definition: fvcr_geom.h:1196
const MathVector< worldDim > global_bary() const
returns global barycenter
Definition: fvcr_geom.h:1174
SCV m_vSCV[numSCV]
SubControlVolumes.
Definition: fvcr_geom.h:1249
const MathVector< worldDim > * scvf_global_ips() const
returns all ips of scvf as they appear in scv loop
Definition: fvcr_geom.h:1159
void add_boundary_subset(int subsetIndex)
add subset that is interpreted as boundary subset.
Definition: fvcr_geom.h:1190
const MathVector< dim > * scvf_local_ips() const
returns all ips of scvf as they appear in scv loop
Definition: fvcr_geom.h:1156
static const int order
order
Definition: fvcr_geom.h:803
MathVector< worldDim > globalBary
Definition: fvcr_geom.h:816
size_t num_scv_ips() const
returns number of all scv ips
Definition: fvcr_geom.h:1162
void update(GridObject *elem, const MathVector< worldDim > *vCornerCoords, const ISubsetHandler *ish=NULL)
update data for given element
Definition: fvcr_geom.cpp:1013
static const size_t numSCVF
number of SubControlVolumeFaces
Definition: fvcr_geom.h:797
const BF & bf(int subsetIndex, size_t i) const
returns the boundary face i for subsetIndex
Definition: fvcr_geom.h:1221
CrouzeixRaviartLSFS< ref_elem_type > local_shape_fct_set_type
type of Shape function used
Definition: fvcr_geom.h:788
const local_shape_fct_set_type & m_rTrialSpace
Shape function set.
Definition: fvcr_geom.h:1261
ReferenceMapping< ref_elem_type, worldDim > m_mapping
Reference Mapping.
Definition: fvcr_geom.h:1255
static const int worldDim
dimension of world
Definition: fvcr_geom.h:779
static const size_t numSCV
number of SubControlVolumes
Definition: fvcr_geom.h:794
static const size_t nip
number of integration points
Definition: fvcr_geom.h:812
const ref_elem_type & m_rRefElem
Reference Element.
Definition: fvcr_geom.h:1258
reference_element_traits< TElem >::reference_element_type ref_elem_type
type of reference element
Definition: fvcr_geom.h:773
TElem * m_pElem
pointer to current element
Definition: fvcr_geom.h:1252
SCVF m_vSCVF[numSCVF]
SubControlVolumeFaces.
Definition: fvcr_geom.h:1246
static const int dim
dimension of reference element
Definition: fvcr_geom.h:776
size_t num_bf(int subsetIndex) const
number of boundary faces on subset 'subsetIndex'
Definition: fvcr_geom.h:1212
std::map< int, std::vector< BF > > m_mapVectorBF
Definition: fvcr_geom.h:1240
const MathVector< worldDim > * scv_global_ips() const
returns all ips of scv as they appear in scv loop
Definition: fvcr_geom.h:1168
size_t num_boundary_subsets()
number of registered boundary subsets
Definition: fvcr_geom.h:1199
const std::vector< BF > & bf(int subsetIndex) const
returns reference to vector of boundary faces for subsetIndex
Definition: fvcr_geom.h:1231
MathVector< worldDim > m_vGlobUnkCoords[numSCV]
Definition: fvcr_geom.h:1181
crfv_traits< TWorldDim, TWorldDim+1 >::scv_type scv_type1
Definition: fvcr_geom.h:808
TElem elem_type
type of element
Definition: fvcr_geom.h:770
static const size_t nsh
number of shape functions
Definition: fvcr_geom.h:791
void update_boundary_faces(GridObject *elem, const MathVector< worldDim > *vCornerCoords, const ISubsetHandler *ish=NULL)
update boundary data for given element
Definition: fvcr_geom.cpp:1122
MathVector< worldDim > m_vCo[numMaxCo]
Definition: fvcr_geom.h:1186
MathVector< dim > m_vLocSCVF_IP[numSCVF]
Definition: fvcr_geom.h:1179
static const size_t maxNumSCVF
Definition: fvcr_geom.h:799
size_t num_scvf_ips() const
returns number of all scvf ips
Definition: fvcr_geom.h:1153
CRFVGeometry()
construct object and initialize local values and sizes
Definition: fvcr_geom.cpp:935
void update_local_data()
update local data
Definition: fvcr_geom.cpp:944
static const bool usesHangingNodes
Hanging node flag: this Geometry does not support hanging nodes.
Definition: fvcr_geom.h:782
CONSTRAINED_DOF cd
Definition: fvcr_geom.h:1285
static const size_t numMaxCo
Definition: fvcr_geom.h:1184
size_t num_constrained_dofs() const
Definition: fvcr_geom.h:1281
const MathVector< worldDim > * corners() const
Definition: fvcr_geom.h:1132
crfv_traits< TWorldDim, TWorldDim+1 >::face_type face_type1
Definition: fvcr_geom.h:809
crfv_traits< TWorldDim, TWorldDim >::scv_type scv_type0
traits
Definition: fvcr_geom.h:806
size_t num_scv() const
number of SubControlVolumes
Definition: fvcr_geom.h:1142
static const bool staticLocalData
flag indicating if local data may change
Definition: fvcr_geom.h:785
size_t num_scvf() const
number of SubControlVolumeFaces
Definition: fvcr_geom.h:1135
const CONSTRAINED_DOF & constrained_dof(size_t i) const
Definition: fvcr_geom.h:1282
const MathVector< dim > * scv_local_ips() const
returns all ips of scv as they appear in scv loop
Definition: fvcr_geom.h:1165
size_t num_bf() const
number of all boundary faces
Definition: fvcr_geom.h:1202
const SCV & scv(size_t i) const
const access to SubControlVolume number i
Definition: fvcr_geom.h:1145
MathVector< dim > m_ipCoord[numSCVF]
Definition: fvcr_geom.h:1243
MathVector< dim > m_vLocUnkCoords[numSCV]
Definition: fvcr_geom.h:1182
crfv_traits< TWorldDim, TWorldDim >::face_type face_type0
Definition: fvcr_geom.h:807
const SCVF & scvf(size_t i) const
const access to SubControlVolumeFace number i
Definition: fvcr_geom.h:1138
size_t num_sh() const
number of shape functions
Definition: fvcr_geom.h:1149
Lagrange Shape Function Set without virtual functions and fixed order.
Definition: crouzeix_raviart.h:92
boundary face
Definition: fvcr_geom.h:441
const MathVector< dim > & local_corner(size_t co) const
return local corner number i
Definition: fvcr_geom.h:501
const MathVector< worldDim > & global_grad(size_t sh) const
value of global gradient of shape function i in integration point
Definition: fvcr_geom.h:491
number detj
Definition: fvcr_geom.h:532
number Vol
Definition: fvcr_geom.h:524
size_t num_sh() const
number of shape functions
Definition: fvcr_geom.h:474
MathVector< worldDim > globalIP
Definition: fvcr_geom.h:522
MathVector< worldDim > vGloPos[maxNumCo]
Definition: fvcr_geom.h:518
number volume() const
volume of bf
Definition: fvcr_geom.h:465
MathVector< worldDim > vGlobalGrad[maxNSH]
Definition: fvcr_geom.h:530
MathVector< dim > vLocPos[maxNumCo]
Definition: fvcr_geom.h:517
number shape(size_t sh) const
value of shape function i in integration point
Definition: fvcr_geom.h:477
size_t numCo
Definition: fvcr_geom.h:515
const MathVector< dim > & local_grad(size_t sh) const
value of local gradient of shape function i in integration point
Definition: fvcr_geom.h:484
MathVector< worldDim > Normal
Definition: fvcr_geom.h:523
size_t numSH
Definition: fvcr_geom.h:527
const MathVector< worldDim > * global_grad_vector() const
vector of global gradients in ip point
Definition: fvcr_geom.h:495
const MathVector< worldDim > & global_corner(size_t co) const
return global corner number i
Definition: fvcr_geom.h:505
const MathVector< worldDim > & global_ip() const
global integration point of bf
Definition: fvcr_geom.h:459
MathVector< dim > localIP
Definition: fvcr_geom.h:521
size_t nodeID
Definition: fvcr_geom.h:513
const MathVector< dim > * local_grad_vector() const
vector of local gradients in ip point
Definition: fvcr_geom.h:488
const MathMatrix< worldDim, dim > & JTInv() const
Transposed Inverse of Jacobian in integration point.
Definition: fvcr_geom.h:468
const MathVector< worldDim > & normal() const
outer normal on bf. Norm is equal to area
Definition: fvcr_geom.h:462
const number * shape_vector() const
vector of local gradients in ip point
Definition: fvcr_geom.h:481
MathMatrix< worldDim, dim > JtInv
Definition: fvcr_geom.h:531
static const size_t maxNumCo
max number of corners of bf
Definition: fvcr_geom.h:444
size_t num_ip() const
number of integration points on bf
Definition: fvcr_geom.h:453
size_t node_id() const
index of SubControlVolume of the bf
Definition: fvcr_geom.h:450
const MathVector< dim > & local_ip() const
local integration point of bf
Definition: fvcr_geom.h:456
BF()
Definition: fvcr_geom.h:447
number detJ() const
Determinant of Jacobian in integration point.
Definition: fvcr_geom.h:471
number vShape[maxNSH]
Definition: fvcr_geom.h:528
size_t num_corners() const
number of corners, that bound the scvf
Definition: fvcr_geom.h:498
MathVector< dim > vLocalGrad[maxNSH]
Definition: fvcr_geom.h:529
Definition: fvcr_geom.h:536
static const size_t maxNumConstrainingDofs
Definition: fvcr_geom.h:538
size_t cDofInd[maxNumConstrainingDofs]
Definition: fvcr_geom.h:556
size_t num_constraining_dofs() const
Definition: fvcr_geom.h:548
number cDofWeights[maxNumConstrainingDofs]
Definition: fvcr_geom.h:558
size_t constraining_dofs_index(size_t i) const
Definition: fvcr_geom.h:539
size_t index() const
Definition: fvcr_geom.h:545
number constraining_dofs_weight(size_t i) const
Definition: fvcr_geom.h:542
size_t numConstrainingDofs
Definition: fvcr_geom.h:562
size_t i
Definition: fvcr_geom.h:560
Definition: fvcr_geom.h:566
size_t scvfIndex
Definition: fvcr_geom.h:570
size_t index
Definition: fvcr_geom.h:568
size_t associatedSCV[2]
Definition: fvcr_geom.h:569
bool from
Definition: fvcr_geom.h:572
Sub-Control Volume Face structure.
Definition: fvcr_geom.h:225
const MathVector< worldDim > & global_ip() const
global integration point of scvf
Definition: fvcr_geom.h:246
const MathVector< dim > * local_grad_vector() const
vector of local gradients in ip point
Definition: fvcr_geom.h:271
number detj
Definition: fvcr_geom.h:337
number detJ() const
Determinant of Jacobian in integration point.
Definition: fvcr_geom.h:255
size_t num_sh() const
number of shape functions
Definition: fvcr_geom.h:258
const MathVector< worldDim > & normal() const
normal on scvf (points direction "from"->"to"). Norm is equal to area
Definition: fvcr_geom.h:249
number vShape[maxNSH]
Definition: fvcr_geom.h:333
MathVector< dim > vLocalGrad[maxNSH]
Definition: fvcr_geom.h:334
size_t from() const
index of SubControlVolume on one side of the scvf
Definition: fvcr_geom.h:234
size_t num_corners() const
number of corners, that bound the scvf
Definition: fvcr_geom.h:281
static const size_t numCo
Number of corners of scvf.
Definition: fvcr_geom.h:228
MathVector< worldDim > vGlobalGrad[maxNSH]
Definition: fvcr_geom.h:335
size_t num_ip() const
number of integration points on scvf
Definition: fvcr_geom.h:240
MathVector< worldDim > vGloPos[numCo]
Definition: fvcr_geom.h:325
const MathVector< dim > & local_ip() const
local integration point of scvf
Definition: fvcr_geom.h:243
size_t To
Definition: fvcr_geom.h:319
const MathMatrix< worldDim, dim > & JTInv() const
Transposed Inverse of Jacobian in integration point.
Definition: fvcr_geom.h:252
void operator=(const SCVF &s)
Definition: fvcr_geom.h:292
const MathVector< worldDim > & global_grad(size_t sh) const
value of global gradient of shape function i in integration point
Definition: fvcr_geom.h:274
const MathVector< dim > & local_grad(size_t sh) const
value of local gradient of shape function i in integration point
Definition: fvcr_geom.h:267
MathMatrix< worldDim, dim > JtInv
Definition: fvcr_geom.h:336
const MathVector< worldDim > & global_corner(size_t co) const
return glbal corner number i
Definition: fvcr_geom.h:288
MathVector< dim > localIP
Definition: fvcr_geom.h:328
size_t to() const
index of SubControlVolume on one side of the scvf
Definition: fvcr_geom.h:237
const MathVector< worldDim > * global_grad_vector() const
vector of gloabl gradients in ip point
Definition: fvcr_geom.h:278
MathVector< worldDim > Normal
Definition: fvcr_geom.h:322
MathVector< dim > vLocPos[numCo]
Definition: fvcr_geom.h:324
const MathVector< dim > & local_corner(size_t co) const
return local corner number i
Definition: fvcr_geom.h:284
const number * shape_vector() const
vector of shape functions in ip point
Definition: fvcr_geom.h:264
number shape(size_t sh) const
value of shape function i in integration point
Definition: fvcr_geom.h:261
size_t From
Definition: fvcr_geom.h:319
SCVF()
Definition: fvcr_geom.h:231
size_t numSH
Definition: fvcr_geom.h:332
MathVector< worldDim > globalIP
Definition: fvcr_geom.h:329
sub control volume structure
Definition: fvcr_geom.h:342
number volume() const
volume of scv
Definition: fvcr_geom.h:351
MathVector< dim > vLocIP
Definition: fvcr_geom.h:427
size_t num_sh() const
number of shape functions
Definition: fvcr_geom.h:386
number Vol
Definition: fvcr_geom.h:419
MathVector< worldDim > vGlobalGrad[maxNSH]
Definition: fvcr_geom.h:434
number detj
Definition: fvcr_geom.h:436
const MathVector< worldDim > & global_corner(size_t co) const
return global corner number i
Definition: fvcr_geom.h:361
MathVector< dim > vLocPos[maxNumCo]
Definition: fvcr_geom.h:425
const MathVector< dim > & local_ip() const
local integration point of scv
Definition: fvcr_geom.h:371
MathVector< worldDim > Normal
Definition: fvcr_geom.h:413
size_t num_corners() const
number of corners, that bound the scvf
Definition: fvcr_geom.h:354
static const size_t maxNumCo
Number of corners of scv.
Definition: fvcr_geom.h:345
int numCorners
Definition: fvcr_geom.h:422
const MathVector< dim > * local_grad_vector() const
vector of local gradients in ip point
Definition: fvcr_geom.h:399
const MathVector< worldDim > & global_grad(size_t sh) const
value of global gradient of shape function i in integration point
Definition: fvcr_geom.h:402
size_t node_id() const
node id that this scv is associated to
Definition: fvcr_geom.h:365
const MathMatrix< worldDim, dim > & JTInv() const
Transposed Inverse of Jacobian in integration point.
Definition: fvcr_geom.h:380
SCV()
Definition: fvcr_geom.h:348
size_t numSH
Definition: fvcr_geom.h:431
size_t nodeID
Definition: fvcr_geom.h:416
const MathVector< dim > & local_corner(size_t co) const
return local corner number i
Definition: fvcr_geom.h:357
const number * shape_vector() const
vector of shape functions in ip point
Definition: fvcr_geom.h:392
MathVector< worldDim > vGloPos[maxNumCo]
Definition: fvcr_geom.h:426
MathVector< dim > vLocalGrad[maxNSH]
Definition: fvcr_geom.h:433
MathMatrix< worldDim, dim > JtInv
Definition: fvcr_geom.h:435
size_t num_ip() const
number of integration points
Definition: fvcr_geom.h:368
const MathVector< worldDim > & normal() const
normal on scvf (points direction "from"->"to"). Norm is equal to area
Definition: fvcr_geom.h:377
MathVector< dim > vGlobIP
Definition: fvcr_geom.h:428
const MathVector< dim > & local_grad(size_t sh) const
value of local gradient of shape function i in integration point
Definition: fvcr_geom.h:395
const MathVector< worldDim > & global_ip() const
global integration point
Definition: fvcr_geom.h:374
number vShape[maxNSH]
Definition: fvcr_geom.h:432
const MathVector< worldDim > * global_grad_vector() const
vector of global gradients in ip point
Definition: fvcr_geom.h:406
number detJ() const
Determinant of Jacobian in integration point.
Definition: fvcr_geom.h:383
number shape(size_t sh) const
value of shape function i in integration point
Definition: fvcr_geom.h:389
Geometry and shape functions for 1st order Vertex-Centered Finite Volume with Crouzeix-Raviart elemen...
Definition: fvcr_geom.h:166
SCVF m_vSCVF[maxNumSCVF]
SubControlVolumeFaces.
Definition: fvcr_geom.h:741
static const size_t nip
number of integration points
Definition: fvcr_geom.h:207
void update_geometric_data(GridObject *elem, const MathVector< worldDim > *vCornerCoords, const ISubsetHandler *ish=NULL)
update data for given element
Definition: fvcr_geom.cpp:754
crfv_traits< TWorldDim, TWorldDim+1 >::face_type face_type1
Definition: fvcr_geom.h:196
SCV m_vSCV[maxNumSCV]
SubControlVolumes.
Definition: fvcr_geom.h:747
static const int order
order
Definition: fvcr_geom.h:187
const MathVector< worldDim > * scv_global_ips() const
returns all ips of scv as they appear in scv loop
Definition: fvcr_geom.h:643
const SCV & scv(size_t i) const
const access to SubControlVolume number i
Definition: fvcr_geom.h:610
MathVector< dim > cornerCoord[maxNumCo]
Definition: fvcr_geom.h:738
const MathVector< dim > local_bary() const
returns local barycenter
Definition: fvcr_geom.h:646
size_t m_numSCVF
current number of scvf
Definition: fvcr_geom.h:732
size_t num_scvf() const
number of SubControlVolumeFaces
Definition: fvcr_geom.h:600
size_t num_scv() const
number of SubControlVolumes
Definition: fvcr_geom.h:607
GridObject * m_pElem
pointer to current element
Definition: fvcr_geom.h:720
std::vector< HandledEdge > handledEdges
Definition: fvcr_geom.h:716
static const size_t maxNumSCV
number of SubControlVolumes
Definition: fvcr_geom.h:190
size_t m_nsh
current number of shape functions
Definition: fvcr_geom.h:735
MathVector< dim > m_vLocUnkCoords[maxNumSCV]
Definition: fvcr_geom.h:657
void remove_boundary_subset(int subsetIndex)
removes subset that is interpreted as boundary subset.
Definition: fvcr_geom.h:664
static const size_t deleted
Definition: fvcr_geom.h:756
const MathVector< worldDim > * scvf_global_ips() const
returns all ips of scvf as they appear in scv loop
Definition: fvcr_geom.h:634
MathVector< dim > localBary
Definition: fvcr_geom.h:210
hcrfv_traits< TDim, TDim > htraits
Definition: fvcr_geom.h:170
static const int dim
dimension of reference element
Definition: fvcr_geom.h:174
MathVector< worldDim > m_vGlobUnkCoords[maxNumSCV]
Definition: fvcr_geom.h:656
const SCVF & scvf(size_t i) const
const access to SubControlVolumeFace number i
Definition: fvcr_geom.h:603
CONSTRAINED_DOF m_vCD[maxNumSCV]
constrained Dofs
Definition: fvcr_geom.h:714
std::map< int, std::vector< BF > > m_mapVectorBF
Definition: fvcr_geom.h:711
crfv_traits< TWorldDim, TWorldDim+1 >::scv_type scv_type1
Definition: fvcr_geom.h:195
static const bool staticLocalData
flag indicating if local data may change
Definition: fvcr_geom.h:183
DimReferenceElement< dim > m_rRefElem
current reference element
Definition: fvcr_geom.h:726
void clear_boundary_subsets()
reset all boundary subsets
Definition: fvcr_geom.h:667
size_t num_constrained_scvf()
number of constrained dof scvfs
Definition: fvcr_geom.h:621
size_t m_numConstrainedDofs
Definition: fvcr_geom.h:752
void add_boundary_subset(int subsetIndex)
add subset that is interpreted as boundary subset.
Definition: fvcr_geom.h:661
size_t num_boundary_subsets()
number of registered boundary subsets
Definition: fvcr_geom.h:670
static const bool usesHangingNodes
Hanging node flag: this Geometry does not support hanging nodes.
Definition: fvcr_geom.h:180
static const int worldDim
dimension of world
Definition: fvcr_geom.h:177
const std::vector< BF > & bf(int subsetIndex) const
returns reference to vector of boundary faces for subsetIndex
Definition: fvcr_geom.h:702
size_t num_sh() const
number of shape functions
Definition: fvcr_geom.h:624
MathVector< dim > m_ipCoord[maxNumSCVF]
Definition: fvcr_geom.h:737
static const size_t maxNSH
max number of shape functions
Definition: fvcr_geom.h:202
void update(GridObject *elem, const MathVector< worldDim > *vCornerCoords, const ISubsetHandler *ish=NULL)
update data for given element
Definition: fvcr_geom.cpp:142
void update_boundary_faces(GridObject *elem, const MathVector< worldDim > *vCornerCoords, const ISubsetHandler *ish=NULL)
update boundary data for given element
Definition: fvcr_geom.cpp:823
crfv_traits< TWorldDim, TWorldDim >::scv_type scv_type0
traits
Definition: fvcr_geom.h:193
void update_local_data()
update local data
Definition: fvcr_geom.cpp:54
ReferenceObjectID m_roid
current reference object id
Definition: fvcr_geom.h:723
const MathVector< worldDim > global_bary() const
returns global barycenter
Definition: fvcr_geom.h:649
size_t m_numConstrainedSCVF
Definition: fvcr_geom.h:754
crfv_traits< TWorldDim, TWorldDim >::face_type face_type0
Definition: fvcr_geom.h:194
crfv_traits< TDim, TDim > traits
used traits
Definition: fvcr_geom.h:169
MathVector< worldDim > m_vGlobSCVF_IP[maxNumSCVF]
Definition: fvcr_geom.h:653
static const size_t maxNumCo
Definition: fvcr_geom.h:204
const MathVector< dim > * scv_local_ips() const
returns all ips of scv as they appear in scv loop
Definition: fvcr_geom.h:640
const MathVector< dim > * scvf_local_ips() const
returns all ips of scvf as they appear in scv loop
Definition: fvcr_geom.h:631
SCVF m_vConstrainedSCVF[maxNumSCVF]
SubControlVolumeFaces for constrained dofs.
Definition: fvcr_geom.h:744
size_t num_bf() const
number of all boundary faces
Definition: fvcr_geom.h:673
size_t m_numDofs
numDofs number of all dofs including constraining and constrained dofs
Definition: fvcr_geom.h:750
size_t m_numSCV
current number of scv
Definition: fvcr_geom.h:729
static const size_t maxNumSCVF
max number of SubControlVolumeFaces
Definition: fvcr_geom.h:199
DimCRFVGeometry()
construct object and initialize local values and sizes
Definition: fvcr_geom.h:577
const CONSTRAINED_DOF & constrained_dof(size_t i) const
const access to constrained dof i
Definition: fvcr_geom.h:617
MathVector< dim > m_vLocSCVF_IP[maxNumSCVF]
Definition: fvcr_geom.h:654
size_t num_scvf_ips() const
returns number of all scvf ips
Definition: fvcr_geom.h:628
const BF & bf(int subsetIndex, size_t i) const
returns the boundary face i for subsetIndex
Definition: fvcr_geom.h:692
size_t num_scv_ips() const
returns number of all scv ips
Definition: fvcr_geom.h:637
size_t num_bf(int subsetIndex) const
number of boundary faces on subset 'subsetIndex'
Definition: fvcr_geom.h:683
size_t num_constrained_dofs() const
number of constrained dofs
Definition: fvcr_geom.h:614
void update_hanging(GridObject *elem, const MathVector< worldDim > *vCornerCoords, const ISubsetHandler *ish=NULL, bool keepSCV=false, bool keepSCVF=false)
update data for given element
Definition: fvcr_geom.cpp:267
MathVector< worldDim > globalBary
Definition: fvcr_geom.h:211
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
Definition: reference_element.h:345
Definition: reference_element.h:546
Definition: reference_element.h:445
Definition: reference_element.h:494
Definition: reference_element.h:394
Definition: reference_element.h:303
#define UG_ASSERT(expr, msg)
Definition: assert.h:70
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_UNKNOWN
Definition: grid_base_objects.h:75
ReferenceEdge scv_type
Definition: fvcr_geom.h:79
ReferenceVertex face_type
Definition: fvcr_geom.h:80
ReferenceVertex face_type
Definition: fvcr_geom.h:90
ReferenceEdge scv_type
Definition: fvcr_geom.h:89
ReferenceTriangle scv_type
Definition: fvcr_geom.h:99
ReferenceEdge face_type
Definition: fvcr_geom.h:100
ReferenceEdge face_type
Definition: fvcr_geom.h:110
ReferenceTriangle scv_type
Definition: fvcr_geom.h:109
ReferenceTriangle face_type
Definition: fvcr_geom.h:120
ReferenceTetrahedron scv_type
Definition: fvcr_geom.h:119
ReferenceQuadrilateral face_type
Definition: fvcr_geom.h:130
ReferencePyramid scv_type
Definition: fvcr_geom.h:129
Definition: fvcr_geom.h:68
static const size_t maxNumSCV
Definition: fvcr_geom.h:72
void face_type
Definition: fvcr_geom.h:70
static const size_t maxNSH
Definition: fvcr_geom.h:73
static const size_t maxNumCo
Definition: fvcr_geom.h:74
void scv_type
Definition: fvcr_geom.h:69
static const size_t maxNumSCVF
Definition: fvcr_geom.h:71
Definition: hfvcr_geom.h:67
static const size_t maxNumSCVF
Definition: hfvcr_geom.h:70
static const size_t maxNumSCV
Definition: hfvcr_geom.h:71
static const size_t maxNSH
Definition: hfvcr_geom.h:72
traits for reference elements
Definition: reference_element_traits.h:48