NeoPZ
Public Types | Public Member Functions | Static Public Member Functions | List of all members
pzgeom::TPZQuadraticTrig Class Reference

Defines a triangular geometric element with quadratic map. Geometry. More...

#include <tpzquadratictrig.h>

Inheritance diagram for pzgeom::TPZQuadraticTrig:
[legend]
Collaboration diagram for pzgeom::TPZQuadraticTrig:
[legend]

Public Types

enum  { NNodes }
 Number of nodes. More...
 
typedef pztopology::TPZTriangle Top
 
- Public Types inherited from pztopology::TPZTriangle
enum  {
  NSides, NCornerNodes, Dimension, NFaces,
  NPermutations
}
 Enumerate for topological characteristics. More...
 
typedef TPZIntTriang IntruleType
 Typedef to numerical integration rule. More...
 
typedef TPZGraphElT2dMapped GraphElType
 Typedef to graphical element type. More...
 

Public Member Functions

int ClassId () const override
 CreateGeoElement -> TPZQuadraticTrig. More...
 
 TPZQuadraticTrig (TPZVec< int64_t > &nodeindexes)
 Constructor for node indexes given. More...
 
 TPZQuadraticTrig ()
 Default constructor. More...
 
 TPZQuadraticTrig (const TPZQuadraticTrig &cp, std::map< int64_t, int64_t > &gl2lcNdMap)
 Copy constructor for node map given. More...
 
 TPZQuadraticTrig (const TPZQuadraticTrig &cp)
 Copy constructor. More...
 
 TPZQuadraticTrig (const TPZQuadraticTrig &cp, TPZGeoMesh &)
 Copy constructor. More...
 
- Public Member Functions inherited from pzgeom::TPZNodeRep< 6, pztopology::TPZTriangle >
virtual void SetNeighbourInfo (int side, TPZGeoElSide &neigh, TPZTransform<> &trans)
 
bool IsLinearMapping () const
 
bool IsGeoBlendEl () const
 
bool ResetBlendConnectivity (const int64_t &side, const int64_t &index)
 
 TPZNodeRep (TPZVec< int64_t > &nodeindexes)
 Constructor with list of nodes. More...
 
 TPZNodeRep ()
 Empty constructor. More...
 
 TPZNodeRep (const TPZNodeRep &cp, std::map< int64_t, int64_t > &gl2lcNdMap)
 Constructor with node map. More...
 
 TPZNodeRep (const TPZNodeRep< N, pztopology::TPZTriangle > &cp)
 Copy constructor. More...
 
void Read (TPZStream &buf, void *context) override
 
void Write (TPZStream &buf, int withclassid) const override
 
void Initialize (TPZVec< int64_t > &nodeindexes)
 
void Initialize (TPZGeoEl *)
 
void Print (std::ostream &out) const
 
int ClassId () const override
 
- Public Member Functions inherited from pztopology::TPZTriangle
 TPZTriangle ()
 Default constructor. More...
 
virtual ~TPZTriangle ()
 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 bool IsLinearMapping (int side)
 It is a quadratic mapping. More...
 
static std::string TypeName ()
 Returns the type name of the element. More...
 
static void Shape (TPZVec< REAL > &loc, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi)
 Method which creates a geometric boundary condition element based on the current geometric element, a side and a boundary condition number. More...
 
template<class T >
static void TShape (const TPZVec< T > &param, TPZFMatrix< T > &phi, TPZFMatrix< T > &dphi)
 Compute gradient of x mapping from local parametric coordinates. More...
 
template<class T >
static void X (const TPZFMatrix< REAL > &coord, TPZVec< T > &par, TPZVec< T > &result)
 
template<class T >
static void GradX (const TPZFMatrix< REAL > &nodes, TPZVec< T > &loc, TPZFMatrix< T > &gradx)
 Compute gradient of X mapping from element nodes and local parametric coordinates. More...
 
static void InsertExampleElement (TPZGeoMesh &gmesh, int matid, TPZVec< REAL > &lowercorner, TPZVec< REAL > &size)
 Creates a geometric element according to the type of the father element. More...
 
