EpetraModelEval4DOpt.hpp

Go to the documentation of this file.
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

Generated on Wed May 12 21:40:37 2010 for EpetraExt by  doxygen 1.4.7