Merge pull request #2798 from totto82/outputTemperature

output temperature when TEMP is set
This commit is contained in:
Bård Skaflestad 2020-09-24 22:06:20 +02:00 committed by GitHub
commit 362c84a01c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -347,9 +347,6 @@ public:
} }
} }
// always allocate memory for temperature
temperature_.resize(bufferSize, 0.0);
// field data should be allocated // field data should be allocated
// 1) when we want to restart // 1) when we want to restart
// 2) when it is ask for by the user via restartConfig // 2) when it is ask for by the user via restartConfig
@ -369,6 +366,12 @@ public:
rstKeywords["PRES"] = 0; rstKeywords["PRES"] = 0;
rstKeywords["PRESSURE"] = 0; rstKeywords["PRESSURE"] = 0;
// allocate memory for temperature
if (enableEnergy || rstKeywords["TEMP"]) {
temperature_.resize(bufferSize, 0.0);
rstKeywords["TEMP"] = 0;
}
if (FluidSystem::phaseIsActive(oilPhaseIdx)) if (FluidSystem::phaseIsActive(oilPhaseIdx))
rstKeywords["SOIL"] = 0; rstKeywords["SOIL"] = 0;
if (FluidSystem::phaseIsActive(gasPhaseIdx)) if (FluidSystem::phaseIsActive(gasPhaseIdx))
@ -559,7 +562,7 @@ public:
Opm::Valgrind::CheckDefined(oilPressure_[globalDofIdx]); Opm::Valgrind::CheckDefined(oilPressure_[globalDofIdx]);
} }
if (enableEnergy) { if (temperature_.size() > 0) {
temperature_[globalDofIdx] = Opm::getValue(fs.temperature(oilPhaseIdx)); temperature_[globalDofIdx] = Opm::getValue(fs.temperature(oilPhaseIdx));
Opm::Valgrind::CheckDefined(temperature_[globalDofIdx]); Opm::Valgrind::CheckDefined(temperature_[globalDofIdx]);
} }
@ -956,7 +959,7 @@ public:
sol.insert("PRESSURE", Opm::UnitSystem::measure::pressure, std::move(oilPressure_), Opm::data::TargetType::RESTART_SOLUTION); sol.insert("PRESSURE", Opm::UnitSystem::measure::pressure, std::move(oilPressure_), Opm::data::TargetType::RESTART_SOLUTION);
} }
if (enableEnergy) { if (temperature_.size() > 0) {
sol.insert("TEMP", Opm::UnitSystem::measure::temperature, std::move(temperature_), Opm::data::TargetType::RESTART_SOLUTION); sol.insert("TEMP", Opm::UnitSystem::measure::temperature, std::move(temperature_), Opm::data::TargetType::RESTART_SOLUTION);
} }
@ -1697,7 +1700,7 @@ public:
if (oilPressure_.size() > 0 && sol.has("PRESSURE")) if (oilPressure_.size() > 0 && sol.has("PRESSURE"))
oilPressure_[elemIdx] = sol.data("PRESSURE")[globalDofIndex]; oilPressure_[elemIdx] = sol.data("PRESSURE")[globalDofIndex];
if (enableEnergy && sol.has("TEMP")) if (temperature_.size() > 0 && sol.has("TEMP"))
temperature_[elemIdx] = sol.data("TEMP")[globalDofIndex]; temperature_[elemIdx] = sol.data("TEMP")[globalDofIndex];
if (rs_.size() > 0 && sol.has("RS")) if (rs_.size() > 0 && sol.has("RS"))
rs_[elemIdx] = sol.data("RS")[globalDofIndex]; rs_[elemIdx] = sol.data("RS")[globalDofIndex];
@ -1751,7 +1754,7 @@ public:
} }
} }
if (enableEnergy) if (temperature_.size() > 0)
fs.setTemperature(temperature_[elemIdx]); fs.setTemperature(temperature_[elemIdx]);
if (rs_.size() > 0) if (rs_.size() > 0)
fs.setRs(rs_[elemIdx]); fs.setRs(rs_[elemIdx]);