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