NeoPZ
Public Types | Public Member Functions | Static Public Member Functions | Static Protected Attributes | Friends | List of all members
pztopology::TPZPoint Class Reference

Defines the topology of a point. Topology It has a one side (the same element). More...

#include <tpzpoint.h>

Inheritance diagram for pztopology::TPZPoint:
[legend]
Collaboration diagram for pztopology::TPZPoint:
[legend]

Public Types

enum  {
  NCornerNodes, NSides, Dimension, NFaces,
  NPermutations
}
 Enumerate for topological characteristics. More...
 

Public Member Functions

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...
 
 TPZPoint ()
 Default constructor. More...
 
virtual ~TPZPoint ()
 Default destructor. 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 Shape (TPZVec< REAL > &loc, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi)
 
template<class T >
static void TShape (const TPZVec< T > &loc, TPZFMatrix< T > &phi, TPZFMatrix< T > &dphi)
 Compute the shape being used to construct the x mapping from local parametric coordinates. More...
 
static void GetSideHDivPermutation (int transformationid, TPZVec< int > &permgather)
 Identifies the permutation of the nodes needed to make neighbouring elements compatible in terms of order of shape functions. More...
 
static constexpr REAL RefElVolume ()
 Volume of the master element (measure of the element) More...
 
static void ComputeDirections (int side, TPZFMatrix< REAL > &gradx, TPZFMatrix< REAL > &directions, TPZVec< int > &sidevectors)
 
static void GetSideHDivDirections (TPZVec< int > &sides, TPZVec< int > &dir, TPZVec< int > &bilinearounao)
 
static void GetSideHDivDirections (TPZVec< int > &sides, TPZVec< int > &dir, TPZVec< int > &bilinearounao, TPZVec< int > &sidevectors)
 
template<class TVar >
static void ComputeHDivDirections (TPZFMatrix< TVar > &gradx, TPZFMatrix< TVar > &directions)
 Compute the directions of the HDiv vectors. More...
 
static int NBilinearSides ()
 
About sides of the topological element
template<class T >
static void BlendFactorForSide (const int &side, const TPZVec< T > &xi, T &blendFactor, TPZVec< T > &corrFactorDxi)
 
static int SideDimension (int side)
 Returns the dimension of the side. More...
 
static void LowerDimensionSides (int side, TPZStack< int > &smallsides)
 Get all sides with lower dimension on side. More...
 
static void LowerDimensionSides (int side, TPZStack< int > &smallsides, int targetdim)
 Get all sides with lower dimension but equal to DimTarget on side. More...
 
static void HigherDimensionSides (int side, TPZStack< int > &high)
 Returns all sides whose closure contains side. More...
 
static int NSideNodes (int side)
 Returns the number of nodes (not connectivities) associated with a side. More...
 
static int SideNodeLocId (int side, int node)
 Returns the local node number of the node "node" along side "side". More...
 
static int NumSides ()
 Returns number of connects of the element ??? More...
 
static int NumSides (int dimension)
 Returns the number of connects for a set dimension // Jorge ??? More...
 
static int NContainedSides (int side)
 Returns the number of nodes (not connectivities) associated with a side // Jorge - sides or nodes??? More...
 
static int ContainedSideLocId (int side, int c)
 Returns the local connect number of the connect "c" along side "side". More...
 
About points at the parametric spaces
static void CenterPoint (int side, TPZVec< REAL > &center)
 Returns the barycentric coordinates in the master element space of the original element. More...
 
static bool IsInParametricDomain (const TPZVec< REAL > &pt, REAL tol=1e-6)
 Verifies if the parametric point pt is in the element parametric domain. More...
 
static void RandomPoint (TPZVec< REAL > &pt)
 Generates a random point in the master domain. More...
 
template<class T >
static bool CheckProjectionForSingularity (const int &side, const TPZVec< T > &xiInterior)
 
template<class T >
static void MapToSide (int side, TPZVec< T > &InternalPar, TPZVec< T > &SidePar, TPZFMatrix< T > &JacToSide)
 
