NeoPZ
Public Member Functions | Private Attributes | Friends | List of all members

Implements an affine transformation between points in parameter space. Topology Utility. More...

#include <pzmganalysis.h>

Inheritance diagram for TPZTransform< T >:
[legend]
Collaboration diagram for TPZTransform< T >:
[legend]

Public Member Functions

 TPZTransform (int dim)
 Storage the matrix objects use to avoid. More...
 
 TPZTransform ()
 Default constructor. More...
 
 TPZTransform (int fRow, int fCol)
 Constructor of the transformation with rectangular matrix. More...
 
 TPZTransform (const TPZTransform< T > &tr)
 Copy constructor. More...
 
 ~TPZTransform ()
 Default destructor. More...
 
TPZTransform< T > & operator= (const TPZTransform< T > &t)
 Overloading equal operator for transformation. More...
 
void CopyFrom (const TPZTransform< REAL > &cp)
 Create a copy form a real transformation. More...
 
const TPZFMatrix< T > & Mult () const
 
const TPZFMatrix< T > & Sum () const
 
TPZFMatrix< T > & Mult ()
 
TPZFMatrix< T > & Sum ()
 
void SetMatrix (TPZFMatrix< T > &mult, TPZFMatrix< T > &sum)
 Sets the transformation matrices. More...
 
TPZTransform< T > Multiply (TPZTransform< T > &right)
 Multiply the transformation object (to the right) with right (Multiplying matrices) More...
 
void Apply (TPZVec< T > &vectorin, TPZVec< T > &vectorout)
 Transforms the vector. More...
 
void PrintInputForm (std::ostream &out)
 
int CompareTransform (TPZTransform< T > &t, REAL tol=1.e-6)
 Compare the current transformation with t transformation considering a given tolerance. More...
 
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...
 
- 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
 

Private Attributes

int fRow
 Number of rows of the matrix associated with the transformation. More...
 
int fCol
 Number of columns of the matrix associated with the transformation. More...
 
TPZFNMatrix< 9, T > fMult
 Matrix used by multiplications. More...
 
TPZFNMatrix< 3, T > fSum
 Matrix used by sums. More...
 

Friends

class TPZTransform< REAL >
 Rows of transformation matrix. More...
 

Additional Inherited Members

- 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)
 

Detailed Description

template<class T = REAL>
class TPZTransform< T >

Implements an affine transformation between points in parameter space. Topology Utility.

Definition at line 14 of file pzmganalysis.h.

Constructor & Destructor Documentation

◆ TPZTransform() [1/4]

template<class T >
TPZTransform< T >::TPZTransform ( int  dim)

Storage the matrix objects use to avoid.

Constructor of the transformation with square matrix

Definition at line 16 of file pztrnsform.cpp.

References TPZTransform< T >::fCol, TPZTransform< T >::fMult, TPZTransform< T >::fRow, TPZTransform< T >::fSum, and TPZFMatrix< TVar >::Zero().

◆ TPZTransform() [2/4]

template<class T >
TPZTransform< T >::TPZTransform ( )

Default constructor.

Definition at line 31 of file pztrnsform.cpp.

References TPZTransform< T >::fCol, and TPZTransform< T >::fRow.

◆ TPZTransform() [3/4]

template<class T >
TPZTransform< T >::TPZTransform ( int  fRow,
int  fCol 
)

Constructor of the transformation with rectangular matrix.

Definition at line 40 of file pztrnsform.cpp.

References TPZTransform< T >::fCol, TPZTransform< T >::fMult, TPZTransform< T >::fRow, TPZTransform< T >::fSum, and TPZFMatrix< TVar >::Zero().

◆ TPZTransform() [4/4]

template<class T >
TPZTransform< T >::TPZTransform ( const TPZTransform< T > &  tr)

Copy constructor.

Definition at line 54 of file pztrnsform.cpp.

References TPZTransform< T >::fCol, and TPZTransform< T >::fRow.

◆ ~TPZTransform()

template<class T >
TPZTransform< T >::~TPZTransform ( )

Member Function Documentation

◆ Apply()

template<class T >
void TPZTransform< T >::Apply ( TPZVec< T > &  vectorin,
TPZVec< T > &  vectorout 
)

Transforms the vector.

Definition at line 121 of file pztrnsform.cpp.

References DebugStop, TPZTransform< T >::fCol, TPZTransform< T >::fMult, TPZTransform< T >::fRow, TPZTransform< T >::fSum, and TPZVec< T >::size().

