NeoPZ
Public Types | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
TPZGeoElMapped< TBase > Class Template Reference

This class implements a geometric element which uses its ancestral to compute its jacobian. Geometry. More...

#include <tpzgeoelmapped.h>

Inheritance diagram for TPZGeoElMapped< TBase >:
[legend]
Collaboration diagram for TPZGeoElMapped< TBase >:
[legend]

Public Types

typedef TBase::Geo Geo
 

Public Member Functions

 TPZGeoElMapped ()
 
 TPZGeoElMapped (int64_t id, TPZVec< int64_t > &nodeindexes, int matind, TPZGeoMesh &mesh)
 
 TPZGeoElMapped (TPZVec< int64_t > &nodeindices, int matind, TPZGeoMesh &mesh)
 
 TPZGeoElMapped (TPZVec< int64_t > &nodeindices, int matind, TPZGeoMesh &mesh, int64_t &index)
 
 TPZGeoElMapped (TPZGeoMesh &destmesh, const TPZGeoElMapped< TBase > &copy)
 
 TPZGeoElMapped (TPZGeoMesh &destmesh, const TPZGeoElMapped< TBase > &copy, std::map< int64_t, int64_t > &gl2lcNdIdx, std::map< int64_t, int64_t > &gl2lcElIdx)
 
 ~TPZGeoElMapped ()
 
int ClassId () const override
 
virtual TPZGeoElClone (TPZGeoMesh &DestMesh) const override
 
virtual TPZGeoElClonePatchEl (TPZGeoMesh &DestMesh, std::map< int64_t, int64_t > &gl2lcNdIdx, std::map< int64_t, int64_t > &gl2lcElIdx) const override
 
void Write (TPZStream &buf, int withclassid) const override
 Save the element data to a stream. More...
 
virtual void Read (TPZStream &buf, void *context) override
 Read the element data from a stream. More...
 
virtual bool IsLinearMapping (int side) const override
 
virtual bool IsGeoElMapped () const override
 Returns if is a TPZGeoElMapped< T > element. More...
 
virtual TPZGeoElCreateGeoElement (MElementType type, TPZVec< int64_t > &nodeindexes, int matid, int64_t &index) override
 Creates a geometric element according to the type of the father element. More...
 
virtual void SetFatherIndex (int64_t fatherindex) override
 Sets the father element index. More...
 
void GradX (TPZVec< REAL > &qsi, TPZFMatrix< REAL > &gradx) const override
 Return the Jacobian matrix at the point. More...
 
void X (TPZVec< REAL > &ksi, TPZVec< REAL > &result) const override
 Returns the Jacobian matrix at the point (from son to father) More...
 
virtual void Print (std::ostream &out=std::cout) override
 
virtual void JacobianConv (TPZVec< REAL > QsiEta, TPZVec< REAL > &XYZ)
 Avaliate the Jacobian 3D (3x3 size) by Expected Convergence Order. More...
 

Protected Member Functions

template<class T >
void TGradX (TPZVec< T > &qsi, TPZFMatrix< T > &gradx) const
 
template<class T >
void TX (TPZVec< T > &ksi, TPZVec< T > &result) const
 
template<class T >
void TKsiBar (TPZVec< T > &ksi, TPZVec< T > &ksibar) const
 Compute the map of the point ksi to the ancestor ksibar. More...
 

Private Member Functions

void KsiBar (TPZVec< REAL > &ksi, TPZVec< REAL > &ksibar, TPZFMatrix< REAL > &jac) const
 Compute the map of the point ksi to the ancestor ksibar and the gradient of the ancestor ksibar with respect to ksi. More...
 
void KsiBar (TPZVec< REAL > &ksi, TPZVec< REAL > &ksibar) const
 Compute the map of the point ksi to the ancestor ksibar. More...
 
virtual TPZGeoElCreateBCGeoEl (int side, int bc) override
 

Private Attributes

TPZFNMatrix< Geo::Dimension *Geo::NNodes > fCornerCo
 

Detailed Description

template<class TBase>
class TPZGeoElMapped< TBase >

This class implements a geometric element which uses its ancestral to compute its jacobian. Geometry.

Author
Philippe R. B. Devloo Its main intent is to make the division of specially mapped elements easier:
if the coarse grid map is consistent, then so will all refined meshes

Definition at line 33 of file tpzgeoelmapped.h.

Member Typedef Documentation

◆ Geo

template<class TBase>
typedef TBase::Geo TPZGeoElMapped< TBase >::Geo

Definition at line 35 of file tpzgeoelmapped.h.

Constructor & Destructor Documentation

◆ TPZGeoElMapped() [1/6]

template<class TBase>
TPZGeoElMapped< TBase >::TPZGeoElMapped ( )
inline

