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

Utility class which represents an element with its side. The Geometric approximation classes Geometry. More...

#include <pzgeoelside.h>

Inheritance diagram for TPZGeoElSide:
[legend]
Collaboration diagram for TPZGeoElSide:
[legend]

Public Member Functions

int NSubElements ()
 return the number of element/side pairs which compose the current set of points More...
 
void GetSubElements2 (TPZStack< TPZGeoElSide > &subelements)
 build the list of element/side pairs which compose the current set of points More...
 
TPZGeoElSide StrictFather ()
 returns the father/side pair which contains this/side and is strictly larger than this/side More...
 
TPZGeoElSide Father2 () const
 returns the father/side pair which contains the set of points associated with this/side More...
 
TPZCompElSide LowerLevelCompElementList2 (int onlyinterpolated)
 return the element/side pair which contains this/side and has a computational element associated More...
 
bool IsRelative (TPZGeoElSide other)
 Checks whether other is a relative (son or ancestor) of this. More...
 
bool IsAncestor (TPZGeoElSide other)
 Checks whether other is an ancestor of this. More...
 
void X (TPZVec< REAL > &loc, TPZVec< REAL > &result) const
 X coordinate of a point loc of the side. More...
 
void QsiElement (TPZVec< REAL > &qsi_side, TPZVec< REAL > &qsi_element) const
 Parametric coordinate of a point loc of the side and return parametric element point. More...
 
void GradX (TPZVec< REAL > &loc, TPZFMatrix< REAL > &gradx) const
 X coordinate of a point loc of the side. More...
 
bool ResetBlendConnectivity (const int64_t &index)
 
void Jacobian (TPZVec< REAL > &param, TPZFMatrix< REAL > &jacobian, TPZFMatrix< REAL > &axes, REAL &detjac, TPZFMatrix< REAL > &jacinv) const
 Jacobian associated with the side of the element. More...
 
REAL Area ()
 Area associated with the side. More...
 
int NNeighbours ()
 
int NNeighboursButThisElem (TPZGeoEl *thisElem)
 Returns the number of neighbours, excluding the given element (thisElem) More...
 
 TPZGeoElSide ()
 
 TPZGeoElSide (TPZGeoEl *gel, int side)
 
 TPZGeoElSide (TPZGeoEl *gel, std::set< int64_t > &sideCornerNodes)
 This constructor set an TPZGeoElSide based in the cornerNodes of an side of gel. More...
 
 TPZGeoElSide (const TPZGeoElSideIndex &index, const TPZGeoMesh *mesh)
 
 TPZGeoElSide (int zero)
 
TPZGeoElElement () const
 
void SetElement (TPZGeoEl *geoel)
 
void Print (std::ostream &out) const
 print geometric characteristics of the element/side More...
 
int Side () const
 
void SetSide (int side)
 
bool IsLinearMapping () const
 
int Exists () const
 
void CenterPoint (TPZVec< REAL > &center) const
 return the coordinates of the center in master element space (associated with the side) More...
 
void CenterX (TPZVec< REAL > &Xcenter) const
 return the coordinates of the center of the side in real space More...
 
void Normal (TPZVec< REAL > &point, TPZGeoEl *left, TPZGeoEl *right, TPZVec< REAL > &normal) const
 compute the normal to the point from left to right neighbour More...
 
void Normal (TPZVec< REAL > &point, TPZVec< REAL > &normal) const
 compute the normal to the point More...
 
int NSides () const
 Returns the number of sides in which the current side can be decomposed. More...
 
TPZGeoElSide Neighbour () const
 
void AllNeighbours (TPZStack< TPZGeoElSide > &allneigh)
 Returns the set of neighbours which can directly be accessed by the datastructure. More...
 
void ComputeNeighbours (TPZStack< TPZGeoElSide > &compneigh)
 Returns the set of neighbours as computed by the intersection of neighbours along vertices. More...
 
int64_t Id ()
 
int Dimension () const
 the dimension associated with the element/side More...
 
int operator== (const TPZGeoElSide &other) const
 
int operator!= (const TPZGeoElSide &other) const
 
int operator< (const TPZGeoElSide &other) const
 
int operator> (const TPZGeoElSide &other) const
 
 operator bool () const
 The conversion to bool indicates whether the object has an associated element. More...
 
void SideTransform3 (TPZGeoElSide neighbour, TPZTransform<> &t)
 Accumulates the transformations from the current element/side to the neighbour/side. More...
 
void SetConnectivity (const TPZGeoElSide &neighbour) const
 
void InsertConnectivity (TPZGeoElSide &neighbour)
 This method inserts the element/side and all lowerdimension sides into the connectivity loop. More...
 
void RemoveConnectivity ()
 Remove the element from the connectivity loop. More...
 
void SetNeighbour (const TPZGeoElSide &neighbour) const
 Fill in the data structure for the neighbouring information. More...
 
TPZTransform< REAL > NeighbourSideTransform (const TPZGeoElSide &neighbour)
 
TPZTransform< REAL > SideToSideTransform (TPZGeoElSide &higherdimensionside)
 Compute the transformation between the master element space of one side of an element to the master element space of a higher dimension side. More...
 
TPZGeoElSide LowestFatherSide ()
 
virtual void GetAllSiblings (TPZStack< TPZGeoElSide > &unrefinedSons)
 [deprecated] use YoungestChildren More...
 
virtual void YoungestChildren (TPZStack< TPZGeoElSide > &unrefinedSons)
 This method will return all children at the bottom of the refinement tree of the element. i.e. all children that have no subelements. More...
 
TPZCompElSide Reference () const
 Returns a pointer to the elementside referenced by the geometric elementside. More...
 
int HasSubElement ()
 Return 1 if the element has subelements along side. More...
 
int NSideNodes () const
 
int64_t SideNodeIndex (int nodenum) const
 Returns the index of the nodenum node of side. More...
 
int64_t SideNodeLocIndex (int nodenum) const
 Returns the index of the local nodenum node of side. More...
 
int NeighbourExists (const TPZGeoElSide &neighbour) const
 Returns 1 if neighbour is a neighbour of the element along side. More...
 
