Opm::TridiagonalMatrix< Scalar > Class Template Reference Provides a tridiagonal matrix that also supports non-zero entries in the upper right and lower left. More...
Detailed Descriptiontemplate<class Scalar> class Opm::TridiagonalMatrix< Scalar > Provides a tridiagonal matrix that also supports non-zero entries in the upper right and lower left. The entries in the lower left and upper right are supported to make implementing periodic systems easy. The API of this class is designed to be close to the one used by the DUNE matrix classes. Member Typedef Documentation◆ const_iterator
template<class Scalar >
◆ FieldType
template<class Scalar >
◆ iterator
template<class Scalar >
◆ RowType
template<class Scalar >
◆ SizeType
template<class Scalar >
Constructor & Destructor Documentation◆ TridiagonalMatrix() [1/3]
template<class Scalar >
References Opm::TridiagonalMatrix< Scalar >::resize(). ◆ TridiagonalMatrix() [2/3]
template<class Scalar >
◆ TridiagonalMatrix() [3/3]
template<class Scalar >
Copy constructor. Member Function Documentation◆ at() [1/2]
template<class Scalar >
Access an entry. References Opm::TridiagonalMatrix< Scalar >::size(). Referenced by Opm::TridiagonalMatrix< Scalar >::print(). ◆ at() [2/2]
template<class Scalar >
Access an entry. References Opm::TridiagonalMatrix< Scalar >::size(). ◆ axpy()
template<class Scalar >
Multiply and add the matrix entries of another tridiagonal matrix. This means that A.axpy(alpha, B)
is equivalent to A += alpha*C
References Opm::TridiagonalMatrix< Scalar >::size(). Referenced by Opm::TridiagonalMatrix< Scalar >::operator+=(), and Opm::TridiagonalMatrix< Scalar >::operator-=(). ◆ begin() [1/2]
template<class Scalar >
\begin Iterator for the first row ◆ begin() [2/2]
template<class Scalar >
\begin Const iterator for the first row ◆ cols()
template<class Scalar >
Return the number of columns of the matrix. References Opm::TridiagonalMatrix< Scalar >::size(). ◆ end()
template<class Scalar >
\begin Const iterator for the next-to-last row References Opm::TridiagonalMatrix< Scalar >::size(). ◆ frobeniusNorm()
template<class Scalar >
Calculate the frobenius norm. i.e., the square root of the sum of all squared entries. This corresponds to the euclidean norm for vectors. References Opm::TridiagonalMatrix< Scalar >::frobeniusNormSquared(), and Opm::sqrt(). ◆ frobeniusNormSquared()
template<class Scalar >
Calculate the squared frobenius norm. i.e., the sum of all squared entries. References Opm::TridiagonalMatrix< Scalar >::size(). Referenced by Opm::TridiagonalMatrix< Scalar >::frobeniusNorm(). ◆ infinityNorm()
template<class Scalar >
Calculate the infinity norm. i.e., the maximum of the sum of the absolute values of all rows. References Opm::abs(), Opm::max(), and Opm::TridiagonalMatrix< Scalar >::size(). ◆ mmtv()
template<class Scalar >
template<class Vector >
Transposed subtractive matrix-vector product. This means that A.mmtv(x, y)
is equivalent to y -= A^T*x
References Opm::TridiagonalMatrix< Scalar >::size(). ◆ mmv()
template<class Scalar >
template<class Vector >
Subtractive matrix-vector product. This means that A.mmv(x, y)
is equivalent to y -= A*x
References Opm::TridiagonalMatrix< Scalar >::size(). ◆ mtv()
template<class Scalar >
template<class Vector >
Transposed matrix-vector product. This means that A.mtv(x, y)
is equivalent to y = A^T*x
References Opm::TridiagonalMatrix< Scalar >::size(). ◆ mv()
template<class Scalar >
template<class Vector >
Matrix-vector product. This means that A.mv(x, y)
is equivalent to y = A*x
References Opm::TridiagonalMatrix< Scalar >::size(). ◆ operator*=()
template<class Scalar >
Multiplication with a Scalar. References Opm::TridiagonalMatrix< Scalar >::size(). ◆ operator+=()
template<class Scalar >
Addition operator. References Opm::TridiagonalMatrix< Scalar >::axpy(). ◆ operator-=()
template<class Scalar >
Subtraction operator. References Opm::TridiagonalMatrix< Scalar >::axpy(). ◆ operator/=()
template<class Scalar >
Division by a Scalar. References Opm::TridiagonalMatrix< Scalar >::size(). ◆ operator=() [1/2]
template<class Scalar >
Assignment operator from another tridiagonal matrix. Referenced by Opm::TridiagonalMatrix< Scalar >::TridiagonalMatrix(). ◆ operator=() [2/2]
template<class Scalar >
Assignment operator from a Scalar. References Opm::TridiagonalMatrix< Scalar >::size(). ◆ operator[]() [1/2]
template<class Scalar >
Row access operator. ◆ operator[]() [2/2]
template<class Scalar >
Row access operator. ◆ print()
template<class Scalar >
Print the matrix to a given output stream. References Opm::TridiagonalMatrix< Scalar >::at(), and Opm::TridiagonalMatrix< Scalar >::size(). Referenced by operator<<(). ◆ resize()
template<class Scalar >
Change the number of rows of the matrix. References Opm::TridiagonalMatrix< Scalar >::resize(), and Opm::TridiagonalMatrix< Scalar >::size(). Referenced by Opm::TridiagonalMatrix< Scalar >::resize(), and Opm::TridiagonalMatrix< Scalar >::TridiagonalMatrix(). ◆ rows()
template<class Scalar >
Return the number of rows of the matrix. References Opm::TridiagonalMatrix< Scalar >::size(). Referenced by Opm::Spline< Scalar >::makePeriodicSystem_(). ◆ size()
template<class Scalar >
Return the number of rows/columns of the matrix. Referenced by Opm::TridiagonalMatrix< Scalar >::at(), Opm::TridiagonalMatrix< Scalar >::axpy(), Opm::TridiagonalMatrix< Scalar >::cols(), Opm::TridiagonalMatrix< Scalar >::end(), Opm::TridiagonalMatrix< Scalar >::frobeniusNormSquared(), Opm::TridiagonalMatrix< Scalar >::infinityNorm(), Opm::TridiagonalMatrix< Scalar >::mmtv(), Opm::TridiagonalMatrix< Scalar >::mmv(), Opm::TridiagonalMatrix< Scalar >::mtv(), Opm::TridiagonalMatrix< Scalar >::mv(), Opm::TridiagonalMatrix< Scalar >::operator*=(), Opm::TridiagonalMatrix< Scalar >::operator/=(), Opm::TridiagonalMatrix< Scalar >::operator=(), Opm::TridiagonalMatrix< Scalar >::print(), Opm::TridiagonalMatrix< Scalar >::resize(), Opm::TridiagonalMatrix< Scalar >::rows(), Opm::TridiagonalMatrix< Scalar >::solve(), Opm::TridiagonalMatrix< Scalar >::umtv(), Opm::TridiagonalMatrix< Scalar >::umv(), Opm::TridiagonalMatrix< Scalar >::usmtv(), and Opm::TridiagonalMatrix< Scalar >::usmv(). ◆ solve()
template<class Scalar >
template<class XVector , class BVector >
Calculate the solution for a linear system of equations. i.e., calculate x, so that it solves Ax = b, where A is a tridiagonal matrix. References Opm::abs(), and Opm::TridiagonalMatrix< Scalar >::size(). Referenced by Opm::Spline< Scalar >::makeFullSpline_(), Opm::Spline< Scalar >::makeNaturalSpline_(), Opm::Spline< Scalar >::makePeriodicSpline_(), and Opm::Spline< Scalar >::set(). ◆ umtv()
template<class Scalar >
template<class Vector >
Transposed additive matrix-vector product. This means that A.umtv(x, y)
is equivalent to y += A^T*x
References Opm::TridiagonalMatrix< Scalar >::size(). ◆ umv()
template<class Scalar >
template<class Vector >
Additive matrix-vector product. This means that A.umv(x, y)
is equivalent to y += A*x
References Opm::TridiagonalMatrix< Scalar >::size(). ◆ usmtv()
template<class Scalar >
template<class Vector >
Transposed scaled additive matrix-vector product. This means that A.umtv(alpha, x, y)
is equivalent to y += alpha*A^T*x
References Opm::TridiagonalMatrix< Scalar >::size(). ◆ usmv()
template<class Scalar >
template<class Vector >
Scaled additive matrix-vector product. This means that A.usmv(x, y)
is equivalent to y += alpha*(A*x)
References Opm::TridiagonalMatrix< Scalar >::size(). The documentation for this class was generated from the following file: |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||