NeoPZ
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
TPZFrontMatrix< TVar, store, front > Class Template Reference

Responsible for the frontal method as a whole. Frontal. More...

#include <TPZFrontMatrix.h>

Inheritance diagram for TPZFrontMatrix< TVar, store, front >:
[legend]
Collaboration diagram for TPZFrontMatrix< TVar, store, front >:
[legend]

Public Member Functions

int Work ()
 
void FinishWriting ()
 Finishes writing of a binary file and closes it. More...
 
void ReOpen ()
 Reopen the binary file. More...
 
virtual int Zero () override
 Reinitialize the structure of the frontal matrix. More...
 
void AllocData ()
 Allocates data for the FrontMatrix. More...
 
TPZFront< TVar > & GetFront () override
 returns a pointer to the front matrix More...
 
void CheckCompress ()
 Checks if FrontMatrix needs a compression, if so calls Compress method. More...
 
void Print (const char *name, std::ostream &out, const MatrixOutputFormat form=EFormatted) const override
 Prints a FrontMatrix object. More...
 
 ~TPZFrontMatrix ()
 Simple Destructor. More...
 
int ClassId () const override
 Define the class id associated with the class. More...
 
 TPZFrontMatrix ()
 Simple Constructor. More...
 
 TPZFrontMatrix (int64_t globalsize)
 Constructor with a globalsize parameter. More...
 
 TPZFrontMatrix (const TPZFrontMatrix &cp)
 
virtual TPZMatrix< TVar > * Clone () const override
 
void EquationsToDecompose (TPZVec< int64_t > &destinationindex, int64_t &lower_eq, int64_t &upper_eq)
 Sends a message to decompose equations from lower_eq to upper_eq, according to destination index. More...
 
void SetNumElConnected (TPZVec< int > &numelconnected)
 Initializes the number of elements connected to each equation. More...
 
virtual void AddKel (TPZFMatrix< TVar > &elmat, TPZVec< int64_t > &destinationindex) override
 Add a contribution of a stiffness matrix putting it on destination indexes position. More...
 
void SymbolicAddKel (TPZVec< int64_t > &destinationindex)
 Add a contribution of a stiffness matrix using the indexes to compute the frontwidth. It does it symbolicaly. More...
 
virtual void AddKel (TPZFMatrix< TVar > &elmat, TPZVec< int64_t > &sourceindex, TPZVec< int64_t > &destinationindex) override
 Add a contribution of a stiffness matrix. More...
 
virtual int SolveDirect (TPZFMatrix< TVar > &B, const DecomposeType dt, std::list< int64_t > &singular) override
 Solves the linear system using Direct methods. More...
 
int Subst_Forward (TPZFMatrix< TVar > *b) const override
 Forward substitution and result is on b. More...
 
int Subst_Backward (TPZFMatrix< TVar > *b) const override
 Backward substitution and result is on b. More...
 
int Substitution (TPZFMatrix< TVar > *) const override
 Executes a substitution on a TPZFMatrix<REAL> object applies both forward and backward substitution automaticaly. More...
 
void SetFileName (char option, const char *name)
 Sets a file name for generic input or output. More...
 
- Public Member Functions inherited from TPZAbstractFrontMatrix< TVar >
 TPZAbstractFrontMatrix ()
 
 TPZAbstractFrontMatrix (int64_t ieq, int64_t jeq)
 
- Public Member Functions inherited from TPZMatrix< TVar >
 TPZMatrix ()
 Simple constructor. More...
 
 TPZMatrix (const TPZMatrix< TVar > &cp)
 
virtual ~TPZMatrix ()
 Simple destructor. More...
 
virtual int64_t MemoryFootprint () const
 Returns the approximate size of the memory footprint (amount of memory required to store this object). More...
 
template<class TVar2 >
void CopyFrom (TPZMatrix< TVar2 > &copy)
 
void AutoFill (int64_t nrow, int64_t ncol, int symmetric)
 Fill matrix storage with randomic values. More...
 
virtual int VerifySymmetry (REAL tol=1.e-13) const
 Checks if current matrix value is symmetric. More...
 
virtual int Put (const int64_t row, const int64_t col, const TVar &value)
 Put values with bounds checking if DEBUG variable is defined. More...
 
virtual const TVar & Get (const int64_t row, const int64_t col) const
 Get value with bound checking. More...
 
const TVar & g (const int64_t row, const int64_t col) const
 Substitution for the () operator when const arguments are needed. More...
 
TVar & operator() (const int64_t row, const int64_t col)
 The operators check on the bounds if the DEBUG variable is defined. More...
 