static void ParametricDomainNodeCoord (int node, TPZVec< REAL > &nodeCoord)
 
About type of the topological element
static MElementType Type ()
 Returns the type of the element as specified in file pzeltype.h. More...
 
static MElementType Type (int side)
 Returns the type of the element side as specified in file pzeltype.h. More...
 
About Transformations
static TPZTransform SideToSideTransform (int sidefrom, int sideto)
 Returns the transformation which takes a point from the side sidefrom to the side sideto. More...
 
static TPZTransform TransformSideToElement (int side)
 Returns the transformation which transform a point from the side to the interior of the element. More...
 
static TPZTransform TransformElementToSide (int side)
 
static int GetTransformId (TPZVec< int64_t > &id)
 Method which identifies the transformation based on the IDs of the corner nodes. More...
 
static int GetTransformId (int side, TPZVec< int64_t > &id)
 Method which identifies the transformation of a side based on the IDs of the corner nodes. More...
 
- 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)
 

Static Protected Attributes

static int fPermutations [1][1]
 Valid permutations between nodes. More...
 

Friends

void pztopology::GetPermutation (const int permute, TPZVec< int > &permutation)
 

Methods related over numeric integration

typedef TPZInt1Point IntruleType
 Typedef to numerical integration rule. More...
 
static TPZIntPointsCreateSideIntegrationRule (int side, int order)
 Create an integration rule over side. More...
 

Detailed Description

Defines the topology of a point. Topology It has a one side (the same element).

Author
Philippe R. B. Devloo

Definition at line 34 of file tpzpoint.h.

Member Typedef Documentation

◆ IntruleType

Typedef to numerical integration rule.

Definition at line 221 of file tpzpoint.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

Enumerate for topological characteristics.

Enumerator
NCornerNodes 
NSides 
Dimension 
NFaces 
NPermutations 

Definition at line 39 of file tpzpoint.h.

Constructor & Destructor Documentation

◆ TPZPoint()

pztopology::TPZPoint::TPZPoint ( )
inline

Default constructor.

Definition at line 47 of file tpzpoint.h.

◆ ~TPZPoint()

virtual pztopology::TPZPoint::~TPZPoint ( )
inlinevirtual

Default destructor.

Definition at line 50 of file tpzpoint.h.

Member Function Documentation

◆ BlendFactorForSide()

template<class T >
template void pztopology::TPZPoint::BlendFactorForSide< REAL > ( const int &  side,
const TPZVec< T > &  xi,
T &  blendFactor,
TPZVec< T > &  corrFactorDxi 
)
static

This method calculates the influence (a.k.a. the blend function) of the side side regarding an interior point qsi. It is used by the TPZGeoBlend class.

Parameters
sidethe index of the side
xicoordinates of the interior point
blendFactorinfluence (0 <= blendFactor <= 1)
corrFactorDxiderivative of the blendFactor in respect to xi

Definition at line 25 of file tpzpoint.cpp.

References DebugStop, and PZError.

Referenced by Shape().

◆ CenterPoint()

static void pztopology::TPZPoint::CenterPoint ( int  side,
TPZVec< REAL > &  center 
)
inlinestatic

Returns the barycentric coordinates in the master element space of the original element.

Definition at line 123 of file tpzpoint.h.

Referenced by PYBIND11_MODULE().

◆ CheckProjectionForSingularity()

template<class T >
template bool pztopology::TPZPoint::CheckProjectionForSingularity< REAL > ( const int &  side,
const TPZVec< T > &  xiInterior 
)
static

This method will check if the projection to a certain side (MapToSide method) is regular, i.e., if the interior point in the parametric domain is not too close to the projection's singularity.

Parameters
sidethe index of the side upon which the interior point will be projected upon
xiInteriorcoordinates of the interior point
Returns
true if the interior point is far from the singularity

Definition at line 59 of file tpzpoint.cpp.

Referenced by RandomPoint().

◆ ClassId()

int pztopology::TPZPoint::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.