void EqualorHigherCompElementList2 (TPZStack< TPZCompElSide > &celside, int onlyinterpolated, int removeduplicates)
 Will return all elements of equal or higher level than than the current element. More...
 
void HigherDimensionElementList (TPZStack< TPZCompElSide > &elsidevec, int onlyinterpolated)
 Pushes all connected computational elements which have higher dimension than the current element/side
if onlyinterpolated == 1 only elements TPZInterpolatedElement will be put on the stack
if removeduplicates == 1 no elements which are direct neighbours will be put on the stack. More...
 
void HigherLevelCompElementList2 (TPZStack< TPZCompElSide > &elsidevec, int onlyinterpolated, int removeduplicates)
 Returns all connected computational elements which have level higher to the current element
if onlyinterpolated == 1 only elements TPZInterpolatedElement will be put on the stack
if removeduplicates == 1 no elements which are direct neighbours will be put on the stack. More...
 
void ConnectedCompElementList (TPZStack< TPZCompElSide > &elsidevec, int onlyinterpolated, int removeduplicates)
 Returns all connected computational elements to the current element
if onlyinterpolated == 1 only elements TPZInterpolatedElement will be put on the stack
if removeduplicates == 1 no elements which are direct neighbours will be put on the stack. More...
 
void EqualLevelCompElementList (TPZStack< TPZCompElSide > &elsidevec, int onlyinterpolated, int removeduplicates)
 Returns all connected computational elements which have equal level to the current element. More...
 
void EqualorHigherCompElementList3 (TPZStack< TPZCompElSide > &celside, int onlymultiphysicelement, int removeduplicates)
 Will return all elements of equal or higher level than than the current element
if onlymultiphysicelement == 1 only elements TPZMultiphysicsElement will be put on the stack
if removeduplicates == 1 no elements which are direct neighbours will be put on the stack. More...
 
void EqualLevelCompElementList3 (TPZStack< TPZCompElSide > &elsidevec, int onlymultiphysicelement, int removeduplicates)
 Returns all connected computational elements which have equal level to the current element. More...
 
void HigherLevelCompElementList3 (TPZStack< TPZCompElSide > &elsidevec, int onlymultiphysicelement, int removeduplicates)
 Returns all connected computational elements which have level higher to the current element
if onlymultiphysicelement == 1 only elements TPZMultiphysicsElement will be put on the stack
if removeduplicates == 1 no elements which are direct neighbours will be put on the stack. More...
 
TPZIntPointsCreateIntegrationRule (int order)
 
int GelLocIndex (int index) const
 
int ClassId () const override
 Define the class id associated with the class. More...
 
void Read (TPZStream &buf, void *context) override
 read objects from the stream More...
 
void Write (TPZStream &buf, int withclassid) const override
 Writes this object to the TPZStream buffer. Include the classid if withclassid = true. More...
 
- Public Member Functions inherited from TPZSavable
 TPZSavable ()
 
virtual ~TPZSavable ()
 
virtual std::list< std::map< std::string, uint64_t > > VersionHistory () const
 
virtual std::pair< std::string, uint64_t > Version () const
 
virtual bool Compare (TPZSavable *copy, bool override=false)
 Compares the object for identity with the object pointed to, eventually copy the object. More...
 
virtual bool Compare (TPZSavable *copy, bool override=false) const
 Compares the object for identity with the object pointed to, eventually copy the object. More...
 
- Public Member Functions inherited from TPZRegisterClassId
template<typename T >
 TPZRegisterClassId (int(T::*)() const)
 
 TPZRegisterClassId ()=default
 

Static Public Member Functions

static void BuildConnectivities (TPZVec< TPZGeoElSide > &elvec, TPZVec< TPZGeoElSide > &neighvec)
 
- Static Public Member Functions inherited from TPZSavable
static std::set< TPZRestoreClassBase * > & RestoreClassSet ()
 This static function guarantees that the gMap object is available when needed. More...
 
static std::map< int, TPZRestore_t > & ClassIdMap ()
 This static function guarantees that the gMap object is available when needed. More...
 
static std::pair< std::string, uint64_t > NeoPZVersion ()
 
static void Register (TPZRestoreClassBase *restore)
 
static void RegisterClassId (int classid, TPZRestore_t fun)
 
static TPZSavableCreateInstance (const int &classId)
 

Private Attributes

TPZGeoElfGeoEl
 
int fSide
 

Detailed Description

Utility class which represents an element with its side. The Geometric approximation classes Geometry.

This class is often used to manipulate neighbouring information between elements

Definition at line 83 of file pzgeoelside.h.

Constructor & Destructor Documentation

◆ TPZGeoElSide() [1/5]

TPZGeoElSide::TPZGeoElSide ( )
inline

Definition at line 140 of file pzgeoelside.h.

◆ TPZGeoElSide() [2/5]

TPZGeoElSide::TPZGeoElSide ( TPZGeoEl gel,
int  side 
)
inline

Definition at line 142 of file pzgeoelside.h.

◆ TPZGeoElSide() [3/5]

TPZGeoElSide::TPZGeoElSide ( TPZGeoEl gel,
std::set< int64_t > &  sideCornerNodes 
)

This constructor set an TPZGeoElSide based in the cornerNodes of an side of gel.

If the cornerNodes are not consistent, the TPZGeoElSide created is NULL

Definition at line 68 of file pzgeoelside.cpp.

References NSideNodes(), TPZGeoEl::NSides(), and SideNodeIndex().

◆ TPZGeoElSide() [4/5]

TPZGeoElSide::TPZGeoElSide ( const TPZGeoElSideIndex index,
const TPZGeoMesh mesh 
)
inline

◆ TPZGeoElSide() [5/5]

TPZGeoElSide::TPZGeoElSide ( int  zero)
inline

Definition at line 157 of file pzgeoelside.h.

Member Function Documentation

◆ AllNeighbours()

void TPZGeoElSide::AllNeighbours ( TPZStack< TPZGeoElSide > &  allneigh)
inline

Returns the set of neighbours which can directly be accessed by the datastructure.

Definition at line 333 of file pzgeoelside.h.

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