virtual TVar & s (const int64_t row, const int64_t col)
 The operators check on the bounds if the DEBUG variable is defined. More...
 
TVar & operator() (const int64_t row)
 The operators check on the bounds if the DEBUG variable is defined. More...
 
virtual int PutVal (const int64_t, const int64_t, const TVar &val)
 Put values without bounds checking
This method is faster than "Put" if DEBUG is defined. More...
 
virtual const TVar & GetVal (const int64_t, const int64_t) const
 Get values without bounds checking
This method is faster than "Get" if DEBUG is defined. More...
 
void SetIsDecomposed (int val)
 Sets current matrix to decomposed state. More...
 
virtual bool Compare (TPZSavable *copy, bool override=false) override
 Compare the object for identity with the object pointed to, eventually copy the object. More...
 
virtual bool Compare (TPZSavable *copy, bool override=false) const override
 Compare the object for identity with the object pointed to, eventually copy the object. More...
 
virtual void GetSub (const TPZVec< int64_t > &indices, TPZFMatrix< TVar > &block) const
 Extract the block indicated by the indices from the matrix. More...
 
bool CompareValues (TPZMatrix< TVar > &M, TVar tol)
 Compare values of this to B, with a precision tolerance tol. More...
 
template<>
void Print (const char *name, std::ostream &out, const MatrixOutputFormat form) const
 
template<>
void Print (const char *name, std::ostream &out, const MatrixOutputFormat form) const
 
template<>
void Print (const char *name, std::ostream &out, const MatrixOutputFormat form) const
 
template<>
void SolveCG (int64_t &numiterations, TPZSolver< std::complex< float > > &preconditioner, const TPZFMatrix< std::complex< float > > &F, TPZFMatrix< std::complex< float > > &result, TPZFMatrix< std::complex< float > > *residual, REAL &tol, const int FromCurrent)
 
template<>
void SolveCG (int64_t &numiterations, TPZSolver< std::complex< double > > &preconditioner, const TPZFMatrix< std::complex< double > > &F, TPZFMatrix< std::complex< double > > &result, TPZFMatrix< std::complex< double > > *residual, REAL &tol, const int FromCurrent)
 
template<>
void SolveCG (int64_t &numiterations, TPZSolver< std::complex< long double > > &preconditioner, const TPZFMatrix< std::complex< long double > > &F, TPZFMatrix< std::complex< long double > > &result, TPZFMatrix< std::complex< long double > > *residual, REAL &tol, const int FromCurrent)
 
template<>
void SolveGMRES (int64_t &numiterations, TPZSolver< std::complex< float > > &preconditioner, TPZFMatrix< std::complex< float > > &H, int &numvectors, const TPZFMatrix< std::complex< float > > &F, TPZFMatrix< std::complex< float > > &result, TPZFMatrix< std::complex< float > > *residual, REAL &tol, const int FromCurrent)
 
template<>
void SolveGMRES (int64_t &numiterations, TPZSolver< std::complex< double > > &preconditioner, TPZFMatrix< std::complex< double > > &H, int &numvectors, const TPZFMatrix< std::complex< double > > &F, TPZFMatrix< std::complex< double > > &result, TPZFMatrix< std::complex< double > > *residual, REAL &tol, const int FromCurrent)
 
template<>
void SolveGMRES (int64_t &numiterations, TPZSolver< std::complex< long double > > &preconditioner, TPZFMatrix< std::complex< long double > > &H, int &numvectors, const TPZFMatrix< std::complex< long double > > &F, TPZFMatrix< std::complex< long double > > &result, TPZFMatrix< std::complex< long double > > *residual, REAL &tol, const int FromCurrent)
 
template<>
void SolveBICG (int64_t &numiterations, TPZSolver< std::complex< float > > &preconditioner, const TPZFMatrix< std::complex< float > > &F, TPZFMatrix< std::complex< float > > &result, REAL &tol)
 
template<>
void SolveBICG (int64_t &numiterations, TPZSolver< std::complex< double > > &preconditioner, const TPZFMatrix< std::complex< double > > &F, TPZFMatrix< std::complex< double > > &result, REAL &tol)
 
template<>
void SolveBICG (int64_t &numiterations, TPZSolver< std::complex< long double > > &preconditioner, const TPZFMatrix< std::complex< long double > > &F, TPZFMatrix< std::complex< long double > > &result, REAL &tol)
 
template<>
void SolveBICGStab (int64_t &numiterations, TPZSolver< std::complex< float > > &preconditioner, const TPZFMatrix< std::complex< float > > &F, TPZFMatrix< std::complex< float > > &result, TPZFMatrix< std::complex< float > > *residual, REAL &tol, const int FromCurrent)
 