- Static Public Member Functions inherited from pztopology::TPZTriangle
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) More...
 
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...
 
template<class TVar >
static void ComputeHCurlDirections (TPZFMatrix< TVar > &gradx, TPZFMatrix< TVar > &directions, const TPZVec< int > &transformationIds)
 
template<class TVar >
static void ComputeHCurlFaceDirections (TPZVec< TVar > &v1, TPZVec< TVar > &v2, int transformationId)
 
static int NBilinearSides ()
 
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 DimTarget)
 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 the number of connects of the element (7) More...
 
static int NumSides (int dimension)
 Returns the number of connects for a set dimension. More...
 
static int NContainedSides (int side)
 Returns the number of nodes (not connectivities) associated with a side. More...
 
static int ContainedSideLocId (int side)
 Returns the local connect along side "side" especial for hdivspace. More...
 
static int ContainedSideLocId (int side, int c)
 Returns the local connect number of the connect "c" along side "side". More...
 
static void Shape (TPZVec< REAL > &loc, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi)
 Compute the shape being used to construct the x mapping from local parametric coordinates. More...
 
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...
 
template<class T >
static void BlendFactorForSide (const int &side, const TPZVec< T > &xi, T &blendFactor, TPZVec< T > &corrFactorDxi)
 
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=pztopology::gTolerance)
 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)
 
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 as specified in file pzeltype.h. More...
 
static TPZTransform SideToSideTransform (int sidefrom, int sideto)
 Returns the transformation which takes a point from the side sidefrom of 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)
 Returns the transformation which transform a point from the interior of the element to the side. More...
 
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 void GetHDivGatherPermute (int transformid, TPZVec< int > &permute)
 return the vector which permutes the connects according to the transformation id More...
 
static TPZIntPointsCreateSideIntegrationRule (int side, int order)
 Create an integration rule over side. 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)
 

Additional Inherited Members

- Public Attributes inherited from pzgeom::TPZNodeRep< 6, pztopology::TPZTriangle >
int64_t fNodeIndexes [N]
 Node indexes of the element. More...
 
- Static Public Attributes inherited from pzgeom::TPZNodeRep< 6, pztopology::TPZTriangle >
static const int NNodes
 
- Static Public Attributes inherited from pztopology::TPZTriangle
static int SideNodes [3][2]
 
static int FaceNodes [1][3]
 
static REAL gTrans2dT [6][2][2]
 
- Static Protected Attributes inherited from pztopology::TPZTriangle
static int fPermutations [6][7]
 Valid permutations between nodes. More...
 
static REAL fTangentVectors [12][2]
 

Detailed Description

Defines a triangular geometric element with quadratic map. Geometry.

Author
Paulo Cesar de Alvarenga Lucci (Caju)
Since
2007

Definition at line 22 of file tpzquadratictrig.h.

Member Typedef Documentation

◆ Top

Definition at line 25 of file tpzquadratictrig.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

Number of nodes.

Enumerator
NNodes 

Definition at line 27 of file tpzquadratictrig.h.

Constructor & Destructor Documentation

◆ TPZQuadraticTrig() [1/5]

pzgeom::TPZQuadraticTrig::TPZQuadraticTrig ( TPZVec< int64_t > &  nodeindexes)
inline

Constructor for node indexes given.

Definition at line 42 of file tpzquadratictrig.h.

◆ TPZQuadraticTrig() [2/5]

pzgeom::TPZQuadraticTrig::TPZQuadraticTrig ( )
inline

Default constructor.

Definition at line 47 of file tpzquadratictrig.h.

◆ TPZQuadraticTrig() [3/5]

pzgeom::TPZQuadraticTrig::TPZQuadraticTrig ( const TPZQuadraticTrig cp,
std::map< int64_t, int64_t > &  gl2lcNdMap 
)
inline

Copy constructor for node map given.

Definition at line 51 of file tpzquadratictrig.h.