Referenced by TPZBuildMultiphysicsMesh::BuildHybridMesh(), ComputeNeighbours(), and TPZCompElSide::LowerIdElementList().

◆ Area()

REAL TPZGeoElSide::Area ( )

Area associated with the side.

Definition at line 259 of file pzgeoelside.cpp.

References TPZIntPoints::NPoints(), and TPZIntPoints::Point().

Referenced by TPZGeoEl::SideArea().

◆ BuildConnectivities()

void TPZGeoElSide::BuildConnectivities ( TPZVec< TPZGeoElSide > &  elvec,
TPZVec< TPZGeoElSide > &  neighvec 
)
static

os vetores trazem a partic� do lado comum a dois vizinhos segundo os seus proprios padr�s de refinamento, a divis� �identica para este lado comum

Definition at line 1017 of file pzgeoelside.cpp.

References DebugStop, Dimension(), Element(), NeighbourExists(), TPZVec< T >::NElements(), TPZGeoEl::NSideNodes(), PZError, SetConnectivity(), Side(), and TPZGeoEl::SideNodeIndex().

Referenced by TPZGeoEl::SetSubElementConnectivities().

◆ CenterPoint()

void TPZGeoElSide::CenterPoint ( TPZVec< REAL > &  center) const

return the coordinates of the center in master element space (associated with the side)

Definition at line 414 of file pzgeoelside.cpp.

References TPZTransform< T >::Apply().

Referenced by TPZAcademicGeoMesh::CheckConsistency(), TCedricTest::CheckConsistency(), TPZGradientReconstruction::TPZGradientData::InitializeGradData(), and NormalVector().

◆ CenterX()

void TPZGeoElSide::CenterX ( TPZVec< REAL > &  Xcenter) const

return the coordinates of the center of the side in real space

Definition at line 425 of file pzgeoelside.cpp.

Referenced by TPZGeoMesh::FindCloseElement(), and Normal().

◆ ClassId()

int TPZGeoElSide::ClassId ( ) const
overridevirtual

Define the class id associated with the class.

This id has to be unique for all classes A non unique id is flagged at the startup of the program

Implements TPZSavable.

Definition at line 1313 of file pzgeoelside.cpp.

References Hash().

◆ ComputeNeighbours()

void TPZGeoElSide::ComputeNeighbours ( TPZStack< TPZGeoElSide > &  compneigh)

Returns the set of neighbours as computed by the intersection of neighbours along vertices.

Definition at line 433 of file pzgeoelside.cpp.

References AllNeighbours(), TPZGeoMesh::ElementVec(), TPZVec< T >::NElements(), TPZStack< T, NumExtAlloc >::Push(), TPZManVector< T, NumExtAlloc >::Resize(), and TPZGeoEl::WhichSide().

Referenced by TPZGeoMesh::BuildConnectivity().

◆ ConnectedCompElementList()

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

Returns all connected computational elements to the current element
if onlyinterpolated == 1 only elements TPZInterpolatedElement will be put on the stack
if removeduplicates == 1 no elements which are direct neighbours will be put on the stack.

Definition at line 670 of file pzgeoelside.cpp.

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

Referenced by TPZDohrStructMatrix::ClusterIslands(), TCedricTest::CreateCondensedElements(), TPZCompMeshTools::GroupElements(), TPZMHMixedHybridMeshControl::GroupElements(), TPZDohrStructMatrix::IdentifyExternalConnectIndexes(), TPZDohrStructMatrix::SeparateUnconnected(), and TPZMHMeshControl::TransferToMultiphysics().

◆ CreateIntegrationRule()

TPZIntPoints * TPZGeoElSide::CreateIntegrationRule ( int  order)

Definition at line 1301 of file pzgeoelside.cpp.

◆ Dimension()

int TPZGeoElSide::Dimension ( ) const

the dimension associated with the element/side

Definition at line 593 of file pzgeoelside.cpp.

References PZError.

Referenced by TCedricTest::AddBoundaryElements(), TPZAcademicGeoMesh::AddBoundaryElements(), TPZAcademicGeoMesh::AddBoundaryElementsByCoord(), TPZMHMeshControl::AddElementBoundaries(), TPZInterpolatedElement::AdjustPreferredSideOrder(), BuildConnectivities(), pzgeom::TPZChangeEl::ChangeToQuadratic(), pzgeom::TPZChangeEl::ChangeToQuarterPoint(), TPZAcademicGeoMesh::CheckConsistency(), TCedricTest::CheckConsistency(), TPZMHMeshControl::CheckDivisionConsistency(), TPZInterpolatedElement::CheckElementConsistency(), TPZCheckRestraint::CheckRestraint(), TPZCheckGeom::CheckSubFatherTransform(), CompareFluxes(), TPZRefPatternTools::CompareTopologies(), TPZMultiphysicsInterfaceElement::ComputeSideTransform(), TPZRefPatternTools::ConstJacobian(), TPZMHMeshControl::CreateInterfaceElements(), pzgeom::TPZChangeEl::CreateMiddleNodeAtEdge(), TPZInterpolatedElement::CreateMidSideConnect(), TPZBuildSBFem::CreateVolumetricElements(), TPZMHMeshControl::CreateWrap(), TPZMHMeshControl::DefinePartition(), TPZCheckMesh::DependencyReport(), TPZMHMixedHybridMeshControl::FindConnectedElements(), TPZGeoMesh::FindElement(), TPZInterpolatedElement::ForceSideOrder(), pzgeom::TPZGeoBlend< TGeo >::GradX(), TPZMHMixedHybridMeshControl::GroupElements(), TPZMHMeshControl::HasWrapNeighbour(), TPZDohrStructMatrix::IdentifyExternalConnectIndexes(), TPZInterpolatedElement::IdentifySideOrder(), pzgeom::TPZGeoBlend< TGeo >::Initialize(), pzgeom::TPZGeoBlend< TGeo >::Jacobian(), TPZMathTools::JacobianConv(), ConvTest::JacobianConv(), TPZMGAnalysis::MeshError(), TPZRefPatternTools::ModelRefPattern(), TPZGeoEl::NormalOrientation(), TPZRefPatternTools::RefineDirectional(), TPZMultiphysicsElement::RemoveInterfaces(), TPZInterpolationSpace::RemoveInterfaces(), TPZInterpolatedElement::RestrainSide(), TPZGeoEl::SetNeighbourForBlending(), TPZGeoEl::SmallerEdge(), TPZInterpolatedElement::VerifyConstraintConsistency(), TPZMHMeshControl::WrapMaterialId(), pzgeom::TPZGeoBlend< TGeo >::X(), and TPZCompElHDivBound2< TSHAPE >::~TPZCompElHDivBound2().