template<>
void SolveBICGStab (int64_t &numiterations, TPZSolver< std::complex< double > > &preconditioner, const TPZFMatrix< std::complex< double > > &F, TPZFMatrix< std::complex< double > > &result, TPZFMatrix< std::complex< double > > *residual, REAL &tol, const int FromCurrent)
 
template<>
void SolveBICGStab (int64_t &numiterations, TPZSolver< std::complex< long double > > &preconditioner, const TPZFMatrix< std::complex< long double > > &F, TPZFMatrix< std::complex< long double > > &result, TPZFMatrix< std::complex< long double > > *residual, REAL &tol, const int FromCurrent)
 
template<>
void SolveIR (int64_t &numiterations, TPZSolver< std::complex< float > > &preconditioner, const TPZFMatrix< std::complex< float > > &F, TPZFMatrix< std::complex< float > > &result, TPZFMatrix< std::complex< float > > *residual, REAL &tol, const int FromCurrent)
 
template<>
void SolveIR (int64_t &numiterations, TPZSolver< std::complex< double > > &preconditioner, const TPZFMatrix< std::complex< double > > &F, TPZFMatrix< std::complex< double > > &result, TPZFMatrix< std::complex< double > > *residual, REAL &tol, const int FromCurrent)
 
template<>
void SolveIR (int64_t &numiterations, TPZSolver< std::complex< long double > > &preconditioner, const TPZFMatrix< std::complex< long double > > &F, TPZFMatrix< std::complex< long double > > &result, TPZFMatrix< std::complex< long double > > *residual, REAL &tol, const int FromCurrent)
 
template<>
bool SolveEigenvaluesJacobi (int64_t &numiterations, REAL &tol, TPZVec< std::complex< float > > *Sort)
 
template<>
bool SolveEigenvaluesJacobi (int64_t &numiterations, REAL &tol, TPZVec< std::complex< double > > *Sort)
 
template<>
bool SolveEigenvaluesJacobi (int64_t &numiterations, REAL &tol, TPZVec< std::complex< long double > > *Sort)
 
virtual void Multiply (const TPZFMatrix< TVar > &A, TPZFMatrix< TVar > &res, int opt=0) const
 It mutiplies itself by TPZMatrix<TVar>A putting the result in res. More...
 
virtual void Add (const TPZMatrix< TVar > &A, TPZMatrix< TVar > &res) const
 It adds itself to TPZMatrix<TVar>A putting the result in res. More...
 
virtual void MultAdd (const TPZFMatrix< TVar > &x, const TPZFMatrix< TVar > &y, TPZFMatrix< TVar > &z, const TVar alpha=1., const TVar beta=0., const int opt=0) const
 It computes z = beta * y + alpha * opt(this)*x but z and x can not overlap in memory. More...
 
virtual void Residual (const TPZFMatrix< TVar > &x, const TPZFMatrix< TVar > &rhs, TPZFMatrix< TVar > &res)
 Computes res = rhs - this * x. More...
 
virtual void Substract (const TPZMatrix< TVar > &A, TPZMatrix< TVar > &result) const
 It substracts A from storing the result in result. More...
 
virtual void Identity ()
 Converts the matrix in an identity matrix. More...
 
virtual void Transpose (TPZMatrix< TVar > *const T) const
 It makes *T the transpose of current matrix. More...
 
int Inverse (TPZFMatrix< TVar > &Inv, DecomposeType dec)
 It makes Inv =[this]. IMPORTANT OBSERVATION –> The original matrix (calling object) no is more equal. It containts the some decomposition (LU or Cholesky or ...) More...
 
TVar MatrixNorm (int p, int64_t numiter=2000000, REAL tol=1.e-10) const
 Computes the matrix norm of this. More...
 
TVar ConditionNumber (int p, int64_t numiter=2000000, REAL tol=1.e-10)
 Computes the matrix condition number of this. More...
 
virtual int PutSub (const int64_t sRow, const int64_t sCol, const TPZFMatrix< TVar > &Source)
 It puts submatrix Source on actual matrix structure. More...
 
virtual int GetSub (const int64_t sRow, const int64_t sCol, const int64_t rowSize, const int64_t colSize, TPZFMatrix< TVar > &Target) const
 Gets submatrix storing it on Target. More...
 
virtual int AddSub (const int64_t sRow, const int64_t sCol, const TPZFMatrix< TVar > &Source)
 It adds Source matrix on current matrix from position (sRow, sCol) More...
 
