25 "Eigenvalue solves a standard/generalized linear or nonlinear eigenvalue problem");
28 params.
addParam<Real>(
"time", 0.0,
"System time");
36 "_eigen_problem",
"This might happen if you don't have a mesh")),
37 _eigen_problem_solve(*this),
38 _system_time(getParam<Real>(
"time")),
39 _time_step(_eigen_problem.timeStep()),
40 _time(_eigen_problem.time()),
41 _final_timer(registerTimedSection(
"final", 1))
47#ifdef LIBMESH_HAVE_SLEPC
76 mooseError(
"You have specified time kernels in your eigenvalue simulation");
83#ifdef LIBMESH_HAVE_SLEPC
88 _console <<
"\nCannot recover eigenvalue solves!\nExiting...\n" << std::endl;
110#ifdef LIBMESH_ENABLE_AMR
114 for (
const auto r_step : make_range(steps + 1))
122 _console <<
"Aborting as solve did not converge" << std::endl;
137#ifdef LIBMESH_ENABLE_AMR
161 mooseError(
"SLEPc is required for eigenvalue executioner, please use --download-slepc when "
162 "configuring PETSc ");
registerMooseObject("MooseApp", Eigenvalue)
const ExecFlagType EXEC_PRE_MULTIAPP_SETUP
const ExecFlagType EXEC_TIMESTEP_END
const ExecFlagType EXEC_INITIAL
const ExecFlagType EXEC_FINAL
unsigned int getSteps() const
Pull out the number of steps previously set by calling init()
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.
virtual void initialSetup() override
Method that should be executed once, before any solve calls.
static InputParameters validParams()
Problem for solving eigenvalue problems.
virtual void execute(const ExecFlagType &exec_type) override
Convenience function for performing execution of MOOSE systems.
void initEigenvector(const Real initial_value)
For nonlinear eigen solver, a good initial value can help convergence.
Eigenvalue executioner is used to drive the eigenvalue calculations.
virtual void init() override
Initialize the executioner.
EigenProblem & _eigen_problem
static InputParameters validParams()
virtual bool lastSolveConverged() const override
Whether or not the last solve converged.
EigenProblemSolve _eigen_problem_solve
inner-most solve object to perform Newton solve with SLEPc
bool _last_solve_converged
virtual void checkIntegrity()
Eigenvalue executioner does not allow time kernels.
virtual void execute() override
Pure virtual execute function MUST be overridden by children classes.
Eigenvalue(const InputParameters ¶meters)
Constructor.
Executioners are objects that do the actual work of solving your problem.
static InputParameters validParams()
virtual void preExecute()
Override this for actions that should take place before execution.
virtual void postExecute()
Override this for actions that should take place after execution.
std::unique_ptr< FixedPointSolve > _fixed_point_solve
virtual void advanceState()
Advance all of the state holding vectors / datastructures so that we can move to the next timestep.
virtual void postExecute()
Method called at the end of the simulation.
bool execMultiApps(ExecFlagType type, bool auto_advance=true)
Execute the MultiApps associated with the ExecFlagType.
void timestepSetup() override
virtual void computeIndicators()
NonlinearSystemBase & getNonlinearSystemBase(const unsigned int sys_num)
Adaptivity & adaptivity()
virtual void computeMarkers()
void initialSetup() override
virtual void outputStep(ExecFlagType type)
Output the current step.
bool isRestarting() const
Whether or not this is a "restart" calculation.
bool isRecovering() const
Whether or not this is a "recover" calculation.
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
MooseApp & _app
The MOOSE application this is associated with.
virtual bool containsTimeKernel() override
If the system has a kernel that corresponds to a time derivative.