making sure the aquifer cells have the correct cell volume

because AQUNUM can specify different cells volume, which is indepedent
of the grid coordinates.
This commit is contained in:
Kai Bao
2021-02-22 23:15:26 +01:00
parent c246dc6938
commit 65bde5d65b
+7 -1
View File
@@ -341,6 +341,11 @@ protected:
void createGrids_() void createGrids_()
{ {
grid_.reset(new Dune::CpGrid()); grid_.reset(new Dune::CpGrid());
std::unordered_map<size_t, double> aquifer_cell_volumes;
if (this->eclState().aquifer().hasNumericalAquifer()) {
aquifer_cell_volumes = this->eclState().aquifer().numericalAquifers().cellVolumes();
}
grid_->processEclipseFormat(mpiRank == 0 ? &this->eclState().getInputGrid() grid_->processEclipseFormat(mpiRank == 0 ? &this->eclState().getInputGrid()
: nullptr, : nullptr,
/*isPeriodic=*/false, /*isPeriodic=*/false,
@@ -348,7 +353,8 @@ protected:
/*clipZ=*/false, /*clipZ=*/false,
mpiRank == 0 ? this->eclState().fieldProps().porv(true) mpiRank == 0 ? this->eclState().fieldProps().porv(true)
: std::vector<double>(), : std::vector<double>(),
this->eclState().getInputNNC()); this->eclState().getInputNNC(),
aquifer_cell_volumes);
// we use separate grid objects: one for the calculation of the initial condition // we use separate grid objects: one for the calculation of the initial condition
// via EQUIL and one for the actual simulation. The reason is that the EQUIL code // via EQUIL and one for the actual simulation. The reason is that the EQUIL code