virtual int InsertSub (const int64_t sRow, const int64_t sCol, const int64_t rowSize, const int64_t colSize, const int64_t pRow, const int64_t pCol, TPZMatrix< TVar > *Target) const
 Inserts a submatrix from current object on matrix *Target with no
redimentioning. More...
 
virtual int AddSub (const int64_t sRow, const int64_t sCol, const int64_t rowSize, const int64_t colSize, const int64_t pRow, const int64_t pCol, TPZMatrix< TVar > *pA) const
 Adds a submatrix from current object in *Target. More...
 
virtual void UpdateFrom (TPZAutoPointer< TPZMatrix< TVar > >)
 Updates the values of the matrix based on the values of the matrix. More...
 
virtual int IsSimetric () const
 Checks if the current matrix is symmetric. More...
 
int IsSquare () const
 Checks if current matrix is square. More...
 
virtual void Simetrize ()
 Simetrizes copies upper plan to the lower plan, making its data simetric. More...
 
virtual int IsDefPositive () const
 Checks if current matrix is definite positive. More...
 
int IsDecomposed () const
 Checks if current matrix is already decomposed. More...
 
virtual int Decompose_LU (std::list< int64_t > &singular)
 Decomposes the current matrix using LU decomposition. More...
 
virtual int Decompose_LU ()
 
virtual int Decompose_Cholesky ()
 Decomposes the current matrix using Cholesky method. The current matrix has to be symmetric. More...
 
virtual int Decompose_Cholesky (std::list< int64_t > &singular)
 Decomposes the current matrix using Cholesky method. More...
 
virtual int Decompose_LDLt (std::list< int64_t > &singular)
 Decomposes the current matrix using LDLt.
The current matrix has to be symmetric. "L" is lower triangular with 1.0 in its diagonal and "D" is a Diagonal matrix. More...
 
virtual int Decompose_LDLt ()
 Decomposes the current matrix using LDLt. More...
 
virtual int Subst_LForward (TPZFMatrix< TVar > *b) const
 Computes B = Y, where A*Y = B, A is lower triangular with A(i,i)=1. More...
 
virtual int Subst_LBackward (TPZFMatrix< TVar > *b) const
 Computes B = Y, where A*Y = B, A is upper triangular with A(i,i)=1. More...
 
virtual int Subst_Diag (TPZFMatrix< TVar > *b) const
 Computes B = Y, where A*Y = B, A is diagonal matrix. More...
 
int ClassId () const override
 Define the class id associated with the class. More...
 
void Read (TPZStream &buf, void *context) override
 Unpacks the object structure from a stream of bytes. More...
 
void Write (TPZStream &buf, int withclassid) const override
 Packs the object structure in a stream of bytes. More...
 
virtual void Input (std::istream &in=std::cin)
 Input operation. More...
 
virtual void Print (std::ostream &out) const
 
int64_t Rows () const
 Returns number of rows. More...
 
int64_t Cols () const
 Returns number of cols. More...
 
virtual int64_t Dim () const
 Returns the dimension of the matrix if the matrix is square. More...
 
virtual int Resize (const int64_t newRows, const int64_t newCols)
 Redimensions a matriz keeping the previous values. More...
 
virtual int Redim (const int64_t newRows, const int64_t newCols)
 Redimensions the matrix reinitializing it with zero. More...
 
virtual void SolveJacobi (int64_t &numiterations, const TPZFMatrix< TVar > &F, TPZFMatrix< TVar > &result, TPZFMatrix< TVar > *residual, TPZFMatrix< TVar > &scratch, REAL &tol, const int FromCurrent=0)
 Solves the linear system using Jacobi method.
. More...
 
virtual void SolveSOR (int64_t &numiterations, const TPZFMatrix< TVar > &F, TPZFMatrix< TVar > &result, TPZFMatrix< TVar > *residual, TPZFMatrix< TVar > &scratch, const REAL overrelax, REAL &tol, const int FromCurrent=0, const int direction=1)
 Solves the linear system using Successive Over Relaxation method (Gauss Seidel).
. More...
 
virtual void SolveSSOR (int64_t &numiterations, const TPZFMatrix< TVar > &F, TPZFMatrix< TVar > &result, TPZFMatrix< TVar > *residual, TPZFMatrix< TVar > &scratch, const REAL overrelax, REAL &tol, const int FromCurrent=0)
 Solves the linear system using Symmetric Successive Over Relaxation method (Gauss Seidel).
. More...
 