Definition at line 36 of file tpzgeoelmapped.h.

Referenced by TPZGeoElMapped< TBase >::TPZGeoElMapped().

◆ TPZGeoElMapped() [2/6]

template<class TBase>
TPZGeoElMapped< TBase >::TPZGeoElMapped ( int64_t  id,
TPZVec< int64_t > &  nodeindexes,
int  matind,
TPZGeoMesh mesh 
)
inline

Definition at line 40 of file tpzgeoelmapped.h.

◆ TPZGeoElMapped() [3/6]

template<class TBase>
TPZGeoElMapped< TBase >::TPZGeoElMapped ( TPZVec< int64_t > &  nodeindices,
int  matind,
TPZGeoMesh mesh 
)
inline

Definition at line 45 of file tpzgeoelmapped.h.

◆ TPZGeoElMapped() [4/6]

template<class TBase>
TPZGeoElMapped< TBase >::TPZGeoElMapped ( TPZVec< int64_t > &  nodeindices,
int  matind,
TPZGeoMesh mesh,
int64_t &  index 
)
inline

Definition at line 50 of file tpzgeoelmapped.h.

References TPZGeoElMapped< TBase >::TPZGeoElMapped().

◆ TPZGeoElMapped() [5/6]

template<class TBase >
TPZGeoElMapped< TBase >::TPZGeoElMapped ( TPZGeoMesh destmesh,
const TPZGeoElMapped< TBase > &  copy 
)

Definition at line 74 of file tpzgeoelmapped.cpp.

◆ TPZGeoElMapped() [6/6]

template<class TBase >
TPZGeoElMapped< TBase >::TPZGeoElMapped ( TPZGeoMesh destmesh,
const TPZGeoElMapped< TBase > &  copy,
std::map< int64_t, int64_t > &  gl2lcNdIdx,
std::map< int64_t, int64_t > &  gl2lcElIdx 
)

Definition at line 81 of file tpzgeoelmapped.cpp.

◆ ~TPZGeoElMapped()

template<class TBase>
TPZGeoElMapped< TBase >::~TPZGeoElMapped ( )
inline

Member Function Documentation

◆ ClassId()

template<class TBase >
int TPZGeoElMapped< TBase >::ClassId ( ) const
override

Definition at line 612 of file tpzgeoelmapped.h.

References Hash().

Referenced by TPZGeoElMapped< TBase >::~TPZGeoElMapped().

◆ Clone()

template<class TBase >
TPZGeoEl * TPZGeoElMapped< TBase >::Clone ( TPZGeoMesh DestMesh) const
overridevirtual

Definition at line 51 of file tpzgeoelmapped.cpp.

Referenced by TPZGeoElMapped< TBase >::~TPZGeoElMapped().

◆ ClonePatchEl()

template<class TBase >
TPZGeoEl * TPZGeoElMapped< TBase >::ClonePatchEl ( TPZGeoMesh DestMesh,
std::map< int64_t, int64_t > &  gl2lcNdIdx,
std::map< int64_t, int64_t > &  gl2lcElIdx 
) const
overridevirtual

Definition at line 66 of file tpzgeoelmapped.cpp.

Referenced by TPZGeoElMapped< TBase >::~TPZGeoElMapped().

◆ CreateBCGeoEl()

template<class TBase>
virtual TPZGeoEl* TPZGeoElMapped< TBase >::CreateBCGeoEl ( int  side,
int  bc 
)
inlineoverrideprivatevirtual

◆ CreateGeoElement()

template<class TBase >
TPZGeoEl * TPZGeoElMapped< TBase >::CreateGeoElement ( MElementType  type,
TPZVec< int64_t > &  nodeindexes,
int  matid,
int64_t &  index 
)
overridevirtual

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

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

Definition at line 41 of file tpzgeoelmapped.cpp.

References TPZGeoMesh::CreateGeoElementMapped().

Referenced by TPZGeoElMapped< TBase >::IsGeoElMapped().

◆ GradX()

template<class TBase>
void TPZGeoElMapped< TBase >::GradX ( TPZVec< REAL > &  qsi,
TPZFMatrix< REAL > &  gradx 
) const
inlineoverride

Return the Jacobian matrix at the point.

Return the Jacobian matrix at the point

Definition at line 305 of file tpzgeoelmapped.h.

References TPZGeoElMapped< TBase >::TGradX().

◆ IsGeoElMapped()

template<class TBase>
virtual bool TPZGeoElMapped< TBase >::IsGeoElMapped ( ) const
inlineoverridevirtual

Returns if is a TPZGeoElMapped< T > element.

It is necessary due to the lack of dynamic cast for these elements

Definition at line 105 of file tpzgeoelmapped.h.

