Cantera 2.6.0

Public Member Functions | Protected Attributes | List of all members
GeneralMatrix Class Referenceabstract

Generic matrix. More...

`#include <GeneralMatrix.h>`

Inheritance diagram for GeneralMatrix:
[legend]

## Public Member Functions
| GeneralMatrix ()
| Base Constructor. More...
virtual void | zero ()=0
| Zero the matrix elements. More...
virtual void | mult (const doublereal *b, doublereal *prod) const =0
| Multiply A*b and write result to prod. More...
virtual void | leftMult (const doublereal *const b, doublereal *const prod) const =0
| Multiply b*A and write result to prod. More...
virtual int | factor ()=0
| Factors the A matrix, overwriting A. More...
virtual int | factorQR ()
| Factors the A matrix using the QR algorithm, overwriting A. More...
virtual doublereal | rcondQR ()
| Returns an estimate of the inverse of the condition number for the matrix. More...
virtual doublereal | rcond (doublereal a1norm)=0
| Returns an estimate of the inverse of the condition number for the matrix. More...
virtual void | useFactorAlgorithm (int fAlgorithm)
| Change the way the matrix is factored. More...
virtual int | factorAlgorithm () const =0
| Return the factor algorithm used. More...
virtual doublereal | oneNorm () const =0
| Calculate the one norm of the matrix. More...
virtual size_t | nRows () const =0
| Return the number of rows in the matrix. More...
virtual void | clearFactorFlag ()
| clear the factored flag More...
virtual int | solve (doublereal *b, size_t nrhs=1, size_t ldb=0)=0
| Solves the Ax = b system returning x in the b spot. More...
virtual bool | factored () const
| true if the current factorization is up to date with the matrix More...
virtual doublereal * | ptrColumn (size_t j)=0
| Return a pointer to the top of column j, columns are assumed to be contiguous in memory. More...
virtual doublereal & | operator() (size_t i, size_t j)=0
| Index into the (i,j) element. More...
virtual doublereal | operator() (size_t i, size_t j) const =0
| Constant Index into the (i,j) element. More...
virtual vector_fp::iterator | begin ()=0
| Return an iterator pointing to the first element. More...
virtual vector_fp::const_iterator | begin () const =0
| Return a const iterator pointing to the first element. More...
virtual doublereal *const * | colPts ()=0
| Return a vector of const pointers to the columns. More...
virtual size_t | checkRows (doublereal &valueSmall) const =0
| Check to see if we have any zero rows in the Jacobian. More...
virtual size_t | checkColumns (doublereal &valueSmall) const =0
| Check to see if we have any zero columns in the Jacobian. More...

## Protected Attributes
int | m_factored
| Indicates whether the matrix is factored. More...

## Detailed Description

Generic matrix.

Definition at line 21 of file GeneralMatrix.h.

## Constructor & Destructor Documentation

## ◆ GeneralMatrix()

GeneralMatrix | ( |  | ) |
| inline

Base Constructor.

Definition at line 25 of file GeneralMatrix.h.

## ◆ ~GeneralMatrix()

virtual ~GeneralMatrix | ( |  | ) |
| inline virtual

Definition at line 27 of file GeneralMatrix.h.

## Member Function Documentation

## ◆ zero()

virtual void zero | ( |  | ) |
| pure virtual

Zero the matrix elements.

Implemented in BandMatrix.

## ◆ mult()

virtual void mult | ( | const doublereal * | b,
|  | doublereal * | prod
| ) |  | const
| pure virtual

Multiply A*b and write result to prod.

Parameters

  b | Vector to do the rh multiplication
  prod | OUTPUT vector to receive the result

Implemented in BandMatrix.

## ◆ leftMult()

virtual void leftMult | ( | const doublereal *const | b,
|  | doublereal *const | prod
| ) |  | const
| pure virtual

Multiply b*A and write result to prod.

Parameters

  b | Vector to do the lh multiplication
  prod | OUTPUT vector to receive the result

Implemented in BandMatrix.

## ◆ factor()

virtual int factor | ( |  | ) |
| pure virtual

Factors the A matrix, overwriting A.

We flip m_factored boolean to indicate that the matrix is now A-1.

Implemented in BandMatrix.

## ◆ factorQR()

virtual int factorQR | ( |  | ) |
| inline virtual

Factors the A matrix using the QR algorithm, overwriting A.

we set m_factored to 2 to indicate the matrix is now QR factored

Returns
  the info variable from LAPACK

Definition at line 58 of file GeneralMatrix.h.

## ◆ rcondQR()

virtual doublereal rcondQR | ( |  | ) |
| inline virtual

Returns an estimate of the inverse of the condition number for the matrix.

The matrix must have been previously factored using the QR algorithm

Returns
  the inverse of the condition number

Definition at line 68 of file GeneralMatrix.h.

## ◆ rcond()

virtual doublereal rcond | ( | doublereal | a1norm | ) |
| pure virtual

Returns an estimate of the inverse of the condition number for the matrix.

The matrix must have been previously factored using the LU algorithm

