11#include "libmesh/petsc_vector.h"
19 params.
addClassDescription(
"Test object that minimizes a quadratic objective function computed "
20 "directly on the main application.");
21 params.
addRequiredParam<Real>(
"objective",
"Desired value of objective function.");
22 params.
addRequiredParam<std::vector<Real>>(
"solution",
"Desired solution to optimization.");
25 params.
set<ReporterValueName>(
"objective_name") =
"objective_value";
32 _result(getParam<Real>(
"objective")),
33 _solution(getParam<
std::vector<Real>>(
"solution"))
37 paramError(
"solution",
"Size not equal to number of degrees of freedom (",
_ndof,
").");
46 for (
const auto & val : *param)
60 for (
const auto & val : *param)
registerMooseObject("OptimizationTestApp", QuadraticMinimize)
Optimization reporter that interfaces with TAO.
virtual void setICsandBounds() override
Sets the initial conditions and bounds right before it is needed.
static InputParameters validParams()
void paramError(const std::string ¶m, Args... args) const
dof_id_type _ndof
Total number of parameters.
std::vector< std::vector< Real > * > _parameters
Parameter values declared as reporter data.
This form function simply represents a quadratic objective function: f(x) = val + \sum_{i=1}^N (x_i -...
static InputParameters validParams()
virtual Real computeObjective() override
Function to compute objective.
QuadraticMinimize(const InputParameters ¶meters)
virtual void computeGradient(libMesh::PetscVector< Number > &gradient) const override
Function to compute gradient.
const std::vector< Real > & _solution
Desired solution to optimization.
const Real & _result
Input objective function value.
virtual void set(const numeric_index_type i, const T value) override
virtual void close() override