21 MultiMooseEnum items(
"current_iterate function_value gnorm cnorm xdiff");
25 "The information to output, if nothing is provided everything will be output.");
33 _optimization_executioner(dynamic_cast<
Optimize *>(_app.getExecutioner())),
41 (!_items.
isValid() || _items.isValueSet(
"current_iterate"))
43 : declareUnusedValue<
std::vector<
int>>()),
45 (!_items.
isValid() || _items.isValueSet(
"current_iterate"))
47 : declareUnusedValue<
std::vector<
int>>()),
49 (!_items.
isValid() || _items.isValueSet(
"current_iterate"))
51 : declareUnusedValue<
std::vector<
int>>()),
53 (!_items.
isValid() || _items.isValueSet(
"current_iterate"))
55 : declareUnusedValue<
std::vector<
int>>())
58 mooseError(
"The OptimizationInfo Reporter can only be used with a Optimize Executioner");
registerMooseObject("OptimizationApp", OptimizationInfo)
virtual void execute() override
void isValid(MooseObject *obj)
std::vector< int > & _currentIterate
std::vector< int > & _hessianIterate
static InputParameters validParams()
const ExecFlagType EXEC_TIMESTEP_END
OptimizeSolve & getOptimizeSolve()
std::vector< double > & _cnorm
static InputParameters validParams()
void getTaoSolutionStatus(std::vector< int > &tot_iters, std::vector< double > &gnorm, std::vector< int > &obj_iters, std::vector< double > &cnorm, std::vector< int > &grad_iters, std::vector< double > &xdiff, std::vector< int > &hess_iters, std::vector< double > &f, std::vector< int > &tot_solves) const
Record tao TaoGetSolutionStatus data for output by a reporter.
std::vector< int > & _objectiveIterate
std::vector< double > & _xdiff
Optimize * _optimization_executioner
std::vector< double > & _functionValue
std::vector< int > & _functionSolves
std::vector< int > & _gradientIterate
std::vector< double > & _gnorm
void mooseError(Args &&... args) const
const ReporterMode REPORTER_MODE_REPLICATED
OptimizationInfo(const InputParameters ¶meters)
void ErrorVector unsigned int