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__
164template <
int TDim,
int TWorldDim = TDim>
174 static const int dim = TDim;
202 static const size_t maxNSH = htraits::maxNSH;
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;
765template <
typename TElem,
int TWorldDim>
776 static const int dim = ref_elem_type::dim;
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
const MathVector< worldDim > * global_grad_vector() const
vector of global gradients in ip point
Definition fvcr_geom.h:1077
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_ip() const
local integration point of bf
Definition fvcr_geom.h:1038
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
const number * shape_vector() const
vector of local gradients in ip point
Definition fvcr_geom.h:1063
size_t num_ip() const
number of integration points on bf
Definition fvcr_geom.h:1035
MathVector< worldDim > globalIP
Definition fvcr_geom.h:1104
const MathVector< dim > & local_corner(size_t co) const
return local corner number i
Definition fvcr_geom.h:1083
MathVector< dim > vLocalGrad[nsh]
Definition fvcr_geom.h:1110
MathVector< worldDim > Normal
Definition fvcr_geom.h:1105
MathMatrix< worldDim, dim > JtInv
Definition fvcr_geom.h:1112
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
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
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_grad_vector() const
vector of local gradients in ip point
Definition fvcr_geom.h:1070
MathVector< dim > vLocPos[maxNumCo]
Definition fvcr_geom.h:1099
const MathVector< worldDim > & normal() const
outer normal on bf. Norm is equal to area
Definition fvcr_geom.h:1044
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
number Vol
Definition fvcr_geom.h:1106
const MathVector< worldDim > & global_ip() const
global integration point of bf
Definition fvcr_geom.h:1041
const MathMatrix< worldDim, dim > & JTInv() const
Transposed Inverse of Jacobian in integration point.
Definition fvcr_geom.h:1050
size_t numCo
Definition fvcr_geom.h:1097
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
size_t num_ip() const
number of integration points on scvf
Definition fvcr_geom.h:845
const MathVector< dim > & local_corner(size_t co) const
return local corner number i
Definition fvcr_geom.h:889
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
MathVector< worldDim > Normal
Definition fvcr_geom.h:905
const MathMatrix< worldDim, dim > & JTInv() const
Transposed Inverse of Jacobian in integration point.
Definition fvcr_geom.h:857
number detj
Definition fvcr_geom.h:919
const MathVector< dim > & local_ip() const
local integration point of scvf
Definition fvcr_geom.h:848
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
const number * shape_vector() const
vector of shape functions in ip point
Definition fvcr_geom.h:869
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
const MathVector< worldDim > & normal() const
normal on scvf (points direction "from"->"to"). Norm is equal to area
Definition fvcr_geom.h:854
MathVector< dim > localIP
Definition fvcr_geom.h:911
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
const MathVector< worldDim > * global_grad_vector() const
vector of global gradients in ip point
Definition fvcr_geom.h:883
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
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 MathVector< dim > & local_grad(size_t sh) const
value of local gradient of shape function i in integration point
Definition fvcr_geom.h:872
const MathVector< worldDim > & global_ip() const
global integration point of scvf
Definition fvcr_geom.h:851
const MathVector< worldDim > & global_corner(size_t co) const
return glbal corner number i
Definition fvcr_geom.h:893
size_t num_corners() const
number of corners, that bound the scvf
Definition fvcr_geom.h:886
const MathVector< dim > * local_grad_vector() const
vector of local gradients in ip point
Definition fvcr_geom.h:876
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
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< worldDim > & global_corner(size_t co) const
return global corner number i
Definition fvcr_geom.h:943
number detj
Definition fvcr_geom.h:1018
const MathVector< worldDim > & normal() const
normal on scvf (points direction "from"->"to"). Norm is equal to area
Definition fvcr_geom.h:959
size_t num_sh() const
number of shape functions
Definition fvcr_geom.h:968
MathVector< worldDim > vGlobIP
Definition fvcr_geom.h:1011
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
size_t num_corners() const
number of corners, that bound the scvf
Definition fvcr_geom.h:936
const number * shape_vector() const
vector of shape functions in ip point
Definition fvcr_geom.h:974
MathVector< dim > vLocIP
Definition fvcr_geom.h:1010
SCV()
Definition fvcr_geom.h:930
const MathVector< worldDim > * global_grad_vector() const
vector of global gradients in ip point
Definition fvcr_geom.h:988
size_t node_id() const
node id that this scv is associated to
Definition fvcr_geom.h:947
const MathMatrix< worldDim, dim > & JTInv() const
Transposed Inverse of Jacobian in integration point.
Definition fvcr_geom.h:962
const MathVector< worldDim > & global_ip() const
global integration point
Definition fvcr_geom.h:956
size_t nodeID
Definition fvcr_geom.h:998
MathVector< dim > vLocalGrad[nsh]
Definition fvcr_geom.h:1015
MathVector< dim > vLocPos[maxNumCo]
Definition fvcr_geom.h:1007
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
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< dim > * local_grad_vector() const
vector of local gradients in ip point
Definition fvcr_geom.h:981
static const size_t maxNumCo
Number of corners of scv.
Definition fvcr_geom.h:927
int numCorners
Definition fvcr_geom.h:1004
MathVector< worldDim > vGlobalGrad[nsh]
Definition fvcr_geom.h:1016
const MathVector< dim > & local_corner(size_t co) const
return local corner number i
Definition fvcr_geom.h:939
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
const MathVector< dim > & local_ip() const
local integration point of scv
Definition fvcr_geom.h:953
Definition fvcr_geom.h:767
const MathVector< dim > local_bary() const
returns local barycenter
Definition fvcr_geom.h:1171
void remove_boundary_subset(int subsetIndex)
removes subset that is interpreted as boundary subset.
Definition fvcr_geom.h:1193
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< dim > * scv_local_ips() const
returns all ips of scv as they appear in scv loop
Definition fvcr_geom.h:1165
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< worldDim > * corners() const
Definition fvcr_geom.h:1132
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 CONSTRAINED_DOF & constrained_dof(size_t i) const
Definition fvcr_geom.h:1282
CrouzeixRaviartLSFS< ref_elem_type > local_shape_fct_set_type
type of Shape function used
Definition fvcr_geom.h:788
const SCV & scv(size_t i) const
const access to SubControlVolume number i
Definition fvcr_geom.h:1145
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
const MathVector< worldDim > * scv_global_ips() const
returns all ips of scv as they appear in scv loop
Definition fvcr_geom.h:1168
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
size_t num_boundary_subsets()
number of registered boundary subsets
Definition fvcr_geom.h:1199
MathVector< worldDim > m_vGlobUnkCoords[numSCV]
Definition fvcr_geom.h:1181
crfv_traits< TWorldDim, TWorldDim+1 >::scv_type scv_type1
Definition fvcr_geom.h:808
const MathVector< dim > * scvf_local_ips() const
returns all ips of scvf as they appear in scv loop
Definition fvcr_geom.h:1156
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
const SCVF & scvf(size_t i) const
const access to SubControlVolumeFace number i
Definition fvcr_geom.h:1138
const MathVector< worldDim > global_bary() const
returns global barycenter
Definition fvcr_geom.h:1174
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 std::vector< BF > & bf(int subsetIndex) const
returns reference to vector of boundary faces for subsetIndex
Definition fvcr_geom.h:1231
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
const BF & bf(int subsetIndex, size_t i) const
returns the boundary face i for subsetIndex
Definition fvcr_geom.h:1221
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
size_t num_bf() const
number of all boundary faces
Definition fvcr_geom.h:1202
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
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
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
const number * shape_vector() const
vector of local gradients in ip point
Definition fvcr_geom.h:481
number shape(size_t sh) const
value of shape function i in integration point
Definition fvcr_geom.h:477
const MathVector< dim > & local_corner(size_t co) const
return local corner number i
Definition fvcr_geom.h:501
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
const MathVector< worldDim > & global_ip() const
global integration point of bf
Definition fvcr_geom.h:459
MathVector< worldDim > Normal
Definition fvcr_geom.h:523
size_t numSH
Definition fvcr_geom.h:527
const MathVector< dim > * local_grad_vector() const
vector of local gradients in ip point
Definition fvcr_geom.h:488
MathVector< dim > localIP
Definition fvcr_geom.h:521
size_t nodeID
Definition fvcr_geom.h:513
const MathMatrix< worldDim, dim > & JTInv() const
Transposed Inverse of Jacobian in integration point.
Definition fvcr_geom.h:468
MathMatrix< worldDim, dim > JtInv
Definition fvcr_geom.h:531
const MathVector< dim > & local_ip() const
local integration point of bf
Definition fvcr_geom.h:456
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
const MathVector< worldDim > * global_grad_vector() const
vector of global gradients in ip point
Definition fvcr_geom.h:495
size_t node_id() const
index of SubControlVolume of the bf
Definition fvcr_geom.h:450
const MathVector< worldDim > & global_corner(size_t co) const
return global corner number i
Definition fvcr_geom.h:505
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
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
const MathVector< worldDim > & normal() const
outer normal on bf. Norm is equal to area
Definition fvcr_geom.h:462
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< 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
number vShape[maxNSH]
Definition fvcr_geom.h:333
MathVector< dim > vLocalGrad[maxNSH]
Definition fvcr_geom.h:334
const MathVector< dim > & local_corner(size_t co) const
return local corner number i
Definition fvcr_geom.h:284
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
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
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
size_t To
Definition fvcr_geom.h:319
const number * shape_vector() const
vector of shape functions in ip point
Definition fvcr_geom.h:264
const MathVector< worldDim > & global_ip() const
global integration point of scvf
Definition fvcr_geom.h:246
const MathVector< worldDim > * global_grad_vector() const
vector of gloabl gradients in ip point
Definition fvcr_geom.h:278
void operator=(const SCVF &s)
Definition fvcr_geom.h:292
const MathMatrix< worldDim, dim > & JTInv() const
Transposed Inverse of Jacobian in integration point.
Definition fvcr_geom.h:252
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
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
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 > & normal() const
normal on scvf (points direction "from"->"to"). Norm is equal to area
Definition fvcr_geom.h:249
const MathVector< dim > & local_ip() const
local integration point of scvf
Definition fvcr_geom.h:243
MathVector< worldDim > Normal
Definition fvcr_geom.h:322
MathVector< dim > vLocPos[numCo]
Definition fvcr_geom.h:324
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
const MathVector< worldDim > * global_grad_vector() const
vector of global gradients in ip point
Definition fvcr_geom.h:406
MathVector< worldDim > vGlobalGrad[maxNSH]
Definition fvcr_geom.h:434
number detj
Definition fvcr_geom.h:436
MathVector< dim > vLocPos[maxNumCo]
Definition fvcr_geom.h:425
MathVector< worldDim > Normal
Definition fvcr_geom.h:413
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 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_ip() const
local integration point of scv
Definition fvcr_geom.h:371
size_t node_id() const
node id that this scv is associated to
Definition fvcr_geom.h:365
SCV()
Definition fvcr_geom.h:348
const MathVector< dim > * local_grad_vector() const
vector of local gradients in ip point
Definition fvcr_geom.h:399
size_t numSH
Definition fvcr_geom.h:431
size_t nodeID
Definition fvcr_geom.h:416
MathVector< worldDim > vGloPos[maxNumCo]
Definition fvcr_geom.h:426
MathVector< dim > vLocalGrad[maxNSH]
Definition fvcr_geom.h:433
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 > & normal() const
normal on scvf (points direction "from"->"to"). Norm is equal to area
Definition fvcr_geom.h:377
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 > & global_corner(size_t co) const
return global corner number i
Definition fvcr_geom.h:361
MathVector< dim > vGlobIP
Definition fvcr_geom.h:428
number vShape[maxNSH]
Definition fvcr_geom.h:432
const MathMatrix< worldDim, dim > & JTInv() const
Transposed Inverse of Jacobian in integration point.
Definition fvcr_geom.h:380
const MathVector< dim > & local_corner(size_t co) const
return local corner number i
Definition fvcr_geom.h:357
number detJ() const
Determinant of Jacobian in integration point.
Definition fvcr_geom.h:383
const MathVector< worldDim > & global_ip() const
global integration point
Definition fvcr_geom.h:374
number shape(size_t sh) const
value of shape function i in integration point
Definition fvcr_geom.h:389
const number * shape_vector() const
vector of shape functions in ip point
Definition fvcr_geom.h:392
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
const std::vector< BF > & bf(int subsetIndex) const
returns reference to vector of boundary faces for subsetIndex
Definition fvcr_geom.h:702
const MathVector< dim > * scv_local_ips() const
returns all ips of scv as they appear in scv loop
Definition fvcr_geom.h:640
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
MathVector< dim > cornerCoord[maxNumCo]
Definition fvcr_geom.h:738
size_t m_numSCVF
current number of scvf
Definition fvcr_geom.h:732
const MathVector< worldDim > global_bary() const
returns global barycenter
Definition fvcr_geom.h:649
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
const SCV & scv(size_t i) const
const access to SubControlVolume number i
Definition fvcr_geom.h:610
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
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 CONSTRAINED_DOF & constrained_dof(size_t i) const
const access to constrained dof i
Definition fvcr_geom.h:617
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
const BF & bf(int subsetIndex, size_t i) const
returns the boundary face i for subsetIndex
Definition fvcr_geom.h:692
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
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
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 > local_bary() const
returns local barycenter
Definition fvcr_geom.h:646
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
const MathVector< worldDim > * scvf_global_ips() const
returns all ips of scvf as they appear in scv loop
Definition fvcr_geom.h:634
const SCVF & scvf(size_t i) const
const access to SubControlVolumeFace number i
Definition fvcr_geom.h:603
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
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
size_t num_scv_ips() const
returns number of all scv ips
Definition fvcr_geom.h:637
const MathVector< worldDim > * scv_global_ips() const
returns all ips of scv as they appear in scv loop
Definition fvcr_geom.h:643
const MathVector< dim > * scvf_local_ips() const
returns all ips of scvf as they appear in scv loop
Definition fvcr_geom.h:631
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
dimension dependent base class for reference elements
Definition reference_element.h:183
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
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_element.h:345
Definition reference_mapping.h:65
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
traits for reference elements
Definition reference_element_traits.h:48