NeoPZ
Public Member Functions | Static Public Member Functions | Private Attributes | List of all members

Implements computational element and a side. Computational Element. More...

#include <pzcompel.h>

Collaboration diagram for TPZCompElSide:
[legend]

Public Member Functions

 TPZCompElSide ()
 Simple Constructor. More...
 
 TPZCompElSide (const TPZCompElSide &celside)
 Creates a computational element side from an object TPZCompElSide. More...
 
 TPZCompElSide (TPZCompEl *cel, int side)
 Creates an computational element side given a computational element and the side index. More...
 
 TPZCompElSide (int zero)
 Constructor which allows us to create a vector of objects. More...
 
TPZCompElElement () const
 Gives a pointer to the reference computational element. More...
 
 operator bool () const
 The conversion to bool indicates whether the object has an associated element. More...
 
void SetElement (TPZCompEl *el)
 Sets computational element pointer. More...
 
int Side () const
 Returns the side index. More...
 
void SetSide (int side)
 Sets the side index. More...
 
int Exists () const
 Verifies if the object is non null (initialized) More...
 
TPZGeoElSide Reference () const
 Reference to the geometric element. More...
 
void HigherLevelElementList (TPZStack< TPZCompElSide > &elsidevec, int onlyinterpolated, int removeduplicates)
 Returns all connected elements which have level higher to the current element. More...
 
void HigherDimensionElementList (TPZStack< TPZCompElSide > &elsidevec, int onlyinterpolated, int removeduplicates)
 Pushes all element/sides which have higher dimension than the current element/side. More...
 
void ConnectedElementList (TPZStack< TPZCompElSide > &elsidevec, int onlyinterpolated, int removeduplicates)
 Returns all connected elements to the current element. More...
 
void EqualLevelElementList (TPZStack< TPZCompElSide > &elsidevec, int onlyinterpolated, int removeduplicates)
 Returns all connected elements which have equal level to the current element
This method will not put this on the stack. More...
 
TPZCompElSide LowerLevelElementList (int onlyinterpolated)
 Returns all connected elements which have level lower to the current element. More...
 
void ExpandConnected (TPZStack< TPZCompElSide > &expandvec, int onlyinterpolated)
 Find the list element/side of the current element restrict nodes and elements. More...
 
TPZCompElSide LowerIdElementList (TPZCompElSide &expandvec, int onlyinterpolated)
 Returns the element with lowest id of all direct neighbours of expandvec. More...
 
int64_t ConnectIndex () const
 Returns the index of the middle side connect alon fSide. More...
 
bool operator!= (const TPZCompElSide &other)
 Overlapping operator not equal. More...
 
bool operator== (const TPZCompElSide &other)
 Overlapping operator equal. More...
 

Static Public Member Functions

static void RemoveDuplicates (TPZStack< TPZCompElSide > &elvec)
 Will remove elements which are direct neighbours from elvec (and elsides) More...
 
static void RemoveConnectDuplicates (TPZStack< TPZCompElSide > &expandvec)
 Remove entries of the vector which share a connect along the side This should be equivalent to RemoveDuplicates. More...
 

Private Attributes

TPZCompElfEl
 Pointer to the computational element. More...
 
int fSide
 Index of the object side. More...
 

Detailed Description

Implements computational element and a side. Computational Element.

This class was created to implement all algorithms associated with element/sides.
Objects of this class are mostly temporary

Definition at line 632 of file pzcompel.h.

Constructor & Destructor Documentation

◆ TPZCompElSide() [1/4]

TPZCompElSide::TPZCompElSide ( )
inline

Simple Constructor.

Definition at line 644 of file pzcompel.h.

◆ TPZCompElSide() [2/4]

TPZCompElSide::TPZCompElSide ( const TPZCompElSide celside)
inline

Creates a computational element side from an object TPZCompElSide.

Parameters
celsidereference computational element side

Definition at line 653 of file pzcompel.h.

◆ TPZCompElSide() [3/4]

TPZCompElSide::TPZCompElSide ( TPZCompEl cel,
int  side 
)
inline

Creates an computational element side given a computational element and the side index.

Parameters
celpointer to the computational element
sideindex of the side

Definition at line 664 of file pzcompel.h.

◆ TPZCompElSide() [4/4]

TPZCompElSide::TPZCompElSide ( int  zero)
inline

Constructor which allows us to create a vector of objects.

Definition at line 670 of file pzcompel.h.

Member Function Documentation

◆ ConnectedElementList()

void TPZCompElSide::ConnectedElementList ( TPZStack< TPZCompElSide > &  elsidevec,
int  onlyinterpolated,
int  removeduplicates 
)

