20 #ifndef LIBMESH_OPTIMIZATION_SYSTEM_H 21 #define LIBMESH_OPTIMIZATION_SYSTEM_H 33 template<
typename T>
class OptimizationSolver;
52 const std::string &
name,
53 const unsigned int number);
226 virtual void clear ()
override;
237 virtual void reinit ()
override;
242 virtual void solve ()
override;
263 virtual std::string
system_type ()
const override {
return "Optimization"; }
273 std::unique_ptr<NumericVector<Number>>
C_eq;
283 std::unique_ptr<NumericVector<Number>>
C_ineq;
307 #endif // LIBMESH_OPTIMIZATION_SYSTEM_H
Manages multiples systems of equations.
OptimizationSystem sys_type
void initialize_inequality_constraints_storage(const std::vector< std::set< numeric_index_type >> &constraint_jac_sparsity)
virtual void gradient(const NumericVector< Number > &X, NumericVector< Number > &grad_f, sys_type &S)=0
virtual ~ComputeEqualityConstraintsJacobian()
std::unique_ptr< NumericVector< Number > > lambda_ineq
virtual void hessian(const NumericVector< Number > &X, SparseMatrix< Number > &H_f, sys_type &S)=0
virtual ~ComputeInequalityConstraintsJacobian()
virtual void solve() override
virtual void init_data() override
virtual void inequality_constraints_jacobian(const NumericVector< Number > &X, SparseMatrix< Number > &C_ineq_jac, sys_type &S)=0
std::unique_ptr< NumericVector< Number > > C_eq
virtual ~ComputeLowerAndUpperBounds()
virtual ~ComputeHessian()
std::unique_ptr< SparseMatrix< Number > > C_ineq_jac
virtual std::string system_type() const override
virtual ~ComputeObjective()
virtual ~ComputeGradient()
unsigned int number() const
virtual void reinit() override
std::vector< std::set< numeric_index_type > > ineq_constraint_jac_sparsity
std::vector< std::set< numeric_index_type > > eq_constraint_jac_sparsity
std::unique_ptr< SparseMatrix< Number > > C_eq_jac
virtual void equality_constraints(const NumericVector< Number > &X, NumericVector< Number > &C_eq, sys_type &S)=0
std::unique_ptr< OptimizationSolver< Number > > optimization_solver
std::unique_ptr< NumericVector< Number > > lambda_eq
virtual void lower_and_upper_bounds(sys_type &S)=0
virtual ~ComputeEqualityConstraints()
virtual Number objective(const NumericVector< Number > &X, sys_type &S)=0
virtual void equality_constraints_jacobian(const NumericVector< Number > &X, SparseMatrix< Number > &C_eq_jac, sys_type &S)=0
void initialize_equality_constraints_storage(const std::vector< std::set< numeric_index_type >> &constraint_jac_sparsity)
virtual ~OptimizationSystem()
virtual void clear() override
const std::string & name() const
OptimizationSystem(EquationSystems &es, const std::string &name, const unsigned int number)
virtual void inequality_constraints(const NumericVector< Number > &X, NumericVector< Number > &C_ineq, sys_type &S)=0
Manages consistently variables, degrees of freedom, and coefficient vectors for explicit systems...
std::unique_ptr< NumericVector< Number > > C_ineq
virtual ~ComputeInequalityConstraints()
Manages consistently variables, degrees of freedom, coefficient vectors, and matrices for implicit sy...