Referenced by TPZInterpolationSpace::BuildTransferMatrix(), TPZInterpolatedElement::BuildTransferMatrix(), TPZInterfaceElement::CalcResidual(), TPZInterfaceElement::CalcStiff(), TPZGeoElSide::CenterPoint(), CheckElement(), TPZInterpolatedElement::CheckElementConsistency(), TPZCheckGeom::CheckNeighbourMap(), TPZCheckGeom::CheckSideTransform(), TPZCheckGeom::CheckSubFatherTransform(), CompareFluxes(), TPZInterfaceElement::ComputeErrorFace(), TPZGeoEl::ComputeParamTrans(), TPZRefPattern::ComputeParamTransform(), TPZGeoEl::ComputeXInverse(), TPZRefPatternTools::DragModelPatNodes(), TPZMGAnalysis::ElementError(), TPZGeoElSide::GradX(), TPZInterpolationSpace::IntegrateSolution(), TPZInterpolationSpace::InterpolateSolution(), TPZGeoElSide::Jacobian(), TPZInterfaceElement::MapQsi(), pzgeom::TPZGeoBlend< TGeo >::MapToNeighSide(), pztopology::Pr< TFather >::MapToSide(), pztopology::TPZCube::MapToSide(), pztopology::TPZLine::MapToSide(), pztopology::TPZQuadrilateral::MapToSide(), TPZRefPatternTools::PairMeshesCornerNodesMatchingCoordinates(), TPZRefPatternTools::PairMeshesNodesMatchingCoordinates(), ProjectBissectionInParametricDomain(), ProjectInParametricDomain(), TPZGeoEl::ProjectPoint(), TPZGeoElSide::QsiElement(), TPZGeoElMapped< TBase >::SetFatherIndex(), Shape(), TPZMultiphysicsInterfaceElement::Solution(), TPZTransform< T >::Sum(), TPZRefPatternTools::TransformationTest(), TPZGeoEl::TransformSonToFather(), and TPZGeoEl::WhichSide().

◆ ClassId()

template<class T = REAL>
int TPZTransform< T >::ClassId ( ) const
inlineoverridevirtual

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.

Definition at line 86 of file pztrnsform.h.

References Hash().

◆ CompareTransform()

template<class T >
int TPZTransform< T >::CompareTransform ( TPZTransform< T > &  t,
REAL  tol = 1.e-6 
)

Compare the current transformation with t transformation considering a given tolerance.

Definition at line 163 of file pztrnsform.cpp.

References fabs, TPZTransform< T >::fCol, TPZTransform< T >::fMult, TPZTransform< T >::fRow, and TPZTransform< T >::fSum.

Referenced by TPZCheckRestraint::CheckRestraint(), TPZCheckGeom::CheckSubFatherTransform(), TPZRefPattern::FindRefPattern(), and TPZTransform< T >::Sum().

◆ CopyFrom()

template<class T >
void TPZTransform< T >::CopyFrom ( const TPZTransform< REAL > &  cp)

◆ Mult() [1/2]

template<class T = REAL>
const TPZFMatrix<T>& TPZTransform< T >::Mult ( ) const
inline

Definition at line 64 of file pztrnsform.h.

References TPZTransform< T >::fMult.

Referenced by TPZInterpolatedElement::CompareShapeF(), GetSideTransform(), pzrefine::TPZRefTriangle::GetTransform(), pzrefine::TPZRefQuad::GetTransform(), pzrefine::TPZRefPyramid::GetTransform(), pzrefine::TPZRefCube::GetTransform(), pzrefine::TPZRefLinear::GetTransform(), pzrefine::TPZRefPrism::GetTransform(), pzrefine::TPZRefTetrahedra::GetTransform(), TPZGeoElSide::GradX(), TPZGeoElSide::Jacobian(), pzgeom::TPZGeoBlend< TGeo >::MapToNeighSide(), pztopology::Pr< TFather >::MapToSide(), pztopology::TPZCube::MapToSide(), pztopology::TPZLine::MapToSide(), pztopology::TPZQuadrilateral::MapToSide(), TPZGeoElSide::NeighbourSideTransform(), pzshape::TPZShapeTriang::ParametricTransform(), pzshape::TPZShapeQuad::ParametricTransform(), pzshape::TPZShapeLinear::ParametricTransform(), PYBIND11_MODULE(), Shape(), pztopology::TPZPyramid::SideToSideTransform(), pztopology::TPZCube::SideToSideTransform(), pztopology::TPZLine::SideToSideTransform(), pztopology::TPZPrism::SideToSideTransform(), pztopology::TPZTetrahedron::SideToSideTransform(), pztopology::TPZTriangle::SideToSideTransform(), pztopology::TPZQuadrilateral::SideToSideTransform(), pztopology::Pr< TFather >::TransformElementToSide(), pztopology::TPZPyramid::TransformElementToSide(), pztopology::TPZCube::TransformElementToSide(), pztopology::TPZPrism::TransformElementToSide(), pztopology::TPZLine::TransformElementToSide(), pztopology::TPZTetrahedron::TransformElementToSide(), pztopology::TPZTriangle::TransformElementToSide(), pztopology::TPZQuadrilateral::TransformElementToSide(), pztopology::Pr< TFather >::TransformSideToElement(), pztopology::TPZPyramid::TransformSideToElement(), pztopology::TPZCube::TransformSideToElement(), pztopology::TPZLine::TransformSideToElement(), pztopology::TPZPrism::TransformSideToElement(), pztopology::TPZTetrahedron::TransformSideToElement(), pztopology::TPZTriangle::TransformSideToElement(), and pztopology::TPZQuadrilateral::TransformSideToElement().

