12#include "libmesh/mesh_function.h"
13#include "libmesh/exodusII_io.h"
14#include "libmesh/nemesis_io.h"
25 "Reads a variable from a mesh in one simulation to another specifically for loading forward "
26 "solution in adjoint simulation during inverse optimization.");
30 "End time used for reversing the time integration when evaluating function derivative.");
42 _reverse_time_end(getParam<Real>(
"reverse_time_end")),
43 _file_mod_time(
std::numeric_limits<
std::time_t>::min())
47 "Performing transient adjoint simulation currently only works if the forward "
48 "solution is written and read from exodus format.");
registerMooseObject("OptimizationApp", AdjointSolutionUserObject)
virtual void timestepSetup() override
This will read a the files again if they have been re-written from optimization iteration.
std::time_t _file_mod_time
The system time of the last instance the file was loaded.
AdjointSolutionUserObject(const InputParameters ¶meters)
static InputParameters validParams()
const Real & _reverse_time_end
Mapping between adjoint simulation time and adjoint simulation time.
virtual Real solutionSampleTime() override
void paramError(const std::string ¶m, Args... args) const
std::unique_ptr< libMesh::EquationSystems > _es2
std::unique_ptr< libMesh::EquationSystems > _es
virtual void timestepSetup() override
static InputParameters validParams()
virtual void initialSetup() override
bool hasExtension(const std::string &filename, std::string ext, bool strip_exodus_ext)