22 params.
addClassDescription(
"Executioner for evaluating transient simulations and their adjoint.");
33 params.
renameParam(
"system_names",
"forward_system",
"");
40 _adjoint_solve(*this),
41 _forward_times(declareRecoverableData<
std::vector<
Real>>(
"forward_times"))
50 "scheme", getParam<MooseEnum>(
"scheme"),
" is not supported for computing adjoint.");
virtual void preExecute() override
void timestepSetup() override
virtual void postExecute() override
void paramError(const std::string ¶m, Args... args) const
virtual void preExecute() override
For storing the initial condition.
bool & _last_solve_converged
TransientAndAdjoint(const InputParameters ¶meters)
virtual void postStep() override
For storing the converged solution.
static InputParameters validParams()
registerMooseObject("OptimizationApp", TransientAndAdjoint)
std::vector< Real > & _forward_times
Cached forward time points so we can properly loop backward in time.
virtual void postExecute() override
For solving the adjoint problem.
static InputParameters validParams()
bool testCheckpointHalfTransient() const
AdjointTransientSolve _adjoint_solve
The transient adjoint solve object responsible for storing forward solutions and solving the adjoint ...
void insertForwardSolution(int tstep)
This function should be called after every converged forward time step.
const ExecFlagType EXEC_ADJOINT_TIMESTEP_END
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void setForwardSolution(int tstep)
Takes the previously saved forward solutions residing in the adjoint system and copies them to the av...
virtual void onTimestepBegin() override
IntRange< T > make_range(T beg, T end)
static InputParameters validParams()
Moose::TimeIntegratorType getTimeScheme() const
virtual bool lastSolveConverged() const override
bool isRecovering() const
virtual bool solve() override
Overriding parent class so the time-derivative residual is stored for the next time step...
virtual void outputStep(ExecFlagType type)