diff --git a/dumux/decoupled/2p/diffusion/fvmpfa/fvmpfaopressure2p.hh b/dumux/decoupled/2p/diffusion/fvmpfa/fvmpfaopressure2p.hh index 18fe395c119bf7ce28c1781e1ad7569c161a4549..955707d348e8969a85544b2fbad74c6466892a37 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 3a590974c74691c29fa72d870d37689daccb183d..e643bc43c7eba5b277d7f6f6e52fb85d2551bd1f 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 e0e462a0f1a8222840e5acb3d97da2220369dd39..06f344e6ca92012a2243f5460a11199f1aa84e81 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 3e1252ba88d49c9361939dad57da7e474e2a634e..d7adc8ba3de22bc4fe8a3a285656d4939e6948fe 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; }