From 995e8411c5fd2517a59705438878d70ba9f1d034 Mon Sep 17 00:00:00 2001 From: Markus Wolff <markus.wolff@twt-gmbh.de> Date: Tue, 14 Feb 2012 18:30:42 +0000 Subject: [PATCH] fixed bug in 2p mpfa model - bug in initialization function git-svn-id: svn://svn.iws.uni-stuttgart.de/DUMUX/dumux/trunk@7781 2fb0f335-1f38-0410-981e-8018bf24f1b0 --- dumux/decoupled/2p/diffusion/fvmpfa/fvmpfaopressure2p.hh | 3 ++- dumux/decoupled/2p/diffusion/mimetic/croperator.hh | 2 +- dumux/decoupled/2p/diffusion/mimetic/mimeticpressure2p.hh | 6 +----- dumux/decoupled/common/fv/fvpressure.hh | 2 +- 4 files changed, 5 insertions(+), 8 deletions(-) diff --git a/dumux/decoupled/2p/diffusion/fvmpfa/fvmpfaopressure2p.hh b/dumux/decoupled/2p/diffusion/fvmpfa/fvmpfaopressure2p.hh index 18fe395c11..955707d348 100644 --- a/dumux/decoupled/2p/diffusion/fvmpfa/fvmpfaopressure2p.hh +++ b/dumux/decoupled/2p/diffusion/fvmpfa/fvmpfaopressure2p.hh @@ -115,6 +115,7 @@ class FVMPFAOPressure2P: public FVPressure<TypeTag> typedef Dune::FieldVector<Scalar, dim> FieldVector; //initializes the matrix to store the system of equations + friend class FVPressure<TypeTag>; void initializeMatrix(); //function which assembles the system of equations to be solved @@ -139,7 +140,7 @@ public: void initialize(bool solveTwice = true) { - initializeMatrix(); + ParentType::initialize(); updateMaterialLaws(); assemble(); diff --git a/dumux/decoupled/2p/diffusion/mimetic/croperator.hh b/dumux/decoupled/2p/diffusion/mimetic/croperator.hh index 3a590974c7..e643bc43c7 100644 --- a/dumux/decoupled/2p/diffusion/mimetic/croperator.hh +++ b/dumux/decoupled/2p/diffusion/mimetic/croperator.hh @@ -149,7 +149,7 @@ public: faceMapper_.update(); allMapper_.update(); - A_.setSize(size(), size()); + A_.setSize(size(), size(), nnz(is_)); assert(nnz(is_) != 0); diff --git a/dumux/decoupled/2p/diffusion/mimetic/mimeticpressure2p.hh b/dumux/decoupled/2p/diffusion/mimetic/mimeticpressure2p.hh index e0e462a0f1..06f344e6ca 100644 --- a/dumux/decoupled/2p/diffusion/mimetic/mimeticpressure2p.hh +++ b/dumux/decoupled/2p/diffusion/mimetic/mimeticpressure2p.hh @@ -314,13 +314,9 @@ void MimeticPressure2P<TypeTag>::updateMaterialLaws() //determine phase saturations from primary saturation variable Scalar satW = cellData.saturation(wPhaseIdx); - Scalar satNW = cellData.saturation(nPhaseIdx); - Scalar pc = MaterialLaw::pC(problem_.spatialParameters().materialLawParams(*eIt), satW); - cellData.setSaturation(wPhaseIdx, satW); - cellData.setSaturation(nPhaseIdx, satNW); - cellData.setCapillaryPressure(pc); + cellData.setCapillaryPressure(pc); // initialize mobilities Scalar mobilityW = MaterialLaw::krw(problem_.spatialParameters().materialLawParams(*eIt), satW) / viscosity_[wPhaseIdx]; diff --git a/dumux/decoupled/common/fv/fvpressure.hh b/dumux/decoupled/common/fv/fvpressure.hh index 3e1252ba88..d7adc8ba3d 100644 --- a/dumux/decoupled/common/fv/fvpressure.hh +++ b/dumux/decoupled/common/fv/fvpressure.hh @@ -174,7 +174,7 @@ public: A_.setSize(size_, size_); f_.resize(size_); pressure_.resize(size_); - initializeMatrix();// initialize sparse matrix + asImp_().initializeMatrix();// initialize sparse matrix pressure_ = 0; } -- GitLab