|
EpetraExt Development
|
00001 #ifndef EPETRA_MULTI_POINT_MODEL_EVAL_4D_OPT_HPP 00002 #define EPETRA_MULTI_POINT_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 00030 class EpetraMultiPointModelEval4DOpt : public EpetraExt::ModelEvaluator { 00031 public: 00032 00034 EpetraMultiPointModelEval4DOpt( 00035 Teuchos::RefCountPtr<Epetra_Comm> epetra_comm 00036 ,const double xt0 = 1.0 00037 ,const double xt1 = 1.0 00038 ,const double pt0 = 2.0 00039 ,const double pt1 = 0.0 00040 ,const double d = 10.0 00041 ,const double x00 = 1.0 00042 ,const double x01 = 1.0 00043 ,const double p00 = 2.0 00044 ,const double p01 = 0.0 00045 ,const double q0 = 0.0 00046 ); 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 bool isInitialized_; 00094 00095 Teuchos::RefCountPtr<const Epetra_Comm> epetra_comm_; 00096 00097 double xt0_; 00098 double xt1_; 00099 double pt0_; 00100 double pt1_; 00101 double d_; 00102 Teuchos::RefCountPtr<const Epetra_Map> map_x_; 00103 Teuchos::RefCountPtr<const Epetra_Map> map_p_; 00104 Teuchos::RefCountPtr<const Epetra_Map> map_q_; 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 Teuchos::RefCountPtr<Epetra_Vector> q_; 00116 Teuchos::RefCountPtr<Epetra_Vector> qL_; 00117 Teuchos::RefCountPtr<Epetra_Vector> qU_; 00118 00119 Teuchos::RefCountPtr<Epetra_CrsGraph> W_graph_; 00120 00121 }; 00122 00123 #endif // EPETRA_MULTI_POINT_MODEL_EVAL_4D_OPT_HPP
1.7.4