ug4
|
Geometry and shape functions for 1st order Vertex-Centered Finite Volume with Crouzeix-Raviart elements. More...
#include <fvcr_geom.h>
Classes | |
class | BF |
boundary face More... | |
class | CONSTRAINED_DOF |
class | HandledEdge |
class | SCV |
sub control volume structure More... | |
class | SCVF |
Sub-Control Volume Face structure. More... | |
Public Types | |
typedef crfv_traits< TWorldDim, TWorldDim >::face_type | face_type0 |
typedef crfv_traits< TWorldDim, TWorldDim+1 >::face_type | face_type1 |
typedef hcrfv_traits< TDim, TDim > | htraits |
typedef crfv_traits< TWorldDim, TWorldDim >::scv_type | scv_type0 |
traits More... | |
typedef crfv_traits< TWorldDim, TWorldDim+1 >::scv_type | scv_type1 |
typedef crfv_traits< TDim, TDim > | traits |
used traits More... | |
Public Member Functions | |
void | add_boundary_subset (int subsetIndex) |
add subset that is interpreted as boundary subset. More... | |
const std::vector< BF > & | bf (int subsetIndex) const |
returns reference to vector of boundary faces for subsetIndex More... | |
const BF & | bf (int subsetIndex, size_t i) const |
returns the boundary face i for subsetIndex More... | |
void | clear_boundary_subsets () |
reset all boundary subsets More... | |
const CONSTRAINED_DOF & | constrained_dof (size_t i) const |
const access to constrained dof i More... | |
DimCRFVGeometry () | |
construct object and initialize local values and sizes More... | |
const MathVector< worldDim > | global_bary () const |
returns global barycenter More... | |
const MathVector< dim > | local_bary () const |
returns local barycenter More... | |
size_t | num_bf () const |
number of all boundary faces More... | |
size_t | num_bf (int subsetIndex) const |
number of boundary faces on subset 'subsetIndex' More... | |
size_t | num_boundary_subsets () |
number of registered boundary subsets More... | |
size_t | num_constrained_dofs () const |
number of constrained dofs More... | |
size_t | num_constrained_scvf () |
number of constrained dof scvfs More... | |
size_t | num_scv () const |
number of SubControlVolumes More... | |
size_t | num_scv_ips () const |
returns number of all scv ips More... | |
size_t | num_scvf () const |
number of SubControlVolumeFaces More... | |
size_t | num_scvf_ips () const |
returns number of all scvf ips More... | |
size_t | num_sh () const |
number of shape functions More... | |
void | remove_boundary_subset (int subsetIndex) |
removes subset that is interpreted as boundary subset. More... | |
const SCV & | scv (size_t i) const |
const access to SubControlVolume number i More... | |
const MathVector< worldDim > * | scv_global_ips () const |
returns all ips of scv as they appear in scv loop More... | |
const MathVector< dim > * | scv_local_ips () const |
returns all ips of scv as they appear in scv loop More... | |
const SCVF & | scvf (size_t i) const |
const access to SubControlVolumeFace number i More... | |
const MathVector< worldDim > * | scvf_global_ips () const |
returns all ips of scvf as they appear in scv loop More... | |
const MathVector< dim > * | scvf_local_ips () const |
returns all ips of scvf as they appear in scv loop More... | |
void | update (GridObject *elem, const MathVector< worldDim > *vCornerCoords, const ISubsetHandler *ish=NULL) |
update data for given element More... | |
void | update_boundary_faces (GridObject *elem, const MathVector< worldDim > *vCornerCoords, const ISubsetHandler *ish=NULL) |
update boundary data for given element More... | |
void | update_geometric_data (GridObject *elem, const MathVector< worldDim > *vCornerCoords, const ISubsetHandler *ish=NULL) |
update data for given element More... | |
void | update_hanging (GridObject *elem, const MathVector< worldDim > *vCornerCoords, const ISubsetHandler *ish=NULL, bool keepSCV=false, bool keepSCVF=false) |
update data for given element More... | |
void | update_local_data () |
update local data More... | |
Public Attributes | |
MathVector< worldDim > | globalBary |
MathVector< dim > | localBary |
Static Public Attributes | |
static const int | dim = TDim |
dimension of reference element More... | |
static const size_t | maxNSH = htraits::maxNSH |
max number of shape functions More... | |
static const size_t | maxNumCo = traits::maxNumCo |
static const size_t | maxNumSCV = htraits::maxNumSCV |
number of SubControlVolumes More... | |
static const size_t | maxNumSCVF = htraits::maxNumSCVF |
max number of SubControlVolumeFaces More... | |
static const size_t | nip = 1 |
number of integration points More... | |
static const int | order = 1 |
order More... | |
static const bool | staticLocalData = false |
flag indicating if local data may change More... | |
static const bool | usesHangingNodes = false |
Hanging node flag: this Geometry does not support hanging nodes. More... | |
static const int | worldDim = TWorldDim |
dimension of world More... | |
Protected Attributes | |
std::vector< HandledEdge > | handledEdges |
std::map< int, std::vector< BF > > | m_mapVectorBF |
CONSTRAINED_DOF | m_vCD [maxNumSCV] |
constrained Dofs More... | |
MathVector< worldDim > | m_vGlobSCVF_IP [maxNumSCVF] |
MathVector< worldDim > | m_vGlobUnkCoords [maxNumSCV] |
MathVector< dim > | m_vLocSCVF_IP [maxNumSCVF] |
MathVector< dim > | m_vLocUnkCoords [maxNumSCV] |
Private Attributes | |
MathVector< dim > | cornerCoord [maxNumCo] |
MathVector< dim > | m_ipCoord [maxNumSCVF] |
size_t | m_nsh |
current number of shape functions More... | |
size_t | m_numConstrainedDofs |
size_t | m_numConstrainedSCVF |
size_t | m_numDofs |
numDofs number of all dofs including constraining and constrained dofs More... | |
size_t | m_numSCV |
current number of scv More... | |
size_t | m_numSCVF |
current number of scvf More... | |
GridObject * | m_pElem |
pointer to current element More... | |
ReferenceObjectID | m_roid |
current reference object id More... | |
DimReferenceElement< dim > | m_rRefElem |
current reference element More... | |
SCVF | m_vConstrainedSCVF [maxNumSCVF] |
SubControlVolumeFaces for constrained dofs. More... | |
SCV | m_vSCV [maxNumSCV] |
SubControlVolumes. More... | |
SCVF | m_vSCVF [maxNumSCVF] |
SubControlVolumeFaces. More... | |
Static Private Attributes | |
static const size_t | deleted = 117 |
Geometry and shape functions for 1st order Vertex-Centered Finite Volume with Crouzeix-Raviart elements.
TDim | reference element dim |
TWorldDim | (physical) world dimension |
typedef crfv_traits<TWorldDim,TWorldDim>::face_type ug::DimCRFVGeometry< TDim, TWorldDim >::face_type0 |
typedef crfv_traits<TWorldDim,TWorldDim+1>::face_type ug::DimCRFVGeometry< TDim, TWorldDim >::face_type1 |
typedef hcrfv_traits<TDim, TDim> ug::DimCRFVGeometry< TDim, TWorldDim >::htraits |
typedef crfv_traits<TWorldDim,TWorldDim>::scv_type ug::DimCRFVGeometry< TDim, TWorldDim >::scv_type0 |
traits
typedef crfv_traits<TWorldDim,TWorldDim+1>::scv_type ug::DimCRFVGeometry< TDim, TWorldDim >::scv_type1 |
typedef crfv_traits<TDim, TDim> ug::DimCRFVGeometry< TDim, TWorldDim >::traits |
used traits
|
inline |
construct object and initialize local values and sizes
|
inline |
add subset that is interpreted as boundary subset.
References ug::DimCRFVGeometry< TDim, TWorldDim >::m_mapVectorBF.
|
inline |
returns reference to vector of boundary faces for subsetIndex
References ug::DimCRFVGeometry< TDim, TWorldDim >::m_mapVectorBF, and UG_ASSERT.
|
inline |
returns the boundary face i for subsetIndex
References ug::DimCRFVGeometry< TDim, TWorldDim >::m_mapVectorBF, ug::DimCRFVGeometry< TDim, TWorldDim >::num_bf(), and UG_ASSERT.
|
inline |
reset all boundary subsets
References ug::DimCRFVGeometry< TDim, TWorldDim >::m_mapVectorBF.
|
inline |
const access to constrained dof i
References ug::DimCRFVGeometry< TDim, TWorldDim >::m_numConstrainedDofs, ug::DimCRFVGeometry< TDim, TWorldDim >::m_vCD, and UG_ASSERT.
|
inline |
returns global barycenter
References ug::DimCRFVGeometry< TDim, TWorldDim >::globalBary.
|
inline |
returns local barycenter
References ug::DimCRFVGeometry< TDim, TWorldDim >::localBary.
|
inline |
number of all boundary faces
References ug::DimCRFVGeometry< TDim, TWorldDim >::m_mapVectorBF.
Referenced by ug::DimCRFVGeometry< TDim, TWorldDim >::bf().
|
inline |
number of boundary faces on subset 'subsetIndex'
References ug::DimCRFVGeometry< TDim, TWorldDim >::m_mapVectorBF.
|
inline |
number of registered boundary subsets
References ug::DimCRFVGeometry< TDim, TWorldDim >::m_mapVectorBF.
|
inline |
number of constrained dofs
References ug::DimCRFVGeometry< TDim, TWorldDim >::m_numConstrainedDofs.
|
inline |
number of constrained dof scvfs
References ug::DimCRFVGeometry< TDim, TWorldDim >::m_numConstrainedSCVF.
|
inline |
number of SubControlVolumes
References ug::DimCRFVGeometry< TDim, TWorldDim >::m_numSCV.
Referenced by ug::DimCRFVGeometry< TDim, TWorldDim >::scv().
|
inline |
returns number of all scv ips
References ug::DimCRFVGeometry< TDim, TWorldDim >::m_numSCV.
|
inline |
number of SubControlVolumeFaces
References ug::DimCRFVGeometry< TDim, TWorldDim >::m_numSCVF.
Referenced by ug::DimCRFVGeometry< TDim, TWorldDim >::scvf().
|
inline |
returns number of all scvf ips
References ug::DimCRFVGeometry< TDim, TWorldDim >::m_numSCVF.
|
inline |
number of shape functions
References ug::DimCRFVGeometry< TDim, TWorldDim >::m_nsh.
|
inline |
removes subset that is interpreted as boundary subset.
References ug::DimCRFVGeometry< TDim, TWorldDim >::m_mapVectorBF.
|
inline |
const access to SubControlVolume number i
References ug::DimCRFVGeometry< TDim, TWorldDim >::m_vSCV, ug::DimCRFVGeometry< TDim, TWorldDim >::num_scv(), and UG_ASSERT.
|
inline |
returns all ips of scv as they appear in scv loop
References ug::DimCRFVGeometry< TDim, TWorldDim >::m_vGlobUnkCoords.
|
inline |
returns all ips of scv as they appear in scv loop
References ug::DimCRFVGeometry< TDim, TWorldDim >::m_vLocUnkCoords.
|
inline |
const access to SubControlVolumeFace number i
References ug::DimCRFVGeometry< TDim, TWorldDim >::m_vSCVF, ug::DimCRFVGeometry< TDim, TWorldDim >::num_scvf(), and UG_ASSERT.
|
inline |
returns all ips of scvf as they appear in scv loop
References ug::DimCRFVGeometry< TDim, TWorldDim >::m_vGlobSCVF_IP.
|
inline |
returns all ips of scvf as they appear in scv loop
References ug::DimCRFVGeometry< TDim, TWorldDim >::m_vLocSCVF_IP.
void ug::DimCRFVGeometry< TDim, TWorldDim >::update | ( | GridObject * | elem, |
const MathVector< worldDim > * | vCornerCoords, | ||
const ISubsetHandler * | ish = NULL |
||
) |
update data for given element
References ug::AveragePositions(), dim, ug::ReferenceElement::id(), ug::DimReferenceMapping< TDim, TWorldDim >::is_linear(), ug::DimReferenceMapping< TDim, TWorldDim >::jacobian_transposed_inverse(), ug::MatVecMult(), ug::ReferenceElement::num(), ug::GridObject::reference_object_id(), ug::DimReferenceMapping< TDim, TWorldDim >::sqrt_gram_det(), UG_CATCH_THROW, and ug::DimReferenceMapping< TDim, TWorldDim >::update().
void ug::DimCRFVGeometry< TDim, TWorldDim >::update_boundary_faces | ( | GridObject * | elem, |
const MathVector< worldDim > * | vCornerCoords, | ||
const ISubsetHandler * | ish = NULL |
||
) |
update boundary data for given element
References ug::CollectEdgesSorted(), ug::CollectFacesSorted(), ug::CollectVertices(), ug::LFEID::CROUZEIX_RAVIART, ug::DimCRFVGeometry< TDim, TWorldDim >::BF::detj, dim, ug::ISubsetHandler::get_subset_index(), ug::DimCRFVGeometry< TDim, TWorldDim >::BF::globalIP, ug::LocalShapeFunctionSet< TDim, TShape, TGrad >::grads(), ug::ISubsetHandler::grid(), ug::DimReferenceMapping< TDim, TWorldDim >::jacobian_transposed_inverse(), ug::DimCRFVGeometry< TDim, TWorldDim >::BF::JtInv, ug::DimCRFVGeometry< TDim, TWorldDim >::BF::localIP, ug::MatVecMult(), ug::DimCRFVGeometry< TDim, TWorldDim >::BF::nodeID, ug::DimCRFVGeometry< TDim, TWorldDim >::BF::Normal, ug::LocalDoFSet::num_sh(), ug::DimCRFVGeometry< TDim, TWorldDim >::BF::num_sh(), ug::DimCRFVGeometry< TDim, TWorldDim >::BF::numCo, ug::DimCRFVGeometry< TDim, TWorldDim >::BF::numSH, ug::LocalShapeFunctionSet< TDim, TShape, TGrad >::shapes(), ug::DimReferenceMapping< TDim, TWorldDim >::sqrt_gram_det(), UG_CATCH_THROW, ug::DimReferenceMapping< TDim, TWorldDim >::update(), ug::VecTwoNorm(), ug::DimCRFVGeometry< TDim, TWorldDim >::BF::vGlobalGrad, ug::DimCRFVGeometry< TDim, TWorldDim >::BF::vLocalGrad, ug::DimCRFVGeometry< TDim, TWorldDim >::BF::Vol, and ug::DimCRFVGeometry< TDim, TWorldDim >::BF::vShape.
void ug::DimCRFVGeometry< TDim, TWorldDim >::update_geometric_data | ( | GridObject * | elem, |
const MathVector< worldDim > * | vCornerCoords, | ||
const ISubsetHandler * | ish = NULL |
||
) |
update data for given element
update geometric data for given element (no shapes)
References ug::AveragePositions(), dim, ug::ReferenceElement::id(), ug::ReferenceElement::num(), ug::GridObject::reference_object_id(), and UG_CATCH_THROW.
void ug::DimCRFVGeometry< TDim, TWorldDim >::update_hanging | ( | GridObject * | elem, |
const MathVector< worldDim > * | vCornerCoords, | ||
const ISubsetHandler * | ish = NULL , |
||
bool | keepSCV = false , |
||
bool | keepSCVF = false |
||
) |
update data for given element
update data checking for hanging nodes for given element
References ug::DimCRFVGeometry< TDim, TWorldDim >::HandledEdge::associatedSCV, ug::AveragePositions(), ug::CollectEdgesSorted(), ug::CollectFacesSorted(), ug::LFEID::CROUZEIX_RAVIART, dim, ug::DimCRFVGeometry< TDim, TWorldDim >::HandledEdge::from, ug::LocalShapeFunctionSet< TDim, TShape, TGrad >::grads(), ug::ISubsetHandler::grid(), ug::DimCRFVGeometry< TDim, TWorldDim >::HandledEdge::index, ug::DimReferenceMapping< TDim, TWorldDim >::is_linear(), ug::DimReferenceMapping< TDim, TWorldDim >::jacobian_transposed_inverse(), ug::MatVecMult(), ug::LocalDoFSet::num_sh(), ug::GridObject::reference_object_id(), ug::ROID_UNKNOWN, ug::DimCRFVGeometry< TDim, TWorldDim >::HandledEdge::scvfIndex, ug::LocalShapeFunctionSet< TDim, TShape, TGrad >::shapes(), ug::DimReferenceMapping< TDim, TWorldDim >::sqrt_gram_det(), and ug::DimReferenceMapping< TDim, TWorldDim >::update().
void ug::DimCRFVGeometry< TDim, TWorldDim >::update_local_data |
|
private |
|
staticprivate |
|
static |
dimension of reference element
MathVector<worldDim> ug::DimCRFVGeometry< TDim, TWorldDim >::globalBary |
Referenced by ug::DimCRFVGeometry< TDim, TWorldDim >::global_bary().
|
protected |
MathVector<dim> ug::DimCRFVGeometry< TDim, TWorldDim >::localBary |
Referenced by ug::DimCRFVGeometry< TDim, TWorldDim >::local_bary().
|
private |
|
protected |
Referenced by ug::DimCRFVGeometry< TDim, TWorldDim >::add_boundary_subset(), ug::DimCRFVGeometry< TDim, TWorldDim >::bf(), ug::DimCRFVGeometry< TDim, TWorldDim >::clear_boundary_subsets(), ug::DimCRFVGeometry< TDim, TWorldDim >::num_bf(), ug::DimCRFVGeometry< TDim, TWorldDim >::num_boundary_subsets(), and ug::DimCRFVGeometry< TDim, TWorldDim >::remove_boundary_subset().
|
private |
current number of shape functions
Referenced by ug::DimCRFVGeometry< TDim, TWorldDim >::num_sh().
|
private |
|
private |
|
private |
numDofs number of all dofs including constraining and constrained dofs
|
private |
current number of scv
Referenced by ug::DimCRFVGeometry< TDim, TWorldDim >::num_scv(), and ug::DimCRFVGeometry< TDim, TWorldDim >::num_scv_ips().
|
private |
current number of scvf
Referenced by ug::DimCRFVGeometry< TDim, TWorldDim >::num_scvf(), and ug::DimCRFVGeometry< TDim, TWorldDim >::num_scvf_ips().
|
private |
pointer to current element
|
private |
current reference object id
|
private |
current reference element
|
protected |
constrained Dofs
Referenced by ug::DimCRFVGeometry< TDim, TWorldDim >::constrained_dof().
|
private |
SubControlVolumeFaces for constrained dofs.
|
protected |
Referenced by ug::DimCRFVGeometry< TDim, TWorldDim >::scvf_global_ips().
|
protected |
Referenced by ug::DimCRFVGeometry< TDim, TWorldDim >::scv_global_ips().
|
protected |
Referenced by ug::DimCRFVGeometry< TDim, TWorldDim >::scvf_local_ips().
|
protected |
Referenced by ug::DimCRFVGeometry< TDim, TWorldDim >::scv_local_ips().
|
private |
SubControlVolumes.
Referenced by ug::DimCRFVGeometry< TDim, TWorldDim >::scv().
|
private |
SubControlVolumeFaces.
Referenced by ug::DimCRFVGeometry< TDim, TWorldDim >::scvf().
|
static |
max number of shape functions
|
static |
|
static |
number of SubControlVolumes
|
static |
max number of SubControlVolumeFaces
|
static |
number of integration points
Referenced by ug::DimCRFVGeometry< TDim, TWorldDim >::SCVF::num_ip(), ug::DimCRFVGeometry< TDim, TWorldDim >::SCV::num_ip(), and ug::DimCRFVGeometry< TDim, TWorldDim >::BF::num_ip().
|
static |
order
|
static |
flag indicating if local data may change
|
static |
Hanging node flag: this Geometry does not support hanging nodes.
|
static |
dimension of world