00001 #ifndef RSQPDIRECTSUNDANCEINTERFACE_H
00002 #define RSQPDIRECTSUNDANCEINTERFACE_H
00003
00004 #include "Sundance.h"
00005
00006 namespace Sundance
00007 {
00008 using namespace NLPEpetraPack;
00009
00010
00011
00012
00013
00014 class RSQPSundanceDirectInterface : virtual public NLPEpetraDirectSundance,
00015 virtual public RSQPSundanceInterface
00016 {
00017 public:
00018
00019 RSQPSundanceDirectInterface();
00020
00021
00022 virtual ~RSQPSundanceDirectInterface();
00023
00024
00025
00026 virtual const TSFSmartPtr<Epetra_MultiVector> create_D_r_hcl() const ;
00027
00028
00029 virtual void calc_D_r_g_r(const TSFSmartPtr<Epetra_Vector>& uk,
00030 const TSFSmartPtr<Epetra_Vector>& dk,
00031 TSFSmartPtr<Epetra_MultiVector>& Drk,
00032 const TSFSmartPtr<Epetra_Vector>& grk) const ;
00033
00034
00035
00036 protected:
00037
00038
00039
00040 void computeDrGr(const Expr& uk, const Expr& dk,
00041 Expr& Drk, Expr& grk) const ;
00042
00043 };
00044
00045 }
00046
00047 #endif