A simple square matrix solver with scalar coefficients. More...


Public Member Functions | |
| simpleMatrix (const label) | |
| Construct given size. More... | |
| simpleMatrix (const label, const scalar, const Type &) | |
| Construct given size and initial values for coefficients and source. More... | |
| simpleMatrix (const scalarSquareMatrix &, const Field< Type > &) | |
| Construct from components. More... | |
| simpleMatrix (Istream &) | |
| Construct from Istream. More... | |
| simpleMatrix (const simpleMatrix< Type > &) | |
| Construct as copy. More... | |
| Field< Type > & | source () |
| Return access to the source. More... | |
| const Field< Type > & | source () const |
| Return const-access to the source. More... | |
| Field< Type > | solve () const |
| Solve the matrix using Gaussian elimination with pivoting. More... | |
| Field< Type > | LUsolve () const |
| Solve the matrix using LU decomposition with pivoting. More... | |
| void | operator= (const simpleMatrix< Type > &) |
Public Member Functions inherited from SquareMatrix< scalar > | |
| SquareMatrix ()=default | |
| Default construct. More... | |
| SquareMatrix (const SquareMatrix &)=default | |
| Copy construct. More... | |
| SquareMatrix (const label n) | |
| Construct for given size (rows == cols) More... | |
| SquareMatrix (const label n, const Foam::zero) | |
| Construct for given size (rows == cols) initializing all elements to zero. More... | |
| SquareMatrix (const label n, const scalar &val) | |
| Construct for given size (rows == cols) initializing all elements to the given value. More... | |
| SquareMatrix (const label n, const Identity< AnyType >) | |
| Construct for given size (rows == cols) initializing to the identity matrix. More... | |
| SquareMatrix (const labelPair &dims, const Identity< AnyType >) | |
| Construct for given size (rows == cols) by using a labelPair initializing to the identity matrix. More... | |
| SquareMatrix (const labelPair &dims) | |
| Construct given number of rows/columns by using a labelPair (checked to be equal) More... | |
| SquareMatrix (const labelPair &dims, const Foam::zero) | |
| Construct given number of rows/columns by using a labelPair (checked to be equal) and initializing all elements to zero. More... | |
| SquareMatrix (const labelPair &dims, const scalar &val) | |
| Construct given number of rows/columns by using a labelPair (checked to be equal) and initializing all elements to the given value. More... | |
| SquareMatrix (const label m, const label n, const Foam::zero) | |
| Construct given number of rows/columns (checked to be equal) initializing all elements to zero. More... | |
| SquareMatrix (const ConstMatrixBlock< MatrixType > &mat) | |
| Construct from const sub-matrix block. More... | |
| SquareMatrix (const MatrixBlock< MatrixType > &mat) | |
| Construct from sub-matrix block. More... | |
| SquareMatrix (const RectangularMatrix< scalar > &mat) | |
| Construct as copy of a RectangularMatrix which is checked to be square. More... | |
| SquareMatrix (Istream &is) | |
| Construct from Istream. More... | |
| SquareMatrix & | operator= (const SquareMatrix &)=default |
| Copy assignment. More... | |
| void | operator= (SquareMatrix< scalar > &&mat) |
| Move assignment. More... | |
| void | operator= (const Foam::zero) |
| Assign all elements to zero. More... | |
| void | operator= (const scalar &val) |
| Assign all elements to value. More... | |
| void | operator= (const Identity< AnyType >) |
| Set to identity matrix. More... | |
| autoPtr< SquareMatrix< scalar > > | clone () const |
| Clone. More... | |
| void | resize (const label m) |
| Resize the matrix preserving the elements. More... | |
| void | resize (const label m, const label n) |
| Resize the matrix preserving the elements (compatibility) More... | |
| void | setSize (const label m) |
| Resize the matrix preserving the elements. More... | |
| void | shallowResize (const label m) |
| Resize the matrix without reallocating storage (unsafe) More... | |
| bool | symmetric () const |
| Return true if the square matrix is effectively symmetric/Hermitian. More... | |
| bool | tridiagonal () const |
| Return true if the square matrix is reduced tridiagonal. More... | |
| List< label > | sortPermutation (CompOp &compare) const |
| Return a sort permutation labelList according to a given comparison on the diagonal entries. More... | |
| Foam::List< Foam::label > | sortPermutation (CompOp &compare) const |
| void | applyPermutation (const List< label > &p) |
| Column-reorder this Matrix according to a given permutation labelList. More... | |
Public Member Functions inherited from Matrix< SquareMatrix< scalar >, scalar > | |
| Foam::tmp< Foam::Field< scalar > > | AmulImpl (const ListType &x) const |
| Foam::tmp< Foam::Field< scalar > > | TmulImpl (const ListType &x) const |
| Matrix () noexcept | |
| Default construct (empty matrix) More... | |
| Matrix (const label m, const label n) | |
| Construct given number of rows/columns. More... | |
| Matrix (const label m, const label n, const Foam::zero) | |
| Construct with given number of rows/columns initializing all elements to zero. More... | |
| Matrix (const label m, const label n, const scalar &val) | |
| Construct with given number of rows/columns initializing all elements to the given value. More... | |
| Matrix (const labelPair &dims) | |
| Construct given number of rows/columns. More... | |
| Matrix (const labelPair &dims, const Foam::zero) | |
| Construct given number of rows/columns initializing all elements to zero. More... | |
| Matrix (const labelPair &dims, const scalar &val) | |
| Construct with given number of rows/columns initializing all elements to the given value. More... | |
| Matrix (const Matrix< SquareMatrix< scalar >, scalar > &mat) | |
| Copy construct. More... | |
| Matrix (Matrix< SquareMatrix< scalar >, scalar > &&mat) | |
| Move construct. More... | |
| Matrix (const Matrix< Form2, scalar > &mat) | |
| Copy constructor from Matrix of a different form. More... | |
| Matrix (const ConstMatrixBlock< MatrixType > &Mb) | |
| Construct from a block of another Matrix. More... | |
| Matrix (const MatrixBlock< MatrixType > &Mb) | |
| Construct from a block of another Matrix. More... | |
| Matrix (Istream &is) | |
| Construct from Istream. More... | |
| autoPtr< mType > | clone () const |
| Clone. More... | |
| ~Matrix () | |
| Destructor. More... | |
| label | m () const noexcept |
| The number of rows. More... | |
| label | n () const noexcept |
| The number of columns. More... | |
| label | size () const |
| The number of elements in Matrix (m*n) More... | |
| labelPair | sizes () const |
| Return row/column sizes. More... | |
| bool | empty () const noexcept |
| Return true if Matrix is empty (i.e., size() is zero) More... | |
| const scalar * | cdata () const noexcept |
| Return const pointer to the first data element, which can also be used to address into Matrix contents. More... | |
| scalar * | data () noexcept |
| Return pointer to the first data element, which can also be used to address into Matrix contents. More... | |
| const char * | cdata_bytes () const noexcept |
| Return pointer to the underlying array serving as data storage, reinterpreted as byte data. More... | |
| char * | data_bytes () noexcept |
| Return pointer to the underlying array serving as data storage, reinterpreted as byte data. More... | |
| std::streamsize | size_bytes () const noexcept |
| Number of contiguous bytes for the Matrix data, no runtime check that the type is actually contiguous. More... | |
| std::streamsize | byteSize () const |
| Number of contiguous bytes for the Matrix data, runtime FatalError if type is not contiguous. More... | |
| const scalar * | rowData (const label irow) const |
| Return const pointer to data in the specified row. More... | |
| scalar * | rowData (const label irow) |
| Return pointer to data in the specified row. More... | |
| const scalar & | at (const label idx) const |
| Linear addressing const element access. More... | |
| scalar & | at (const label idx) |
| Linear addressing element access. More... | |
| ConstMatrixBlock< mType > | subColumn (const label colIndex, const label rowIndex=0, label len=-1) const |
| Return const column or column's subset of Matrix. More... | |
| MatrixBlock< mType > | subColumn (const label colIndex, const label rowIndex=0, label len=-1) |
| Return column or column's subset of Matrix. More... | |
| ConstMatrixBlock< mType > | subRow (const label rowIndex, const label colIndex=0, label len=-1) const |
| Return const row or const row's subset of Matrix. More... | |
| MatrixBlock< mType > | subRow (const label rowIndex, const label colIndex=0, label len=-1) |
| Return row or row's subset of Matrix. More... | |
| ConstMatrixBlock< mType > | subMatrix (const label rowIndex, const label colIndex, label szRows=-1, label szCols=-1) const |
| Return const sub-block of Matrix. More... | |
| MatrixBlock< mType > | subMatrix (const label rowIndex, const label colIndex, label szRows=-1, label szCols=-1) |
| Return sub-block of Matrix. More... | |
| ConstMatrixBlock< mType > | block (const label rowIndex, const label colIndex) const |
| Access Field as a ConstMatrixBlock. More... | |
| MatrixBlock< mType > | block (const label rowIndex, const label colIndex) |
| Access Field as a MatrixBlock. More... | |
| ConstMatrixBlock< mType > | block (const label m, const label n, const label mStart, const label nStart) const |
| Deprecated(2019-04) - use subMatrix() More... | |
| MatrixBlock< mType > | block (const label m, const label n, const label mStart, const label nStart) |
| Deprecated(2019-04) - use subMatrix() More... | |
| Foam::ConstMatrixBlock< Foam::Matrix< SquareMatrix< scalar >, scalar > > | block (const label rowIndex, const label colIndex) const |
| Foam::MatrixBlock< Foam::Matrix< SquareMatrix< scalar >, scalar > > | block (const label rowIndex, const label colIndex) |
| void | checki (const label irow) const |
| Check index i is within valid range [0, m) More... | |
| void | checkj (const label jcol) const |
| Check index j is within valid range [0, n) More... | |
| void | checkSize () const |
| Check that dimensions are positive, non-zero. More... | |
| bool | uniform () const |
| True if all entries have identical values, and Matrix is non-empty. More... | |
| void | clear () |
| Clear Matrix, i.e. set sizes to zero. More... | |
| List< scalar > | release () |
| Release storage management of Matrix contents by transferring management to a List. More... | |
| void | swap (Matrix< SquareMatrix< scalar >, scalar > &mat) |
| Swap contents. More... | |
| void | transfer (Matrix< SquareMatrix< scalar >, scalar > &mat) |
| Transfer the contents of the argument Matrix into this Matrix and annul the argument Matrix. More... | |
| void | resize (const label m, const label n) |
| Change Matrix dimensions, preserving the elements. More... | |
| void | resize_nocopy (const label mrow, const label ncol) |
| Change Matrix dimensions without preserving existing content. More... | |
| void | setSize (const label m, const label n) |
| Change Matrix dimensions, preserving the elements. More... | |
| void | shallowResize (const label m, const label n) |
| Resize Matrix without reallocating storage (unsafe) More... | |
| void | round (const scalar tol=SMALL) |
| Round elements with magnitude smaller than tol (SMALL) to zero. More... | |
| SquareMatrix< scalar > | T () const |
| Return conjugate transpose of Matrix. More... | |
| SquareMatrix< scalar > | transpose () const |
| Return non-conjugate transpose of Matrix. More... | |
| tmp< Field< scalar > > | Amul (const UList< scalar > &x) const |
| Right-multiply Matrix by a column vector (A * x) More... | |
| tmp< Field< scalar > > | Amul (const IndirectListBase< scalar, Addr > &x) const |
| Right-multiply Matrix by a column vector (A * x) More... | |
| Foam::tmp< Foam::Field< scalar > > | Amul (const IndirectListBase< scalar, Addr > &x) const |
| tmp< Field< scalar > > | Tmul (const UList< scalar > &x) const |
| Left-multiply Matrix by a row vector (x * A) More... | |
| tmp< Field< scalar > > | Tmul (const IndirectListBase< scalar, Addr > &x) const |
| Left-multiply Matrix by a row vector (x * A) More... | |
| Foam::tmp< Foam::Field< scalar > > | Tmul (const IndirectListBase< scalar, Addr > &x) const |
| List< scalar > | diag () const |
| Extract the diagonal elements. Method may change in the future. More... | |
| void | diag (const UList< scalar > &list) |
| Assign diagonal of Matrix. More... | |
| scalar | trace () const |
| Return the trace. More... | |
| scalar | columnNorm (const label colIndex, const bool noSqrt=false) const |
| Return L2-Norm of chosen column. More... | |
| scalar | norm (const bool noSqrt=false) const |
| Return Frobenius norm of Matrix. More... | |
| const scalar * | operator[] (const label irow) const |
| Return const pointer to data in the specified row - rowData(). More... | |
| scalar * | operator[] (const label irow) |
| Return pointer to data in the specified row - rowData(). More... | |
| const scalar & | operator() (const label irow, const label jcol) const |
| (i, j) const element access operator More... | |
| scalar & | operator() (const label irow, const label jcol) |
| (i, j) element access operator More... | |
| void | operator= (const Matrix< SquareMatrix< scalar >, scalar > &mat) |
| Copy assignment. Takes linear time. More... | |
| void | operator= (Matrix< SquareMatrix< scalar >, scalar > &&mat) |
| Move assignment. More... | |
| void | operator= (const ConstMatrixBlock< MatrixType > &Mb) |
| Assignment to a block of another Matrix. More... | |
| void | operator= (const MatrixBlock< MatrixType > &Mb) |
| Assignment to a block of another Matrix. More... | |
| void | operator= (const Foam::zero) |
| Assignment of all elements to zero. More... | |
| void | operator= (const scalar &val) |
| Assignment of all elements to the given value. More... | |
| void | operator+= (const Matrix< SquareMatrix< scalar >, scalar > &other) |
| Matrix addition. More... | |
| void | operator+= (const scalar &s) |
| Matrix scalar addition. More... | |
| void | operator-= (const Matrix< SquareMatrix< scalar >, scalar > &other) |
| Matrix subtraction. More... | |
| void | operator-= (const scalar &s) |
| Matrix scalar subtraction. More... | |
| void | operator*= (const scalar &s) |
| Matrix scalar multiplication. More... | |
| void | operator/= (const scalar &s) |
| Matrix scalar division. More... | |
| iterator | begin () noexcept |
| Return an iterator to begin traversing a Matrix. More... | |
| const_iterator | begin () const noexcept |
| Return const_iterator to begin traversing a constant Matrix. More... | |
| iterator | end () noexcept |
| Return an iterator to end traversing a Matrix. More... | |
| const_iterator | end () const noexcept |
| Return const_iterator to end traversing a constant Matrix. More... | |
| const_iterator | cbegin () const noexcept |
| Return const_iterator to begin traversing a constant Matrix. More... | |
| const_iterator | cend () const noexcept |
| Return const_iterator to end traversing a constant Matrix. More... | |
| bool | readMatrix (Istream &is) |
| Read Matrix from Istream, discarding existing contents. More... | |
| Ostream & | writeMatrix (Ostream &os, const label shortLen=0) const |
| Write Matrix, with line-breaks in ASCII when length exceeds shortLen. More... | |
| label | mRows () const noexcept |
| The number of rows - same as m() More... | |
| label | nRows () const noexcept |
| The number of rows - same as m() More... | |
| label | nCols () const noexcept |
| The number of columns - same as n() More... | |
| const scalar * | v () const |
| Deprecated(2019-04) raw data pointer, const access. More... | |
| scalar * | v () |
| Deprecated(2019-04) raw data pointer, non-const access. More... | |
| ConstMatrixBlock< mType > | col (const label m, const label mStart, const label nStart) const |
| Deprecated(2019-04) - use subColumn() More... | |
| MatrixBlock< mType > | col (const label m, const label mStart, const label nStart) |
| Deprecated(2019-04) - use subColumn() More... | |
| void | col (const label m, const label rowStart) const=delete |
| Deleted(2019-04) - use subColumn() More... | |
| void | col (const label m, const label rowStart)=delete |
| Deleted(2019-04) - use subColumn() More... | |
Friends | |
| Ostream & | operator (Ostream &, const simpleMatrix< Type > &) |
Additional Inherited Members | |
Public Types inherited from Matrix< SquareMatrix< scalar >, scalar > | |
| typedef Matrix< SquareMatrix< scalar >, scalar > | mType |
| Matrix type. More... | |
| typedef scalar | cmptType |
| Component type. More... | |
| typedef scalar * | iterator |
| Random access iterator for traversing a Matrix. More... | |
| typedef const scalar * | const_iterator |
| Random access iterator for traversing a Matrix. More... | |
Static Public Member Functions inherited from Matrix< SquareMatrix< scalar >, scalar > | |
| static const Matrix< SquareMatrix< scalar >, scalar > & | null () |
| Return a null Matrix. More... | |
A simple square matrix solver with scalar coefficients.
Definition at line 45 of file simpleMatrix.H.
| simpleMatrix | ( | const label | mSize | ) |
Construct given size.
Note: this does not initialise the coefficients or the source.
Definition at line 27 of file simpleMatrix.C.
| simpleMatrix | ( | const label | mSize, |
| const scalar | coeffVal, | ||
| const Type & | sourceVal | ||
| ) |
Construct given size and initial values for coefficients and source.
Definition at line 36 of file simpleMatrix.C.
| simpleMatrix | ( | const scalarSquareMatrix & | matrix, |
| const Field< Type > & | source | ||
| ) |
Construct from components.
Definition at line 49 of file simpleMatrix.C.
| simpleMatrix | ( | Istream & | is | ) |
Construct from Istream.
Definition at line 60 of file simpleMatrix.C.
| simpleMatrix | ( | const simpleMatrix< Type > & | ) |
Construct as copy.
|
inline |
Return access to the source.
Definition at line 108 of file simpleMatrix.H.
|
inline |
Return const-access to the source.
Definition at line 116 of file simpleMatrix.H.
| Foam::Field< Type > solve | ( | ) | const |
Solve the matrix using Gaussian elimination with pivoting.
and return the solution
Definition at line 70 of file simpleMatrix.C.
| Foam::Field< Type > LUsolve | ( | ) | const |
Solve the matrix using LU decomposition with pivoting.
and return the solution
Definition at line 82 of file simpleMatrix.C.
| void operator= | ( | const simpleMatrix< Type > & | m | ) |
Definition at line 96 of file simpleMatrix.C.
|
friend |
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.