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 : // MOOSE includes 11 : #include "Steady.h" 12 : #include "FEProblem.h" 13 : #include "Factory.h" 14 : #include "MooseApp.h" 15 : #include "NonlinearSystem.h" 16 : 17 : registerMooseObject("MooseApp", Steady); 18 : 19 : InputParameters 20 147255 : Steady::validParams() 21 : { 22 147255 : InputParameters params = SteadyBase::validParams(); 23 147255 : params.addClassDescription("Executioner for steady-state simulations."); 24 147255 : params += FEProblemSolve::validParams(); 25 147255 : return params; 26 0 : } 27 : 28 30472 : Steady::Steady(const InputParameters & parameters) : SteadyBase(parameters), _feproblem_solve(*this) 29 : { 30 30456 : _fixed_point_solve->setInnerSolve(_feproblem_solve); 31 30456 : } 32 : 33 : void 34 29168 : Steady::init() 35 : { 36 29168 : checkIntegrity(); 37 29168 : _problem.execute(EXEC_PRE_MULTIAPP_SETUP); 38 29168 : _problem.initialSetup(); 39 28811 : _fixed_point_solve->initialSetup(); 40 28807 : _feproblem_solve.initialSetup(); 41 28803 : } 42 : 43 : void 44 29168 : Steady::checkIntegrity() 45 : { 46 : // check to make sure that we don't have any time kernels in this simulation (Steady State) 47 58438 : for (const auto & system : _feproblem_solve.systemsToSolve()) 48 29270 : if (system->containsTimeKernel()) 49 0 : mooseError("You have specified time kernels in your steady-state simulation in system ", 50 0 : system->name(), 51 : " on the following variables: ", 52 0 : Moose::stringify(system->timeKernelVariableNames())); 53 29168 : }