NeoPZ
|
Defines a linear geometric element which maps a line segment to an ellipse. Geometry. More...
#include <tpzellipse3d.h>
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... | |
TPZEllipse3D & | operator= (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 > ¢er) |
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 TPZIntPoints * | CreateSideIntegrationRule (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 TPZSavable * | CreateInstance (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... | |
Defines a linear geometric element which maps a line segment to an ellipse. Geometry.
Definition at line 24 of file tpzellipse3d.h.
Definition at line 27 of file tpzellipse3d.h.
anonymous enum |
|
inline |
Constructor.
Definition at line 39 of file tpzellipse3d.h.
|
inline |
Default constructor.
Definition at line 44 of file tpzellipse3d.h.
|
inlinevirtual |
Destructor.
Definition at line 49 of file tpzellipse3d.h.
|
inline |
Copy constructor.
Definition at line 53 of file tpzellipse3d.h.
|
inline |
Copy constructor.
Definition at line 58 of file tpzellipse3d.h.
|
inline |
Constructor with node indexes given.
Definition at line 63 of file tpzellipse3d.h.
|
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=().
|
overridevirtual |
It is not linear mapping.
Implements TPZSavable.
Definition at line 335 of file tpzellipse3d.cpp.
References Hash().
|
private |
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().
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=().
|
static |
Definition at line 339 of file tpzellipse3d.cpp.
References TPZAdmChunkVector< T, EXP >::AllocateNewElement(), cos(), TPZGeoElRefLess< TGeo >::Geom(), TPZGeoMesh::NodeVec(), pow(), SetAxes(), and sin.
Referenced by Origin().
|
inlinestatic |
Definition at line 116 of file tpzellipse3d.h.
|
inline |
Definition at line 68 of file tpzellipse3d.h.
References AdjustNodesCoordinates(), cornerco, fAngleFinal, fAngleIni, fAxes, fOrigin, fsAxeX, fsAxeY, GradX(), Origin(), SetAxes(), and X().
|
inline |
Definition at line 142 of file tpzellipse3d.h.
References co, ComputeAngle(), fOrigin, and InsertExampleElement().
Referenced by operator=().
|
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().
|
inline |
Definition at line 134 of file tpzellipse3d.h.
References fsAxeX.
|
inline |
Definition at line 138 of file tpzellipse3d.h.
References fsAxeY.
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.:
Origin | origin coordinates |
SemiAxeX | is the vector that defines the direction of X axes of ellipse, whose value is its norm. |
SemiAxeY | is 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=().
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().
|
inlinestatic |
Definition at line 121 of file tpzellipse3d.h.
References GetNodesCoords(), and SetNodesCoords().
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=().
|
private |
Definition at line 169 of file tpzellipse3d.h.
Referenced by operator=().
|
private |
Definition at line 168 of file tpzellipse3d.h.
Referenced by operator=().
|
private |
Rotation matrix where the axes correspond to rows of the matrix.
Definition at line 164 of file tpzellipse3d.h.
Referenced by operator=().
|
private |
Definition at line 166 of file tpzellipse3d.h.
Referenced by operator=(), and Origin().
|
private |
Definition at line 157 of file tpzellipse3d.h.
Referenced by operator=(), and sAxeX().
|
private |
Definition at line 159 of file tpzellipse3d.h.
Referenced by operator=(), and sAxeY().