Public Member Functions | List of all members
LUscalarMatrix Class Reference

Class to perform the LU decomposition on a symmetric matrix. More...

Inheritance diagram for LUscalarMatrix:
Inheritance graph
[legend]
Collaboration diagram for LUscalarMatrix:
Collaboration graph
[legend]

Public Member Functions

 ClassName ("LUscalarMatrix")
 
 LUscalarMatrix ()
 
 LUscalarMatrix (const scalarSquareMatrix &M)
 
 LUscalarMatrix (const lduMatrix &ldum, const FieldField< Field, scalar > &interfaceCoeffs, const lduInterfaceFieldPtrsList &interfaces)
 
void decompose (const scalarSquareMatrix &M)
 
template<class Type >
void solve (List< Type > &x, const UList< Type > &source) const
 
template<class Type >
tmp< Field< Type > > solve (const UList< Type > &source) const
 
void inv (scalarSquareMatrix &M) const
 
template<class Type >
Foam::tmp< Foam::Field< Type > > solve (const UList< Type > &source) const
 
- Public Member Functions inherited from SquareMatrix< scalar >
 SquareMatrix ()=default
 
 SquareMatrix (const SquareMatrix &)=default
 
 SquareMatrix (const label n)
 
 SquareMatrix (const label n, const Foam::zero)
 
 SquareMatrix (const label n, const scalar &val)
 
 SquareMatrix (const label n, const Identity< AnyType >)
 
 SquareMatrix (const labelPair &dims, const Identity< AnyType >)
 
 SquareMatrix (const labelPair &dims)
 
 SquareMatrix (const labelPair &dims, const Foam::zero)
 
 SquareMatrix (const labelPair &dims, const scalar &val)
 
 SquareMatrix (const label m, const label n, const Foam::zero)
 
 SquareMatrix (const ConstMatrixBlock< MatrixType > &mat)
 
 SquareMatrix (const MatrixBlock< MatrixType > &mat)
 
 SquareMatrix (const RectangularMatrix< scalar > &mat)
 
 SquareMatrix (Istream &is)
 
SquareMatrixoperator= (const SquareMatrix &)=default
 
void operator= (const Foam::zero)
 
void operator= (const scalar &val)
 
void operator= (const Identity< AnyType >)
 
autoPtr< SquareMatrix< scalar > > clone () const
 
void resize (const label m)
 
void resize (const label m, const label n)
 
void setSize (const label m)
 
void shallowResize (const label m)
 
bool symmetric () const
 
bool tridiagonal () const
 
List< label > sortPermutation (CompOp &compare) const
 
Foam::List< Foam::label > sortPermutation (CompOp &compare) const
 
void applyPermutation (const List< label > &p)
 
- Public Member Functions inherited from Matrix< SquareMatrix< scalar >, scalar >
Foam::tmp< Foam::Field< Type > > AmulImpl (const ListType &x) const
 
Foam::tmp< Foam::Field< Type > > TmulImpl (const ListType &x) const
 
 Matrix () noexcept
 
 Matrix (const label m, const label n)
 
 Matrix (const label m, const label n, const Foam::zero)
 
 Matrix (const label m, const label n, const Type &val)
 
 Matrix (const labelPair &dims)
 
 Matrix (const labelPair &dims, const Foam::zero)
 
 Matrix (const labelPair &dims, const Type &val)
 
 Matrix (const Matrix< Form, Type > &mat)
 
 Matrix (Matrix< Form, Type > &&mat)
 
 Matrix (const Matrix< Form2, Type > &mat)
 
 Matrix (const ConstMatrixBlock< MatrixType > &Mb)
 
 Matrix (const MatrixBlock< MatrixType > &Mb)
 
 Matrix (Istream &is)
 
autoPtr< mTypeclone () const
 
 ~Matrix ()
 
label m () const noexcept
 
label n () const noexcept
 
label size () const
 
labelPair sizes () const
 
bool empty () const noexcept
 
const Type * cdata () const noexcept
 
Type * data () noexcept
 
const char * cdata_bytes () const noexcept
 
char * data_bytes () noexcept
 
std::streamsize size_bytes () const noexcept
 
std::streamsize byteSize () const
 
const Type * rowData (const label irow) const
 
Type * rowData (const label irow)
 
const Type & at (const label idx) const
 
Type & at (const label idx)
 
ConstMatrixBlock< mTypesubColumn (const label colIndex, const label rowIndex=0, label len=-1) const
 
MatrixBlock< mTypesubColumn (const label colIndex, const label rowIndex=0, label len=-1)
 
ConstMatrixBlock< mTypesubRow (const label rowIndex, const label colIndex=0, label len=-1) const
 
MatrixBlock< mTypesubRow (const label rowIndex, const label colIndex=0, label len=-1)
 
ConstMatrixBlock< mTypesubMatrix (const label rowIndex, const label colIndex, label szRows=-1, label szCols=-1) const
 
MatrixBlock< mTypesubMatrix (const label rowIndex, const label colIndex, label szRows=-1, label szCols=-1)
 
ConstMatrixBlock< mTypeblock (const label rowIndex, const label colIndex) const
 
MatrixBlock< mTypeblock (const label rowIndex, const label colIndex)
 
ConstMatrixBlock< mTypeblock (const label m, const label n, const label mStart, const label nStart) const
 
MatrixBlock< mTypeblock (const label m, const label n, const label mStart, const label nStart)
 
Foam::ConstMatrixBlock< Foam::Matrix< Form, Type > > block (const label rowIndex, const label colIndex) const
 