Returns all connected elements to the current element.

Parameters
elsidevecside elements vector
onlyinterpolatedif onlyinterpolated == 1 only elements TPZInterpolatedElement will be put on the stack
removeduplicatesif removeduplicates == 1 no elements which are direct neighbours will be put on the stack

Definition at line 815 of file pzcompel.cpp.

References Exists(), and TPZStack< T, NumExtAlloc >::Push().

◆ ConnectIndex()

int64_t TPZCompElSide::ConnectIndex ( ) const

Returns the index of the middle side connect alon fSide.

Return the index of the middle side connect alon fSide.

Definition at line 931 of file pzcompel.cpp.

References TPZCompEl::ConnectIndex(), and TPZInterpolatedElement::MidSideConnectLocId().

◆ Element()

TPZCompEl* TPZCompElSide::Element ( ) const
inline

Gives a pointer to the reference computational element.

Definition at line 675 of file pzcompel.h.

Referenced by TPZCompMeshTools::AddHDivPyramidRestraints(), TPZMultiphysicsInterfaceElement::BuildCornerConnectList(), BuildElementGroups(), TPZBuildMultiphysicsMesh::BuildHybridMesh(), TPZMultiphysicsInterfaceElement::CalcStiff(), TPZInterfaceElement::CheckConsistencyOfMappedQsi(), TPZInterpolatedElement::CheckConstraintConsistency(), TPZCheckMesh::CheckConstraintDimension(), TPZDohrStructMatrix::ClusterIslands(), CompareFluxes(), TPZMultiphysicsInterfaceElement::ComputeCenterNormal(), TPZMultiphysicsInterfaceElement::ComputeIntegrationOrder(), TPZMultiphysicsInterfaceElement::ComputeRequiredData(), TPZInterfaceElement::ComputeSideTransform(), TPZMultiphysicsInterfaceElement::ComputeSideTransform(), TPZMHMeshControl::ConnectedInterfaceElements(), TPZInterfaceElement::ConnectIndex(), TCedricTest::CreateCondensedElements(), TPZMultiphysicsInterfaceElement::CreateIntegrationRule(), TPZMultiphysicsElement::CreateInterface(), TPZInterpolationSpace::CreateInterface(), TPZMHMeshControl::CreateInterfaceElements(), TPZInterpolatedElement::CreateMidSideConnect(), TPZMHMixedHybridMeshControl::CreateMultiPhysicsInterfaceElements(), TPZMHMixedMeshControl::CreateMultiPhysicsInterfaceElements(), TPZCheckRestraint::Diagnose(), TPZGeoElSide::EqualLevelCompElementList(), TPZGeoElSide::EqualLevelCompElementList3(), TPZInterfaceElement::ExistInterfaces(), TPZMultiphysicsElement::ExistsInterface(), TPZInterpolationSpace::ExistsInterface(), TPZAnalysisError::ExpandConnected(), TPZMHMixedHybridMeshControl::FindConnectedElements(), TPZInterfaceElement::FreeInterface(), TPZInterfaceElement::GetConnects(), TPZCompMeshTools::GroupElements(), TPZMHMixedHybridMeshControl::GroupElements(), TPZGeoElSide::HigherDimensionElementList(), TPZCreateApproximationSpace::Hybridize(), TPZMHMixedMeshControl::HybridizeSkeleton(), TPZMHMeshControl::HybridizeSkeleton(), TPZInterpolatedElement::IdentifySideOrder(), TPZMultiphysicsInterfaceElement::InitializeElementMatrix(), TPZMultiphysicsInterfaceElement::InitMaterialData(), TPZMultiphysicsInterfaceElement::LeftElement(), TPZInterfaceElement::LeftElement(), LowerIdElementList(), TPZMGAnalysis::MeshError(), TPZInterfaceElement::NeighbourSolution(), TPZInterfaceElement::NLeftConnects(), TPZMultiphysicsInterfaceElement::nmeshes(), TPZInterfaceElement::NRightConnects(), TPZMultiphysicsInterfaceElement::NumberOfCompElementsInsideThisCompEl(), operator!=(), operator<<(), operator==(), TPZMHMeshControl::PrintBoundaryInfo(), TPZInterpolatedElement::RemoveSideRestraintsII(), TPZInterpolatedElement::RemoveSideRestraintWithRespectTo(), TPZInterpolatedElement::RestrainSide(), TPZHybridizeHDiv::RightElement(), TPZMultiphysicsInterfaceElement::RightElement(), TPZInterfaceElement::RightElement(), TPZDohrStructMatrix::SeparateUnconnected(), TPZMultiphysicsInterfaceElement::SetLeftRightElementIndices(), TPZInterfaceElement::SetLeftRightElements(), hdivCurvedJCompAppMath::SetupDisconnectedHdivboud(), TPZMultiphysicsInterfaceElement::Solution(), TPZHybridizeHDiv::SplitConnects(), TPZGenSubStruct::SubStructure(), TPZCheckRestraint::TPZCheckRestraint(), TPZCompElHDivBound2< TSHAPE >::TPZCompElHDivBound2(), TPZInterfaceElement::TPZInterfaceElement(), TPZMultiphysicsInterfaceElement::TPZMultiphysicsInterfaceElement(), TPZCheckMesh::VerifyConnect(), TPZInterpolatedElement::VerifyConstraintConsistency(), TPZInterfaceElement::Write(), TPZAnalysisError::ZoomInSingularity(), TPZCompElHDiv< TSHAPE >::~TPZCompElHDiv(), and TPZCompElHDivBound2< TSHAPE >::~TPZCompElHDivBound2().