virtual void SolveCG (int64_t &numiterations, TPZSolver< TVar > &preconditioner, const TPZFMatrix< TVar > &F, TPZFMatrix< TVar > &result, TPZFMatrix< TVar > *residual, REAL &tol, const int FromCurrent=0)
 Solves the linear system using Conjugate Gradient method.
. More...
 
virtual void SolveBICG (int64_t &numiterations, TPZSolver< TVar > &preconditioner, const TPZFMatrix< TVar > &F, TPZFMatrix< TVar > &result, REAL &tol)
 Solves the linear system using Bi-Conjugate Gradient method.
. More...
 
virtual void SolveBICGStab (int64_t &numiterations, TPZSolver< TVar > &preconditioner, const TPZFMatrix< TVar > &F, TPZFMatrix< TVar > &result, TPZFMatrix< TVar > *residual, REAL &tol, const int FromCurrent=0)
 Solves the linear system using Bi-Conjugate Gradient stabilized method.
. More...
 
virtual void SolveGMRES (int64_t &numiterations, TPZSolver< TVar > &preconditioner, TPZFMatrix< TVar > &H, int &numvectors, const TPZFMatrix< TVar > &F, TPZFMatrix< TVar > &result, TPZFMatrix< TVar > *residual, REAL &tol, const int FromCurrent)
 Solves the linear system using Generalized Minimal Residual (GMRES) method.
. More...
 
virtual void SolveIR (int64_t &numiterations, TPZSolver< TVar > &preconditioner, const TPZFMatrix< TVar > &F, TPZFMatrix< TVar > &result, TPZFMatrix< TVar > *residual, REAL &tol, const int FromCurrent=0)
 Solves the linear system using IR method.
. More...
 
virtual bool SolveEigenvaluesJacobi (int64_t &numiterations, REAL &tol, TPZVec< TVar > *Sort=0)
 Transforms this matrix in a diagonal matrix, where the diagonal values are its eigenvalues. This method is efficient only for small matrices. More...
 
virtual bool SolveEigensystemJacobi (int64_t &numiterations, REAL &tol, TPZVec< TVar > &Eigenvalues, TPZFMatrix< TVar > &Eigenvectors) const
 Compute Eigenvalues and Eigenvectors of this matrix.
This method is efficient only for small matrices. More...
 
virtual int SolveDirect (TPZFMatrix< TVar > &F, const DecomposeType dt)
 Solves the linear system using Direct methods. More...
 
virtual int Decompose (const DecomposeType dt, std::list< int64_t > &singular)
 decompose the system of equations acording to the decomposition scheme More...
 
int Solve_LU (TPZFMatrix< TVar > *B, std::list< int64_t > &singular)
 Solves the linear system using LU method
. More...
 
int Solve_LU (TPZFMatrix< TVar > *B)
 Solves the linear system using LU method
. More...
 
virtual int Solve_Cholesky (TPZFMatrix< TVar > *B)
 Solves the linear system using Cholesky method
. More...
 
int Solve_Cholesky (TPZFMatrix< TVar > *B, std::list< int64_t > &singular)
 Solves the linear system using Cholesky method
. More...
 
int Solve_LDLt (TPZFMatrix< TVar > *B, std::list< int64_t > &singular)
 Solves the linear system using LDLt method
. More...
 
int Solve_LDLt (TPZFMatrix< TVar > *B)
 Solves the linear system using LDLt method
. 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
 
- Public Member Functions inherited from TPZRegisterClassId
template<typename T >
 TPZRegisterClassId (int(T::*)() const)
 
 TPZRegisterClassId ()=default
 

Static Public Member Functions

static void main ()
 
- Static Public Member Functions inherited from TPZMatrix< TVar >
static int Error (const char *msg, const char *msg2=0)
 Returns error messages. More...
 
static TVar ReturnNearestValue (TVar val, TPZVec< TVar > &Vec, TVar tol)
 Retorna o valor mais proximo a "val" (exceto valores no intervalo -tol <= val <= +tol) contido no vetor Vec. 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)
 

Protected Attributes

store fStorage
 Indicates storage schema. Assumes values TPZFileEqnStorage for binary file and TPZStackEqnStorage for a TPZStack storage. More...
 
front fFront
 Indicates Front matrix type. Assumes values TPZFrontSym for symmetric front and TPZFrontNonSym for non symmetric front matrix. More...
 
int64_t fNumEq
 Indicates number of equations. More...
 
int64_t fLastDecomposed
 Indicates last decomposed equation. More...
 
TPZVec< int > fNumElConnected
 Contains the number of elements which still need to contribute to a given equation. More...
 
