Geomi
|
#include <DiagonalStep.hpp>
Public Member Functions | |
DiagonalStep (Abstract::Problem< T_LIE_ALGEBRA, T_M > &problem) | |
const NOXVector< T_LIE_ALGEBRA::DOF > | makeStep (void) |
![]() | |
Step (RKMK::Abstract::Problem< T_LIE_ALGEBRA, T_M > &problem) | |
bool | setCoeffs (std::vector< double > a, std::vector< double > b) const |
void | setData (T_M h_var, NOXVector< T_LIE_ALGEBRA::DOF > y0_var) |
void | setType () |
const char | type () |
Private Attributes | |
Teuchos::RCP< Teuchos::ParameterList > | m_solverParametersPtr |
Teuchos::RCP< NOX::StatusTest::Combo > | m_statusTests |
Teuchos::RCP< NOXGroup< NOXVector< T_LIE_ALGEBRA::DOF >, T_N_INTERNAL_STAGES > > | m_grp |
Teuchos::RCP< NOX::Solver::Generic > | m_solver |
Additional Inherited Members | |
![]() | |
static const char | TYPE_UNKNOWN = 0 |
static const char | TYPE_EXPLICIT = 1 |
static const char | TYPE_DIAGONAL_IMPLICIT = 2 |
![]() | |
RKMK::StepInternals< T_LIE_ALGEBRA, T_N_INTERNAL_STAGES, T_M > * | m_internals |
RKMK::Abstract::Problem< T_LIE_ALGEBRA, T_M > & | m_problem |
char | m_type |
This class inherits RKMK::Abstract::Step and implements a \(p\) stages diagonal implicit RKMK step, where \(p\) is the template parameter T_N_INTERNAL_STAGES. A step is diagonal implicit iff the coefficients of the Butcher tableau check \( a_{i,j}=0,\,\forall i\leq j\).
The root \(k_i\) of the equation \(k_i-f\left(h\sum_{j=1}^ia_{i,j}k_j\right)=0\) is computed for every ascending \(i\) from \(1\) to \(p\) using the NOX library. The configuration of the coefficients allows to solve for \(p\) sets of \(q\) equations instead of one set of \(p\times q\) equations, thus significantly decreasing the cost of the solver.