NeoPZ
Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
pzgeom::TPZEllipse3D Class Reference

Defines a linear geometric element which maps a line segment to an ellipse. Geometry. More...

#include <tpzellipse3d.h>

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

Public Types

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

Public Member Functions

int ClassId () const override
 It is not linear mapping. More...
 
virtual void ParametricDomainNodeCoord (int64_t node, TPZVec< REAL > &nodeCoord)
 
 TPZEllipse3D (const TPZEllipse3D &cp, std::map< int64_t, int64_t > &gl2lcNdMap)
 Constructor. More...
 
 TPZEllipse3D ()
 Default constructor. More...
 
virtual ~TPZEllipse3D ()
 Destructor. More...
 
 TPZEllipse3D (const TPZEllipse3D &cp)
 Copy constructor. More...
 
 TPZEllipse3D (const TPZEllipse3D &cp, TPZGeoMesh &)
 Copy constructor. More...
 
 TPZEllipse3D (TPZVec< int64_t > &nodeindexes)
 Constructor with node indexes given. More...
 
TPZEllipse3Doperator= (const TPZEllipse3D &cp)
 
virtual void AdjustNodesCoordinates (TPZGeoMesh &mesh)
 Adjust node coordinates in case of does not belong to the ellipse arc defined by the given origin and semiAxes. More...
 
void SetAxes (TPZVec< REAL > Origin, TPZVec< REAL > SemiAxeX, TPZVec< REAL > SemiAxeY, TPZGeoMesh &gmesh)
 Origin defines the translation of ellipse while semi-axes defines the rotation of ellipse, i.: More...
 
template<class T >
void GradX (TPZFMatrix< REAL > &cornerco, TPZVec< T > &par, TPZFMatrix< T > &gradx) const
 
template<class T >
void X (TPZFMatrix< REAL > &nodeCoord, TPZVec< T > &qsi, TPZVec< T > &x) const
 
void GetNodesCoords (TPZGeoMesh &mesh, TPZFMatrix< REAL > &nodes)
 Creates a geometric element according to the type of the father element. More...
 
void SetNodesCoords (TPZGeoMesh &mesh, TPZFMatrix< REAL > &nodes)
 
double sAxeX ()
 
double sAxeY ()
 
TPZVec< REAL > Origin ()
 
- Public Member Functions inherited from pzgeom::TPZNodeRep< 2, pztopology::TPZLine >
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::TPZLine > &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::TPZLine
 TPZLine ()
 Default constructor. More...
 
virtual ~TPZLine ()
 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)
 
static std::string TypeName ()
 
static void InsertExampleElement (TPZGeoMesh &gmesh, int matid, TPZVec< REAL > &lowercorner, TPZVec< REAL > &size)
 
- Static Public Member Functions inherited from pztopology::TPZLine
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...
 
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 ()
 
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 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 for a set dimension. 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, int c)
 Returns the local connect number of the connect "c" along side "side". More...
 
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 side 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 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)
 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 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)
 

Private Member Functions

double ComputeAngle (TPZVec< REAL > &co) const
 Compute the angle of a coordinate as a function of the axes. More...
 

Private Attributes

double fsAxeX
 
double fsAxeY
 
TPZFNMatrix< 9, REAL > fAxes
 Rotation matrix where the axes correspond to rows of the matrix. More...
 
TPZManVector< REAL, 3 > fOrigin
 
double fAngleIni
 
double fAngleFinal
 

Additional Inherited Members

- Public Attributes inherited from pzgeom::TPZNodeRep< 2, pztopology::TPZLine >
int64_t fNodeIndexes [N]
 Node indexes of the element. More...
 
- Static Public Attributes inherited from pzgeom::TPZNodeRep< 2, pztopology::TPZLine >
static const int NNodes
 
- Static Protected Attributes inherited from pztopology::TPZLine
static int fPermutations [2][3]
 Valid permutations between nodes. More...
 

Detailed Description

Defines a linear geometric element which maps a line segment to an ellipse. Geometry.

Definition at line 24 of file tpzellipse3d.h.

Member Typedef Documentation

◆ Top

Definition at line 27 of file tpzellipse3d.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

Number of nodes (connects)

Enumerator
NNodes 

Definition at line 29 of file tpzellipse3d.h.

Constructor & Destructor Documentation

◆ TPZEllipse3D() [1/5]

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

Constructor.

Definition at line 39 of file tpzellipse3d.h.

◆ TPZEllipse3D() [2/5]

pzgeom::TPZEllipse3D::TPZEllipse3D ( )
inline

Default constructor.

Definition at line 44 of file tpzellipse3d.h.

◆ ~TPZEllipse3D()

virtual pzgeom::TPZEllipse3D::~TPZEllipse3D ( )
inlinevirtual

Destructor.

Definition at line 49 of file tpzellipse3d.h.

◆ TPZEllipse3D() [3/5]

pzgeom::TPZEllipse3D::TPZEllipse3D ( const TPZEllipse3D cp)
inline

Copy constructor.

Definition at line 53 of file tpzellipse3d.h.

◆ TPZEllipse3D() [4/5]

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

Copy constructor.

Definition at line 58 of file tpzellipse3d.h.

◆ TPZEllipse3D() [5/5]

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

Constructor with node indexes given.

Definition at line 63 of file tpzellipse3d.h.

Member Function Documentation

◆ AdjustNodesCoordinates()

void TPZEllipse3D::AdjustNodesCoordinates ( TPZGeoMesh mesh)
virtual

Adjust node coordinates in case of does not belong to the ellipse arc defined by the given origin and semiAxes.

Definition at line 238 of file tpzellipse3d.cpp.

References angle, cos(), and sin.

Referenced by operator=().

◆ ClassId()

int TPZEllipse3D::ClassId ( ) const
overridevirtual