◆ EqualLevelElementList()

void TPZCompElSide::EqualLevelElementList ( TPZStack< TPZCompElSide > &  elsidevec,
int  onlyinterpolated,
int  removeduplicates 
)

◆ Exists()

int TPZCompElSide::Exists ( ) const
inline

◆ ExpandConnected()

void TPZCompElSide::ExpandConnected ( TPZStack< TPZCompElSide > &  expandvec,
int  onlyinterpolated 
)

Find the list element/side of the current element restrict nodes and elements.

Parameters
expandvecVector of the PZCompElSide
onlyinterpolatedif ==1 only elements derived from TPZInterpolated will be put on the stack

Definition at line 833 of file pzcompel.cpp.

References TPZGeoElSide::Element(), TPZGeoElSide::Exists(), Exists(), LOGPZ_WARN, TPZGeoEl::LowerDimensionSides(), LowerLevelElementList(), TPZGeoElSide::NeighbourExists(), TPZVec< T >::NElements(), TPZStack< T, NumExtAlloc >::Push(), TPZCompEl::Reference(), Reference(), TPZManVector< T, NumExtAlloc >::Resize(), and TPZGeoElSide::Side().

◆ HigherDimensionElementList()

void TPZCompElSide::HigherDimensionElementList ( TPZStack< TPZCompElSide > &  elsidevec,
int  onlyinterpolated,
int  removeduplicates 
)

Pushes all element/sides which have higher dimension than the current element/side.

Parameters
elsidevecside elements vector where elements/side will be put
onlyinterpolatedif onlyinterpolated == 1 only elements TPZInterpolatedElement will be put on the stack
removeduplicatesif removeduplicates == 1 no elements which are direct neighbours will be put on the stack

Definition at line 781 of file pzcompel.cpp.

References TPZGeoElSide::Exists(), TPZGeoElSide::HigherDimensionElementList(), LOGPZ_INFO, and TPZCompEl::Reference().

Referenced by TPZCheckMesh::DependencyReport().

◆ HigherLevelElementList()

void TPZCompElSide::HigherLevelElementList ( TPZStack< TPZCompElSide > &  elsidevec,
int  onlyinterpolated,
int  removeduplicates 
)

◆ LowerIdElementList()

TPZCompElSide TPZCompElSide::LowerIdElementList ( TPZCompElSide expandvec,
int  onlyinterpolated 
)

Returns the element with lowest id of all direct neighbours of expandvec.

Parameters
expandvecelements whose neighbours will be checked
onlyinterpolatedif == 1, only elements derived from TPZInterpolatedElement will be checked

Definition at line 871 of file pzcompel.cpp.

References TPZGeoElSide::AllNeighbours(), Element(), TPZGeoElSide::Id(), LOGPZ_WARN, TPZVec< T >::NElements(), TPZStack< T, NumExtAlloc >::Push(), TPZGeoElSide::Reference(), and Reference().

◆ LowerLevelElementList()

TPZCompElSide TPZCompElSide::LowerLevelElementList ( int  onlyinterpolated)

◆ operator bool()

TPZCompElSide::operator bool ( ) const
inline

The conversion to bool indicates whether the object has an associated element.

Definition at line 678 of file pzcompel.h.

◆ operator!=()

bool TPZCompElSide::operator!= ( const TPZCompElSide other)
inline

Overlapping operator not equal.

Definition at line 802 of file pzcompel.h.

References Element(), and Side().

◆ operator==()

bool TPZCompElSide::operator== ( const TPZCompElSide other)
inline

Overlapping operator equal.

Definition at line 807 of file pzcompel.h.