References TPZGeoElMapped< TBase >::CreateGeoElement().

◆ IsLinearMapping()

template<class TBase >
bool TPZGeoElMapped< TBase >::IsLinearMapping ( int  side) const
inlineoverridevirtual

◆ JacobianConv()

template<class TBase>
virtual void TPZGeoElMapped< TBase >::JacobianConv ( TPZVec< REAL >  QsiEta,
TPZVec< REAL > &  XYZ 
)
inlinevirtual

Avaliate the Jacobian 3D (3x3 size) by Expected Convergence Order.

Definition at line 382 of file tpzgeoelmapped.h.

References error(), TPZGeoElMapped< TBase >::fCornerCo, TPZFMatrix< TVar >::GetVal(), log, sqrt, and TPZGeoElMapped< TBase >::X().

◆ KsiBar() [1/2]

template<class TBase>
void TPZGeoElMapped< TBase >::KsiBar ( TPZVec< REAL > &  ksi,
TPZVec< REAL > &  ksibar,
TPZFMatrix< REAL > &  jac 
) const
inlineprivate

Compute the map of the point ksi to the ancestor ksibar and the gradient of the ancestor ksibar with respect to ksi.

Definition at line 456 of file tpzgeoelmapped.h.

References TPZVec< T >::Fill(), TPZFMatrix< TVar >::GetVal(), TPZFMatrix< TVar >::Redim(), and Shape().

Referenced by TPZGeoElMapped< TBase >::KsiBar(), and TPZGeoElMapped< TBase >::TX().

◆ KsiBar() [2/2]

template<class TBase>
void TPZGeoElMapped< TBase >::KsiBar ( TPZVec< REAL > &  ksi,
TPZVec< REAL > &  ksibar 
) const
inlineprivate

Compute the map of the point ksi to the ancestor ksibar.

Definition at line 479 of file tpzgeoelmapped.h.

References TPZGeoElMapped< TBase >::KsiBar(), and TPZGeoElMapped< TBase >::TKsiBar().

◆ Print()

template<class TBase>
virtual void TPZGeoElMapped< TBase >::Print ( std::ostream &  out = std::cout)
inlineoverridevirtual

◆ Read()

template<class TBase>
virtual void TPZGeoElMapped< TBase >::Read ( TPZStream buf,
void *  context 
)
inlineoverridevirtual

Read the element data from a stream.

Definition at line 86 of file tpzgeoelmapped.h.

References TPZGeoElMapped< TBase >::fCornerCo, TPZGeoElMapped< TBase >::IsLinearMapping(), and TPZFNMatrix< N, TVar >::Read().

◆ SetFatherIndex()

template<class TBase>
virtual void TPZGeoElMapped< TBase >::SetFatherIndex ( int64_t  fatherindex)
inlineoverridevirtual

◆ TGradX()

template<class TBase>
template<class T >
void TPZGeoElMapped< TBase >::TGradX ( TPZVec< T > &  qsi,
TPZFMatrix< T > &  gradx 
) const
inlineprotected

◆ TKsiBar()

template<class TBase>
template<class T >
void TPZGeoElMapped< TBase >::TKsiBar ( TPZVec< T > &  ksi,
TPZVec< T > &  ksibar 
) const
inlineprotected

Compute the map of the point ksi to the ancestor ksibar.

Definition at line 579 of file tpzgeoelmapped.h.

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

Referenced by TPZGeoElMapped< TBase >::KsiBar().

◆ TX()

template<class TBase>
template<class T >
void TPZGeoElMapped< TBase >::TX ( TPZVec< T > &  ksi,
TPZVec< T > &  result 
) const
inlineprotected

◆ Write()

template<class TBase>
void TPZGeoElMapped< TBase >::Write ( TPZStream buf,
int  withclassid 
) const
inlineoverride

Save the element data to a stream.

Definition at line 80 of file tpzgeoelmapped.h.

References TPZGeoElMapped< TBase >::fCornerCo, and TPZFNMatrix< N, TVar >::Write().

◆ X()

template<class TBase>
void TPZGeoElMapped< TBase >::X ( TPZVec< REAL > &  ksi,
TPZVec< REAL > &  result 
) const
inlineoverride

Returns the Jacobian matrix at the point (from son to father)

Returns the coordinate in real space of the point coordinate in the master element space

Definition at line 365 of file tpzgeoelmapped.h.

References TPZGeoElMapped< TBase >::TX().

Referenced by TPZGeoElMapped< TBase >::JacobianConv().

Member Data Documentation

◆ fCornerCo

template<class TBase>
TPZFNMatrix<Geo::Dimension*Geo::NNodes> TPZGeoElMapped< TBase >::fCornerCo
private

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