Extension: Matrix functions
#include "dg/matrix/matrix.h"
|
Right hand side of the square root ODE. More...
Public Types | |
using | container_type = Container |
using | value_type = dg::get_value_type< Container > |
Public Member Functions | |
InvSqrtODE () | |
template<class MatrixType > | |
InvSqrtODE (MatrixType &A, const Container ©able) | |
Construct SqrtOde operator. More... | |
template<class ... Params> | |
void | construct (Params &&...ps) |
Perfect forward parameters to one of the constructors. More... | |
const value_type & | time () const |
auto | make_operator () const |
template<class MatrixType > | |
void | set_inverse_operator (const MatrixType &OpInv) |
void | operator() (value_type t, const Container &y, Container &yp) |
Compute rhs term. More... | |
Right hand side of the square root ODE.
\[ \dot{y}= \left[(1-t) A +t I\right]^{-1} (I - A)/2 y \]
where \( A\) is the matrix
This class is based on the approach of the paper Numerical approximation of the product of the square root of a matrix with a vector by E. J. Allen et al
using dg::mat::InvSqrtODE< Container >::container_type = Container |
using dg::mat::InvSqrtODE< Container >::value_type = dg::get_value_type<Container> |
|
inline |
|
inline |
Construct SqrtOde operator.
A | matrix (stored by reference so needs to live) |
copyable | copyable container |
|
inline |
Perfect forward parameters to one of the constructors.
Params | deduced by the compiler |
ps | parameters forwarded to constructors |
|
inline |
|
inline |
Compute rhs term.
i.e.
\[ yp= (tI + (1-t) A)^{-1} (I - A)/2 y \]
t | is time |
y | is \( y\) |
yp | is \( \dot{y}\) |
|
inline |
|
inline |