This is a linear function class for computing the action of a Jacobian on a vector using a matrix-free finite-difference method. This class has all of the required functions to be used as the linear operator template parameter in AMReX_GMRES.
More...
|
| | JacobianFunctionMF ()=default |
| |
| | ~JacobianFunctionMF ()=default |
| |
| | JacobianFunctionMF (const JacobianFunctionMF &)=default |
| |
| JacobianFunctionMF & | operator= (const JacobianFunctionMF &)=default |
| |
| | JacobianFunctionMF (JacobianFunctionMF &&) noexcept=default |
| |
| JacobianFunctionMF & | operator= (JacobianFunctionMF &&) noexcept=default |
| |
| void | apply (T &a_dF, const T &a_dU) override |
| | apply the linear function on a given vector of type T
|
| |
| void | precond (T &a_U, const T &a_X) override |
| | apply the preconditioner on a given vector of type T
|
| |
| void | updatePreCondMat (const T &a_X) override |
| | update preconditioner
|
| |
| void | getPCMatrix (amrex::Gpu::DeviceVector< int > &a_ridx_g, amrex::Gpu::DeviceVector< int > &a_nnz, amrex::Gpu::DeviceVector< int > &a_cidx_g, amrex::Gpu::DeviceVector< RT > &a_aij, int &a_n, int &a_ncols_max) override |
| | get sparse matrix representation of preconditioner
|
| |
| T | makeVecLHS () const override |
| | make LHS vector
|
| |
| T | makeVecRHS () const override |
| | make RHS vector
|
| |
| bool | isDefined () const |
| |
| bool | usePreconditioner () const |
| |
| void | setBaseSolution (const T &a_U) |
| |
| void | setBaseRHS (const T &a_R) |
| |
| void | setJFNKEps (RT a_eps) |
| |
| void | setIsLinear (bool a_isLinear) |
| |
| void | curTime (RT a_time) |
| |
| void | curTimeStep (RT a_dt) |
| |
| void | printParams () const |
| |
| void | define (const T &, Ops *, const PreconditionerType &) override |
| | define the linear function object
|
| |
| PreconditionerType | pcType () const override |
| | returns the preconditioner type
|
| |
| | LinearFunction ()=default |
| | default constructor
|
| |
| virtual | ~LinearFunction ()=default |
| | default destructore
|
| |
| | LinearFunction (const LinearFunction &)=default |
| |
| LinearFunction & | operator= (const LinearFunction &)=default |
| |
| | LinearFunction (LinearFunction &&) noexcept=default |
| |
| LinearFunction & | operator= (LinearFunction &&) noexcept=default |
| |
| void | create (T &a_Z, const T &a_U) |
| | create a new vector given a defined vector
|
| |
| void | assign (T &a_Z, const T &a_U) |
| | vector copy operation
|
| |
| void | increment (T &a_Z, const T &a_U, RT a_scale) |
| | vector scaled-increment operation
|
| |
| void | scale (T &a_U, RT a_scale) |
| | vector scaled operation
|
| |
| void | linComb (T &a_U, RT a, const T &X, RT b, const T &Y) |
| | compute linear combination
|
| |
| void | setToZero (T &a_U) |
| | set vector to zero
|
| |
| void | setVal (T &a_U, RT a_val) |
| | set vector to a scalar value
|
| |
| RT | dotProduct (const T &a_X, const T &a_Y) |
| | compute dot product of two vectors
|
| |
| RT | norm2 (const T &a_U) |
| | compute 2-norm of a vector
|
| |
template<class T, class Ops>
class JacobianFunctionMF< T, Ops >
This is a linear function class for computing the action of a Jacobian on a vector using a matrix-free finite-difference method. This class has all of the required functions to be used as the linear operator template parameter in AMReX_GMRES.