EpetraMultiPointModelEval4DOpt.hpp

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

Generated on Wed May 12 21:24:46 2010 for EpetraExt by  doxygen 1.4.7