Merge pull request #389 from akva2/hide_fprops_ifaces

don't use templated get and has interface from fieldpropsmanager
This commit is contained in:
Arne Morten Kvarving 2020-01-28 15:34:02 +01:00 committed by GitHub
commit 31d5347d73
4 changed files with 42 additions and 42 deletions

View File

@ -204,14 +204,14 @@ public:
const auto& fp = eclState.fieldProps();
// check if we are supposed to scale the Y axis of the capillary pressure
if (twoPhaseSystemType == EclOilWaterSystem) {
enableKrnScaling_ = fp.has<double>("KRO");
enableKrwScaling_ = fp.has<double>("KRW");
enablePcScaling_ = fp.has<double>("PCW") || fp.has<double>("SWATINIT");
enableKrnScaling_ = fp.has_double("KRO");
enableKrwScaling_ = fp.has_double("KRW");
enablePcScaling_ = fp.has_double("PCW") || fp.has_double("SWATINIT");
} else {
assert(twoPhaseSystemType == EclGasOilSystem);
enableKrnScaling_ = fp.has<double>("KRG");
enableKrwScaling_ = fp.has<double>("KRO");
enablePcScaling_ = fp.has<double>("PCG");
enableKrnScaling_ = fp.has_double("KRG");
enableKrwScaling_ = fp.has_double("KRO");
enablePcScaling_ = fp.has_double("PCG");
}
if (enablePcScaling_ && enableLeverettScaling_)

View File

@ -74,8 +74,8 @@ std::vector<T> compressed_copy(const std::vector<T>& global_vector, const std::v
std::vector<double> try_get(const FieldPropsManager& fp, const std::string& keyword, const std::vector<int>& compressedToCartesianElemIdx) {
if (fp.has<double>(keyword))
return compressed_copy(fp.get_global<double>(keyword), compressedToCartesianElemIdx);
if (fp.has_double(keyword))
return compressed_copy(fp.get_global_double(keyword), compressedToCartesianElemIdx);
return {};
}
@ -99,9 +99,9 @@ public:
const auto& fp = eclState.fieldProps();
if (useImbibition)
compressed_satnum = compressed_copy(fp.get_global<int>("IMBNUM"), compressedToCartesianElemIdx);
compressed_satnum = compressed_copy(fp.get_global_int("IMBNUM"), compressedToCartesianElemIdx);
else
compressed_satnum = compressed_copy(fp.get_global<int>("SATNUM"), compressedToCartesianElemIdx);
compressed_satnum = compressed_copy(fp.get_global_int("SATNUM"), compressedToCartesianElemIdx);
this->compressed_swl = try_get( fp, kwPrefix+"SWL", compressedToCartesianElemIdx);
this->compressed_sgl = try_get( fp, kwPrefix+"SGL", compressedToCartesianElemIdx);
@ -118,21 +118,21 @@ public:
this->compressed_krg = try_get( fp, kwPrefix+"KRG", compressedToCartesianElemIdx);
// _may_ be needed to calculate the Leverett capillary pressure scaling factor
if (fp.has<double>("PORO"))
this->compressed_poro = compressed_copy(fp.get_global<double>("PORO"), compressedToCartesianElemIdx);
if (fp.has_double("PORO"))
this->compressed_poro = compressed_copy(fp.get_global_double("PORO"), compressedToCartesianElemIdx);
if (fp.has<double>("PERMX"))
this->compressed_permx = compressed_copy(fp.get_global<double>("PERMX"), compressedToCartesianElemIdx);
if (fp.has_double("PERMX"))
this->compressed_permx = compressed_copy(fp.get_global_double("PERMX"), compressedToCartesianElemIdx);
else
this->compressed_permx = std::vector<double>(this->compressed_satnum.size());
if (fp.has<double>("PERMY"))
this->compressed_permy= compressed_copy(fp.get_global<double>("PERMY"), compressedToCartesianElemIdx);
if (fp.has_double("PERMY"))
this->compressed_permy= compressed_copy(fp.get_global_double("PERMY"), compressedToCartesianElemIdx);
else
this->compressed_permy= this->compressed_permx;
if (fp.has<double>("PERMZ"))
this->compressed_permz= compressed_copy(fp.get_global<double>("PERMZ"), compressedToCartesianElemIdx);
if (fp.has_double("PERMZ"))
this->compressed_permz= compressed_copy(fp.get_global_double("PERMZ"), compressedToCartesianElemIdx);
else
this->compressed_permz= this->compressed_permx;
}

View File

