11 #include "libmesh/petsc_vector.h" 20 "Desired sum of the solution for constrained optimization.");
26 _result(getParam<
Real>(
"objective")),
27 _solution(getParam<
std::vector<
Real>>(
"solution")),
28 _eq_constraint(getParam<
Real>(
"solution_sum_equality"))
38 for (
const auto & val : *param)
52 for (
const auto & val : *param)
67 const Real equality_constraint = std::accumulate(param->begin(), param->end(), 0.0);
70 eqs_constraints.
close();
78 gradient.
set(i,
j, 1);
const std::vector< Real > & _solution
Desired solution to optimize to.
virtual void computeEqualityConstraints(libMesh::PetscVector< Number > &eqs_constraints) const override
Function to compute the equality constraints.
virtual void zero() override
registerMooseObject("OptimizationTestApp", QuadraticMinimizeConstrained)
virtual void computeGradient(libMesh::PetscVector< Number > &gradient) const override
Function to compute gradient.
static InputParameters validParams()
QuadraticMinimizeConstrained(const InputParameters ¶meters)
static InputParameters validParams()
This form function represents a constrained quadratic objective function: minimize f(x) = val + {i=1}...
virtual Real computeObjective() override
Function to compute objective.
std::vector< std::vector< Real > * > _parameters
Parameter values declared as reporter data.
virtual void close() override
virtual void computeEqualityGradient(libMesh::PetscMatrix< Number > &gradient) const override
Function to compute the gradient of the equality constraints/ This is the last call of the equality c...
const unsigned int _n_eq_cons
Number of equality constraint names.
virtual void set(const numeric_index_type i, const T value) override
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const Real & _result
Input objective function value.
IntRange< T > make_range(T beg, T end)
virtual void set(const numeric_index_type i, const numeric_index_type j, const T value) override
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
This form function simply represents a quadratic objective function: f(x) = val + {i=1}^N (x_i - a_i)...
const Real _eq_constraint
auto index_range(const T &sizable)
virtual void close() override