LUscalarMatrix Class Reference

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

Inheritance diagram for LUscalarMatrix:
Collaboration diagram for LUscalarMatrix:

Public Member Functions

 ClassName ("LUscalarMatrix")
 
 LUscalarMatrix ()
 Construct null. More...
 
 LUscalarMatrix (const label n)
 Construct given number of rows/columns. More...
 
 LUscalarMatrix (const scalarSquareMatrix &M)
 Construct from and perform LU decomposition of the matrix M. More...
 
 LUscalarMatrix (const lduMatrix &, const FieldField< Field, scalar > &interfaceCoeffs, const lduInterfaceFieldPtrsList &interfaces)
 Construct from lduMatrix and perform LU decomposition. More...
 
void decompose ()
 Perform the LU decomposition of the matrix. More...
 
void decompose (const scalarSquareMatrix &M)
 Perform the LU decomposition of the matrix M. More...
 
template<class Type >
void solve (Field< Type > &x, const Field< Type > &source) const
 Solve the linear system with the given source. More...
 
template<class Type >
tmp< Field< Type > > solve (const Field< Type > &source) const
 Solve the linear system with the given source. More...
 
void inv (scalarSquareMatrix &M) const
 Set M to the inverse of this square matrix. More...
 
template<class Type >
Foam::tmp< Foam::Field< Type > > solve (const Field< Type > &source) const
 
- Public Member Functions inherited from SquareMatrix< scalar >
 SquareMatrix ()
 Null constructor. More...
 
 SquareMatrix (const label n)
 Construct given number of rows/columns. More...
 
 SquareMatrix (const ConstMatrixBlock< MatrixType > &)
 Construct from a block of another matrix. More...
 
 SquareMatrix (const MatrixBlock< MatrixType > &)
 Construct from a block of another matrix. More...
 
 SquareMatrix (const label n, const zero)
 Construct given number of rows/columns. More...
 
 SquareMatrix (const label m, const label n, const zero)
 Construct given number of rows and columns (checked to be equal) More...
 
 SquareMatrix (const label n, const Identity< scalar >)
 Construct given number of rows/columns. More...
 
 SquareMatrix (const label n, const scalar &)
 Construct with given number of rows and rows. More...
 
 SquareMatrix (const RectangularMatrix< scalar > &)
 Construct as copy of a RectangularMatrix. More...
 
 SquareMatrix (Istream &)
 Construct from Istream. More...
 
autoPtr< SquareMatrix< scalar > > clone () const
 Clone. 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...
 
void operator= (const zero)
 Assignment of all elements to zero. More...
 
void operator= (const Identity< scalar >)
 Assignment elements to the. More...
 
- Public Member Functions inherited from Matrix< Form, Type >
 Matrix ()
 Null constructor. More...
 
 Matrix (const label m, const label n)
 Construct given number of rows and columns. More...
 
 Matrix (const label m, const label n, const zero)
 Construct with given number of rows and columns. More...
 
 Matrix (const label m, const label n, const Type &)
 Construct with given number of rows and columns. More...
 
 Matrix (const mType &)
 Copy constructor. More...
 
template<class Form2 >
 Matrix (const Matrix< Form2, Type > &)
 Copy constructor from matrix of a different form. More...
 
template<class MatrixType >
 Matrix (const ConstMatrixBlock< MatrixType > &)
 Construct from a block of another matrix. More...
 
template<class MatrixType >
 Matrix (const MatrixBlock< MatrixType > &)
 Construct from a block of another matrix. More...
 
 Matrix (Istream &)
 Construct from Istream. More...
 
autoPtr< mTypeclone () const
 Clone. More...
 
 ~Matrix ()
 Destructor. More...
 
label m () const
 Return the number of rows. More...
 
label n () const
 Return the number of columns. More...
 
label size () const
 Return the number of elements in matrix (m*n) More...
 
const Type * v () const
 Return element vector of the constant Matrix. More...
 
Type * v ()
 Return element vector of the Matrix. More...
 
ConstMatrixBlock< mTypeblock (const label m, const label n, const label mStart, const label nStart) const
 
template<class VectorSpace >
ConstMatrixBlock< mTypeblock (const label mStart, const label nStart) const
 
ConstMatrixBlock< mTypecol (const label m, const label rowStart) const
 
ConstMatrixBlock< mTypecol (const label m, const label mStart, const label nStart) const
 
MatrixBlock< mTypeblock (const label m, const label n, const label mStart, const label nStart)
 
template<class VectorSpace >
MatrixBlock< mTypeblock (const label mStart, const label nStart)
 