Foam::MatrixBlock< Foam::Matrix< Form, Type > > block (const label rowIndex, const label colIndex)
 
void checki (const label irow) const
 
void checkj (const label jcol) const
 
void checkSize () const
 
bool uniform () const
 
void clear ()
 
List< Type > release ()
 
void swap (Matrix< Form, Type > &mat)
 
void transfer (Matrix< Form, Type > &mat)
 
void resize (const label m, const label n)
 
void resize_nocopy (const label mrow, const label ncol)
 
void setSize (const label m, const label n)
 
void shallowResize (const label m, const label n)
 
void round (const scalar tol=SMALL)
 
Form T () const
 
tmp< Field< Type > > Amul (const UList< Type > &x) const
 
tmp< Field< Type > > Amul (const IndirectListBase< Type, Addr > &x) const
 
Foam::tmp< Foam::Field< Type > > Amul (const IndirectListBase< Type, Addr > &x) const
 
tmp< Field< Type > > Tmul (const UList< Type > &x) const
 
tmp< Field< Type > > Tmul (const IndirectListBase< Type, Addr > &x) const
 
Foam::tmp< Foam::Field< Type > > Tmul (const IndirectListBase< Type, Addr > &x) const
 
List< Type > diag () const
 
void diag (const UList< Type > &list)
 
Type trace () const
 
scalar columnNorm (const label colIndex, const bool noSqrt=false) const
 
scalar norm (const bool noSqrt=false) const
 
const Type * operator[] (const label irow) const
 
Type * operator[] (const label irow)
 
const Type & operator() (const label irow, const label jcol) const
 
Type & operator() (const label irow, const label jcol)
 
void operator= (const Matrix< Form, Type > &mat)
 
void operator= (Matrix< Form, Type > &&mat)
 
void operator= (const ConstMatrixBlock< MatrixType > &Mb)
 
void operator= (const MatrixBlock< MatrixType > &Mb)
 
void operator= (const Foam::zero)
 
void operator= (const Type &val)
 
void operator+= (const Matrix< Form, Type > &other)
 
void operator+= (const Type &s)
 
void operator-= (const Matrix< Form, Type > &other)
 
void operator-= (const Type &s)
 
void operator*= (const Type &s)
 
void operator/= (const Type &s)
 
iterator begin () noexcept
 
const_iterator begin () const noexcept
 
iterator end () noexcept
 
const_iterator end () const noexcept
 
const_iterator cbegin () const noexcept
 
const_iterator cend () const noexcept
 
bool readMatrix (Istream &is)
 
OstreamwriteMatrix (Ostream &os, const label shortLen=0) const
 
label mRows () const noexcept
 
label nRows () const noexcept
 
label nCols () const noexcept
 
const Type * v () const
 
Type * v ()
 
ConstMatrixBlock< mTypecol (const label m, const label mStart, const label nStart) const
 
MatrixBlock< mTypecol (const label m, const label mStart, const label nStart)
 
void col (const label m, const label rowStart) const=delete
 
void col (const label m, const label rowStart)=delete
 

Additional Inherited Members

- Public Types inherited from Matrix< SquareMatrix< scalar >, scalar >
typedef Matrix< Form, Type > mType
 
typedef Type cmptType
 
typedef Type * iterator
 
- Static Public Member Functions inherited from Matrix< SquareMatrix< scalar >, scalar >
static const Matrix< Form, Type > & null ()
 
- Public Attributes inherited from Matrix< SquareMatrix< scalar >, scalar >
const typedef Type * const_iterator
 

Detailed Description

Class to perform the LU decomposition on a symmetric matrix.

Source files

Definition at line 52 of file LUscalarMatrix.H.

Constructor & Destructor Documentation

◆ LUscalarMatrix() [1/3]

Definition at line 38 of file LUscalarMatrix.C.

◆ LUscalarMatrix() [2/3]

Definition at line 44 of file LUscalarMatrix.C.

References Foam::LUDecompose().

Here is the call graph for this function:

◆ LUscalarMatrix() [3/3]

LUscalarMatrix ( const lduMatrix ldum,
const FieldField< Field, scalar > &  interfaceCoeffs,
const lduInterfaceFieldPtrsList interfaces 
)

Member Function Documentation

◆ ClassName()

ClassName ( "LUscalarMatrix"  )

◆ decompose()

void decompose ( const scalarSquareMatrix M)

Definition at line 396 of file LUscalarMatrix.C.

References Foam::LUDecompose(), M, and SquareMatrix< scalar >::operator=().

Here is the call graph for this function:

◆ solve() [1/3]

void solve ( List< Type > &  x,
const UList< Type > &  source 
) const

Definition at line 29 of file LUscalarMatrixTemplates.C.

References Foam::LUBacksubstitute(), Foam::blockMeshTools::read(), List::resize(), Foam::vtk::write(), and x.

Here is the call graph for this function:

◆ solve() [2/3]

tmp<Field<Type> > solve ( const UList< Type > &  source) const

◆ inv()

void inv ( scalarSquareMatrix M) const

Definition at line 404 of file LUscalarMatrix.C.

References Foam::LUBacksubstitute(), M, and Foam::Zero.

Here is the call graph for this function:

◆ solve() [3/3]

Foam::tmp<Foam::Field<Type> > solve ( const UList< Type > &  source) const

Definition at line 123 of file LUscalarMatrixTemplates.C.

References Foam::New(), and solve().

Here is the call graph for this function:

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