From db68877d20e73885e15c7e35ff07a28e8e6e6092 Mon Sep 17 00:00:00 2001 From: Markus Wolff <markus.wolff@twt-gmbh.de> Date: Fri, 17 May 2013 15:22:13 +0000 Subject: [PATCH] After a grid adaptation the pressure solution vector is now initialized using the old pressure solution -> the solution vector is used as initial guess by iterative linear solvers git-svn-id: svn://svn.iws.uni-stuttgart.de/DUMUX/dumux/trunk@10705 2fb0f335-1f38-0410-981e-8018bf24f1b0 --- .../2p/diffusion/fv/fvpressure2padaptive.hh | 30 ++++++++++++++++++- .../fvmpfal2pfaboundpressure2padaptive.hh | 15 ++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/dumux/decoupled/2p/diffusion/fv/fvpressure2padaptive.hh b/dumux/decoupled/2p/diffusion/fv/fvpressure2padaptive.hh index a8d1fbfbec..9ca270d91d 100644 --- a/dumux/decoupled/2p/diffusion/fv/fvpressure2padaptive.hh +++ b/dumux/decoupled/2p/diffusion/fv/fvpressure2padaptive.hh @@ -134,19 +134,47 @@ public: { int gridSize = problem_.gridView().size(0); // update RHS vector, matrix + if (problem_.gridAdapt().wasAdapted()) + { this->A_.setSize(gridSize, gridSize); // this->f_.resize(gridSize); this->pressure().resize(gridSize); + + for (int i = 0; i < gridSize; i++) + { + CellData& cellData = problem_.variables().cellData(i); + + switch (pressureType_) + { + case pw: + this->pressure()[i] = cellData.pressure(wPhaseIdx); + break; + case pn: + this->pressure()[i] = cellData.pressure(nPhaseIdx); + break; + case pglobal: + this->pressure()[i] = cellData.globalPressure(); + break; + } + } + ParentType::initializeMatrix(); + } + ParentType::update(); - velocity_.calculateVelocity(); + calculateVelocity(); return; } + void calculateVelocity() + { + velocity_.calculateVelocity(); + } + /*! \brief Adds pressure output to the output file * * \copydetails FVPressure2P::addOutputVtkFields(MultiWriter&) diff --git a/dumux/decoupled/2p/diffusion/fvmpfa/lmethod/fvmpfal2pfaboundpressure2padaptive.hh b/dumux/decoupled/2p/diffusion/fvmpfa/lmethod/fvmpfal2pfaboundpressure2padaptive.hh index 1e87f12b7f..910fb820ec 100644 --- a/dumux/decoupled/2p/diffusion/fvmpfa/lmethod/fvmpfal2pfaboundpressure2padaptive.hh +++ b/dumux/decoupled/2p/diffusion/fvmpfa/lmethod/fvmpfal2pfaboundpressure2padaptive.hh @@ -311,6 +311,21 @@ public: this->f_.resize(gridSize); this->pressure().resize(gridSize); + for (int i = 0; i < gridSize; i++) + { + CellData& cellData = problem_.variables().cellData(i); + + switch (pressureType_) + { + case pw: + this->pressure()[i] = cellData.pressure(wPhaseIdx); + break; + case pn: + this->pressure()[i] = cellData.pressure(nPhaseIdx); + break; + } + } + initializeMatrix(); updateInteractionVolumeInfo(); } -- GitLab