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 set_p_bounds( double pL0, double pL1, double pU0, double pU1 );
00047 
00049   void set_x_bounds( double xL0, double xL1, double xU0, double xU1 );
00050 
00053 
00055   Teuchos::RefCountPtr<const Epetra_Map> get_x_map() const;
00057   Teuchos::RefCountPtr<const Epetra_Map> get_f_map() const;
00059   Teuchos::RefCountPtr<const Epetra_Map> get_p_map(int l) const;
00061   Teuchos::RefCountPtr<const Epetra_Map> get_g_map(int j) const;
00063   Teuchos::RefCountPtr<const Epetra_Vector> get_x_init() const;
00065   Teuchos::RefCountPtr<const Epetra_Vector> get_p_init(int l) const;
00067   Teuchos::RefCountPtr<const Epetra_Vector> get_x_lower_bounds() const;
00069   Teuchos::RefCountPtr<const Epetra_Vector> get_x_upper_bounds() const;
00071   Teuchos::RefCountPtr<const Epetra_Vector> get_p_lower_bounds(int l) const;
00073   Teuchos::RefCountPtr<const Epetra_Vector> get_p_upper_bounds(int l) const;
00075   Teuchos::RefCountPtr<Epetra_Operator> create_W() const;
00077   InArgs createInArgs() const;
00079   OutArgs createOutArgs() const;
00081   void evalModel( const InArgs& inArgs, const OutArgs& outArgs ) const;
00082 
00084 
00085 private:
00086 
00087   // /////////////////////////////////////
00088   // Private member data
00089 
00090   double    xt0_;
00091   double    xt1_;
00092   double    pt0_;
00093   double    pt1_;
00094   double    d_;
00095 
00096   bool      isInitialized_;
00097 
00098   Teuchos::RefCountPtr<const Epetra_Comm>  epetra_comm_;
00099   Teuchos::RefCountPtr<const Epetra_Map>   map_x_;
00100   Teuchos::RefCountPtr<const Epetra_Map>   map_p_;
00101   Teuchos::RefCountPtr<const Epetra_Map>   map_g_;
00102 
00103   Teuchos::RefCountPtr<Epetra_Vector> xL_;
00104   Teuchos::RefCountPtr<Epetra_Vector> xU_;
00105   Teuchos::RefCountPtr<Epetra_Vector> pL_;
00106   Teuchos::RefCountPtr<Epetra_Vector> pU_;
00107   Teuchos::RefCountPtr<Epetra_Vector> gL_;
00108   Teuchos::RefCountPtr<Epetra_Vector> gU_;
00109   Teuchos::RefCountPtr<Epetra_Vector> x0_;
00110   Teuchos::RefCountPtr<Epetra_Vector> p0_;
00111 
00112   Teuchos::RefCountPtr<Epetra_CrsGraph>  W_graph_;
00113 
00114 };
00115 
00116 #endif // EPETRA_MODEL_EVAL_4D_OPT_HPP

Generated on Thu Sep 18 12:31:44 2008 for EpetraExt by doxygen 1.3.9.1