Line data Source code
1 : //* This file is part of the MOOSE framework 2 : //* https://mooseframework.inl.gov 3 : //* 4 : //* All rights reserved, see COPYRIGHT for full restrictions 5 : //* https://github.com/idaholab/moose/blob/master/COPYRIGHT 6 : //* 7 : //* Licensed under LGPL 2.1, please see LICENSE for details 8 : //* https://www.gnu.org/licenses/lgpl-2.1.html 9 : 10 : #include "NonlinearTimeIntegratorInterface.h" 11 : #include "FEProblem.h" 12 : #include "NonlinearSystemBase.h" 13 : 14 : #include "libmesh/nonlinear_implicit_system.h" 15 : #include "libmesh/nonlinear_solver.h" 16 : #include "libmesh/dof_map.h" 17 : 18 63864 : NonlinearTimeIntegratorInterface::NonlinearTimeIntegratorInterface(FEProblemBase & problem, 19 63864 : SystemBase & system) 20 63864 : : _nl(dynamic_cast<NonlinearSystemBase *>(&system)), 21 63864 : _nonlinear_implicit_system(_nl ? dynamic_cast<NonlinearImplicitSystem *>(&_nl->system()) 22 : : nullptr), 23 63864 : _Re_time(_nl ? &_nl->getResidualTimeVector() : nullptr), 24 63864 : _Re_non_time(_nl ? &_nl->getResidualNonTimeVector() : nullptr), 25 63864 : _u_dot_factor_tag(problem.addVectorTag(Moose::SOLUTION_DOT_TAG, Moose::VECTOR_TAG_SOLUTION)), 26 63864 : _u_dotdot_factor_tag( 27 127728 : problem.addVectorTag(Moose::SOLUTION_DOTDOT_TAG, Moose::VECTOR_TAG_SOLUTION)) 28 : { 29 63864 : } 30 : 31 : NumericVector<Number> * 32 5566 : NonlinearTimeIntegratorInterface::addVector(const std::string & name, 33 : const bool project, 34 : const libMesh::ParallelType type) 35 : { 36 5566 : if (_nl) 37 2783 : return &_nl->addVector(name, project, type); 38 : else 39 2783 : return nullptr; 40 : }