Reimplemented in pzgeom::TPZNodeRep< 1, pztopology::TPZPoint >.

Definition at line 129 of file tpzpoint.cpp.

References Hash().

◆ ComputeDirections()

void pztopology::TPZPoint::ComputeDirections ( int  side,
TPZFMatrix< REAL > &  gradx,
TPZFMatrix< REAL > &  directions,
TPZVec< int > &  sidevectors 
)
static

Identifies the permutation of the nodes needed to make neighbouring elements compatible in terms of order of shape functions

Parameters
side: side for which the permutation is needed
id: ids of the corner nodes of the elements
permgather: permutation vector in a gather order

Definition at line 123 of file tpzpoint.cpp.

References TPZFMatrix< TVar >::Redim(), and TPZVec< T >::Resize().

Referenced by RefElVolume().

◆ ComputeHDivDirections()

template<class TVar >
template void pztopology::TPZPoint::ComputeHDivDirections< REAL > ( TPZFMatrix< TVar > &  gradx,
TPZFMatrix< TVar > &  directions 
)
inlinestatic

Compute the directions of the HDiv vectors.

Definition at line 262 of file tpzpoint.h.

References NBilinearSides().

◆ ContainedSideLocId()

static int pztopology::TPZPoint::ContainedSideLocId ( int  side,
int  c 
)
inlinestatic

Returns the local connect number of the connect "c" along side "side".

Definition at line 113 of file tpzpoint.h.

◆ CreateSideIntegrationRule()

TPZIntPoints * pztopology::TPZPoint::CreateSideIntegrationRule ( int  side,
int  order 
)
static

Create an integration rule over side.

Parameters
sideSide to create integration rule
orderOrder of the integration rule to be created

Definition at line 34 of file tpzpoint.cpp.

Referenced by PYBIND11_MODULE(), and TransformElementToSide().

◆ GetSideHDivDirections() [1/2]

static void pztopology::TPZPoint::GetSideHDivDirections ( TPZVec< int > &  sides,
TPZVec< int > &  dir,
TPZVec< int > &  bilinearounao 
)
inlinestatic

Definition at line 245 of file tpzpoint.h.

◆ GetSideHDivDirections() [2/2]

static void pztopology::TPZPoint::GetSideHDivDirections ( TPZVec< int > &  sides,
TPZVec< int > &  dir,
TPZVec< int > &  bilinearounao,
TPZVec< int > &  sidevectors 
)
inlinestatic

Definition at line 252 of file tpzpoint.h.

◆ GetSideHDivPermutation()

static void pztopology::TPZPoint::GetSideHDivPermutation ( int  transformationid,
TPZVec< int > &  permgather 
)
inlinestatic

Identifies the permutation of the nodes needed to make neighbouring elements compatible in terms of order of shape functions.

Parameters
sideSide for which the permutation is needed
idIds of the corner nodes of the elements
permgatherPermutation vector in a gather order

Definition at line 232 of file tpzpoint.h.

◆ GetTransformId() [1/2]

int pztopology::TPZPoint::GetTransformId ( TPZVec< int64_t > &  id)
static

Method which identifies the transformation based on the IDs of the corner nodes.

Parameters
idIndexes of the corner nodes
Returns
Index of the transformation of the point corresponding to the topology

Method which identifies the transformation based on the IDs of the corner nodes

Parameters
idindexes of the corner nodes
Returns
index of the transformation of the point corresponding to the topology

Definition at line 95 of file tpzpoint.cpp.

Referenced by TransformElementToSide().

◆ GetTransformId() [2/2]

int pztopology::TPZPoint::GetTransformId ( int  side,
TPZVec< int64_t > &  id 
)
static

Method which identifies the transformation of a side based on the IDs of the corner nodes.

Parameters
sideIndex of side
idIndexes of the corner nodes
Returns
Index of the transformation of the point corresponding to the topology

Method which identifies the transformation of a side based on the IDs of the corner nodes

Parameters
idindexes of the corner nodes
Returns
index of the transformation of the point corresponding to the topology

