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 57042 : NonlinearTimeIntegratorInterface::NonlinearTimeIntegratorInterface(FEProblemBase & problem, 19 57042 : SystemBase & system) 20 57042 : : _nl(dynamic_cast<NonlinearSystemBase *>(&system)), 21 57042 : _nonlinear_implicit_system(_nl ? dynamic_cast<NonlinearImplicitSystem *>(&_nl->system()) 22 : : nullptr), 23 57042 : _Re_time(_nl ? &_nl->getResidualTimeVector() : nullptr), 24 57042 : _Re_non_time(_nl ? &_nl->getResidualNonTimeVector() : nullptr), 25 57042 : _u_dot_factor_tag(problem.addVectorTag("u_dot_factor", Moose::VECTOR_TAG_SOLUTION)), 26 114084 : _u_dotdot_factor_tag(problem.addVectorTag("u_dotdot_factor", Moose::VECTOR_TAG_SOLUTION)) 27 : { 28 57042 : } 29 : 30 : NumericVector<Number> * 31 5256 : NonlinearTimeIntegratorInterface::addVector(const std::string & name, 32 : const bool project, 33 : const libMesh::ParallelType type) 34 : { 35 5256 : if (_nl) 36 2628 : return &_nl->addVector(name, project, type); 37 : else 38 2628 : return nullptr; 39 : }