@ -173,8 +173,8 @@ public:
// copy the SATNUM grid property. in some cases this is not necessary, but it
// should not require much memory anyway...
satnumRegionArray_.resize(numCompressedElems);
if (eclState.fieldProps().has<int>("SATNUM")) {
const auto& satnumRawData = eclState.fieldProps().get_global<int>("SATNUM");
if (eclState.fieldProps().has_int("SATNUM")) {
const auto& satnumRawData = eclState.fieldProps().get_global_int("SATNUM");
for (unsigned elemIdx = 0; elemIdx < numCompressedElems; ++elemIdx) {
unsigned cartesianElemIdx = static_cast<unsigned>(compressedToCartesianElemIdx[elemIdx]);
satnumRegionArray_[elemIdx] = satnumRawData[cartesianElemIdx] - 1;
@ -186,8 +186,8 @@ public:
// create the information for the imbibition region (IMBNUM). By default this is
// the same as the saturation region (SATNUM)
imbnumRegionArray_ = satnumRegionArray_;
if (eclState.fieldProps().has<int>("IMBNUM")) {
const auto& imbnumRawData = eclState.fieldProps().get_global<int>("IMBNUM");
if (eclState.fieldProps().has_int("IMBNUM")) {
const auto& imbnumRawData = eclState.fieldProps().get_global_int("IMBNUM");
for (unsigned elemIdx = 0; elemIdx < numCompressedElems; ++elemIdx) {
int cartesianElemIdx = compressedToCartesianElemIdx[elemIdx];
imbnumRegionArray_[elemIdx] = imbnumRawData[cartesianElemIdx] - 1;

View File

@ -74,9 +74,9 @@ public:
const std::vector<int>& compressedToCartesianElemIdx)
{
const auto& fp = eclState.fieldProps();
bool has_heatcr = fp.has<double>("HEATCR");
bool has_thconr = fp.has<double>("THCONR");
bool has_thc = fp.has<double>("THCROCK") || fp.has<double>("THCOIL") || fp.has<double>("THCGAS") || fp.has<double>("THCWATER");
bool has_heatcr = fp.has_double("HEATCR");
bool has_thconr = fp.has_double("THCONR");
bool has_thc = fp.has_double("THCROCK") || fp.has_double("THCOIL") || fp.has_double("THCGAS") || fp.has_double("THCWATER");
if (has_heatcr)
initHeatcr_(deck, eclState, compressedToCartesianElemIdx);
@ -149,8 +149,8 @@ private:
HeatcrLawParams::setReferenceTemperature(FluidSystem::surfaceTemperature);
const auto& fp = eclState.fieldProps();
const std::vector<double>& heatcrData = fp.get_global<double>("HEATCR");
const std::vector<double>& heatcrtData = fp.get_global<double>("HEATCRT");
const std::vector<double>& heatcrData = fp.get_global_double("HEATCR");
const std::vector<double>& heatcrtData = fp.get_global_double("HEATCRT");
unsigned numElems = compressedToCartesianElemIdx.size();
solidEnergyLawParams_.resize(numElems);
for (unsigned elemIdx = 0; elemIdx < numElems; ++elemIdx) {
@ -176,7 +176,7 @@ private:
// initialize the element index -> SATNUM index mapping
const auto& fp = eclState.fieldProps();
const std::vector<int>& satnumData = fp.get_global<int>("SATNUM");
const std::vector<int>& satnumData = fp.get_global_int("SATNUM");
elemToSatnumIdx_.resize(compressedToCartesianElemIdx.size());
for (unsigned elemIdx = 0; elemIdx < compressedToCartesianElemIdx.size(); ++ elemIdx) {
unsigned cartesianElemIdx = compressedToCartesianElemIdx[elemIdx];
@ -232,11 +232,11 @@ private:
auto global_size = eclState.getInputGrid().getCartesianSize();
std::vector<double> thconrData(global_size, 0);
std::vector<double> thconsfData(global_size, 0);
if (fp.has<double>("THCONR"))
thconrData = fp.get_global<double>("THCONR");
if (fp.has_double("THCONR"))
thconrData = fp.get_global_double("THCONR");
if (fp.has<double>("THCONSF"))
thconsfData = fp.get_global<double>("THCONSF");
if (fp.has_double("THCONSF"))
thconsfData = fp.get_global_double("THCONSF");
unsigned numElems = compressedToCartesianElemIdx.size();
thermalConductionLawParams_.resize(numElems);
@ -268,21 +268,21 @@ private:
std::vector<double> thcrockData(global_size,0);
std::vector<double> thcoilData(global_size,0);
std::vector<double> thcgasData(global_size,0);
std::vector<double> thcwaterData = fp.get_global<double>("THCWATER");
std::vector<double> thcwaterData = fp.get_global_double("THCWATER");
if (fp.has<double>("THCROCK"))
thcrockData = fp.get_global<double>("THCROCK");
if (fp.has_double("THCROCK"))
thcrockData = fp.get_global_double("THCROCK");
if (fp.has<double>("THCOIL"))
thcoilData = fp.get_global<double>("THCOIL");
if (fp.has_double("THCOIL"))
thcoilData = fp.get_global_double("THCOIL");
if (fp.has<double>("THCGAS"))
thcgasData = fp.get_global<double>("THCGAS");
if (fp.has_double("THCGAS"))
thcgasData = fp.get_global_double("THCGAS");
if (fp.has<double>("THCWATER"))
thcwaterData = fp.get_global<double>("THCWATER");
if (fp.has_double("THCWATER"))
thcwaterData = fp.get_global_double("THCWATER");
const std::vector<double>& poroData = fp.get_global<double>("PORO");
const std::vector<double>& poroData = fp.get_global_double("PORO");
unsigned numElems = compressedToCartesianElemIdx.size();
thermalConductionLawParams_.resize(numElems);