11 #ifndef __MITTELMANNBNDRYCNTRLDIRI3DSIN_HPP__
12 #define __MITTELMANNBNDRYCNTRLDIRI3DSIN_HPP__
19 #include "configall_system.h"
28 # error "don't have header file for math"
38 # error "don't have header file for stdio"
42 using namespace Ipopt;
73 virtual bool get_starting_point(
Index n,
bool init_x,
Number*
x,
75 Index m,
bool init_lambda,
108 bool& use_x_scaling,
Index n,
110 bool& use_g_scaling,
Index m,
186 return k + (N_+2)*j + (N_+2)*(N_+2)*i;
192 return (k-1) + N_*(j-1) + N_*N_*(i-1);
225 printf(
"N has to be at least 1.");
228 printf(
"olaf N %d has to be at least 1.", N);
235 SetBaseParameters(N, alpha, lb_y, ub_y, lb_u, ub_u, d_const);
242 return 3. + 5.*(x1*(x1-1.)*x2*(x2-1.)*x3*(x3-1.));
Index y_index(Index i, Index j, Index k) const
Translation of mesh point indices to NLP variable indices for y(x_ijk)
Number * x
Input: Starting point Output: Optimal solution.
Number lb_u_
overall lower bound on u
Class for all IPOPT specific calculated quantities.
Number ub_y_
overall upper bound on y
Number Number Index Number Number Index Index Index index_style
indexing style for iRow & jCol, 0 for C style, 1 for Fortran style
virtual ~MittelmannBndryCntrlDiri3Dsin()
Number Number Index m
Number of constraints.
Base class for boundary control problems with Dirichlet boundary conditions, as formulated by Hans Mi...
Number Number * g
Values of constraint at final point (output only - ignored if set to NULL)
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.
double Number
Type of all numbers.
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.
Number lb_y_
overall lower bound on y
Index pde_index(Index i, Index j, Index k) 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_G_CB Eval_Grad_F_CB Eval_Jac_G_CB eval_jac_g
Callback function for evaluating Jacobian of constraint functions.
SolverReturn
enum for the return from the optimize algorithm (obviously we need to add more)
Number x1_grid(Index i) const
Compute the grid coordinate for given index in x1 direction.
Class implementating Example 1.
Number Number Index Number Number Index nele_jac
Number of non-zero elements in constraint Jacobian.
Class to organize all the data required by the algorithm.
Number Number Index Number Number Index Index Index Eval_F_CB Eval_G_CB eval_g
Callback function for evaluating constraint functions.
Number x3_grid(Index i) const
Compute the grid coordinate for given index in x3 direction.
virtual Number y_d_cont(Number x1, Number x2, Number x3) const
Target profile function for y.
int Index
Type of all indices of vectors, matrices etc.
Number Number * x_scaling
Number ub_u_
overall upper bound on u
virtual bool InitializeProblem(Index N)
Initialize internal parameters, where N is a parameter determining the problme size.
Number Number Index Number Number Index Index nele_hess
Number of non-zero elements in Hessian of Lagrangian.
Class implemented the NLP discretization of.
Number alpha_
Weighting parameter for the control target deviation functional in the objective. ...
Number * y_d_
Array for the target profile for y.
Number d_const_
Constant value of d appearing in elliptical equation.
Number Number Number * g_scaling
Number x2_grid(Index i) const
Compute the grid coordinate for given index in x2 direction.
IndexStyleEnum
overload this method to return the number of variables and constraints, and the number of non-zeros i...
MittelmannBndryCntrlDiri3Dsin()
Index N_
Number of mesh points in one dimension (excluding boundary)
Number Number Index Number Number Index Index Index Eval_F_CB eval_f
Callback function for evaluating objective function.