MatrixBlock< mTypecol (const label m, const label rowStart)
 
MatrixBlock< mTypecol (const label m, const label mStart, const label nStart)
 
void checki (const label i) const
 Check index i is within valid range (0 ... m-1). More...
 
void checkj (const label j) const
 Check index j is within valid range (0 ... n-1). More...
 
void clear ()
 Clear the Matrix, i.e. set sizes to zero. More...
 
void transfer (mType &)
 Transfer the contents of the argument Matrix into this Matrix. More...
 
void setSize (const label m, const label n)
 Resize the matrix preserving the elements. More...
 
void shallowResize (const label m, const label n)
 Resize the matrix without reallocating storage (unsafe) More...
 
Form T () const
 Return the transpose of the matrix. More...
 
Type * operator[] (const label)
 Return subscript-checked row of Matrix. More...
 
const Type * operator[] (const label) const
 Return subscript-checked row of constant Matrix. More...
 
const Type & operator() (const label i, const label j) const
 (i, j) const element access operator More...
 
Type & operator() (const label i, const label j)
 (i, j) element access operator More...
 
void operator= (const mType &)
 Assignment operator. Takes linear time. More...
 
template<class MatrixType >
void operator= (const ConstMatrixBlock< MatrixType > &)
 Assignment to a block of another matrix. More...
 
template<class MatrixType >
void operator= (const MatrixBlock< MatrixType > &)
 Assignment to a block of another matrix. More...
 
void operator= (const zero)
 Assignment of all elements to zero. More...
 
void operator= (const Type &)
 Assignment of all elements to the given value. More...
 
template<class VectorSpace >
Foam::ConstMatrixBlock< Foam::Matrix< Form, Type > > block (const label mStart, const label nStart) const
 
template<class VectorSpace >
Foam::MatrixBlock< Foam::Matrix< Form, Type > > block (const label mStart, const label nStart)
 

Additional Inherited Members

- Public Types inherited from Matrix< Form, Type >
typedef Matrix< Form, Type > mType
 Matrix type. More...
 
typedef Type cmptType
 Component type. More...
 
- Static Public Member Functions inherited from SquareMatrix< scalar >
static word typeName ()
 Return the instantiated type name. More...
 
- Static Public Member Functions inherited from Matrix< Form, Type >
static const mTypenull ()
 Return a null Matrix. More...
 

Detailed Description

Class to perform the LU decomposition on a symmetric matrix.

Source files

Definition at line 54 of file LUscalarMatrix.H.

Constructor & Destructor Documentation

◆ LUscalarMatrix() [1/4]

Construct null.

Definition at line 42 of file LUscalarMatrix.C.

◆ LUscalarMatrix() [2/4]

LUscalarMatrix ( const label  n)

Construct given number of rows/columns.

Definition at line 48 of file LUscalarMatrix.C.

◆ LUscalarMatrix() [3/4]

Construct from and perform LU decomposition of the matrix M.

Definition at line 56 of file LUscalarMatrix.C.

References Foam::LUDecompose().

Here is the call graph for this function:

◆ LUscalarMatrix() [4/4]

Member Function Documentation

◆ ClassName()

ClassName ( "LUscalarMatrix"  )

◆ decompose() [1/2]

void decompose ( )

Perform the LU decomposition of the matrix.

Definition at line 415 of file LUscalarMatrix.C.

References Foam::LUDecompose().

Here is the call graph for this function:

◆ decompose() [2/2]

void decompose ( const scalarSquareMatrix M)

Perform the LU decomposition of the matrix M.

Definition at line 422 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 ( Field< Type > &  x,
const Field< Type > &  source 
) const

Solve the linear system with the given source.

and returning the solution in the Field argument x. This function may be called with the same field for x and source.

Definition at line 32 of file LUscalarMatrixTemplates.C.

References UPstream::firstSlave(), UPstream::lastSlave(), Foam::LUBacksubstitute(), Matrix< Form, Type >::m(), UPstream::master(), UPstream::masterNo(), UPstream::msgType(), UPstream::parRun(), UIPstream::read(), UPstream::scheduled, UOPstream::write(), and x.

Here is the call graph for this function:

◆ solve() [2/3]

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

Solve the linear system with the given source.

returning the solution

◆ inv()

void inv ( scalarSquareMatrix M) const

Set M to the inverse of this square matrix.

Definition at line 430 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 Field< Type > &  source) const

Definition at line 142 of file LUscalarMatrixTemplates.C.

References tmp< T >::ref(), Foam::solve(), and x.

Here is the call graph for this function:

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