Definition at line 106 of file tpzpoint.cpp.

◆ HigherDimensionSides()

static void pztopology::TPZPoint::HigherDimensionSides ( int  side,
TPZStack< int > &  high 
)
inlinestatic

Returns all sides whose closure contains side.

Parameters
sideSmaller dimension side
highVector which will contain all sides whose closure contain sidefrom

Definition at line 92 of file tpzpoint.h.

Referenced by PYBIND11_MODULE().

◆ IsInParametricDomain()

static bool pztopology::TPZPoint::IsInParametricDomain ( const TPZVec< REAL > &  pt,
REAL  tol = 1e-6 
)
inlinestatic

Verifies if the parametric point pt is in the element parametric domain.

Definition at line 127 of file tpzpoint.h.

Referenced by IsInSideParametricDomain(), and PYBIND11_MODULE().

◆ LowerDimensionSides() [1/2]

static void pztopology::TPZPoint::LowerDimensionSides ( int  side,
TPZStack< int > &  smallsides 
)
inlinestatic

Get all sides with lower dimension on side.

Definition at line 81 of file tpzpoint.h.

Referenced by PYBIND11_MODULE().

◆ LowerDimensionSides() [2/2]

static void pztopology::TPZPoint::LowerDimensionSides ( int  side,
TPZStack< int > &  smallsides,
int  targetdim 
)
inlinestatic

Get all sides with lower dimension but equal to DimTarget on side.

Definition at line 84 of file tpzpoint.h.

◆ MapToSide()

template<class T >
template void pztopology::TPZPoint::MapToSide< REAL > ( int  side,
TPZVec< T > &  InternalPar,
TPZVec< T > &  SidePar,
TPZFMatrix< T > &  JacToSide 
)
static

Definition at line 63 of file tpzpoint.cpp.

References TPZVec< T >::Resize(), and TPZFMatrix< TVar >::Resize().

Referenced by RandomPoint().

◆ NBilinearSides()

int pztopology::TPZPoint::NBilinearSides ( )
static

Returns the number of bilinear sides to this shape. Needed to compute the number shapefunctions( NConnectShapeF )

Definition at line 55 of file tpzpoint.cpp.

Referenced by ComputeHDivDirections().

◆ NContainedSides()

static int pztopology::TPZPoint::NContainedSides ( int  side)
inlinestatic

Returns the number of nodes (not connectivities) associated with a side // Jorge - sides or nodes???

Definition at line 109 of file tpzpoint.h.

◆ NSideNodes()

static int pztopology::TPZPoint::NSideNodes ( int  side)
inlinestatic

Returns the number of nodes (not connectivities) associated with a side.

Definition at line 95 of file tpzpoint.h.

Referenced by PYBIND11_MODULE().

◆ NumSides() [1/2]

static int pztopology::TPZPoint::NumSides ( )
inlinestatic

Returns number of connects of the element ???

Definition at line 104 of file tpzpoint.h.

Referenced by PYBIND11_MODULE().

◆ NumSides() [2/2]

static int pztopology::TPZPoint::NumSides ( int  dimension)
inlinestatic

Returns the number of connects for a set dimension // Jorge ???

Definition at line 106 of file tpzpoint.h.

◆ ParametricDomainNodeCoord()

void pztopology::TPZPoint::ParametricDomainNodeCoord ( int  node,
TPZVec< REAL > &  nodeCoord 
)
static

Definition at line 67 of file tpzpoint.cpp.

References DebugStop, Dimension, NCornerNodes, and TPZVec< T >::Resize().

Referenced by RandomPoint().

◆ RandomPoint()

static void pztopology::TPZPoint::RandomPoint ( TPZVec< REAL > &  pt)
inlinestatic

Generates a random point in the master domain.

Definition at line 132 of file tpzpoint.h.

References CheckProjectionForSingularity(), MapToSide(), ParametricDomainNodeCoord(), and Type().

◆ Read()

void pztopology::TPZPoint::Read ( TPZStream buf,
void *  context 
)
overridevirtual