TPZVec< int > fNumElConnectedBackup
 Contains the number of elements which still need to contribute to a given equation. More...
 
- Protected Attributes inherited from TPZMatrix< TVar >
int64_t fRow
 Number of rows in matrix. More...
 
int64_t fCol
 Number of cols in matrix. More...
 
char fDecomposed
 Decomposition type used to decompose the current matrix. More...
 
char fDefPositive
 Definite Posistiveness of current matrix. More...
 

Additional Inherited Members

- Protected Member Functions inherited from TPZMatrix< TVar >
void PrepareZ (const TPZFMatrix< TVar > &y, TPZFMatrix< TVar > &z, const TVar beta, const int opt) const
 Is an auxiliar method used by MultiplyAdd. More...
 
 TPZMatrix (const int64_t row, const int64_t col)
 Constructor. More...
 
virtual int Clear ()
 It clears data structure. More...
 
- Static Protected Member Functions inherited from TPZMatrix< TVar >
static void Swap (int64_t *a, int64_t *b)
 Swaps contents of a in b and b in a. More...
 
- Static Protected Attributes inherited from TPZMatrix< TVar >
static TVar gZero
 Initializing value to static variable. More...
 

Detailed Description

template<class TVar, class store, class front>
class TPZFrontMatrix< TVar, store, front >

Responsible for the frontal method as a whole. Frontal.

Manages the remaining classes connecting them

Definition at line 59 of file TPZFrontMatrix.h.

Constructor & Destructor Documentation

◆ ~TPZFrontMatrix()

template<class TVar , class store , class front >
TPZFrontMatrix< TVar, store, front >::~TPZFrontMatrix ( )

Simple Destructor.

Definition at line 150 of file TPZFrontMatrix.cpp.

◆ TPZFrontMatrix() [1/3]

template<class TVar , class store , class front >
TPZFrontMatrix< TVar, store, front >::TPZFrontMatrix ( )

◆ TPZFrontMatrix() [2/3]

template<class TVar , class store , class front >
TPZFrontMatrix< TVar, store, front >::TPZFrontMatrix ( int64_t  globalsize)

◆ TPZFrontMatrix() [3/3]

template<class TVar, class store, class front>
TPZFrontMatrix< TVar, store, front >::TPZFrontMatrix ( const TPZFrontMatrix< TVar, store, front > &  cp)
inline

Definition at line 99 of file TPZFrontMatrix.h.

Member Function Documentation

◆ AddKel() [1/2]

template<class TVar , class store , class front >
void TPZFrontMatrix< TVar, store, front >::AddKel ( TPZFMatrix< TVar > &  elmat,
TPZVec< int64_t > &  destinationindex 
)
overridevirtual

Add a contribution of a stiffness matrix putting it on destination indexes position.

Parameters
elmatIndicates number of elements connected to that equation
destinationindexPositioning of such members on global stiffness matrix

Add a contribution of a stiffness matrix

Reimplemented from TPZMatrix< TVar >.

Reimplemented in TPZParFrontMatrix< TVar, store, front >.

Definition at line 74 of file TPZFrontMatrix.cpp.

References TPZFrontMatrix< TVar, store, front >::AddKel(), and LOGPZ_INFO.

Referenced by TPZFrontMatrix< TVar, store, front >::AddKel(), and TPZFrontMatrix< TVar, store, front >::main().

◆ AddKel() [2/2]

template<class TVar , class store , class front >
void TPZFrontMatrix< TVar, store, front >::AddKel ( TPZFMatrix< TVar > &  elmat,
TPZVec< int64_t > &  sourceindex,
TPZVec< int64_t > &  destinationindex 
)
overridevirtual

Add a contribution of a stiffness matrix.

Parameters
elmatMember stiffness matrix beeing added
sourceindexSource position of values on member stiffness matrix
destinationindexPositioning of such members on global stiffness matrix

Add a contribution of a stiffness matrix

Reimplemented from TPZMatrix< TVar >.

Reimplemented in TPZParFrontMatrix< TVar, store, front >.

Definition at line 105 of file TPZFrontMatrix.cpp.

References LOGPZ_INFO.

◆ AllocData()

template<class TVar , class store , class front >
void TPZFrontMatrix< TVar, store, front >::AllocData ( )

◆ CheckCompress()

template<class TVar , class store , class front >
void TPZFrontMatrix< TVar, store, front >::CheckCompress ( )

Checks if FrontMatrix needs a compression, if so calls Compress method.

Definition at line 267 of file TPZFrontMatrix.cpp.

