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