◆ Element()

TPZGeoEl* TPZGeoElSide::Element ( ) const
inline

Definition at line 162 of file pzgeoelside.h.

Referenced by TPZMHMeshControl::AddBoundaryInterfaceElements(), TPZMHMeshControl::AddElementBoundaries(), TPZBuildSBFem::AddSkeletonElements(), TPZMHMixedHybridMeshControl::ApplyNeighbourBoundaryCondition(), TPZGeoMesh::Area(), BuildConnectivities(), TPZGeoMesh::BuildElementsAroundNode(), TPZBuildMultiphysicsMesh::BuildHybridMesh(), TPZMHMeshControl::BuildWrapMesh(), pzgeom::TPZChangeEl::ChangeToQuadratic(), TPZInterpolatedElement::CheckElementConsistency(), TPZGeoEl::CheckSubelDataStructure(), TPZCheckGeom::CheckSubFatherTransform(), Hdiv2dPaper201504::CMeshMixed(), hdivCurvedJCompAppMath::CMeshMixed(), Hdiv3dPaper201504::CMeshMixed(), CompareFluxes(), TPZInterpolationSpace::ComputeNormal(), TPZRefPattern::ComputePartition(), TPZMHMeshControl::ConnectedElements(), TPZRefPatternTools::ConstJacobian(), TPZDohrStructMatrix::CorrectNeighbourDomainIndex(), TCedricTest::CreateCondensedElements(), TPZBuildSBFem::CreateElementGroups(), TPZMHMixedHybridMeshControl::CreateHDivWrappers(), TPZHybridizeHDiv::CreateInterfaceElements(), TPZMHMeshControl::CreateInterfaceElements(), TPZMHMixedHybridMeshControl::CreateLowerDimensionPressureElements(), TPZMHMixedHybridMeshControl::CreatePressureInterfaces(), TPZMHMeshControl::CreateWrap(), TPZMHMeshControl::CriaMalhaTemporaria(), TPZMHMeshControl::DefinePartition(), TPZGeoElRefPattern< TGeo >::Divide(), TPZRefPatternTools::DragModelPatNodes(), EqualLevelCompElementList(), EqualLevelCompElementList3(), TPZInterfaceElement::ExistInterfaces(), TPZMultiphysicsElement::ExistsInterface(), TPZInterpolationSpace::ExistsInterface(), TPZCompElSide::ExpandConnected(), TPZGeoMesh::FindApproxElement(), FindCapElement(), TPZMHMixedHybridMeshControl::FindConnectedElements(), TPZGeoMesh::FindElement(), TPZGeoMesh::FindElementCaju(), FindPressureSkeleton(), TPZInterfaceElement::FreeInterface(), TPZRefPatternTools::GetCompatibleRefPatterns(), TPZGeoElRefPattern< TGeo >::GetSubElements2(), TPZMHMixedHybridMeshControl::GroupElements(), HasNeighbour(), TPZMHMeshControl::HasWrapNeighbour(), TPZCompElSide::HigherLevelElementList(), TPZMHMeshControl::HybridizeSkeleton(), TPZDohrStructMatrix::IdentifyExternalConnectIndexes(), pzgeom::TPZGeoBlend< TGeo >::Initialize(), TPZGeoEl::InitializeNeighbours(), IsAncestor(), TPZGeoElMapped< TBase >::IsLinearMapping(), TPZRefPatternTools::ModelRefPattern(), TPZMHMixedHybridMeshControl::NeedsHDivWrapper(), NeighbourSideTransform(), pzrefine::TPZRefPrism::NewMidSideNode(), pzrefine::TPZRefTriangle::NewMidSideNode(), pzrefine::TPZRefCube::NewMidSideNode(), pzrefine::TPZRefPyramid::NewMidSideNode(), pzrefine::TPZRefLinear::NewMidSideNode(), pzrefine::TPZRefQuad::NewMidSideNode(), pzrefine::TPZRefTetrahedra::NewMidSideNode(), pzrefine::TPZRefPoint::NewMidSideNode(), NNeighbours(), NNeighboursButThisElem(), TPZGeoEl::NormalOrientation(), operator<<(), TPZCheckRestraint::Print(), TPZGeoEl::Print(), TPZMHMeshControl::PrintBoundaryInfo(), TPZVTKGeoMesh::PrintGMeshVTKneighbourhood(), TPZRefPatternTools::RefineDirectional(), TPZGeoEl::RemoveConnectivities(), RemoveConnectivity(), SetConnectivity(), TPZGeoElMapped< TBase >::SetFatherIndex(), TPZGeoEl::SetNeighbourForBlending(), pzgeom::TPZGeoBlend< TGeo >::SetNeighbourInfo(), TPZRefPatternTools::SidesToRefine(), SideTransform3(), TPZMHMixedHybridMeshControl::SplitFluxElementsAroundFractures(), TPZGeoElBC::TPZGeoElBC(), TPZGeoElRefLess< TGeo >::TPZGeoElRefLess(), TPZGeoElSideIndex::TPZGeoElSideIndex(), TPZMHMeshControl::WrapMaterialId(), and TPZCompElHDiv< TSHAPE >::~TPZCompElHDiv().

◆ EqualLevelCompElementList()

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

Returns all connected computational elements which have equal level to the current element.

This method will not put this on the stack
if onlyinterpolated == 1 only elements TPZInterpolatedElement will be put on the stack
if removeduplicates == 1 no elements which are direct neighbours will be put on the stack

Definition at line 679 of file pzgeoelside.cpp.

References Element(), TPZCompElSide::Element(), Exists(), Neighbour(), TPZStack< T, NumExtAlloc >::Push(), and Reference().

