mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
Fixed missing unit conversion for total fluid in place
This commit is contained in:
parent
67374531e3
commit
ccec17f81b
@ -158,6 +158,9 @@ namespace Opm
|
|||||||
const BlackoilState& x,
|
const BlackoilState& x,
|
||||||
WellState& xw);
|
WellState& xw);
|
||||||
|
|
||||||
|
void
|
||||||
|
FIPUnitConvert(const UnitSystem& units, V& fip);
|
||||||
|
|
||||||
void
|
void
|
||||||
FIPUnitConvert(const UnitSystem& units,
|
FIPUnitConvert(const UnitSystem& units,
|
||||||
std::vector<V>& fip);
|
std::vector<V>& fip);
|
||||||
|
@ -277,10 +277,14 @@ namespace Opm
|
|||||||
// Compute current FIP.
|
// Compute current FIP.
|
||||||
std::vector<V> COIP;
|
std::vector<V> COIP;
|
||||||
COIP = solver->computeFluidInPlace(state, fipnum);
|
COIP = solver->computeFluidInPlace(state, fipnum);
|
||||||
FIPUnitConvert(eclipse_state_->getUnits(), COIP);
|
|
||||||
V OOIP_totals = FIPTotals(OOIP, state);
|
V OOIP_totals = FIPTotals(OOIP, state);
|
||||||
V COIP_totals = FIPTotals(COIP, state);
|
V COIP_totals = FIPTotals(COIP, state);
|
||||||
|
|
||||||
|
//Convert to correct units
|
||||||
|
FIPUnitConvert(eclipse_state_->getUnits(), COIP);
|
||||||
|
FIPUnitConvert(eclipse_state_->getUnits(), OOIP_totals);
|
||||||
|
FIPUnitConvert(eclipse_state_->getUnits(), COIP_totals);
|
||||||
|
|
||||||
if ( terminal_output_ )
|
if ( terminal_output_ )
|
||||||
{
|
{
|
||||||
outputFluidInPlace(OOIP_totals, COIP_totals,eclipse_state_->getUnits(), 0);
|
outputFluidInPlace(OOIP_totals, COIP_totals,eclipse_state_->getUnits(), 0);
|
||||||
@ -667,21 +671,27 @@ namespace Opm
|
|||||||
SimulatorBase<Implementation>::FIPUnitConvert(const UnitSystem& units,
|
SimulatorBase<Implementation>::FIPUnitConvert(const UnitSystem& units,
|
||||||
std::vector<V>& fip)
|
std::vector<V>& fip)
|
||||||
{
|
{
|
||||||
if (units.getType() == UnitSystem::UnitType::UNIT_TYPE_FIELD) {
|
for (size_t i = 0; i < fip.size(); ++i) {
|
||||||
for (size_t i = 0; i < fip.size(); ++i) {
|
FIPUnitConvert(units, fip[i]);
|
||||||
fip[i][0] = unit::convert::to(fip[i][0], unit::stb);
|
|
||||||
fip[i][1] = unit::convert::to(fip[i][1], unit::stb);
|
|
||||||
fip[i][2] = unit::convert::to(fip[i][2], 1000*unit::cubic(unit::feet));
|
|
||||||
fip[i][3] = unit::convert::to(fip[i][3], 1000*unit::cubic(unit::feet));
|
|
||||||
fip[i][4] = unit::convert::to(fip[i][4], unit::stb);
|
|
||||||
fip[i][5] = unit::convert::to(fip[i][5], unit::stb);
|
|
||||||
fip[i][6] = unit::convert::to(fip[i][6], unit::psia);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (units.getType() == UnitSystem::UnitType::UNIT_TYPE_METRIC) {
|
}
|
||||||
for (size_t i = 0; i < fip.size(); ++i) {
|
|
||||||
fip[i][6] = unit::convert::to(fip[i][6], unit::barsa);
|
|
||||||
}
|
template <class Implementation>
|
||||||
|
void
|
||||||
|
SimulatorBase<Implementation>::FIPUnitConvert(const UnitSystem& units, V& fip)
|
||||||
|
{
|
||||||
|
if (units.getType() == UnitSystem::UnitType::UNIT_TYPE_FIELD) {
|
||||||
|
fip[0] = unit::convert::to(fip[0], unit::stb);
|
||||||
|
fip[1] = unit::convert::to(fip[1], unit::stb);
|
||||||
|
fip[2] = unit::convert::to(fip[2], 1000*unit::cubic(unit::feet));
|
||||||
|
fip[3] = unit::convert::to(fip[3], 1000*unit::cubic(unit::feet));
|
||||||
|
fip[4] = unit::convert::to(fip[4], unit::stb);
|
||||||
|
fip[5] = unit::convert::to(fip[5], unit::stb);
|
||||||
|
fip[6] = unit::convert::to(fip[6], unit::psia);
|
||||||
|
}
|
||||||
|
else if (units.getType() == UnitSystem::UnitType::UNIT_TYPE_METRIC) {
|
||||||
|
fip[6] = unit::convert::to(fip[6], unit::barsa);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -707,7 +717,7 @@ namespace Opm
|
|||||||
if ( ! is_parallel_run_ )
|
if ( ! is_parallel_run_ )
|
||||||
{
|
{
|
||||||
totals[5] = geo_.poreVolume().sum();
|
totals[5] = geo_.poreVolume().sum();
|
||||||
totals[6] = unit::convert::to((p * geo_.poreVolume() * hydrocarbon).sum() / ((geo_.poreVolume() * hydrocarbon).sum()), unit::barsa);
|
totals[6] = (p * geo_.poreVolume() * hydrocarbon).sum() / ((geo_.poreVolume() * hydrocarbon).sum());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -728,8 +738,8 @@ namespace Opm
|
|||||||
pinfo.computeReduction(inputs, operators, results);
|
pinfo.computeReduction(inputs, operators, results);
|
||||||
using std::get;
|
using std::get;
|
||||||
totals[5] = get<0>(results);
|
totals[5] = get<0>(results);
|
||||||
totals[6] = unit::convert::to(get<1>(results)/get<2>(results),
|
totals[6] = get<1>(results)/get<2>(results);
|
||||||
unit::barsa);
|
|
||||||
#else
|
#else
|
||||||
// This should never happen!
|
// This should never happen!
|
||||||
OPM_THROW(std::logic_error, "HAVE_MPI should be defined if we are running in parallel");
|
OPM_THROW(std::logic_error, "HAVE_MPI should be defined if we are running in parallel");
|
||||||
|
Loading…
Reference in New Issue
Block a user