00001 #ifndef _MY__MixedHybridCompositionalSimple_ 00002 #define _MY_MixedHybridCompositionalSimple_ 00003 #include "mixedhybridcompositional.h" 00004 00005 00027 class MixedHybridCompositionalSimple : public MixedHybridCompositional 00028 { 00029 private: 00030 double _maxStError; 00031 protected: 00032 00033 VecDouble v1,v2; 00034 00035 00036 VecDouble m_vMobT; 00037 VecDouble m_vGravTerm; 00039 protected: 00040 double assemblySystem(SparseMatrix<double> &A,VecDouble &B, double dt, const VecDouble &vP, const VecDouble &vK, const VecDouble &vPor, FlashCompositional &flash, GeneralFunctionInterface &fMobT, GeneralFunctionInterface &fRelMobilities,double grav); 00041 00042 void assemblyInitialSystem(SparseMatrix<double> &A,VecDouble &B, HybridFaceBC &bc,const VecDouble &vP, const VecDouble &vK, FlashCompositional &flash, GeneralFunctionInterface &fMobT, GeneralFunctionInterface &fRelMobilities,double grav); 00043 00044 public: 00045 MixedHybridCompositionalSimple(OrthoMesh &mesh,Function3D &fInitP,Function3D &fPrescribedVelocities, Function3D &fPrescribedPression, const VecDouble &K, const VecDouble &vPor,Function1D &fMobT,Function1D &fRelMobilities,double grav, double dt, FlashCompositional &flash,LinearSolver &solver,int debugLevel,bool bCheckNoBC=true); 00046 00047 void findInitialPressure(double referencePressure=100e+5,double tol=1e-5); 00048 00049 00050 void testSolution(OrthoMesh::Cell_It &cell, double dt, VecDouble& Bt,const VecDouble &por,const VecDouble &K,const VecDouble &P,const VecDouble &vPprev,const VecDouble &vMobT,const VecDouble &St); 00051 00052 00053 ~MixedHybridCompositionalSimple(){} 00054 virtual void iterate(TransportBase &trans); 00055 virtual void printOutput(); 00056 virtual void rollback(); 00057 00058 }; 00059 00060 #endif