00001 #ifndef _MY_MixedHybridFullCompositional_ 00002 #define _MY_MixedHybridFullCompositional_ 00003 #include "mixedhybridcompositional.h" 00004 00005 00009 class MixedHybridCompositionalFull : public MixedHybridCompositional 00010 { 00011 protected: 00012 Matrix m_vDvDm,m_vC; 00013 VecDouble m_vMobT; 00014 VecDouble m_vMobRel; 00015 protected: 00016 void 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); 00017 00018 00019 protected: 00020 void getNormalVdtFromPressure(VecDouble &Vq,OrthoMesh &mesh,HybridFaceBC &bc,const VecDouble &K,const VecDouble &vP,const VecDouble &vMobT); 00021 void getTotalMassFluxFromPressure(VecDouble &Vq,OrthoMesh &mesh,const HybridFaceBC &bc,const VecDouble &K,const VecDouble &vP,const Matrix &MC); 00022 public: 00023 MixedHybridCompositionalFull(OrthoMesh &mesh,Function3D &fPInit,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=false); 00024 ~MixedHybridCompositionalFull(); 00025 virtual void iterate(TransportBase &trans); 00026 virtual void printOutput(); 00027 virtual void getNormalMassFluxAtFaces(VecDouble &vFNC); 00028 00029 }; 00030 00031 #endif