References TPZFrontMatrix< TVar, store, front >::fFront, LOGPZ_DEBUG, and LOGPZ_INFO.

Referenced by TPZParFrontMatrix< TVar, store, front >::AddKel().

◆ ClassId()

template<class TVar , class store , class front >
int TPZFrontMatrix< TVar, store, front >::ClassId ( ) const
overridevirtual

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

Reimplemented from TPZAbstractFrontMatrix< TVar >.

Reimplemented in TPZParFrontMatrix< TVar, store, front >.

Definition at line 179 of file TPZFrontMatrix.cpp.

References TPZAbstractFrontMatrix< TVar >::ClassId(), and Hash().

Referenced by TPZParFrontMatrix< TVar, store, front >::ClassId().

◆ Clone()

template<class TVar, class store, class front>
virtual TPZMatrix<TVar>* TPZFrontMatrix< TVar, store, front >::Clone ( ) const
inlineoverridevirtual

◆ EquationsToDecompose()

template<class TVar , class store , class front >
void TPZFrontMatrix< TVar, store, front >::EquationsToDecompose ( TPZVec< int64_t > &  destinationindex,
int64_t &  lower_eq,
int64_t &  upper_eq 
)

Sends a message to decompose equations from lower_eq to upper_eq, according to destination index.

Parameters
destinationindexContains destination indexes of equations
lower_eqStarting index
upper_eqFinishing index

Definition at line 33 of file TPZFrontMatrix.cpp.

References LOGPZ_DEBUG, and TPZVec< T >::NElements().

Referenced by TPZParFrontMatrix< TVar, store, front >::AddKel().

◆ FinishWriting()

template<class TVar , class store , class front >
void TPZFrontMatrix< TVar, store, front >::FinishWriting ( )

Finishes writing of a binary file and closes it.

Definition at line 368 of file TPZFrontMatrix.cpp.

References TPZFrontMatrix< TVar, store, front >::fStorage.

Referenced by TPZFrontStructMatrix< front >::CreateAssemble().

◆ GetFront()

template<class TVar, class store, class front>
TPZFront<TVar>& TPZFrontMatrix< TVar, store, front >::GetFront ( )
inlineoverridevirtual

◆ main()

template<class TVar , class store , class front >
void TPZFrontMatrix< TVar, store, front >::main ( )
static

◆ Print()

template<class TVar , class store , class front >
void TPZFrontMatrix< TVar, store, front >::Print ( const char *  name,
std::ostream &  out,
const MatrixOutputFormat  form = EFormatted 
) const
overridevirtual

◆ ReOpen()

template<class TVar , class store , class front >
void TPZFrontMatrix< TVar, store, front >::ReOpen ( )

Reopen the binary file.

Definition at line 372 of file TPZFrontMatrix.cpp.

References TPZFrontMatrix< TVar, store, front >::fStorage.

Referenced by TPZFrontStructMatrix< front >::CreateAssemble().

◆ SetFileName()

template<class TVar , class store , class front >
void TPZFrontMatrix< TVar, store, front >::SetFileName ( char  option,
const char *  name 
)

Sets a file name for generic input or output.

Parameters
optionIt can be either 'w' or 'r' for writeing or reading respectively
nameName of the file

Definition at line 363 of file TPZFrontMatrix.cpp.

References TPZFrontMatrix< TVar, store, front >::fStorage.

◆ SetNumElConnected()

template<class TVar , class store , class front >
void TPZFrontMatrix< TVar, store, front >::SetNumElConnected ( TPZVec< int > &  numelconnected)

Initializes the number of elements connected to each equation.

Add a matrix to the frontal matrix

Parameters
numelconnectedIndicates number of elements connected to that equation

Initializes the number of elements connected to each equation

Definition at line 58 of file TPZFrontMatrix.cpp.

References LOGPZ_DEBUG, TPZVec< T >::NElements(), and TPZMatrix< TVar >::Resize().

Referenced by TPZParFrontStructMatrix< front >::Assemble(), TPZFrontStructMatrix< front >::CreateAssemble(), and TPZFrontMatrix< TVar, store, front >::main().

◆ SolveDirect()

template<class TVar , class store , class front >
int TPZFrontMatrix< TVar, store, front >::SolveDirect ( TPZFMatrix< TVar > &  F,
const DecomposeType  dt,
std::list< int64_t > &  singular 
)
overridevirtual

Solves the linear system using Direct methods.

Parameters
FThe right hand side of the system and where the solution is stored.
dtIndicates type of decomposition
singular

Reimplemented from TPZMatrix< TVar >.

