add item 13 in AQUCT
This commit is contained in:
@@ -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_);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -89,8 +89,7 @@
|
||||
"item": 13,
|
||||
"name": "TEMP_AQUIFER",
|
||||
"value_type": "DOUBLE",
|
||||
"dimension": "Temperature",
|
||||
"comment": "Not supported"
|
||||
"dimension": "Temperature"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user