read objects from the stream

Reimplemented from TPZSavable.

Reimplemented in pzgeom::TPZNodeRep< 1, pztopology::TPZPoint >.

Definition at line 133 of file tpzpoint.cpp.

◆ RefElVolume()

static constexpr REAL pztopology::TPZPoint::RefElVolume ( )
inlinestatic

Volume of the master element (measure of the element)

Definition at line 239 of file tpzpoint.h.

References ComputeDirections().

Referenced by PYBIND11_MODULE().

◆ Shape()

static void pztopology::TPZPoint::Shape ( TPZVec< REAL > &  loc,
TPZFMatrix< REAL > &  phi,
TPZFMatrix< REAL > &  dphi 
)
inlinestatic

Definition at line 53 of file tpzpoint.h.

References BlendFactorForSide(), and TShape().

◆ SideDimension()

static int pztopology::TPZPoint::SideDimension ( int  side)
inlinestatic

Returns the dimension of the side.

Definition at line 76 of file tpzpoint.h.

Referenced by PYBIND11_MODULE().

◆ SideNodeLocId()

static int pztopology::TPZPoint::SideNodeLocId ( int  side,
int  node 
)
inlinestatic

Returns the local node number of the node "node" along side "side".

Definition at line 99 of file tpzpoint.h.

Referenced by PYBIND11_MODULE().

◆ SideToSideTransform()

static TPZTransform pztopology::TPZPoint::SideToSideTransform ( int  sidefrom,
int  sideto 
)
inlinestatic

Returns the transformation which takes a point from the side sidefrom to the side sideto.

Parameters
sidefromside where the point resides
sidetoside whose closure contains sidefrom

Definition at line 172 of file tpzpoint.h.

Referenced by PYBIND11_MODULE().

◆ TransformElementToSide()

static TPZTransform pztopology::TPZPoint::TransformElementToSide ( int  side)
inlinestatic

Definition at line 187 of file tpzpoint.h.

References CreateSideIntegrationRule(), and GetTransformId().

Referenced by PYBIND11_MODULE().

◆ TransformSideToElement()

static TPZTransform pztopology::TPZPoint::TransformSideToElement ( int  side)
inlinestatic

Returns the transformation which transform a point from the side to the interior of the element.

Parameters
sideSide from which the point will be tranformed (0<=side<=2)
Returns
TPZTransform<> object
See also
the class TPZTransform

Definition at line 182 of file tpzpoint.h.

Referenced by PYBIND11_MODULE().

◆ TShape()

template<class T >
template void pztopology::TPZPoint::TShape< REAL > ( const TPZVec< T > &  loc,
TPZFMatrix< T > &  phi,
TPZFMatrix< T > &  dphi 
)
static

Compute the shape being used to construct the x mapping from local parametric coordinates.

Definition at line 19 of file tpzpoint.cpp.

Referenced by GetSideShapeFunction(), ProjectBissectionInParametricDomain(), and Shape().

◆ Type() [1/2]

MElementType pztopology::TPZPoint::Type ( )
static

Returns the type of the element as specified in file pzeltype.h.

Definition at line 40 of file tpzpoint.cpp.

References EPoint.

Referenced by RandomPoint().

◆ Type() [2/2]

MElementType pztopology::TPZPoint::Type ( int  side)
static

Returns the type of the element side as specified in file pzeltype.h.

Definition at line 45 of file tpzpoint.cpp.

References ENoType, and EPoint.

◆ Write()

void pztopology::TPZPoint::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.

Reimplemented in pzgeom::TPZNodeRep< 1, pztopology::TPZPoint >.

Definition at line 137 of file tpzpoint.cpp.

Friends And Related Function Documentation

◆ pztopology::GetPermutation

void pztopology::GetPermutation ( const int  permute,
TPZVec< int > &  permutation 
)
friend

Member Data Documentation

◆ fPermutations

int pztopology::TPZPoint::fPermutations
staticprotected

Valid permutations between nodes.

Definition at line 273 of file tpzpoint.h.


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