Definition at line 293 of file TPZFrontMatrix.cpp.

References DebugStop, TPZFrontMatrix< TVar, store, front >::fFront, LOGPZ_DEBUG, TPZMatrix< TVar >::Print(), TPZFrontMatrix< TVar, store, front >::Subst_Backward(), and TPZFrontMatrix< TVar, store, front >::Subst_Forward().

◆ Subst_Backward()

template<class TVar , class store , class front >
int TPZFrontMatrix< TVar, store, front >::Subst_Backward ( TPZFMatrix< TVar > *  b) const
overridevirtual

Backward substitution and result is on b.

Reimplemented from TPZMatrix< TVar >.

Definition at line 353 of file TPZFrontMatrix.cpp.

References TPZFrontMatrix< TVar, store, front >::fFront, and TPZFrontMatrix< TVar, store, front >::fStorage.

Referenced by TPZFrontMatrix< TVar, store, front >::SolveDirect().

◆ Subst_Forward()

template<class TVar , class store , class front >
int TPZFrontMatrix< TVar, store, front >::Subst_Forward ( TPZFMatrix< TVar > *  b) const
overridevirtual

Forward substitution and result is on b.

Parameters
bResult of the substitution

Reimplemented from TPZMatrix< TVar >.

Definition at line 343 of file TPZFrontMatrix.cpp.

References TPZFrontMatrix< TVar, store, front >::fFront, and TPZFrontMatrix< TVar, store, front >::fStorage.

Referenced by TPZFrontMatrix< TVar, store, front >::SolveDirect().

◆ Substitution()

template<class TVar , class store , class front >
int TPZFrontMatrix< TVar, store, front >::Substitution ( TPZFMatrix< TVar > *  b) const
overridevirtual

Executes a substitution on a TPZFMatrix<REAL> object applies both forward and backward substitution automaticaly.

Reimplemented from TPZMatrix< TVar >.

Definition at line 336 of file TPZFrontMatrix.cpp.

References ELU, and TPZFrontMatrix< TVar, store, front >::fStorage.

◆ SymbolicAddKel()

template<class TVar , class store , class front >
void TPZFrontMatrix< TVar, store, front >::SymbolicAddKel ( TPZVec< int64_t > &  destinationindex)

Add a contribution of a stiffness matrix using the indexes to compute the frontwidth. It does it symbolicaly.

Parameters
destinationindexArray containing destination indexes.

Add a contribution of a stiffness matrix using the indexes to compute the frontwidth

Definition at line 135 of file TPZFrontMatrix.cpp.

Referenced by TPZFrontMatrix< TVar, store, front >::main().

◆ Work()

template<class TVar , class store , class front >
int TPZFrontMatrix< TVar, store, front >::Work ( )

Definition at line 29 of file TPZFrontMatrix.cpp.

◆ Zero()

template<class TVar , class store , class front >
int TPZFrontMatrix< TVar, store, front >::Zero ( )
overridevirtual

Member Data Documentation

◆ fFront

template<class TVar, class store, class front>
front TPZFrontMatrix< TVar, store, front >::fFront
protected

◆ fLastDecomposed

template<class TVar, class store, class front>
int64_t TPZFrontMatrix< TVar, store, front >::fLastDecomposed
protected

◆ fNumElConnected

template<class TVar, class store, class front>
TPZVec<int> TPZFrontMatrix< TVar, store, front >::fNumElConnected
protected

Contains the number of elements which still need to contribute to a given equation.

\ link aggregationByValue \ link aggregationByValue

Definition at line 183 of file TPZFrontMatrix.h.

Referenced by TPZFrontMatrix< TVar, store, front >::Print(), TPZFrontMatrix< TVar, store, front >::TPZFrontMatrix(), and TPZFrontMatrix< TVar, store, front >::Zero().

◆ fNumElConnectedBackup

template<class TVar, class store, class front>
TPZVec<int> TPZFrontMatrix< TVar, store, front >::fNumElConnectedBackup
protected

Contains the number of elements which still need to contribute to a given equation.

This backup copy is needed to be able to reinitialize the matrix through the Zero() method

Definition at line 189 of file TPZFrontMatrix.h.

Referenced by TPZFrontMatrix< TVar, store, front >::TPZFrontMatrix(), and TPZFrontMatrix< TVar, store, front >::Zero().

◆ fNumEq

template<class TVar, class store, class front>
int64_t TPZFrontMatrix< TVar, store, front >::fNumEq
protected

◆ fStorage

template<class TVar, class store, class front>
store TPZFrontMatrix< TVar, store, front >::fStorage
protected

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