add item 13 in AQUCT

This commit is contained in:
Tor Harald Sandve
2021-09-17 14:41:48 +02:00
parent c0d7ca8136
commit c84d52d964
4 changed files with 28 additions and 13 deletions

View File

@@ -61,7 +61,8 @@ namespace Opm {
const double k_a_,
const double h_,
const double theta_,
const double p0_);
const double p0_,
const double T0_);
int aquiferID{};
int inftableID{};
@@ -76,6 +77,7 @@ namespace Opm {
double angle_fraction{};
std::optional<double> initial_pressure{};
std::optional<double> initial_temperature{};
std::vector<double> dimensionless_time{};
std::vector<double> dimensionless_pressure{};
@@ -104,6 +106,7 @@ namespace Opm {
serializer(this->thickness);
serializer(this->angle_fraction);
serializer(this->initial_pressure);
serializer(this->initial_temperature);
serializer(this->dimensionless_time);
serializer(this->dimensionless_pressure);
serializer(this->time_constant_);

View File

@@ -107,6 +107,9 @@ AquiferCT::AQUCT_data::AQUCT_data(const DeckRecord& record, const TableManager&
if (record.getItem<ParserKeywords::AQUCT::P_INI>().hasValue(0))
this->initial_pressure = record.getItem<ParserKeywords::AQUCT::P_INI>().getSIDouble(0);
if (record.getItem<ParserKeywords::AQUCT::TEMP_AQUIFER>().hasValue(0))
this->initial_temperature = record.getItem<ParserKeywords::AQUCT::TEMP_AQUIFER>().getSIDouble(0);
this->finishInitialisation(tables);
}
@@ -123,6 +126,7 @@ bool AquiferCT::AQUCT_data::operator==(const AquiferCT::AQUCT_data& other) const
&& (this->thickness == other.thickness)
&& (this->angle_fraction == other.angle_fraction)
&& (this->initial_pressure == other.initial_pressure)
&& (this->initial_temperature == other.initial_temperature)
&& (this->dimensionless_time == other.dimensionless_time)
&& (this->dimensionless_pressure == other.dimensionless_pressure)
&& (this->timeConstant() == other.timeConstant())
@@ -142,7 +146,8 @@ AquiferCT::AQUCT_data::AQUCT_data(const int aqID,
const double k_a_,
const double h_,
const double theta_,
const double p0_)
const double p0_,
const double T0_)
: aquiferID(aqID)
, inftableID(infID)
, pvttableID(pvtID)
@@ -154,20 +159,21 @@ AquiferCT::AQUCT_data::AQUCT_data(const int aqID,
, thickness(h_)
, angle_fraction(theta_)
, initial_pressure(p0_)
, initial_temperature(T0_)
{}
AquiferCT::AQUCT_data AquiferCT::AQUCT_data::serializeObject()
{
auto ret = AQUCT_data {
1, 2, 3, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0
1, 2, 3, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0
};
ret.dimensionless_time = std::vector<double>{ 12.0 };
ret.dimensionless_pressure = std::vector<double>{ 13.0 };
ret.time_constant_ = 14.0;
ret.influx_constant_ = 15.0;
ret.water_density_ = 16.0;
ret.water_viscosity_ = 17.0;
ret.dimensionless_time = std::vector<double>{ 13.0 };
ret.dimensionless_pressure = std::vector<double>{ 14.0 };
ret.time_constant_ = 15.0;
ret.influx_constant_ = 16.0;
ret.water_density_ = 17.0;
ret.water_viscosity_ = 18.0;
return ret;
}

View File

@@ -89,8 +89,7 @@
"item": 13,
"name": "TEMP_AQUIFER",
"value_type": "DOUBLE",
"dimension": "Temperature",
"comment": "Not supported"
"dimension": "Temperature"
}
]
}

View File

@@ -88,6 +88,12 @@ namespace {
return Opm::UnitSystem::newMETRIC().to_si(M::liquid_productivity_index, 1.0);
}
double temperatureUnit()
{
using M = Opm::UnitSystem::measure;
return Opm::UnitSystem::newMETRIC().to_si(M::temperature, 1.0);
}
double pressureUnit()
{
using M = Opm::UnitSystem::measure;
@@ -223,6 +229,7 @@ AQUTAB
const auto compr = 3.0e-5*compressibilityUnit();
const auto datumDepth = 2000.0*depthUnit();
const auto initialPressure = 269.0*pressureUnit();
const auto initialTemperature = 50*temperatureUnit();
const auto angle = 360.0; // degrees
const auto thickness = 10.0*depthUnit();
@@ -241,7 +248,7 @@ AQUTAB
auto& ct = properties
.emplace_back(aquiferID, influenceFunction, pvtTable,
porosity, datumDepth, compr, ro, ka,
thickness, angle / 360.0, initialPressure);
thickness, angle / 360.0, initialPressure, initialTemperature);
ct.dimensionless_time = tD;
ct.dimensionless_pressure = pD;
@@ -261,7 +268,7 @@ AQUTAB
auto& ct = properties
.emplace_back(aquiferID, influenceFunction, pvtTable,
porosity, datumDepth, compr, ro, ka,
thickness, angle / 360.0, initialPressure);
thickness, angle / 360.0, initialPressure, initialTemperature);
ct.dimensionless_time = tD;
ct.dimensionless_pressure = pD;