Interface class for routines and member variables for time integrators relying on Newton's method. More...
#include <NonlinearTimeIntegratorInterface.h>
Public Member Functions | |
NonlinearTimeIntegratorInterface (FEProblemBase &problem, SystemBase &system) | |
virtual void | postResidual (NumericVector< Number > &) |
Callback to the NonLinearTimeIntegratorInterface called immediately after the residuals are computed in NonlinearSystem::computeResidual(). More... | |
TagID | uDotFactorTag () const |
Returns the tag for the nodal multiplication factor for the residual calculation of the udot term. More... | |
TagID | uDotDotFactorTag () const |
Returns the tag for the nodal multiplication factor for the residual calculation of the udotdot term. More... | |
Protected Member Functions | |
NumericVector< Number > * | addVector (const std::string &name, const bool project, const libMesh::ParallelType type) |
Wrapper around vector addition for nonlinear time integrators. More... | |
Protected Attributes | |
NonlinearSystemBase * | _nl |
Pointer to the nonlinear system, can happen that we dont have any. More... | |
libMesh::NonlinearImplicitSystem * | _nonlinear_implicit_system |
libMesh nonlinear implicit system, if applicable; otherwise, nullptr More... | |
NumericVector< Number > * | _Re_time |
residual vector for time contributions More... | |
NumericVector< Number > * | _Re_non_time |
residual vector for non-time contributions More... | |
const TagID | _u_dot_factor_tag |
The vector tag for the nodal multiplication factor for the residual calculation of the udot term. More... | |
const TagID | _u_dotdot_factor_tag |
The vector tag for the nodal multiplication factor for the residual calculation of the udotdot term. More... | |
Interface class for routines and member variables for time integrators relying on Newton's method.
Definition at line 34 of file NonlinearTimeIntegratorInterface.h.
NonlinearTimeIntegratorInterface::NonlinearTimeIntegratorInterface | ( | FEProblemBase & | problem, |
SystemBase & | system | ||
) |
Definition at line 18 of file NonlinearTimeIntegratorInterface.C.
|
protected |
Wrapper around vector addition for nonlinear time integrators.
If we don't operate on a nonlinear system we don't need to add the vector.
name | The name of the vector |
project | If the vector should be projected |
type | The parallel distribution of the vetor |
Definition at line 31 of file NonlinearTimeIntegratorInterface.C.
Referenced by AStableDirk4::AStableDirk4(), ExplicitTimeIntegrator::ExplicitTimeIntegrator(), LStableDirk3::LStableDirk3(), and LStableDirk4::LStableDirk4().
|
inlinevirtual |
Callback to the NonLinearTimeIntegratorInterface called immediately after the residuals are computed in NonlinearSystem::computeResidual().
The residual vector which is passed in to this function should be filled in by the user with the _Re_time and _Re_non_time vectors in a way that makes sense for the particular TimeIntegration method.
Reimplemented in ExplicitRK2, AStableDirk4, LStableDirk4, ExplicitTVDRK2, ImplicitMidpoint, LStableDirk3, LStableDirk2, CrankNicolson, ActuallyExplicitEuler, BDF2, NewmarkBeta, ExplicitEuler, ImplicitEuler, and ExplicitSSPRungeKutta.
Definition at line 47 of file NonlinearTimeIntegratorInterface.h.
|
inline |
Returns the tag for the nodal multiplication factor for the residual calculation of the udotdot term.
By default, this tag will be associated with udotdot.
Definition at line 62 of file NonlinearTimeIntegratorInterface.h.
|
inline |
Returns the tag for the nodal multiplication factor for the residual calculation of the udot term.
By default, this tag will be associated with udot.
Definition at line 55 of file NonlinearTimeIntegratorInterface.h.
|
protected |
Pointer to the nonlinear system, can happen that we dont have any.
Definition at line 74 of file NonlinearTimeIntegratorInterface.h.
Referenced by addVector(), ExplicitTimeIntegrator::ExplicitTimeIntegrator(), CrankNicolson::init(), ExplicitTimeIntegrator::init(), CentralDifference::initialSetup(), ExplicitTimeIntegrator::initialSetup(), ActuallyExplicitEuler::solve(), LStableDirk2::solve(), LStableDirk3::solve(), ImplicitMidpoint::solve(), ExplicitTVDRK2::solve(), AStableDirk4::solve(), LStableDirk4::solve(), ExplicitRK2::solve(), and ExplicitSSPRungeKutta::solveStage().
|
protected |
libMesh nonlinear implicit system, if applicable; otherwise, nullptr
Definition at line 77 of file NonlinearTimeIntegratorInterface.h.
Referenced by TimeIntegrator::getNumLinearIterationsLastSolve(), TimeIntegrator::getNumNonlinearIterationsLastSolve(), ExplicitSSPRungeKutta::postResidual(), ExplicitSSPRungeKutta::solve(), ActuallyExplicitEuler::solve(), and ExplicitSSPRungeKutta::solveStage().
|
protected |
residual vector for non-time contributions
Definition at line 83 of file NonlinearTimeIntegratorInterface.h.
Referenced by ExplicitSSPRungeKutta::postResidual(), ExplicitEuler::postResidual(), ImplicitEuler::postResidual(), ActuallyExplicitEuler::postResidual(), BDF2::postResidual(), NewmarkBeta::postResidual(), CrankNicolson::postResidual(), LStableDirk2::postResidual(), LStableDirk3::postResidual(), ImplicitMidpoint::postResidual(), ExplicitTVDRK2::postResidual(), LStableDirk4::postResidual(), AStableDirk4::postResidual(), ExplicitRK2::postResidual(), and CrankNicolson::postStep().
|
protected |
residual vector for time contributions
Definition at line 80 of file NonlinearTimeIntegratorInterface.h.
Referenced by ExplicitEuler::postResidual(), ImplicitEuler::postResidual(), ActuallyExplicitEuler::postResidual(), BDF2::postResidual(), NewmarkBeta::postResidual(), CrankNicolson::postResidual(), LStableDirk2::postResidual(), LStableDirk3::postResidual(), ImplicitMidpoint::postResidual(), ExplicitTVDRK2::postResidual(), AStableDirk4::postResidual(), LStableDirk4::postResidual(), and ExplicitRK2::postResidual().
|
protected |
The vector tag for the nodal multiplication factor for the residual calculation of the udot term.
Definition at line 86 of file NonlinearTimeIntegratorInterface.h.
Referenced by CentralDifference::computeTimeDerivatives(), CentralDifference::initialSetup(), and uDotFactorTag().
|
protected |
The vector tag for the nodal multiplication factor for the residual calculation of the udotdot term.
Definition at line 89 of file NonlinearTimeIntegratorInterface.h.
Referenced by CentralDifference::computeTimeDerivatives(), CentralDifference::initialSetup(), and uDotDotFactorTag().