Referenced by TPZCompMeshTools::AddHDivPyramidRestraints(), BuildElementGroups(), TPZBuildMultiphysicsMesh::BuildHybridMesh(), TPZCheckMesh::CheckConstraintDimension(), TPZHybridizeHDiv::CreateInterfaceElements(), TPZCompElSide::EqualLevelElementList(), TPZAnalysisError::ExpandConnected(), TPZCompEl::GetRefElPatch(), LowerLevelCompElementList2(), TPZHybridizeHDiv::RightElement(), TPZIntelGen< TSHAPE >::SetSideOrder(), and TPZHybridizeHDiv::VerifySolutionConsistency().

◆ EqualLevelCompElementList3()

void TPZGeoElSide::EqualLevelCompElementList3 ( TPZStack< TPZCompElSide > &  elsidevec,
int  onlymultiphysicelement,
int  removeduplicates 
)

Returns all connected computational elements which have equal level to the current element.

This method will not put this on the stack
if onlymultiphysicelement == 1 only elements TPZMultiphysicsElement will be put on the stack
if removeduplicates == 1 no elements which are direct neighbours will be put on the stack

Definition at line 697 of file pzgeoelside.cpp.

References Element(), TPZCompElSide::Element(), Exists(), TPZCompElSide::Exists(), Neighbour(), TPZStack< T, NumExtAlloc >::Push(), and Reference().

◆ EqualorHigherCompElementList2()

void TPZGeoElSide::EqualorHigherCompElementList2 ( TPZStack< TPZCompElSide > &  celside,
int  onlyinterpolated,
int  removeduplicates 
)

Will return all elements of equal or higher level than than the current element.

Definition at line 946 of file pzgeoelside.cpp.

References Exists(), GetSubElements2(), HasSubElement(), Neighbour(), TPZVec< T >::NElements(), nsub, NSubElements(), and TPZStack< T, NumExtAlloc >::Push().

Referenced by TPZMHMeshControl::AddBoundaryInterfaceElements(), and TPZBuildSBFem::CreateVolumetricElements().

◆ EqualorHigherCompElementList3()

void TPZGeoElSide::EqualorHigherCompElementList3 ( TPZStack< TPZCompElSide > &  celside,
int  onlymultiphysicelement,
int  removeduplicates 
)

Will return all elements of equal or higher level than than the current element
if onlymultiphysicelement == 1 only elements TPZMultiphysicsElement will be put on the stack
if removeduplicates == 1 no elements which are direct neighbours will be put on the stack.

Definition at line 977 of file pzgeoelside.cpp.

References Exists(), GetSubElements2(), HasSubElement(), Neighbour(), TPZVec< T >::NElements(), nsub, NSubElements(), and TPZStack< T, NumExtAlloc >::Push().

◆ Exists()

int TPZGeoElSide::Exists ( ) const
inline

◆ Father2()

TPZGeoElSide TPZGeoElSide::Father2 ( ) const

◆ GelLocIndex()

int TPZGeoElSide::GelLocIndex ( int  index) const

Definition at line 1305 of file pzgeoelside.cpp.

References DebugStop.

◆ GetAllSiblings()

void TPZGeoElSide::GetAllSiblings ( TPZStack< TPZGeoElSide > &  unrefinedSons)
virtual

[deprecated] use YoungestChildren

Definition at line 775 of file pzgeoelside.cpp.

References DebugStop, nsub, TPZStack< T, NumExtAlloc >::Push(), PZError, and TPZVec< T >::size().

◆ GetSubElements2()

void TPZGeoElSide::GetSubElements2 ( TPZStack< TPZGeoElSide > &  subelements)

◆ GradX()

void TPZGeoElSide::GradX ( TPZVec< REAL > &  loc,
TPZFMatrix< REAL > &  gradx 
) const

◆ HasSubElement()

int TPZGeoElSide::HasSubElement ( )

◆ HigherDimensionElementList()

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

Pushes all connected computational elements which have higher dimension than the current element/side
if onlyinterpolated == 1 only elements TPZInterpolatedElement will be put on the stack
if removeduplicates == 1 no elements which are direct neighbours will be put on the stack.

Definition at line 721 of file pzgeoelside.cpp.

References TPZCompEl::ConnectIndex(), TPZCompElSide::Element(), TPZInterpolatedElement::MidSideConnectLocId(), TPZVec< T >::NElements(), TPZStack< T, NumExtAlloc >::Push(), and TPZCompElSide::Side().

Referenced by TPZCompElSide::HigherDimensionElementList().

◆ HigherLevelCompElementList2()

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

Returns all connected computational elements which have level higher to the current element
if onlyinterpolated == 1 only elements TPZInterpolatedElement will be put on the stack
if removeduplicates == 1 no elements which are direct neighbours will be put on the stack.

Definition at line 903 of file pzgeoelside.cpp.

References Exists(), GetSubElements2(), HasSubElement(), Neighbour(), TPZVec< T >::NElements(), nsub, and NSubElements().

Referenced by TPZCompMeshTools::AddHDivPyramidRestraints(), TPZInterpolatedElement::AdjustPreferredSideOrder(), TPZBuildMultiphysicsMesh::BuildHybridMesh(), TPZMultiphysicsCompEl< TGeometry >::GetReferenceIndexVec(), and TPZCompElSide::HigherLevelElementList().

◆ HigherLevelCompElementList3()

void TPZGeoElSide::HigherLevelCompElementList3 ( TPZStack< TPZCompElSide > &  elsidevec,
int  onlymultiphysicelement,
int  removeduplicates 
)

Returns all connected computational elements which have level higher to the current element
if onlymultiphysicelement == 1 only elements TPZMultiphysicsElement will be put on the stack
if removeduplicates == 1 no elements which are direct neighbours will be put on the stack.

Definition at line 924 of file pzgeoelside.cpp.

References Exists(), GetSubElements2(), HasSubElement(), Neighbour(), TPZVec< T >::NElements(), nsub, and NSubElements().

Referenced by TPZCompElHDiv< TSHAPE >::~TPZCompElHDiv(), and TPZCompElHDivBound2< TSHAPE >::~TPZCompElHDivBound2().

◆ Id()

