175 int size =
problem_.gridView().size(0);
176 ScalarSolutionType *pressureW = writer.allocateManagedBuffer(size);
177 ScalarSolutionType *pressureN = writer.allocateManagedBuffer(size);
178 ScalarSolutionType *totalConcentration1 = writer.allocateManagedBuffer (size);
179 ScalarSolutionType *totalConcentration2 = writer.allocateManagedBuffer (size);
180 ScalarSolutionType *pc = writer.allocateManagedBuffer(size);
181 ScalarSolutionType *saturationW = writer.allocateManagedBuffer(size);
182 ScalarSolutionType *densityWetting = writer.allocateManagedBuffer(size);
183 ScalarSolutionType *densityNonwetting = writer.allocateManagedBuffer(size);
184 ScalarSolutionType *mobilityW = writer.allocateManagedBuffer (size);
185 ScalarSolutionType *mobilityNW = writer.allocateManagedBuffer (size);
186 ScalarSolutionType *massfraction1W = writer.allocateManagedBuffer (size);
187 ScalarSolutionType *massfraction1NW = writer.allocateManagedBuffer (size);
189 ScalarSolutionType *volErr = writer.allocateManagedBuffer (size);
192 for (
int i = 0; i < size; i++)
195 CellData& cellData =
problem_.variables().cellData(i);
196 (*pressureW)[i] = cellData.pressure(wPhaseIdx);
197 (*pressureN)[i] = cellData.pressure(nPhaseIdx);
198 (*totalConcentration1)[i] = cellData.massConcentration(wCompIdx);
199 (*totalConcentration2)[i] = cellData.massConcentration(nCompIdx);
200 (*saturationW)[i] = cellData.saturation(wPhaseIdx);
204 (*pc)[i] = cellData.capillaryPressure();
205 (*densityWetting)[i] = cellData.density(wPhaseIdx);
206 (*densityNonwetting)[i] = cellData.density(nPhaseIdx);
207 (*mobilityW)[i] = cellData.mobility(wPhaseIdx);
208 (*mobilityNW)[i] = cellData.mobility(nPhaseIdx);
209 (*massfraction1W)[i] = cellData.massFraction(wPhaseIdx,wCompIdx);
210 (*massfraction1NW)[i] = cellData.massFraction(nPhaseIdx,wCompIdx);
211 (*volErr)[i] = cellData.volumeError();
214 writer.attachCellData(*pressureW,
"wetting pressure");
215 writer.attachCellData(*pressureN,
"nonwetting pressure");
216 writer.attachCellData(*saturationW,
"wetting saturation");
217 writer.attachCellData(*totalConcentration1,
"C^w from cellData");
218 writer.attachCellData(*totalConcentration2,
"C^n from cellData");
221 writer.attachCellData(*pc,
"capillary pressure");
222 writer.attachCellData(*densityWetting,
"wetting density");
223 writer.attachCellData(*densityNonwetting,
"nonwetting density");
224 writer.attachCellData(*mobilityW,
"mobility w_phase");
225 writer.attachCellData(*mobilityNW,
"mobility nw_phase");
226 std::ostringstream oss1, oss2;
227 oss1 <<
"mass fraction " << FluidSystem::componentName(0) <<
" in " << FluidSystem::phaseName(0) <<
"-phase";
228 writer.attachCellData(*massfraction1W, oss1.str());
229 oss2 <<
"mass fraction " << FluidSystem::componentName(0) <<
" in " << FluidSystem::phaseName(1) <<
"-phase";
230 writer.attachCellData(*massfraction1NW, oss2.str());
231 writer.attachCellData(*volErr,
"volume Error");
237 ScalarSolutionType *errorCorrPtr = writer.allocateManagedBuffer (size);
238 ScalarSolutionType *dv_dpPtr = writer.allocateManagedBuffer (size);
239 ScalarSolutionType *dV_dC1Ptr = writer.allocateManagedBuffer (size);
240 ScalarSolutionType *dV_dC2Ptr = writer.allocateManagedBuffer (size);
241 ScalarSolutionType *updEstimate1 = writer.allocateManagedBuffer (size);
242 ScalarSolutionType *updEstimate2 = writer.allocateManagedBuffer (size);
243 for (
int i = 0; i < size; i++)
245 CellData& cellData =
problem_.variables().cellData(i);
246 (*errorCorrPtr)[i] = cellData.errorCorrection();
247 (*dv_dpPtr)[i] = cellData.dv_dp();
248 (*dV_dC1Ptr)[i] = cellData.dv(wCompIdx);
249 (*dV_dC2Ptr)[i] = cellData.dv(nCompIdx);
253 writer.attachCellData(*errorCorrPtr,
"Error Correction");
254 writer.attachCellData(*dv_dpPtr,
"dv_dp");
255 writer.attachCellData(*dV_dC1Ptr,
"dV_dC1");
256 writer.attachCellData(*dV_dC2Ptr,
"dV_dC2");
257 writer.attachCellData(*updEstimate1,
"updEstimate comp 1");
258 writer.attachCellData(*updEstimate2,
"updEstimate comp 2");
264 ScalarSolutionType *pressurePV = writer.allocateManagedBuffer(size);
265 ScalarSolutionType *viscosityWetting = writer.allocateManagedBuffer(size);
266 ScalarSolutionType *viscosityNonwetting = writer.allocateManagedBuffer(size);
269 ScalarSolutionType *faceUpwindW = writer.allocateManagedBuffer(size);
270 ScalarSolutionType *faceUpwindN = writer.allocateManagedBuffer(size);
271 for (
int i = 0; i < size; i++)
273 CellData& cellData =
problem_.variables().cellData(i);
274 (*viscosityWetting)[i] = cellData.viscosity(wPhaseIdx);
275 (*viscosityNonwetting)[i] = cellData.viscosity(nPhaseIdx);
278 (*faceUpwindW)[i] = 0;
279 (*faceUpwindN)[i] = 0;
281 for(
int fIdx = 0; fIdx<cellData.fluxData().size(); fIdx++)
283 if(cellData.isUpwindCell(fIdx, contiWEqIdx))
284 (*faceUpwindW)[i] += pow(10,
static_cast<double>(3-fIdx));
285 if(cellData.isUpwindCell(fIdx, contiNEqIdx))
286 (*faceUpwindN)[i] += pow(10,
static_cast<double>(3-fIdx));
292 writer.attachCellData(*faceUpwindW,
"isUpwind w-phase");
293 writer.attachCellData(*faceUpwindN,
"isUpwind n-phase");
294 writer.attachCellData(*pressurePV,
"pressure (Primary Variable");
295 writer.attachCellData(*viscosityWetting,
"wetting viscosity");
296 writer.attachCellData(*viscosityNonwetting,
"nonwetting viscosity");
311 std::cout <<
"Writing debug for current time step\n";
315#if DUNE_MINIMAL_DEBUG_LEVEL <= 2
316 int size_ =
problem_.gridView().size(0);
321 Dune::BlockVector<Dune::FieldVector<double,1> > poro_(0.), perm_(0.);
322 poro_.resize(size_); perm_.resize(size_);
324 for (
const auto& element : elements(
problem_.gridView()))
327 int eIdxGlobal =
problem_.variables().index(element);
328 poro_[eIdxGlobal] =
problem_.spatialParams().porosity(element);
329 perm_[eIdxGlobal] =
problem_.spatialParams().intrinsicPermeability(element)[0][0];
340 Dune::BlockVector<Dune::FieldVector<double,1> > permY_(0.), permZ_(0.);
341 permY_.resize(size_); permZ_.resize(size_);
343 for (
const auto& element : elements(
problem_.gridView()))
346 int eIdxGlobal =
problem_.variables().index(element);
348 permY_[eIdxGlobal] =
problem_.spatialParams().intrinsicPermeability(element)[1][1];
350 permZ_[eIdxGlobal] =
problem_.spatialParams().intrinsicPermeability(element)[2][2];