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 : #pragma once 11 : 12 : #include "SolutionUserObjectBase.h" 13 : 14 : class AdjointSolutionUserObject : public SolutionUserObjectBase 15 : { 16 : public: 17 : static InputParameters validParams(); 18 : 19 : AdjointSolutionUserObject(const InputParameters & parameters); 20 : 21 : virtual Real solutionSampleTime() override; 22 : 23 : /** 24 : * Skipping parent class initialSetup since it will be called in timestepSetup 25 : */ 26 66 : virtual void initialSetup() override {} 27 : 28 : /** 29 : * This will read a the files again if they have been re-written from optimization iteration 30 : */ 31 : virtual void timestepSetup() override; 32 : 33 : protected: 34 : /// Mapping between adjoint simulation time and adjoint simulation time 35 : const Real & _reverse_time_end; 36 : 37 : /// The system time of the last instance the file was loaded 38 : std::time_t _file_mod_time; 39 : };