00001 #ifndef MIXEDHYBRIDCOMPOSITIONALTRANGENSTEIN1985 00002 #define MIXEDHYBRIDCOMPOSITIONALTRANGENSTEIN1985 00003 00004 #include "mixedhybridcompositionalfull.h" 00005 00006 00007 00008 class MixedHybridCompositionalTrangenstein1985 : public MixedHybridCompositionalFull 00009 { 00010 private: 00011 00012 protected: 00013 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); 00014 00015 00016 protected: 00017 void getNormalVdtFromPressure(VecDouble &Vq,OrthoMesh &mesh,HybridFaceBC &bc,const VecDouble &K,const VecDouble &vP,const VecDouble &vMobT); 00018 void getTotalMassFluxFromPressure(VecDouble &Vq,OrthoMesh &mesh,const HybridFaceBC &bc,const VecDouble &K,const VecDouble &vP,const Matrix &m_vC); 00019 00020 public: 00021 MixedHybridCompositionalTrangenstein1985(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); 00022 virtual void iterate(TransportBase &trans); 00023 virtual void printOutput(); 00024 00025 }; 00026 00027 #endif