NeoPZ
|
Implements computational element and a side. Computational Element. More...
#include <pzcompel.h>
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... | |
TPZCompEl * | Element () 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 | |
TPZCompEl * | fEl |
Pointer to the computational element. More... | |
int | fSide |
Index of the object side. More... | |
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.
|
inline |
Simple Constructor.
Definition at line 644 of file pzcompel.h.
|
inline |
Creates a computational element side from an object TPZCompElSide.
celside | reference computational element side |
Definition at line 653 of file pzcompel.h.
|
inline |
Creates an computational element side given a computational element and the side index.
cel | pointer to the computational element |
side | index of the side |
Definition at line 664 of file pzcompel.h.
|
inline |
Constructor which allows us to create a vector of objects.
Definition at line 670 of file pzcompel.h.
void TPZCompElSide::ConnectedElementList | ( | TPZStack< TPZCompElSide > & | elsidevec, |
int | onlyinterpolated, | ||
int | removeduplicates | ||
) |
Returns all connected elements to the current element.
elsidevec | side elements vector |
onlyinterpolated | if onlyinterpolated == 1 only elements TPZInterpolatedElement will be put on the stack |
removeduplicates | if 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().
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().
|
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().
void TPZCompElSide::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.
elsidevec | side elements vector |
onlyinterpolated | if onlyinterpolated == 1 only elements TPZInterpolatedElement will be put on the stack |
removeduplicates | if removeduplicates == 1 no elements which are direct neighbours will be put on the stack |
Definition at line 771 of file pzcompel.cpp.
References TPZGeoElSide::EqualLevelCompElementList(), TPZGeoElSide::Exists(), LOGPZ_WARN, and TPZCompEl::Reference().
Referenced by TPZCompMesh::AdjustBoundaryElements(), TPZGradientReconstruction::TPZGradientData::CreateGhostsNeighbors(), TPZMultiphysicsElement::CreateInterface(), TPZInterpolationSpace::CreateInterface(), TPZCompElDisc::CreateMidSideConnect(), TPZInterpolatedElement::CreateMidSideConnect(), TPZCheckMesh::DependencyReport(), TPZInterpolatedElement::ForceSideOrder(), TPZInterpolatedElement::IdentifySideOrder(), TPZGradientReconstruction::TPZGradientData::InitializeGradData(), TPZMultiphysicsElement::RemoveInterface(), TPZInterpolationSpace::RemoveInterface(), TPZInterpolatedElement::RemoveSideRestraintsII(), and TPZBuildMultiphysicsMesh::UniformRefineCompEl().
|
inline |
Verifies if the object is non null (initialized)
Definition at line 697 of file pzcompel.h.
References TPZCompEl::ConnectIndex(), operator!=(), operator==(), and TPZCompEl::Reference().
Referenced by TPZInterpolatedElement::CheckConstraintConsistency(), TPZGeoElSide::ConnectedCompElementList(), ConnectedElementList(), TPZMultiphysicsElement::CreateInterface(), TPZInterpolationSpace::CreateInterface(), TPZInterpolatedElement::CreateMidSideConnect(), TPZCheckRestraint::Diagnose(), TPZGeoElSide::EqualLevelCompElementList3(), TPZInterfaceElement::ExistInterfaces(), TPZAnalysisError::ExpandConnected(), ExpandConnected(), TPZInterpolatedElement::ForceSideOrder(), TPZInterpolatedElement::IdentifySideOrder(), TPZGeoElSide::LowerLevelCompElementList2(), TPZMGAnalysis::MeshError(), TPZInterpolatedElement::RemoveSideRestraintsII(), TPZInterpolatedElement::RemoveSideRestraintWithRespectTo(), TPZInterpolatedElement::RestrainSide(), TPZCheckMesh::VerifyConnect(), and TPZAnalysisError::ZoomInSingularity().
void TPZCompElSide::ExpandConnected | ( | TPZStack< TPZCompElSide > & | expandvec, |
int | onlyinterpolated | ||
) |
Find the list element/side of the current element restrict nodes and elements.
expandvec | Vector of the PZCompElSide |
onlyinterpolated | if ==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().
void TPZCompElSide::HigherDimensionElementList | ( | TPZStack< TPZCompElSide > & | elsidevec, |
int | onlyinterpolated, | ||
int | removeduplicates | ||
) |
Pushes all element/sides which have higher dimension than the current element/side.
elsidevec | side elements vector where elements/side will be put |
onlyinterpolated | if onlyinterpolated == 1 only elements TPZInterpolatedElement will be put on the stack |
removeduplicates | if 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().
void TPZCompElSide::HigherLevelElementList | ( | TPZStack< TPZCompElSide > & | elsidevec, |
int | onlyinterpolated, | ||
int | removeduplicates | ||
) |
Returns all connected elements which have level higher to the current element.
elsidevec | side elements vector |
onlyinterpolated | if onlyinterpolated == 1 only elements TPZInterpolatedElement will be put on the stack |
removeduplicates | if removeduplicates == 1 no elements which are direct neighbours will be put on the stack |
Definition at line 761 of file pzcompel.cpp.
References TPZGeoElSide::Element(), TPZGeoElSide::HigherLevelCompElementList2(), LOGPZ_WARN, and TPZCompEl::Reference().
Referenced by TPZCompMesh::AdjustBoundaryElements(), TPZMultiphysicsElement::CreateInterfaces(), TPZInterpolationSpace::CreateInterfaces(), TPZInterpolatedElement::CreateMidSideConnect(), TPZCheckMesh::DependencyReport(), TPZInterfaceElement::ExistInterfaces(), TPZInterpolatedElement::ForceSideOrder(), TPZInterpolatedElement::IdentifySideOrder(), TPZGradientReconstruction::TPZGradientData::InitializeGradData(), TPZInterpolatedElement::RecomputeRestraints(), TPZMultiphysicsElement::RemoveInterfaces(), TPZInterpolationSpace::RemoveInterfaces(), and TPZInterpolatedElement::RemoveSideRestraintsII().
TPZCompElSide TPZCompElSide::LowerIdElementList | ( | TPZCompElSide & | expandvec, |
int | onlyinterpolated | ||
) |
Returns the element with lowest id of all direct neighbours of expandvec.
expandvec | elements whose neighbours will be checked |
onlyinterpolated | if == 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().
TPZCompElSide TPZCompElSide::LowerLevelElementList | ( | int | onlyinterpolated | ) |
Returns all connected elements which have level lower to the current element.
onlyinterpolated | if onlyinterpolated == 1 only elements TPZInterpolatedElement will be put on the stackIf removeduplicates == 1 no elements which are direct neighbours will be put on the stack |
Definition at line 824 of file pzcompel.cpp.
References TPZGeoElSide::Exists(), LOGPZ_WARN, TPZGeoElSide::LowerLevelCompElementList2(), and TPZCompEl::Reference().
Referenced by TPZInterpolatedElement::CheckConstraintConsistency(), TPZMultiphysicsElement::CreateInterface(), TPZInterpolationSpace::CreateInterface(), TPZInterpolatedElement::CreateMidSideConnect(), TPZCheckRestraint::Diagnose(), ExpandConnected(), TPZInterpolatedElement::ForceSideOrder(), TPZInterpolatedElement::IdentifySideOrder(), TPZGradientReconstruction::TPZGradientData::InitializeGradData(), TPZInterpolatedElement::RemoveSideRestraintsII(), TPZInterpolatedElement::RemoveSideRestraintWithRespectTo(), TPZCheckRestraint::TPZCheckRestraint(), and TPZCheckMesh::VerifyConnect().
|
inline |
The conversion to bool indicates whether the object has an associated element.
Definition at line 678 of file pzcompel.h.
|
inline |
Overlapping operator not equal.
Definition at line 802 of file pzcompel.h.
|
inline |
Overlapping operator equal.
Definition at line 807 of file pzcompel.h.
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().
|
static |
Remove entries of the vector which share a connect along the side This should be equivalent to RemoveDuplicates.
expandvec | vector 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().
|
static |
Will remove elements which are direct neighbours from elvec (and elsides)
elvec | computational 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().
|
inline |
Sets computational element pointer.
Definition at line 685 of file pzcompel.h.
Referenced by TPZInterfaceElement::Read(), and TPZInterfaceElement::TPZInterfaceElement().
void TPZCompElSide::SetSide | ( | int | side | ) |
Sets the side index.
side | new side index |
Definition at line 757 of file pzcompel.cpp.
Referenced by TPZInterfaceElement::Read(), and TPZInterfaceElement::TPZInterfaceElement().
|
inline |
Returns the side index.
Definition at line 688 of file pzcompel.h.
Referenced by TPZInterpolatedElement::CheckConstraintConsistency(), TPZInterfaceElement::ComputeSideTransform(), TPZMultiphysicsInterfaceElement::ComputeSideTransform(), TPZAgglomerateElement::CreateAgglomerateMesh(), TPZMultiphysicsElement::CreateInterface(), TPZInterpolationSpace::CreateInterface(), TPZInterpolatedElement::CreateMidSideConnect(), TPZGeoElSide::HigherDimensionElementList(), TPZMHMixedMeshControl::HybridizeSkeleton(), TPZInterpolatedElement::IdentifySideOrder(), operator!=(), operator<<(), operator==(), TPZMHMeshControl::PrintSubdomain(), TPZInterpolatedElement::RemoveSideRestraintsII(), TPZInterpolatedElement::RemoveSideRestraintWithRespectTo(), TPZInterpolatedElement::RestrainSide(), TPZInterfaceElement::SetLeftRightElements(), hdivCurvedJCompAppMath::SetupDisconnectedHdivboud(), TPZHybridizeHDiv::SplitConnects(), TPZCompElHDivBound2< TSHAPE >::TPZCompElHDivBound2(), TPZInterfaceElement::TPZInterfaceElement(), TPZMultiphysicsInterfaceElement::TPZMultiphysicsInterfaceElement(), TPZCheckMesh::VerifyConnect(), TPZInterpolatedElement::VerifyConstraintConsistency(), TPZInterfaceElement::Write(), TPZCompElHDiv< TSHAPE >::~TPZCompElHDiv(), and TPZCompElHDivBound2< TSHAPE >::~TPZCompElHDivBound2().
|
private |
Pointer to the computational element.
Definition at line 635 of file pzcompel.h.
|
private |
Index of the object side.
Definition at line 638 of file pzcompel.h.