References Element(), and Side().

◆ Reference()

TPZGeoElSide TPZCompElSide::Reference ( ) const

Reference to the geometric element.

Definition at line 748 of file pzcompel.cpp.

References LOGPZ_WARN.

Referenced by TPZMHMeshControl::AddBoundaryInterfaceElements(), TPZCompMeshTools::AddHDivPyramidRestraints(), TPZBuildMultiphysicsMesh::BuildHybridMesh(), TPZMultiphysicsInterfaceElement::CalcStiff(), TPZCheckMesh::CheckConstraintDimension(), TPZInterpolatedElement::CheckElementConsistency(), CompareFluxes(), TPZMHMeshControl::ConnectedInterfaceElements(), TCedricTest::CreateCondensedElements(), TPZHybridizeHDiv::CreateInterfaceElements(), TPZMHMeshControl::CreateInterfaceElements(), TPZInterpolationSpace::CreateInterfaces(), TPZInterpolatedElement::CreateMidSideConnect(), TPZMHMixedMeshControl::CreateMultiPhysicsInterfaceElements(), TPZCheckMesh::DependencyReport(), TPZInterfaceElement::ExistInterfaces(), TPZAnalysisError::ExpandConnected(), ExpandConnected(), TPZInterpolatedElement::ForceSideOrder(), TPZInterfaceElement::FreeInterface(), TPZDohrStructMatrix::IdentifyExternalConnectIndexes(), TPZInterpolatedElement::IdentifySideOrder(), TPZGradientReconstruction::TPZGradientData::InitializeGradData(), LowerIdElementList(), TPZMHMeshControl::PrintBoundaryInfo(), TPZMultiphysicsElement::RemoveInterfaces(), TPZInterpolationSpace::RemoveInterfaces(), TPZInterpolatedElement::RemoveSideRestraintWithRespectTo(), TPZInterpolatedElement::RestrainSide(), TPZHybridizeHDiv::SplitConnects(), TPZGenSubStruct::SubStructure(), TPZCheckRestraint::TPZCheckRestraint(), TPZMHMeshControl::TransferToMultiphysics(), TPZHybridizeHDiv::VerifySolutionConsistency(), TPZAnalysisError::ZoomInSingularity(), and TPZCompElHDivBound2< TSHAPE >::~TPZCompElHDivBound2().

◆ RemoveConnectDuplicates()

void TPZCompElSide::RemoveConnectDuplicates ( TPZStack< TPZCompElSide > &  expandvec)
static

Remove entries of the vector which share a connect along the side This should be equivalent to RemoveDuplicates.

Parameters
expandvecvector of TPZCompElSide objects

Definition at line 894 of file pzcompel.cpp.

References TPZCompEl::ConnectIndex(), TPZInterpolatedElement::MidSideConnectLocId(), TPZVec< T >::NElements(), TPZStack< T, NumExtAlloc >::Push(), and TPZManVector< T, NumExtAlloc >::Resize().

◆ RemoveDuplicates()

void TPZCompElSide::RemoveDuplicates ( TPZStack< TPZCompElSide > &  elvec)
static

Will remove elements which are direct neighbours from elvec (and elsides)

Parameters
elveccomputational element side vector The method checks between any two elements in the list whether they are of equal level and whether they are neighbours. If they are neighbours, one of the elements will be removed from the list
The method NeighbourExists between any two elements of equal level will return 0

Definition at line 793 of file pzcompel.cpp.

References TPZGeoElSide::Exists(), LOGPZ_ERROR, TPZGeoElSide::NeighbourExists(), TPZVec< T >::NElements(), and TPZManVector< T, NumExtAlloc >::Resize().

◆ SetElement()

void TPZCompElSide::SetElement ( TPZCompEl el)
inline

Sets computational element pointer.

Definition at line 685 of file pzcompel.h.

Referenced by TPZInterfaceElement::Read(), and TPZInterfaceElement::TPZInterfaceElement().

◆ SetSide()

void TPZCompElSide::SetSide ( int  side)

Sets the side index.

Parameters
sidenew side index

Definition at line 757 of file pzcompel.cpp.

Referenced by TPZInterfaceElement::Read(), and TPZInterfaceElement::TPZInterfaceElement().

◆ Side()

int TPZCompElSide::Side ( ) const
inline

Member Data Documentation

◆ fEl

TPZCompEl* TPZCompElSide::fEl
private

Pointer to the computational element.

Definition at line 635 of file pzcompel.h.

◆ fSide

int TPZCompElSide::fSide
private

Index of the object side.

Definition at line 638 of file pzcompel.h.


The documentation for this class was generated from the following files: