172 int size =
problem_.gridView().size(0);
173 ScalarSolutionType *pressureW = writer.allocateManagedBuffer(size);
174 ScalarSolutionType *pressureN = writer.allocateManagedBuffer(size);
175 ScalarSolutionType *totalConcentration1 = writer.allocateManagedBuffer (size);
176 ScalarSolutionType *totalConcentration2 = writer.allocateManagedBuffer (size);
177 ScalarSolutionType *pc = writer.allocateManagedBuffer(size);
178 ScalarSolutionType *saturationW = writer.allocateManagedBuffer(size);
179 ScalarSolutionType *densityWetting = writer.allocateManagedBuffer(size);
180 ScalarSolutionType *densityNonwetting = writer.allocateManagedBuffer(size);
181 ScalarSolutionType *mobilityW = writer.allocateManagedBuffer (size);
182 ScalarSolutionType *mobilityNW = writer.allocateManagedBuffer (size);
183 ScalarSolutionType *massfraction1W = writer.allocateManagedBuffer (size);
184 ScalarSolutionType *massfraction1NW = writer.allocateManagedBuffer (size);
186 ScalarSolutionType *volErr = writer.allocateManagedBuffer (size);
189 for (
int i = 0; i < size; i++)
192 CellData& cellData =
problem_.variables().cellData(i);
193 (*pressureW)[i] = cellData.pressure(wPhaseIdx);
194 (*pressureN)[i] = cellData.pressure(nPhaseIdx);
195 (*totalConcentration1)[i] = cellData.massConcentration(wCompIdx);
196 (*totalConcentration2)[i] = cellData.massConcentration(nCompIdx);
197 (*saturationW)[i] = cellData.saturation(wPhaseIdx);
201 (*pc)[i] = cellData.capillaryPressure();
202 (*densityWetting)[i] = cellData.density(wPhaseIdx);
203 (*densityNonwetting)[i] = cellData.density(nPhaseIdx);
204 (*mobilityW)[i] = cellData.mobility(wPhaseIdx);
205 (*mobilityNW)[i] = cellData.mobility(nPhaseIdx);
206 (*massfraction1W)[i] = cellData.massFraction(wPhaseIdx,wCompIdx);
207 (*massfraction1NW)[i] = cellData.massFraction(nPhaseIdx,wCompIdx);
208 (*volErr)[i] = cellData.volumeError();
211 writer.attachCellData(*pressureW,
"wetting pressure");
212 writer.attachCellData(*pressureN,
"nonwetting pressure");
213 writer.attachCellData(*saturationW,
"wetting saturation");
214 writer.attachCellData(*totalConcentration1,
"C^w from cellData");
215 writer.attachCellData(*totalConcentration2,
"C^n from cellData");
218 writer.attachCellData(*pc,
"capillary pressure");
219 writer.attachCellData(*densityWetting,
"wetting density");
220 writer.attachCellData(*densityNonwetting,
"nonwetting density");
221 writer.attachCellData(*mobilityW,
"mobility w_phase");
222 writer.attachCellData(*mobilityNW,
"mobility nw_phase");
223 std::ostringstream oss1, oss2;
224 oss1 <<
"mass fraction " << FluidSystem::componentName(0) <<
" in " << FluidSystem::phaseName(0) <<
"-phase";
225 writer.attachCellData(*massfraction1W, oss1.str());
226 oss2 <<
"mass fraction " << FluidSystem::componentName(0) <<
" in " << FluidSystem::phaseName(1) <<
"-phase";
227 writer.attachCellData(*massfraction1NW, oss2.str());
228 writer.attachCellData(*volErr,
"volume Error");
234 ScalarSolutionType *errorCorrPtr = writer.allocateManagedBuffer (size);
235 ScalarSolutionType *dv_dpPtr = writer.allocateManagedBuffer (size);
236 ScalarSolutionType *dV_dC1Ptr = writer.allocateManagedBuffer (size);
237 ScalarSolutionType *dV_dC2Ptr = writer.allocateManagedBuffer (size);
238 ScalarSolutionType *updEstimate1 = writer.allocateManagedBuffer (size);
239 ScalarSolutionType *updEstimate2 = writer.allocateManagedBuffer (size);
240 for (
int i = 0; i < size; i++)
242 CellData& cellData =
problem_.variables().cellData(i);
243 (*errorCorrPtr)[i] = cellData.errorCorrection();
244 (*dv_dpPtr)[i] = cellData.dv_dp();
245 (*dV_dC1Ptr)[i] = cellData.dv(wCompIdx);
246 (*dV_dC2Ptr)[i] = cellData.dv(nCompIdx);
250 writer.attachCellData(*errorCorrPtr,
"Error Correction");
251 writer.attachCellData(*dv_dpPtr,
"dv_dp");
252 writer.attachCellData(*dV_dC1Ptr,
"dV_dC1");
253 writer.attachCellData(*dV_dC2Ptr,
"dV_dC2");
254 writer.attachCellData(*updEstimate1,
"updEstimate comp 1");
255 writer.attachCellData(*updEstimate2,
"updEstimate comp 2");
261 ScalarSolutionType *pressurePV = writer.allocateManagedBuffer(size);
262 ScalarSolutionType *viscosityWetting = writer.allocateManagedBuffer(size);
263 ScalarSolutionType *viscosityNonwetting = writer.allocateManagedBuffer(size);
266 ScalarSolutionType *faceUpwindW = writer.allocateManagedBuffer(size);
267 ScalarSolutionType *faceUpwindN = writer.allocateManagedBuffer(size);
268 for (
int i = 0; i < size; i++)
270 CellData& cellData =
problem_.variables().cellData(i);
271 (*viscosityWetting)[i] = cellData.viscosity(wPhaseIdx);
272 (*viscosityNonwetting)[i] = cellData.viscosity(nPhaseIdx);
275 (*faceUpwindW)[i] = 0;
276 (*faceUpwindN)[i] = 0;
278 for(
int fIdx = 0; fIdx<cellData.fluxData().size(); fIdx++)
280 if(cellData.isUpwindCell(fIdx, contiWEqIdx))
281 (*faceUpwindW)[i] += pow(10,
static_cast<double>(3-fIdx));
282 if(cellData.isUpwindCell(fIdx, contiNEqIdx))
283 (*faceUpwindN)[i] += pow(10,
static_cast<double>(3-fIdx));
289 writer.attachCellData(*faceUpwindW,
"isUpwind w-phase");
290 writer.attachCellData(*faceUpwindN,
"isUpwind n-phase");
291 writer.attachCellData(*pressurePV,
"pressure (Primary Variable");
292 writer.attachCellData(*viscosityWetting,
"wetting viscosity");
293 writer.attachCellData(*viscosityNonwetting,
"nonwetting viscosity");
308 std::cout <<
"Writing debug for current time step\n";
312#if DUNE_MINIMAL_DEBUG_LEVEL <= 2
313 int size_ =
problem_.gridView().size(0);
318 Dune::BlockVector<Dune::FieldVector<double,1> > poro_(0.), perm_(0.);
319 poro_.resize(size_); perm_.resize(size_);
321 for (
const auto& element : elements(
problem_.gridView()))
324 int eIdxGlobal =
problem_.variables().index(element);
325 poro_[eIdxGlobal] =
problem_.spatialParams().porosity(element);
326 perm_[eIdxGlobal] =
problem_.spatialParams().intrinsicPermeability(element)[0][0];
337 Dune::BlockVector<Dune::FieldVector<double,1> > permY_(0.), permZ_(0.);
338 permY_.resize(size_); permZ_.resize(size_);
340 for (
const auto& element : elements(
problem_.gridView()))
343 int eIdxGlobal =
problem_.variables().index(element);
345 permY_[eIdxGlobal] =
problem_.spatialParams().intrinsicPermeability(element)[1][1];
347 permZ_[eIdxGlobal] =
problem_.spatialParams().intrinsicPermeability(element)[2][2];