int64_t TPZGeoElSide::Id ( )

◆ InsertConnectivity()

void TPZGeoElSide::InsertConnectivity ( TPZGeoElSide neighbour)

This method inserts the element/side and all lowerdimension sides into the connectivity loop.

This method inserts the element/side and all lowerdimension sides into the connectivity loop

Definition at line 346 of file pzgeoelside.cpp.

References fGeoEl, fSide, TPZGeoEl::LowerDimensionSides(), TPZVec< T >::NElements(), and SetConnectivity().

Referenced by TPZGeoElRefLess< TGeo >::CreateBCGeoBlendEl(), and TPZGeoElMapped< TBase >::CreateBCGeoEl().

◆ IsAncestor()

bool TPZGeoElSide::IsAncestor ( TPZGeoElSide  other)

Checks whether other is an ancestor of this.

Definition at line 95 of file pzgeoelside.cpp.

References Element(), and IsAncestor().

Referenced by IsAncestor(), IsRelative(), and TPZVTKGeoMesh::PrintGMeshVTKneighbourhood().

◆ IsLinearMapping()

bool TPZGeoElSide::IsLinearMapping ( ) const

◆ IsRelative()

bool TPZGeoElSide::IsRelative ( TPZGeoElSide  other)

Checks whether other is a relative (son or ancestor) of this.

Definition at line 111 of file pzgeoelside.cpp.

References IsAncestor(), and IsAncestor().

Referenced by TPZGeoEl::SetNeighbourForBlending().

◆ Jacobian()

void TPZGeoElSide::Jacobian ( TPZVec< REAL > &  param,
TPZFMatrix< REAL > &  jacobian,
TPZFMatrix< REAL > &  axes,
REAL &  detjac,
TPZFMatrix< REAL > &  jacinv 
) const

◆ LowerLevelCompElementList2()

TPZCompElSide TPZGeoElSide::LowerLevelCompElementList2 ( int  onlyinterpolated)

◆ LowestFatherSide()

TPZGeoElSide TPZGeoElSide::LowestFatherSide ( )

◆ Neighbour()

TPZGeoElSide TPZGeoElSide::Neighbour ( ) const
inline

Definition at line 754 of file pzgeoel.h.

References Neighbour().

Referenced by TCedricTest::AddBoundaryElements(), TPZAcademicGeoMesh::AddBoundaryElements(), TPZAcademicGeoMesh::AddBoundaryElementsByCoord(), TPZCompMeshTools::AddHDivPyramidRestraints(), TPZBuildSBFem::AddSkeletonElements(), AllNeighbours(), TPZMHMixedHybridMeshControl::ApplyNeighbourBoundaryCondition(), TPZGeoMesh::Area(), TPZMHMeshControl::BuildWrapMesh(), pzgeom::TPZChangeEl::ChangeToGeoBlend(), pzgeom::TPZChangeEl::ChangeToQuadratic(), TPZAcademicGeoMesh::CheckConsistency(), TCedricTest::CheckConsistency(), TPZMHMeshControl::CheckDivisionConsistency(), TPZCheckGeom::CheckNeighbourMap(), TPZGeoEl::CheckSubelDataStructure(), Hdiv2dPaper201504::CMeshMixed(), hdivCurvedJCompAppMath::CMeshMixed(), Hdiv3dPaper201504::CMeshMixed(), TPZInterpolationSpace::ComputeNormal(), TPZRefPattern::ComputePartition(), TPZMHMeshControl::ConnectedElements(), TPZMHMeshControl::ConnectedInterfaceElements(), TPZBuildSBFem::CreateElementGroups(), TPZMHMixedHybridMeshControl::CreateHDivWrappers(), TPZHybridizeHDiv::CreateInterfaceElements(), TPZMHMeshControl::CreateInterfaceElements(), TPZMHMixedHybridMeshControl::CreateLowerDimensionPressureElements(), pzgeom::TPZChangeEl::CreateMiddleNodeAtEdge(), TPZRefPattern::CreateMidSideNodes(), TPZMHMixedMeshControl::CreateMultiPhysicsInterfaceElements(), TPZMHMixedHybridMeshControl::CreatePressureInterfaces(), TPZMHMeshControl::CreateWrap(), TPZMHMeshControl::CriaMalhaTemporaria(), TPZMHMeshControl::DefinePartition(), TPZMHMeshControl::DivideWrap(), TPZRefPatternTools::DragModelPatNodes(), EqualLevelCompElementList(), EqualLevelCompElementList3(), EqualorHigherCompElementList2(), EqualorHigherCompElementList3(), TPZInterfaceElement::ExistInterfaces(), TPZMultiphysicsElement::ExistsInterface(), TPZInterpolationSpace::ExistsInterface(), TPZGeoMesh::FindApproxElement(), FindCapElement(), TPZGeoMesh::FindCloseElement(), TPZMHMixedHybridMeshControl::FindConnectedElements(), TPZGeoMesh::FindElementCaju(), TPZInterfaceElement::FreeInterface(), TPZRefPatternTools::GetCompatibleRefPatterns(), TPZGeoElRefPattern< TGeo >::GetSubElements2(), TPZMHMixedHybridMeshControl::GroupElements(), HasNeighbour(), TPZMHMeshControl::HasWrapNeighbour(), HigherLevelCompElementList2(), HigherLevelCompElementList3(), TPZMHMeshControl::HybridizeSkeleton(), pzgeom::TPZGeoBlend< TGeo >::Initialize(), TPZInterpolationSpace::IntegrateSolution(), LowerLevelCompElementList2(), TPZRefPatternTools::ModelRefPattern(), TPZMHMixedHybridMeshControl::NeedsHDivWrapper(), Neighbour(), NeighbourExists(), TPZGeoEl::NeighbourExists(), pzrefine::TPZRefPrism::NewMidSideNode(), pzrefine::TPZRefTriangle::NewMidSideNode(), pzrefine::TPZRefCube::NewMidSideNode(), pzrefine::TPZRefQuad::NewMidSideNode(), pzrefine::TPZRefPyramid::NewMidSideNode(), pzrefine::TPZRefLinear::NewMidSideNode(), pzrefine::TPZRefTetrahedra::NewMidSideNode(), pzrefine::TPZRefPoint::NewMidSideNode(), NNeighbours(), NNeighboursButThisElem(), TPZGeoEl::NormalOrientation(), TPZGeoEl::Print(), TPZVTKGeoMesh::PrintGMeshVTKneighbour_material(), TPZVTKGeoMesh::PrintGMeshVTKneighbourhood(), PYBIND11_MODULE(), TPZRefPatternTools::RefineDirectional(), TPZRefPatternTools::RefineUniformIfNeighMat(), TPZGeoEl::RemoveConnectivities(), RemoveConnectivity(), SetConnectivity(), TPZGeoEl::SetNeighbourForBlending(), TPZGeoEl::SetSubElementConnectivities(), TPZRefPatternTools::SidesToRefine(), SideTransform3(), TPZMHMixedHybridMeshControl::SplitFluxElementsAroundFractures(), and TPZMHMeshControl::WrapMaterialId().