◆ Mult() [2/2]

template<class T = REAL>
TPZFMatrix<T>& TPZTransform< T >::Mult ( )
inline

Definition at line 68 of file pztrnsform.h.

References TPZTransform< T >::fMult.

◆ Multiply()

template<class T >
TPZTransform< T > TPZTransform< T >::Multiply ( TPZTransform< T > &  right)

◆ operator=()

template<class T >
TPZTransform< T > & TPZTransform< T >::operator= ( const TPZTransform< T > &  t)

Overloading equal operator for transformation.

Definition at line 87 of file pztrnsform.cpp.

References TPZTransform< T >::fCol, TPZTransform< T >::fMult, TPZTransform< T >::fRow, and TPZTransform< T >::fSum.

◆ PrintInputForm()

template<class T = REAL>
void TPZTransform< T >::PrintInputForm ( std::ostream &  out)

◆ Read()

template<class T = REAL>
void TPZTransform< T >::Read ( TPZStream buf,
void *  context 
)
inlineoverridevirtual

read objects from the stream

Reimplemented from TPZSavable.

Definition at line 90 of file pztrnsform.h.

References TPZStream::Read(), and TPZFNMatrix< N, TVar >::Read().

Referenced by pzgeom::TPZGeoBlend< TGeo >::Read(), and TPZRefPattern::Read().

◆ SetMatrix()

template<class T >
void TPZTransform< T >::SetMatrix ( TPZFMatrix< T > &  mult,
TPZFMatrix< T > &  sum 
)

◆ Sum() [1/2]

template<class T = REAL>
const TPZFMatrix<T>& TPZTransform< T >::Sum ( ) const
inline

Definition at line 66 of file pztrnsform.h.

References TPZTransform< T >::fSum.

Referenced by GetSideTransform(), pzrefine::TPZRefTriangle::GetTransform(), pzrefine::TPZRefCube::GetTransform(), pzrefine::TPZRefLinear::GetTransform(), pzrefine::TPZRefPyramid::GetTransform(), pzrefine::TPZRefQuad::GetTransform(), pzrefine::TPZRefPrism::GetTransform(), pzrefine::TPZRefTetrahedra::GetTransform(), TPZGeoElSide::NeighbourSideTransform(), pzshape::TPZShapeTriang::ParametricTransform(), PYBIND11_MODULE(), pztopology::TPZPyramid::SideToSideTransform(), pztopology::TPZCube::SideToSideTransform(), pztopology::TPZLine::SideToSideTransform(), pztopology::TPZPrism::SideToSideTransform(), pztopology::TPZTetrahedron::SideToSideTransform(), pztopology::TPZTriangle::SideToSideTransform(), pztopology::TPZQuadrilateral::SideToSideTransform(), pztopology::Pr< TFather >::TransformElementToSide(), pztopology::TPZPyramid::TransformElementToSide(), pztopology::TPZCube::TransformElementToSide(), pztopology::TPZPrism::TransformElementToSide(), pztopology::TPZLine::TransformElementToSide(), pztopology::TPZTetrahedron::TransformElementToSide(), pztopology::TPZTriangle::TransformElementToSide(), pztopology::TPZQuadrilateral::TransformElementToSide(), pztopology::Pr< TFather >::TransformSideToElement(), pztopology::TPZPyramid::TransformSideToElement(), pztopology::TPZCube::TransformSideToElement(), pztopology::TPZLine::TransformSideToElement(), pztopology::TPZPrism::TransformSideToElement(), pztopology::TPZTetrahedron::TransformSideToElement(), pztopology::TPZTriangle::TransformSideToElement(), and pztopology::TPZQuadrilateral::TransformSideToElement().

◆ Sum() [2/2]

template<class T = REAL>
TPZFMatrix<T>& TPZTransform< T >::Sum ( )
inline

◆ Write()

template<class T = REAL>
void TPZTransform< T >::Write ( TPZStream buf,
int  withclassid 
) const
inlineoverridevirtual

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.

Definition at line 97 of file pztrnsform.h.

References TPZStream::Write(), and TPZFNMatrix< N, TVar >::Write().

Referenced by pzgeom::TPZGeoBlend< TGeo >::Write().

Friends And Related Function Documentation

◆ TPZTransform< REAL >

template<class T = REAL>
friend class TPZTransform< REAL >
friend

Rows of transformation matrix.

Cols of transformation matrix

Definition at line 52 of file pztrnsform.h.

Member Data Documentation

◆ fCol

template<class T = REAL>
int TPZTransform< T >::fCol
private

◆ fMult

template<class T = REAL>
TPZFNMatrix<9,T> TPZTransform< T >::fMult
private

◆ fRow

template<class T = REAL>
int TPZTransform< T >::fRow
private

◆ fSum

template<class T = REAL>
TPZFNMatrix<3,T> TPZTransform< T >::fSum
private

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