|
EpetraExt Development
|
00001 #ifndef EPETRA_MODEL_EVAL_4D_OPT_HPP 00002 #define EPETRA_MODEL_EVAL_4D_OPT_HPP 00003 00004 #include "EpetraExt_ModelEvaluator.h" 00005 #include "Epetra_Map.h" 00006 #include "Epetra_Vector.h" 00007 #include "Epetra_Comm.h" 00008 #include "Epetra_CrsGraph.h" 00009 00029 class EpetraModelEval4DOpt : public EpetraExt::ModelEvaluator { 00030 public: 00031 00033 EpetraModelEval4DOpt( 00034 const double xt0 = 1.0 00035 ,const double xt1 = 1.0 00036 ,const double pt0 = 2.0 00037 ,const double pt1 = 0.0 00038 ,const double d = 10.0 00039 ,const double x00 = 1.0 00040 ,const double x01 = 1.0 00041 ,const double p00 = 2.0 00042 ,const double p01 = 0.0 00043 ); 00044 00046 void setSupportDerivs( bool supportDerivs ); 00047 00049 void set_p_bounds( double pL0, double pL1, double pU0, double pU1 ); 00050 00052 void set_x_bounds( double xL0, double xL1, double xU0, double xU1 ); 00053 00056 00058 Teuchos::RefCountPtr<const Epetra_Map> get_x_map() const; 00060 Teuchos::RefCountPtr<const Epetra_Map> get_f_map() const; 00062 Teuchos::RefCountPtr<const Epetra_Map> get_p_map(int l) const; 00064 Teuchos::RefCountPtr<const Epetra_Map> get_g_map(int j) const; 00066 Teuchos::RefCountPtr<const Epetra_Vector> get_x_init() const; 00068 Teuchos::RefCountPtr<const Epetra_Vector> get_p_init(int l) const; 00070 Teuchos::RefCountPtr<const Epetra_Vector> get_x_lower_bounds() const; 00072 Teuchos::RefCountPtr<const Epetra_Vector> get_x_upper_bounds() const; 00074 Teuchos::RefCountPtr<const Epetra_Vector> get_p_lower_bounds(int l) const; 00076 Teuchos::RefCountPtr<const Epetra_Vector> get_p_upper_bounds(int l) const; 00078 Teuchos::RefCountPtr<Epetra_Operator> create_W() const; 00080 InArgs createInArgs() const; 00082 OutArgs createOutArgs() const; 00084 void evalModel( const InArgs& inArgs, const OutArgs& outArgs ) const; 00085 00087 00088 private: 00089 00090 // ///////////////////////////////////// 00091 // Private member data 00092 00093 double xt0_; 00094 double xt1_; 00095 double pt0_; 00096 double pt1_; 00097 double d_; 00098 00099 bool isInitialized_; 00100 bool supportDerivs_; 00101 00102 Teuchos::RefCountPtr<const Epetra_Comm> epetra_comm_; 00103 Teuchos::RefCountPtr<const Epetra_Map> map_x_; 00104 Teuchos::RefCountPtr<const Epetra_Map> map_p_; 00105 Teuchos::RefCountPtr<const Epetra_Map> map_g_; 00106 00107 Teuchos::RefCountPtr<Epetra_Vector> xL_; 00108 Teuchos::RefCountPtr<Epetra_Vector> xU_; 00109 Teuchos::RefCountPtr<Epetra_Vector> pL_; 00110 Teuchos::RefCountPtr<Epetra_Vector> pU_; 00111 Teuchos::RefCountPtr<Epetra_Vector> gL_; 00112 Teuchos::RefCountPtr<Epetra_Vector> gU_; 00113 Teuchos::RefCountPtr<Epetra_Vector> x0_; 00114 Teuchos::RefCountPtr<Epetra_Vector> p0_; 00115 00116 Teuchos::RefCountPtr<Epetra_CrsGraph> W_graph_; 00117 00118 // Note defined and not to be called 00119 EpetraModelEval4DOpt(); 00120 00121 }; 00122 00123 #endif // EPETRA_MODEL_EVAL_4D_OPT_HPP
1.7.4