Go to the documentation of this file.
10 #ifndef __MITTELMANNBNDRYCNTRLDIRI_HPP__
11 #define __MITTELMANNBNDRYCNTRLDIRI_HPP__
18 #include "configall_system.h"
27 # error "don't have header file for math"
37 # error "don't have header file for stdio"
41 using namespace Ipopt;
72 virtual bool get_starting_point(
Index n,
bool init_x,
Number*
x,
107 bool& use_x_scaling,
Index n,
109 bool& use_g_scaling,
Index m,
191 return (j-1) + N_*(i-1);
219 printf(
"N has to be at least 1.");
228 SetBaseParameters(N, alpha, lb_y, ub_y, lb_u, ub_u, d_const);
235 return 3. + 5.*(x1*(x1-1.)*x2*(x2-1.));
258 printf(
"N has to be at least 1.");
267 SetBaseParameters(N, alpha, lb_y, ub_y, lb_u, ub_u, d_const);
274 return 3. + 5.*(x1*(x1-1.)*x2*(x2-1.));
297 printf(
"N has to be at least 1.");
306 SetBaseParameters(N, alpha, lb_y, ub_y, lb_u, ub_u, d_const);
313 return 3. + 5.*(x1*(x1-1.)*x2*(x2-1.));
336 printf(
"N has to be at least 1.");
345 SetBaseParameters(N, alpha, lb_y, ub_y, lb_u, ub_u, d_const);
352 return 3. + 5.*(x1*(x1-1.)*x2*(x2-1.));
virtual Number y_d_cont(Number x1, Number x2) const
Target profile function for y.
Class implementating Example 3.
MittelmannBndryCntrlDiri1()
MittelmannBndryCntrlDiri4()
Class implementating Example 1.
Class to organize all the data required by the algorithm.
Number d_const_
Constant value of d appearing in elliptical equation.
virtual ~MittelmannBndryCntrlDiri3()
MittelmannBndryCntrlDiri3()
Number ub_y_
overall upper bound on y
Base class for boundary control problems with Dirichlet boundary conditions, as formulated by Hans Mi...
virtual Number y_d_cont(Number x1, Number x2) const
Target profile function for y.
virtual ~MittelmannBndryCntrlDiri1()
Class implemented the NLP discretization of.
virtual Number y_d_cont(Number x1, Number x2) const
Target profile function for y.
Class for all IPOPT specific calculated quantities.
virtual bool InitializeProblem(Index N)
Initialize internal parameters, where N is a parameter determining the problme size.
double Number
Type of all numbers.
Number Number Index Number Number Index Index Index Eval_F_CB Eval_G_CB eval_g
Callback function for evaluating constraint functions.
Number alpha_
Weighting parameter for the control target deviation functional in the objective.
Number x1_grid(Index i) const
Compute the grid coordinate for given index in x1 direction.
Number * y_d_
Array for the target profile for y.
Number * x
Input: Starting point Output: Optimal solution.
Number Number Index Number Number Index Index nele_hess
Number of non-zero elements in Hessian of Lagrangian.
Number Number Index Number Number Index Index Index Eval_F_CB Eval_G_CB Eval_Grad_F_CB Eval_Jac_G_CB eval_jac_g
Callback function for evaluating Jacobian of constraint functions.
virtual ~MittelmannBndryCntrlDiri4()
Number Number Index Number Number Index nele_jac
Number of non-zero elements in constraint Jacobian.
Number lb_y_
overall lower bound on y
int Index
Type of all indices of vectors, matrices etc.
Index pde_index(Index i, Index j) const
Translation of interior mesh point indices to the corresponding PDE constraint number.
Number Number Index Number Number Index Index Index Eval_F_CB eval_f
Callback function for evaluating objective function.
Index y_index(Index i, Index j) const
Translation of mesh point indices to NLP variable indices for y(x_ij)
Number Number Index Number Number Index Index Index Eval_F_CB Eval_G_CB Eval_Grad_F_CB Eval_Jac_G_CB Eval_H_CB eval_h
Callback function for evaluating Hessian of Lagrangian function.
Number x2_grid(Index i) const
Compute the grid coordinate for given index in x2 direction.
virtual ~MittelmannBndryCntrlDiri2()
Number Number Index Number Number Index Index Index Eval_F_CB Eval_G_CB Eval_Grad_F_CB eval_grad_f
Callback function for evaluating gradient of objective function.
virtual bool InitializeProblem(Index N)
Initialize internal parameters, where N is a parameter determining the problme size.
Number Number Number * g_scaling
MittelmannBndryCntrlDiri2()
Number Number * g
Values of constraint at final point (output only - ignored if set to NULL)
IndexStyleEnum
overload this method to return the number of variables and constraints, and the number of non-zeros i...
virtual bool InitializeProblem(Index N)
Initialize internal parameters, where N is a parameter determining the problme size.
Index N_
Number of mesh points in one dimension (excluding boundary)
Number ub_u_
overall upper bound on u
Class implementating Example 4.
Class implementating Example 2.
SolverReturn
enum for the return from the optimize algorithm (obviously we need to add more)
virtual Number y_d_cont(Number x1, Number x2) const
Target profile function for y.
Number lb_u_
overall lower bound on u
Number Number Index Number Number Index Index Index index_style
indexing style for iRow & jCol, 0 for C style, 1 for Fortran style
virtual bool InitializeProblem(Index N)
Initialize internal parameters, where N is a parameter determining the problme size.
Number Number * x_scaling
Number Number Index m
Number of constraints.