MAST
npsol_optimization_interface.h
Go to the documentation of this file.
1 /*
2  * MAST: Multidisciplinary-design Adaptation and Sensitivity Toolkit
3  * Copyright (C) 2013-2019 Manav Bhatia
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18  */
19 
20 #ifndef __MAST_npsol_optimization_interface_h__
21 #define __MAST_npsol_optimization_interface_h__
22 
23 // C++ includes
24 #include <map>
25 
26 // MAST includes
28 
29 
30 
31 namespace MAST {
32 
34 
35  public:
36 
38 
40 
41  virtual void optimize();
42 
43  virtual void
45 
46  protected:
47 
48  void _print_termination_message(const int INFORM);
49 
50 
51  void (*_funobj) (int* mode,
52  int* n,
53  double* x,
54  double* f,
55  double* g,
56  int* nstate);
57 
58  void (*_funcon) (int* mode,
59  int* ncnln,
60  int* n,
61  int* ldJ,
62  int* needc,
63  double* x,
64  double* c,
65  double* cJac,
66  int* nstate);
67 
68  std::map<int, std::string> _exit_message;
69  std::map<int, std::string> _info_message;
70  };
71 }
72 
73 
74 
75 
76 
77 #endif // __MAST_npsol_optimization_interface_h__
std::map< int, std::string > _exit_message
std::map< int, std::string > _info_message
Provides the basic interface API for classes the provide implement optimization problems.
virtual void attach_function_evaluation_object(MAST::FunctionEvaluation &feval)
void(* _funobj)(int *mode, int *n, double *x, double *f, double *g, int *nstate)
void(* _funcon)(int *mode, int *ncnln, int *n, int *ldJ, int *needc, double *x, double *c, double *cJac, int *nstate)