◆ NeighbourExists()

int TPZGeoElSide::NeighbourExists ( const TPZGeoElSide neighbour) const

◆ NeighbourSideTransform()

TPZTransform TPZGeoElSide::NeighbourSideTransform ( const TPZGeoElSide neighbour)

◆ NNeighbours()

int TPZGeoElSide::NNeighbours ( )

Definition at line 281 of file pzgeoelside.cpp.

References Element(), and Neighbour().

◆ NNeighboursButThisElem()

int TPZGeoElSide::NNeighboursButThisElem ( TPZGeoEl thisElem)

Returns the number of neighbours, excluding the given element (thisElem)

Definition at line 296 of file pzgeoelside.cpp.

References Element(), and Neighbour().

◆ Normal() [1/2]

void TPZGeoElSide::Normal ( TPZVec< REAL > &  point,
TPZGeoEl left,
TPZGeoEl right,
TPZVec< REAL > &  normal 
) const

◆ Normal() [2/2]

void TPZGeoElSide::Normal ( TPZVec< REAL > &  point,
TPZVec< REAL > &  normal 
) const

compute the normal to the point

Definition at line 1204 of file pzgeoelside.cpp.

References CenterX(), DebugStop, TPZVec< T >::Fill(), TPZNumeric::NormalizeVetor(), TPZNumeric::ProdVetorial(), and TPZVec< T >::Resize().

◆ NSideNodes()

int TPZGeoElSide::NSideNodes ( ) const

◆ NSides()

int TPZGeoElSide::NSides ( ) const

Returns the number of sides in which the current side can be decomposed.

Definition at line 250 of file pzgeoelside.cpp.

References TPZVec< T >::NElements().

Referenced by TPZCompElHDiv< TSHAPE >::IndexShapeToVec2().

◆ NSubElements()

int TPZGeoElSide::NSubElements ( )

◆ operator bool()

TPZGeoElSide::operator bool ( ) const
inline

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

Definition at line 221 of file pzgeoelside.h.

References TPZGeoElSideIndex::ClassId(), operator<<(), TPZGeoElSideIndex::Read(), and TPZGeoElSideIndex::Write().

◆ operator!=()

int TPZGeoElSide::operator!= ( const TPZGeoElSide other) const
inline

Definition at line 208 of file pzgeoelside.h.

References fGeoEl, and fSide.

◆ operator<()

int TPZGeoElSide::operator< ( const TPZGeoElSide other) const
inline

Definition at line 212 of file pzgeoelside.h.

References fGeoEl, and fSide.

◆ operator==()

int TPZGeoElSide::operator== ( const TPZGeoElSide other) const
inline

Definition at line 205 of file pzgeoelside.h.

References fGeoEl, and fSide.

◆ operator>()

int TPZGeoElSide::operator> ( const TPZGeoElSide other) const
inline

Definition at line 216 of file pzgeoelside.h.

References fGeoEl, and fSide.

◆ Print()

void TPZGeoElSide::Print ( std::ostream &  out) const

print geometric characteristics of the element/side

Definition at line 1284 of file pzgeoelside.cpp.

Referenced by TPZCheckGeom::CheckNeighbourMap(), TPZInterfaceElement::ComputeSideTransform(), and SideTransform3().

◆ QsiElement()

void TPZGeoElSide::QsiElement ( TPZVec< REAL > &  qsi_side,
TPZVec< REAL > &  qsi_element 
) const

Parametric coordinate of a point loc of the side and return parametric element point.

X coordinate of a point loc of the side.

Definition at line 126 of file pzgeoelside.cpp.

References TPZTransform< T >::Apply(), and TPZVec< T >::Resize().

◆ Read()

void TPZGeoElSide::Read ( TPZStream buf,
void *  context 
)
overridevirtual

read objects from the stream

Reimplemented from TPZSavable.

Definition at line 1317 of file pzgeoelside.cpp.

References TPZPersistenceManager::GetInstance(), and TPZStream::Read().

◆ Reference()

TPZCompElSide TPZGeoElSide::Reference ( ) const

◆ RemoveConnectivity()

void TPZGeoElSide::RemoveConnectivity ( )

Remove the element from the connectivity loop.

Definition at line 313 of file pzgeoelside.cpp.

References Element(), Exists(), Neighbour(), PZError, SetNeighbour(), and Side().

Referenced by TPZGeoEl::RemoveConnectivities().

◆ ResetBlendConnectivity()

bool TPZGeoElSide::ResetBlendConnectivity ( const int64_t &  index)

Definition at line 338 of file pzgeoelside.cpp.

Referenced by TPZGeoEl::RemoveConnectivities().

◆ SetConnectivity()

void TPZGeoElSide::SetConnectivity ( const TPZGeoElSide neighbour) const

The neighbouring element has already a connectivity loop, insert in his loop

The current element has already a connectivity loop and the neighbour doesnt

Definition at line 365 of file pzgeoelside.cpp.

References Element(), Exists(), Neighbour(), NeighbourExists(), TPZGeoEl::Print(), PZError, SetNeighbour(), and Side().

