NeoPZ
|
Matrix class to hold the flux derivatives A B C and diffusive matrix coefficients. Matrix. More...
#include <pzdiffmatrix.h>
Public Member Functions | |
TPZDiffMatrix () | |
TPZDiffMatrix (const int64_t rows, const int64_t cols) | |
~TPZDiffMatrix () | |
TPZDiffMatrix (const TPZDiffMatrix ©) | |
void | Redim (const int64_t rows, const int64_t cols) |
Resizes and zeroes the matrix. More... | |
void | Multiply (TPZVec< T > &In, TPZVec< T > &Out, const T &scale=T(1.)) |
Multiplies the matrix by a correspondent TPZVec vector. Dimensions are checked. More... | |
void | Multiply (TPZDiffMatrix< T > &In, TPZDiffMatrix< T > &Out, const T &scale=T(1.)) |
Matrix multiplication. Dimensions are checked. More... | |
void | MultiplyAdd (TPZDiffMatrix< T > &In, TPZDiffMatrix< T > &Out, const T &scale=T(1.)) |
Matrix multiplication. More... | |
TPZDiffMatrix< T > & | operator= (const TPZDiffMatrix< T > &source) |
Copies the matrix, reallocating all coefficients. More... | |
void | Add (TPZDiffMatrix< T > &matrix, const T &scale=T(1.)) |
Adds element by element. More... | |
T & | operator() (const int64_t i, const int64_t j=0) |
Matrix data access. More... | |
void | PutVal (const int64_t row, const int64_t col, const T &value) |
const T & | GetVal (const int64_t row, const int64_t col) const |
TPZDiffMatrix< T > & | Transpose (TPZDiffMatrix< T > &matrix) |
Transposes the matrix onto the parameter object. More... | |
void | AddAlignDiv (TPZVec< T > &gradx, const int64_t varOffset, const int64_t dim, TPZVec< T > &Divergent) |
Performs a specific diffusive divergence operation. More... | |
void | AddDiv (T &dPhi, TPZVec< T > &U, const int64_t dim, TPZVec< T > &Divergent, TPZDiffMatrix< T > &dDivergent) |
Computes the divergent for diffusion purposes. More... | |
int64_t | Cols () const |
int64_t | Rows () const |
EStatus | Decompose_LU () |
EStatus | Substitution (TPZDiffMatrix< T > *B) const |
void | Reset () |
Private Member Functions | |
int64_t | index (const int64_t i, const int64_t j) const |
Private Attributes | |
int64_t | fRows |
int64_t | fCols |
T * | fStore |
int | fDecomposed |
Matrix class to hold the flux derivatives A B C and diffusive matrix coefficients. Matrix.
Definition at line 27 of file pzdiffmatrix.h.
|
inline |
Definition at line 173 of file pzdiffmatrix.h.
|
inline |
Definition at line 178 of file pzdiffmatrix.h.
References TPZDiffMatrix< T >::Redim().
|
inline |
Definition at line 184 of file pzdiffmatrix.h.
References TPZDiffMatrix< T >::fStore.
|
inline |
Definition at line 34 of file pzdiffmatrix.h.
References TPZDiffMatrix< T >::Add(), TPZDiffMatrix< T >::AddAlignDiv(), TPZDiffMatrix< T >::AddDiv(), TPZDiffMatrix< T >::Cols(), TPZDiffMatrix< T >::Decompose_LU(), TPZDiffMatrix< T >::fCols, TPZDiffMatrix< T >::fRows, TPZDiffMatrix< T >::fStore, TPZDiffMatrix< T >::GetVal(), TPZDiffMatrix< T >::index(), matrix, TPZDiffMatrix< T >::Multiply(), TPZDiffMatrix< T >::MultiplyAdd(), TPZDiffMatrix< T >::operator()(), TPZDiffMatrix< T >::operator=(), TPZDiffMatrix< T >::PutVal(), TPZDiffMatrix< T >::Redim(), TPZDiffMatrix< T >::Reset(), TPZDiffMatrix< T >::Rows(), TPZDiffMatrix< T >::Substitution(), and TPZDiffMatrix< T >::Transpose().
|
inline |
Adds element by element.
Definition at line 318 of file pzdiffmatrix.h.
References TPZDiffMatrix< T >::fCols, TPZDiffMatrix< T >::fRows, TPZDiffMatrix< T >::fStore, and PZError.
Referenced by TPZArtDiff::ODotOperator(), and TPZDiffMatrix< T >::TPZDiffMatrix().
|
inline |
Performs a specific diffusive divergence operation.
gradx | example: {dU0dx0 dU0dx1 dU0dx2 dU1dx0... dU5dx2} |
varOffset | shall lie between 0 and dim-1. Represents the index of spatial derivative to multiply the matrix by. |
dim | |
Divergent | vetor to which the operation shall contribute to. Must be explicitly zeroed before calling this function. The object gradx contain the tangent matrix of the solutions with respect to the dim spatial dimensions. |
Definition at line 337 of file pzdiffmatrix.h.
References TPZVec< T >::NElements(), and PZError.
Referenced by TPZDiffMatrix< T >::TPZDiffMatrix().
|
inline |
Computes the divergent for diffusion purposes.
dPhi | the dim number of derivatives of test function |
U | the dim+2 solutions at the given point |
dim | |
Divergent | Vector result containing the computed divergent The operation is additive, so zero it first |
dDivergent | Computes an approximate derivative of the divergent with respect to the Ui coefficients. |
Definition at line 351 of file pzdiffmatrix.h.
References TPZVec< T >::NElements(), TPZDiffMatrix< T >::operator()(), and PZError.
Referenced by TPZDiffMatrix< T >::TPZDiffMatrix().
|
inline |
Definition at line 369 of file pzdiffmatrix.h.
References TPZDiffMatrix< T >::fCols.
Referenced by TPZDiffMatrix< T >::Decompose_LU(), TPZDiffMatrix< T >::Substitution(), and TPZDiffMatrix< T >::TPZDiffMatrix().
|
inline |
Definition at line 382 of file pzdiffmatrix.h.
References TPZDiffMatrix< T >::Cols(), ELU, EOk, EZeroPivot, TPZDiffMatrix< T >::fDecomposed, TPZDiffMatrix< T >::GetVal(), IsZero(), TPZDiffMatrix< T >::PutVal(), PZError, and TPZDiffMatrix< T >::Rows().
Referenced by TPZLadeNelsonElasticResponse::SolveSigma(), and TPZDiffMatrix< T >::TPZDiffMatrix().
|
inline |
Definition at line 249 of file pzdiffmatrix.h.
References TPZDiffMatrix< T >::fStore, and TPZDiffMatrix< T >::index().
Referenced by TPZDiffMatrix< T >::Decompose_LU(), TPZDiffMatrix< T >::Substitution(), and TPZDiffMatrix< T >::TPZDiffMatrix().
|
inlineprivate |
Definition at line 218 of file pzdiffmatrix.h.
References DebugStop, TPZDiffMatrix< T >::fCols, TPZDiffMatrix< T >::fRows, and PZError.
Referenced by TPZDiffMatrix< T >::GetVal(), TPZDiffMatrix< T >::operator()(), TPZDiffMatrix< T >::PutVal(), and TPZDiffMatrix< T >::TPZDiffMatrix().
|
inline |
Multiplies the matrix by a correspondent TPZVec vector. Dimensions are checked.
Definition at line 256 of file pzdiffmatrix.h.
References TPZDiffMatrix< T >::fCols, TPZDiffMatrix< T >::fRows, TPZVec< T >::NElements(), TPZDiffMatrix< T >::operator()(), PZError, and TPZVec< T >::Resize().
Referenced by TPZArtDiff::Bornhaus(), TPZArtDiff::SUPG(), and TPZDiffMatrix< T >::TPZDiffMatrix().
|
inline |
Matrix multiplication. Dimensions are checked.
Definition at line 274 of file pzdiffmatrix.h.
References TPZDiffMatrix< T >::fCols, TPZDiffMatrix< T >::fRows, TPZDiffMatrix< T >::operator()(), PZError, and TPZDiffMatrix< T >::Redim().
|
inline |
Matrix multiplication.
Dimensions are checked.
Results are additively contributed to Out
Definition at line 296 of file pzdiffmatrix.h.
References TPZDiffMatrix< T >::fCols, TPZDiffMatrix< T >::fRows, TPZDiffMatrix< T >::operator()(), PZError, and TPZDiffMatrix< T >::Redim().
Referenced by TPZDiffMatrix< T >::TPZDiffMatrix().
|
inline |
Matrix data access.
Definition at line 236 of file pzdiffmatrix.h.
References TPZDiffMatrix< T >::fStore, and TPZDiffMatrix< T >::index().
Referenced by TPZDiffMatrix< T >::AddDiv(), TPZDiffMatrix< T >::Multiply(), TPZDiffMatrix< T >::MultiplyAdd(), TPZDiffMatrix< T >::TPZDiffMatrix(), and TPZDiffMatrix< T >::Transpose().
|
inline |
Copies the matrix, reallocating all coefficients.
Definition at line 327 of file pzdiffmatrix.h.
References TPZDiffMatrix< T >::fCols, TPZDiffMatrix< T >::fDecomposed, TPZDiffMatrix< T >::fRows, TPZDiffMatrix< T >::fStore, and TPZDiffMatrix< T >::Redim().
Referenced by TPZDiffMatrix< T >::TPZDiffMatrix().
|
inline |
Definition at line 242 of file pzdiffmatrix.h.
References TPZDiffMatrix< T >::fStore, and TPZDiffMatrix< T >::index().
Referenced by TPZDiffMatrix< T >::Decompose_LU(), TPZDiffMatrix< T >::Substitution(), and TPZDiffMatrix< T >::TPZDiffMatrix().
|
inline |
Resizes and zeroes the matrix.
Definition at line 191 of file pzdiffmatrix.h.
References TPZDiffMatrix< T >::fCols, TPZDiffMatrix< T >::fRows, and TPZDiffMatrix< T >::fStore.
Referenced by TPZArtDiff::ContributeBornhaus(), TPZArtDiff::Divergent(), TPZArtDiff::EigenSystemBornhaus(), TPZArtDiff::EigenSystemSUPG(), TPZArtDiff::MMatrix(), TPZDiffMatrix< T >::Multiply(), TPZDiffMatrix< T >::MultiplyAdd(), TPZArtDiff::ODotOperator(), TPZDiffMatrix< T >::operator=(), TPZArtDiff::RMMatrix(), TPZArtDiff::RotMatrix(), TPZDiffMatrix< T >::TPZDiffMatrix(), and TPZDiffMatrix< T >::Transpose().
|
inline |
Definition at line 436 of file pzdiffmatrix.h.
References ENoDecompose, and TPZDiffMatrix< T >::fDecomposed.
Referenced by TPZDiffMatrix< T >::TPZDiffMatrix().
|
inline |
Definition at line 376 of file pzdiffmatrix.h.
References TPZDiffMatrix< T >::fRows.
Referenced by TPZDiffMatrix< T >::Decompose_LU(), TPZDiffMatrix< T >::Substitution(), and TPZDiffMatrix< T >::TPZDiffMatrix().
|
inline |
Definition at line 406 of file pzdiffmatrix.h.
References TPZDiffMatrix< T >::Cols(), EIncompDim, EOk, EZeroPivot, TPZDiffMatrix< T >::GetVal(), IsZero(), TPZDiffMatrix< T >::PutVal(), and TPZDiffMatrix< T >::Rows().
Referenced by TPZPlasticStep< YC_t, TF_t, ER_t >::ComputeDep(), and TPZDiffMatrix< T >::TPZDiffMatrix().
|
inline |
Transposes the matrix onto the parameter object.
Resizes it if necessary.
Definition at line 207 of file pzdiffmatrix.h.
References TPZDiffMatrix< T >::fCols, TPZDiffMatrix< T >::fRows, matrix, TPZDiffMatrix< T >::operator()(), and TPZDiffMatrix< T >::Redim().
Referenced by TPZArtDiff::RotMatrix(), and TPZDiffMatrix< T >::TPZDiffMatrix().
|
private |
Definition at line 145 of file pzdiffmatrix.h.
Referenced by TPZDiffMatrix< T >::Add(), TPZDiffMatrix< T >::Cols(), TPZDiffMatrix< T >::index(), TPZDiffMatrix< T >::Multiply(), TPZDiffMatrix< T >::MultiplyAdd(), TPZDiffMatrix< T >::operator=(), TPZDiffMatrix< T >::Redim(), TPZDiffMatrix< T >::TPZDiffMatrix(), and TPZDiffMatrix< T >::Transpose().
|
private |
Definition at line 149 of file pzdiffmatrix.h.
Referenced by TPZDiffMatrix< T >::Decompose_LU(), TPZDiffMatrix< T >::operator=(), and TPZDiffMatrix< T >::Reset().
|
private |
Definition at line 145 of file pzdiffmatrix.h.
Referenced by TPZDiffMatrix< T >::Add(), TPZDiffMatrix< T >::index(), TPZDiffMatrix< T >::Multiply(), TPZDiffMatrix< T >::MultiplyAdd(), TPZDiffMatrix< T >::operator=(), TPZDiffMatrix< T >::Redim(), TPZDiffMatrix< T >::Rows(), TPZDiffMatrix< T >::TPZDiffMatrix(), and TPZDiffMatrix< T >::Transpose().
|
private |
Definition at line 147 of file pzdiffmatrix.h.
Referenced by TPZDiffMatrix< T >::Add(), TPZDiffMatrix< T >::GetVal(), TPZDiffMatrix< T >::operator()(), TPZDiffMatrix< T >::operator=(), TPZDiffMatrix< T >::PutVal(), TPZDiffMatrix< T >::Redim(), TPZDiffMatrix< T >::TPZDiffMatrix(), and TPZDiffMatrix< T >::~TPZDiffMatrix().