More output. Substantially changed effect of do_impes parameter. In detail:

0. Writes total fluid volumes to octave and vtk output files.
(following considerations ONLY apply to IMPES mode: do_impes=true)
1. Now we do timestep safety evaluations for IMPES, a la Coats.
   This is done after the pressure computation.
2. If current timestep is unsafe, we set the new timestep to the safe one,
   divided by 1.5.
3. If minimum_stepsize is set, we will not further reduce the timestep once
   it is below the minimum (yes, this is not quite a "minimum").
All in all, timestepping and reporting should be reconsidered to make a
user-friendly yet controllable impes code. The current impes mode does
not interact well with timestep_file for instance.
This commit is contained in:
Atgeirr Flø Rasmussen 2011-04-12 09:44:39 +02:00
parent 389d7627f4
commit c0a1444fa4

View File

@ -343,15 +343,12 @@ public:
/// @brief
/// Explicit IMPES time step limit.
double explicitTimestepLimit(const std::vector<double>& totcompr,
const std::vector<double>& voldiscr,
const std::vector<double>& cellA, // num phases^2 * num cells, fortran ordering!
const std::vector<double>& faceA, // num phases^2 * num faces, fortran ordering!
double explicitTimestepLimit(const std::vector<double>& faceA, // num phases^2 * num faces, fortran ordering!
const std::vector<double>& phasemobf,
const std::vector<double>& phasemobf_deriv,
const double* surf_dens)
{
compr_quantities cq = { 3, &totcompr[0], &voldiscr[0], &cellA[0], &faceA[0], &phasemobf[0] };
compr_quantities cq = { 3, 0, 0, 0, &faceA[0], &phasemobf[0] };
return cfs_tpfa_impes_maxtime(grid_.c_grid(), &cq, &trans_[0], &porevol_[0], data_,
&phasemobf_deriv[0], surf_dens, gravity_);
}