Referenced by BuildConnectivities(), TPZGeoMesh::BuildConnectivity(), TPZGeoMesh::BuildConnectivityOld(), TPZGeoElRefLess< TGeo >::CreateBCGeoEl(), InsertConnectivity(), and TPZGeoElRefLess< TGeo >::TPZGeoElRefLess().

◆ SetElement()

void TPZGeoElSide::SetElement ( TPZGeoEl geoel)
inline

Definition at line 164 of file pzgeoelside.h.

◆ SetNeighbour()

void TPZGeoElSide::SetNeighbour ( const TPZGeoElSide neighbour) const

Fill in the data structure for the neighbouring information.

fill in the data structure for the neighbouring information

Definition at line 746 of file pzgeoelside.cpp.

References PZError.

Referenced by RemoveConnectivity(), and SetConnectivity().

◆ SetSide()

void TPZGeoElSide::SetSide ( int  side)
inline

Definition at line 171 of file pzgeoelside.h.

◆ Side()

int TPZGeoElSide::Side ( ) const
inline

Definition at line 169 of file pzgeoelside.h.

References TPZGeoElSideIndex::fSide.

Referenced by TPZMHMeshControl::AddBoundaryInterfaceElements(), BuildConnectivities(), TPZGeoMesh::BuildConnectivityOld(), pzgeom::TPZChangeEl::ChangeToQuadratic(), TPZCheckGeom::CheckRefinement(), TPZGeoEl::CheckSubelDataStructure(), TPZCheckGeom::CheckSubFatherTransform(), CompareFluxes(), TPZSBFemVolume::ComputeKMatrices(), TPZRefPatternTools::ConstJacobian(), TPZMHMixedHybridMeshControl::CreateHDivWrappers(), TPZMHMeshControl::CreateInterfaceElements(), TPZGeoElRefPattern< TGeo >::Divide(), TPZRefPatternTools::DragModelPatNodes(), TPZCompElSide::ExpandConnected(), FindCapElement(), TPZGeoMesh::FindElement(), TPZRefPatternTools::GetCompatibleRefPatterns(), TPZGeoElRefPattern< TGeo >::GetSubElements2(), TPZGeoEl::InitializeNeighbours(), TPZRefPattern::IsFatherNeighbour(), LowestFatherSide(), TPZRefPatternTools::ModelRefPattern(), NeighbourSideTransform(), pzrefine::TPZRefPrism::NewMidSideNode(), pzrefine::TPZRefTriangle::NewMidSideNode(), pzrefine::TPZRefCube::NewMidSideNode(), pzrefine::TPZRefPyramid::NewMidSideNode(), pzrefine::TPZRefQuad::NewMidSideNode(), pzrefine::TPZRefLinear::NewMidSideNode(), pzrefine::TPZRefTetrahedra::NewMidSideNode(), pzrefine::TPZRefPoint::NewMidSideNode(), operator<<(), TSide::operator=(), TPZCheckRestraint::Print(), TPZGeoEl::Print(), TPZRefPatternTools::RefineDirectional(), TPZGeoEl::RemoveConnectivities(), RemoveConnectivity(), SetConnectivity(), TPZGeoElMapped< TBase >::SetFatherIndex(), TPZRefPatternTools::SidesToRefine(), TPZGeoElRefPattern< TGeo >::SideSubElement(), TPZMHMixedHybridMeshControl::SplitFluxElementsAroundFractures(), TPZGeoElBC::TPZGeoElBC(), TPZGeoElSideIndex::TPZGeoElSideIndex(), and TSide::TSide().

◆ SideNodeIndex()

int64_t TPZGeoElSide::SideNodeIndex ( int  nodenum) const

◆ SideNodeLocIndex()

int64_t TPZGeoElSide::SideNodeLocIndex ( int  nodenum) const

Returns the index of the local nodenum node of side.

returns the index of the local nodenum node of side

Definition at line 827 of file pzgeoelside.cpp.

Referenced by pzgeom::TPZChangeEl::ChangeToQuarterPoint().

◆ SideToSideTransform()

TPZTransform TPZGeoElSide::SideToSideTransform ( TPZGeoElSide higherdimensionside)

Compute the transformation between the master element space of one side of an element to the master element space of a higher dimension side.

Definition at line 755 of file pzgeoelside.cpp.

References fGeoEl, fSide, TPZGeoEl::Id(), and PZError.

Referenced by TPZMultiphysicsCompEl< TGeometry >::AffineTransform().

◆ SideTransform3()

void TPZGeoElSide::SideTransform3 ( TPZGeoElSide  neighbour,
TPZTransform<> &  t 
)

◆ StrictFather()

TPZGeoElSide TPZGeoElSide::StrictFather ( )

returns the father/side pair which contains this/side and is strictly larger than this/side

Definition at line 881 of file pzgeoelside.cpp.

References Exists(), Father2(), fGeoEl, fSide, and TPZGeoEl::NSideSubElements().

Referenced by TPZMHMeshControl::CheckDivisionConsistency(), TPZMHMeshControl::CreateWrap(), LowerLevelCompElementList2(), SideTransform3(), and TPZMHMeshControl::WrapMaterialId().

◆ Write()

void TPZGeoElSide::Write ( TPZStream buf,
int  withclassid 
) const
overridevirtual

Writes this object to the TPZStream buffer. Include the classid if withclassid = true.

Writes this object to the TPZStream buffer. Include the classid if withclassid = true

Reimplemented from TPZSavable.

Definition at line 1322 of file pzgeoelside.cpp.

References TPZStream::Write(), and TPZPersistenceManager::WritePointer().

◆ X()

void TPZGeoElSide::X ( TPZVec< REAL > &  loc,
TPZVec< REAL > &  result 
) const

◆ YoungestChildren()

void TPZGeoElSide::YoungestChildren ( TPZStack< TPZGeoElSide > &  unrefinedSons)
virtual

This method will return all children at the bottom of the refinement tree of the element. i.e. all children that have no subelements.

Definition at line 794 of file pzgeoelside.cpp.

References nsub, TPZStack< T, NumExtAlloc >::Push(), and TPZVec< T >::size().

Member Data Documentation

◆ fGeoEl

TPZGeoEl* TPZGeoElSide::fGeoEl
private

◆ fSide

int TPZGeoElSide::fSide
private

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