Parameters

  a1norm | Norm of the matrix

Returns
  the inverse of the condition number

Implemented in BandMatrix.

## ◆ useFactorAlgorithm()

virtual void useFactorAlgorithm | ( | int | fAlgorithm | ) |
| inline virtual

Change the way the matrix is factored.

Parameters

  fAlgorithm | integer 0 LU factorization 1 QR factorization

Definition at line 87 of file GeneralMatrix.h.

## ◆ factorAlgorithm()

virtual int factorAlgorithm | ( |  | ) | const
| pure virtual

Return the factor algorithm used.

Implemented in BandMatrix.

## ◆ oneNorm()

virtual doublereal oneNorm | ( |  | ) | const
| pure virtual

Calculate the one norm of the matrix.

Implemented in BandMatrix.

## ◆ nRows()

virtual size_t nRows | ( |  | ) | const
| pure virtual

Return the number of rows in the matrix.

Implemented in BandMatrix.

## ◆ clearFactorFlag()

virtual void clearFactorFlag | ( |  | ) |
| inline virtual

clear the factored flag

Definition at line 101 of file GeneralMatrix.h.

References GeneralMatrix::m_factored.

## ◆ solve()

virtual int solve | ( | doublereal * | b,
|  | size_t | nrhs = `1`,
|  | size_t | ldb = `0`
| ) |  |
| pure virtual

Solves the Ax = b system returning x in the b spot.

Parameters

  b | Vector for the RHS of the equation system
  nrhs | Number of right-hand sides to solve, default 1
  ldb | Leading dimension of the right-hand side array. Defaults to nRows()

Implemented in BandMatrix.

## ◆ factored()

virtual bool factored | ( |  | ) | const
| inline virtual

true if the current factorization is up to date with the matrix

Definition at line 115 of file GeneralMatrix.h.

References GeneralMatrix::m_factored.

## ◆ ptrColumn()

virtual doublereal * ptrColumn | ( | size_t | j | ) |
| pure virtual

Return a pointer to the top of column j, columns are assumed to be contiguous in memory.

Parameters

  j | Value of the column

Returns
  a pointer to the top of the column

Implemented in BandMatrix.

## ◆ operator()() [1/2]

virtual doublereal & operator() | ( | size_t | i,
|  | size_t | j
| ) |  |
| pure virtual

Index into the (i,j) element.

Parameters

  i | row
  j | column

Returns
  a changeable reference to the matrix entry

Implemented in BandMatrix.

## ◆ operator()() [2/2]

virtual doublereal operator() | ( | size_t | i,
|  | size_t | j
| ) |  | const
| pure virtual

Constant Index into the (i,j) element.

Parameters

  i | row
  j | column

Returns
  an unchangeable reference to the matrix entry

Implemented in BandMatrix.

## ◆ begin() [1/2]

virtual vector_fp::iterator begin | ( |  | ) |
| pure virtual

Return an iterator pointing to the first element.

We might drop this later

Implemented in BandMatrix.

## ◆ begin() [2/2]

virtual vector_fp::const_iterator begin | ( |  | ) | const
| pure virtual

Return a const iterator pointing to the first element.

We might drop this later

Implemented in BandMatrix.

## ◆ colPts()

virtual doublereal *const * colPts | ( |  | ) |
| pure virtual

Return a vector of const pointers to the columns.

Note the value of the pointers are protected by their being const. However, the value of the matrix is open to being changed.

Returns
  a vector of pointers to the top of the columns of the matrices.

Implemented in BandMatrix.

## ◆ checkRows()

virtual size_t checkRows | ( | doublereal & | valueSmall | ) | const
| pure virtual

Check to see if we have any zero rows in the Jacobian.

This utility routine checks to see if any rows are zero. The smallest row is returned along with the largest coefficient in that row

Parameters

  valueSmall | OUTPUT value of the largest coefficient in the smallest row

Returns
  index of the row that is most nearly zero

Implemented in BandMatrix.

## ◆ checkColumns()

virtual size_t checkColumns | ( | doublereal & | valueSmall | ) | const
| pure virtual

Check to see if we have any zero columns in the Jacobian.

This utility routine checks to see if any columns are zero. The smallest column is returned along with the largest coefficient in that column

Parameters

  valueSmall | OUTPUT value of the largest coefficient in the smallest column

Returns
  index of the column that is most nearly zero

Implemented in BandMatrix.

## Member Data Documentation

## ◆ m_factored

int m_factored
| protected

Indicates whether the matrix is factored.

0 for unfactored; Non-zero values indicate a particular factorization (LU=1, QR=2).

Definition at line 187 of file GeneralMatrix.h.

Referenced by BandMatrix::begin(), BandMatrix::bfill(), GeneralMatrix::clearFactorFlag(), BandMatrix::end(), BandMatrix::factor(), GeneralMatrix::factored(), BandMatrix::rcond(), BandMatrix::resize(), BandMatrix::solve(), BandMatrix::value(), and BandMatrix::zero().

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

- GeneralMatrix.h