00001 #ifndef _MY__MixedHybridCompositionalSimplePw_ 00002 #define _MY_MixedHybridCompositionalSimplePw_ 00003 #include "mixedhybridcompositional.h" 00004 00005 00006 00007 00011 class MixedHybridCompositionalSimplePw : public MixedHybridCompositional 00012 { 00013 private: 00014 00015 protected: 00016 VecDouble m_vMobT; 00017 VecDouble m_vGravTerm; 00018 VecDouble m_vPc; 00019 VecDouble m_vKPc; 00020 bool m_bFirstIteration; 00021 ScalarBC m_pcbc; 00022 GeneralFunctionInterface &m_fpc; 00023 00024 void assemblySystem(SparseMatrix<double> &A,VecDouble &B, double dt, const VecDouble &vPw, const VecDouble &vK, const VecDouble &vPor, FlashCompositional &flash, GeneralFunctionInterface &fMobT, GeneralFunctionInterface &fFracFlux,GeneralFunctionInterface &fPc, double grav); 00025 00026 00027 public: 00028 MixedHybridCompositionalSimplePw(OrthoMesh &mesh,Function3D &fInitP,Function3D &fPrescribedVelocities, Function3D &fPrescribedPressure, Function3D &fTransportBC,const VecDouble &K, const VecDouble &vPor, GeneralFunctionInterface &fMobT, GeneralFunctionInterface &fFracFlux,GeneralFunctionInterface &pc,double grav, double dt, FlashCompositional &flash,LinearSolver &solver,int debugLevel); 00029 virtual ~MixedHybridCompositionalSimplePw(){} 00030 virtual void iterate(TransportBase &trans); 00031 void setScalarBC(OrthoMesh &mesh,ScalarBC &bc,Function3D &fPressure,Function3D &fTransBC,GeneralFunctionInterface &fPc,FlashCompositional &flash); 00032 00033 virtual void rollback(); 00034 }; 00035 00036 #endif