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(). | |
| virtual void | postJacobian (libMesh::SparseMatrix< Number > &) |
| Callback to the NonLinearTimeIntegratorInterface called after the element, face, Dirac and constraint contributions to the system Jacobian are computed, before nodal boundary conditions modify its rows. | |
| TagID | uDotFactorTag () const |
| Returns the tag for the nodal multiplication factor for the residual calculation of the udot term. | |
| TagID | uDotDotFactorTag () const |
| Returns the tag for the nodal multiplication factor for the residual calculation of the udotdot term. | |
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. | |
Protected Attributes | |
| NonlinearSystemBase * | _nl |
| Pointer to the nonlinear system, can happen that we dont have any. | |
| libMesh::NonlinearImplicitSystem * | _nonlinear_implicit_system |
| libMesh nonlinear implicit system, if applicable; otherwise, nullptr | |
| NumericVector< Number > * | _Re_time |
| residual vector for time contributions | |
| NumericVector< Number > * | _Re_non_time |
| residual vector for non-time contributions | |
| const TagID | _u_dot_factor_tag |
| The vector tag for the nodal multiplication factor for the residual calculation of the udot term. | |
| const TagID | _u_dotdot_factor_tag |
| The vector tag for the nodal multiplication factor for the residual calculation of the udotdot term. | |
Interface class for routines and member variables for time integrators relying on Newton's method.
Definition at line 36 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 32 of file NonlinearTimeIntegratorInterface.C.
Referenced by AStableDirk4::AStableDirk4(), ExplicitTimeIntegrator::ExplicitTimeIntegrator(), LStableDirk3::LStableDirk3(), and LStableDirk4::LStableDirk4().
|
inlinevirtual |
Callback to the NonLinearTimeIntegratorInterface called after the element, face, Dirac and constraint contributions to the system Jacobian are computed, before nodal boundary conditions modify its rows.
Integrators whose postResidual() weights the time and non-time residuals differently apply the same weights to the Jacobian here.
Reimplemented in AStableDirk4, ImplicitMidpoint, LStableDirk2, LStableDirk3, and LStableDirk4.
Definition at line 57 of file NonlinearTimeIntegratorInterface.h.
|
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 ActuallyExplicitEuler, AStableDirk4, BDF2, CrankNicolson, ExplicitEuler, ExplicitRK2, ExplicitSSPRungeKutta, ExplicitTVDRK2, ImplicitEuler, ImplicitMidpoint, LStableDirk2, LStableDirk3, LStableDirk4, and NewmarkBeta.
Definition at line 49 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 72 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 65 of file NonlinearTimeIntegratorInterface.h.
|
protected |
Pointer to the nonlinear system, can happen that we dont have any.
Definition at line 84 of file NonlinearTimeIntegratorInterface.h.
Referenced by addVector(), ExplicitTimeIntegrator::ExplicitTimeIntegrator(), CrankNicolson::init(), ExplicitTimeIntegrator::init(), CentralDifference::initialSetup(), ExplicitTimeIntegrator::initialSetup(), TimeIntegrator::requestTimeJacobian(), ActuallyExplicitEuler::solve(), AStableDirk4::solve(), ExplicitRK2::solve(), ExplicitTVDRK2::solve(), ImplicitMidpoint::solve(), LStableDirk2::solve(), LStableDirk3::solve(), LStableDirk4::solve(), and ExplicitSSPRungeKutta::solveStage().
|
protected |
libMesh nonlinear implicit system, if applicable; otherwise, nullptr
Definition at line 87 of file NonlinearTimeIntegratorInterface.h.
Referenced by TimeIntegrator::getNumLinearIterationsLastSolve(), TimeIntegrator::getNumNonlinearIterationsLastSolve(), ExplicitSSPRungeKutta::postResidual(), ActuallyExplicitEuler::solve(), ExplicitSSPRungeKutta::solve(), and ExplicitSSPRungeKutta::solveStage().
|
protected |
residual vector for non-time contributions
Definition at line 93 of file NonlinearTimeIntegratorInterface.h.
Referenced by ActuallyExplicitEuler::postResidual(), AStableDirk4::postResidual(), BDF2::postResidual(), CrankNicolson::postResidual(), ExplicitEuler::postResidual(), ExplicitRK2::postResidual(), ExplicitSSPRungeKutta::postResidual(), ExplicitTVDRK2::postResidual(), ImplicitEuler::postResidual(), ImplicitMidpoint::postResidual(), LStableDirk2::postResidual(), LStableDirk3::postResidual(), LStableDirk4::postResidual(), NewmarkBeta::postResidual(), and CrankNicolson::postStep().
|
protected |
residual vector for time contributions
Definition at line 90 of file NonlinearTimeIntegratorInterface.h.
Referenced by ActuallyExplicitEuler::postResidual(), AStableDirk4::postResidual(), BDF2::postResidual(), CrankNicolson::postResidual(), ExplicitEuler::postResidual(), ExplicitRK2::postResidual(), ExplicitTVDRK2::postResidual(), ImplicitEuler::postResidual(), ImplicitMidpoint::postResidual(), LStableDirk2::postResidual(), LStableDirk3::postResidual(), LStableDirk4::postResidual(), and NewmarkBeta::postResidual().
|
protected |
The vector tag for the nodal multiplication factor for the residual calculation of the udot term.
Definition at line 96 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 99 of file NonlinearTimeIntegratorInterface.h.
Referenced by CentralDifference::computeTimeDerivatives(), CentralDifference::initialSetup(), and uDotDotFactorTag().