◆ TPZQuadraticTrig() [4/5]

pzgeom::TPZQuadraticTrig::TPZQuadraticTrig ( const TPZQuadraticTrig cp)
inline

Copy constructor.

Definition at line 55 of file tpzquadratictrig.h.

◆ TPZQuadraticTrig() [5/5]

pzgeom::TPZQuadraticTrig::TPZQuadraticTrig ( const TPZQuadraticTrig cp,
TPZGeoMesh  
)
inline

Copy constructor.

Definition at line 59 of file tpzquadratictrig.h.

Member Function Documentation

◆ ClassId()

int TPZQuadraticTrig::ClassId ( ) const
overridevirtual

CreateGeoElement -> TPZQuadraticTrig.

Implements TPZSavable.

Definition at line 268 of file tpzquadratictrig.cpp.

References Hash().

◆ GradX()

template<class T >
template void pzgeom::TPZQuadraticTrig::GradX ( const TPZFMatrix< REAL > &  nodes,
TPZVec< T > &  loc,
TPZFMatrix< T > &  gradx 
)
static

Compute gradient of X mapping from element nodes and local parametric coordinates.

Definition at line 84 of file tpzquadratictrig.cpp.

References TPZMatrix< TVar >::Cols(), DebugStop, TPZFMatrix< TVar >::GetVal(), TPZFMatrix< TVar >::Resize(), TPZMatrix< TVar >::Rows(), and TPZFMatrix< TVar >::Zero().

Referenced by Shape().

◆ InsertExampleElement()

void TPZQuadraticTrig::InsertExampleElement ( TPZGeoMesh gmesh,
int  matid,
TPZVec< REAL > &  lowercorner,
TPZVec< REAL > &  size 
)
static

Creates a geometric element according to the type of the father element.

create an example element based on the topology

Creates a geometric element according to the type of the father element

Definition at line 178 of file tpzquadratictrig.cpp.

References TPZAdmChunkVector< T, EXP >::AllocateNewElement(), TPZChangeEl::ChangeToQuadratic(), co, TPZGeoMesh::CreateGeoElement(), TPZGeoMesh::Element(), ETriangle, TPZGeoNode::GetCoordinates(), TPZGeoEl::NCornerNodes(), TPZGeoEl::NNodes(), TPZGeoEl::NodePtr(), TPZGeoMesh::NodeVec(), TPZGeoEl::NSides(), TPZGeoNode::SetCoord(), and TPZGeoEl::SetSideDefined().

Referenced by Shape().

◆ IsLinearMapping()

static bool pzgeom::TPZQuadraticTrig::IsLinearMapping ( int  side)
inlinestatic

It is a quadratic mapping.

Definition at line 36 of file tpzquadratictrig.h.

◆ Shape()

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

Method which creates a geometric boundary condition element based on the current geometric element, a side and a boundary condition number.

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

Definition at line 73 of file tpzquadratictrig.h.

References GradX(), InsertExampleElement(), TShape(), and X().

◆ TShape()

template<class T >
void TPZQuadraticTrig::TShape ( const TPZVec< T > &  param,
TPZFMatrix< T > &  phi,
TPZFMatrix< T > &  dphi 
)
static

Compute gradient of x mapping from local parametric coordinates.

/ Class made by Paulo Cesar de Alvarenga Lucci (Caju) / LabMeC - FEC - UNICAMP / 2007

Definition at line 43 of file tpzquadratictrig.cpp.

Referenced by Shape().

◆ TypeName()

static std::string pzgeom::TPZQuadraticTrig::TypeName ( )
inlinestatic

Returns the type name of the element.

Definition at line 63 of file tpzquadratictrig.h.

◆ X()

template<class T >
template void pzgeom::TPZQuadraticTrig::X ( const TPZFMatrix< REAL > &  coord,
TPZVec< T > &  par,
TPZVec< T > &  result 
)
static

Definition at line 68 of file tpzquadratictrig.cpp.

References TPZFMatrix< TVar >::GetVal().

Referenced by Shape().


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