It is not linear mapping.

Implements TPZSavable.

Definition at line 335 of file tpzellipse3d.cpp.

References Hash().

◆ ComputeAngle()

double TPZEllipse3D::ComputeAngle ( TPZVec< REAL > &  co) const
private

Compute the angle of a coordinate as a function of the axes.

Definition at line 93 of file tpzellipse3d.cpp.

References angle, atan2(), DebugStop, and fabs.

Referenced by Origin().

◆ GetNodesCoords()

void TPZEllipse3D::GetNodesCoords ( TPZGeoMesh mesh,
TPZFMatrix< REAL > &  nodes 
)

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

Definition at line 204 of file tpzellipse3d.cpp.

References TPZGeoNode::Coord(), and TPZGeoMesh::NodeVec().

Referenced by TypeName().

◆ GradX()

template<class T >
void TPZEllipse3D::GradX ( TPZFMatrix< REAL > &  cornerco,
TPZVec< T > &  par,
TPZFMatrix< T > &  gradx 
) const

Definition at line 180 of file tpzellipse3d.cpp.

References angle, cos(), TPZFMatrix< TVar >::GetVal(), TPZFMatrix< TVar >::MultAdd(), and sin.

Referenced by operator=().

◆ InsertExampleElement()

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

◆ IsLinearMapping()

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

Definition at line 116 of file tpzellipse3d.h.

◆ operator=()

TPZEllipse3D& pzgeom::TPZEllipse3D::operator= ( const TPZEllipse3D cp)
inline

◆ Origin()

TPZVec<REAL> pzgeom::TPZEllipse3D::Origin ( )
inline

Definition at line 142 of file tpzellipse3d.h.

References co, ComputeAngle(), fOrigin, and InsertExampleElement().

Referenced by operator=().

◆ ParametricDomainNodeCoord()

void TPZEllipse3D::ParametricDomainNodeCoord ( int64_t  node,
TPZVec< REAL > &  nodeCoord 
)
virtual

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

Definition at line 309 of file tpzellipse3d.cpp.

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

◆ sAxeX()

double pzgeom::TPZEllipse3D::sAxeX ( )
inline

Definition at line 134 of file tpzellipse3d.h.

References fsAxeX.

◆ sAxeY()

double pzgeom::TPZEllipse3D::sAxeY ( )
inline

Definition at line 138 of file tpzellipse3d.h.

References fsAxeY.

◆ SetAxes()

void TPZEllipse3D::SetAxes ( TPZVec< REAL >  Origin,
TPZVec< REAL >  SemiAxeX,
TPZVec< REAL >  SemiAxeY,
TPZGeoMesh gmesh 
)

Origin defines the translation of ellipse while semi-axes defines the rotation of ellipse, i.:

Parameters
Originorigin coordinates
SemiAxeXis the vector that defines the direction of X axes of ellipse, whose value is its norm.
SemiAxeYis the vector that defines the direction of Y axes of ellipse, whose value is its norm.

Definition at line 31 of file tpzellipse3d.cpp.

References DebugStop, EMathematicaInput, fabs, TPZGeoMesh::NodeVec(), Norm(), TPZVec< T >::size(), sqrt, and tolerance.

Referenced by InsertExampleElement(), and operator=().

◆ SetNodesCoords()

void TPZEllipse3D::SetNodesCoords ( TPZGeoMesh mesh,
TPZFMatrix< REAL > &  nodes 
)

Definition at line 217 of file tpzellipse3d.cpp.

References TPZGeoMesh::NodeVec(), and TPZGeoNode::SetCoord().

Referenced by TypeName().

◆ TypeName()

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

Definition at line 121 of file tpzellipse3d.h.

References GetNodesCoords(), and SetNodesCoords().

◆ X()

template<class T >
void TPZEllipse3D::X ( TPZFMatrix< REAL > &  nodeCoord,
TPZVec< T > &  qsi,
TPZVec< T > &  x 
) const

Este metodo estabelece o mapeamento de um elemento linear de dominio [-1,1] para o arco de elipse definido pelos nohs inicial e final, os quais devem pertencer ao lugar geometrico da elipse, ========> SEGUINDO A REGRA DA MAO DIREITA (sentido anti-horario em relacao ao sistema local definido pelos vetores dos semi-eixos X e Y).

Definition at line 118 of file tpzellipse3d.cpp.

References angle, cos(), DebugStop, TPZFMatrix< TVar >::GetVal(), TPZFMatrix< TVar >::MultAdd(), sin, and sqrt.

Referenced by operator=().

Member Data Documentation

◆ fAngleFinal

double pzgeom::TPZEllipse3D::fAngleFinal
private

Definition at line 169 of file tpzellipse3d.h.

Referenced by operator=().

◆ fAngleIni

double pzgeom::TPZEllipse3D::fAngleIni
private

Definition at line 168 of file tpzellipse3d.h.

Referenced by operator=().

◆ fAxes

TPZFNMatrix<9,REAL> pzgeom::TPZEllipse3D::fAxes
private

Rotation matrix where the axes correspond to rows of the matrix.

Definition at line 164 of file tpzellipse3d.h.

Referenced by operator=().

◆ fOrigin

TPZManVector<REAL,3> pzgeom::TPZEllipse3D::fOrigin
private

Definition at line 166 of file tpzellipse3d.h.

Referenced by operator=(), and Origin().

◆ fsAxeX

double pzgeom::TPZEllipse3D::fsAxeX
private

Definition at line 157 of file tpzellipse3d.h.

Referenced by operator=(), and sAxeX().

◆ fsAxeY

double pzgeom::TPZEllipse3D::fsAxeY
private

Definition at line 159 of file tpzellipse3d.h.

Referenced by operator=(), and sAxeY().


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