EclGenericOutputBlackoilModule: unify how data tables are specified

This commit is contained in:
Arne Morten Kvarving 2023-08-07 16:24:44 +02:00
parent 91b60769e3
commit b11fd04735

View File

@ -741,80 +741,80 @@ assignToSolution(data::Solution& sol)
target); target);
}; };
const auto baseSolutionArrays = std::vector<DataEntry> { const auto baseSolutionArrays = std::array {
{"1OVERBG", UnitSystem::measure::gas_inverse_formation_volume_factor, invB_[gasPhaseIdx]}, DataEntry{"1OVERBG", UnitSystem::measure::gas_inverse_formation_volume_factor, invB_[gasPhaseIdx]},
{"1OVERBO", UnitSystem::measure::oil_inverse_formation_volume_factor, invB_[oilPhaseIdx]}, DataEntry{"1OVERBO", UnitSystem::measure::oil_inverse_formation_volume_factor, invB_[oilPhaseIdx]},
{"1OVERBW", UnitSystem::measure::water_inverse_formation_volume_factor, invB_[waterPhaseIdx]}, DataEntry{"1OVERBW", UnitSystem::measure::water_inverse_formation_volume_factor, invB_[waterPhaseIdx]},
{"FLOGASI+", UnitSystem::measure::gas_surface_rate, flowsi_[gasCompIdx]}, DataEntry{"FLOGASI+", UnitSystem::measure::gas_surface_rate, flowsi_[gasCompIdx]},
{"FLOGASJ+", UnitSystem::measure::gas_surface_rate, flowsj_[gasCompIdx]}, DataEntry{"FLOGASJ+", UnitSystem::measure::gas_surface_rate, flowsj_[gasCompIdx]},
{"FLOGASK+", UnitSystem::measure::gas_surface_rate, flowsk_[gasCompIdx]}, DataEntry{"FLOGASK+", UnitSystem::measure::gas_surface_rate, flowsk_[gasCompIdx]},
{"FLOOILI+", UnitSystem::measure::liquid_surface_rate, flowsi_[oilCompIdx]}, DataEntry{"FLOOILI+", UnitSystem::measure::liquid_surface_rate, flowsi_[oilCompIdx]},
{"FLOOILJ+", UnitSystem::measure::liquid_surface_rate, flowsj_[oilCompIdx]}, DataEntry{"FLOOILJ+", UnitSystem::measure::liquid_surface_rate, flowsj_[oilCompIdx]},
{"FLOOILK+", UnitSystem::measure::liquid_surface_rate, flowsk_[oilCompIdx]}, DataEntry{"FLOOILK+", UnitSystem::measure::liquid_surface_rate, flowsk_[oilCompIdx]},
{"FLOWATI+", UnitSystem::measure::liquid_surface_rate, flowsi_[waterCompIdx]}, DataEntry{"FLOWATI+", UnitSystem::measure::liquid_surface_rate, flowsi_[waterCompIdx]},
{"FLOWATJ+", UnitSystem::measure::liquid_surface_rate, flowsj_[waterCompIdx]}, DataEntry{"FLOWATJ+", UnitSystem::measure::liquid_surface_rate, flowsj_[waterCompIdx]},
{"FLOWATK+", UnitSystem::measure::liquid_surface_rate, flowsk_[waterCompIdx]}, DataEntry{"FLOWATK+", UnitSystem::measure::liquid_surface_rate, flowsk_[waterCompIdx]},
{"FLRGASI+", UnitSystem::measure::rate, floresi_[gasCompIdx]}, DataEntry{"FLRGASI+", UnitSystem::measure::rate, floresi_[gasCompIdx]},
{"FLRGASJ+", UnitSystem::measure::rate, floresj_[gasCompIdx]}, DataEntry{"FLRGASJ+", UnitSystem::measure::rate, floresj_[gasCompIdx]},
{"FLRGASK+", UnitSystem::measure::rate, floresk_[gasCompIdx]}, DataEntry{"FLRGASK+", UnitSystem::measure::rate, floresk_[gasCompIdx]},
{"FLROILI+", UnitSystem::measure::rate, floresi_[oilCompIdx]}, DataEntry{"FLROILI+", UnitSystem::measure::rate, floresi_[oilCompIdx]},
{"FLROILJ+", UnitSystem::measure::rate, floresj_[oilCompIdx]}, DataEntry{"FLROILJ+", UnitSystem::measure::rate, floresj_[oilCompIdx]},
{"FLROILK+", UnitSystem::measure::rate, floresk_[oilCompIdx]}, DataEntry{"FLROILK+", UnitSystem::measure::rate, floresk_[oilCompIdx]},
{"FLRWATI+", UnitSystem::measure::rate, floresi_[waterCompIdx]}, DataEntry{"FLRWATI+", UnitSystem::measure::rate, floresi_[waterCompIdx]},
{"FLRWATJ+", UnitSystem::measure::rate, floresj_[waterCompIdx]}, DataEntry{"FLRWATJ+", UnitSystem::measure::rate, floresj_[waterCompIdx]},
{"FLRWATK+", UnitSystem::measure::rate, floresk_[waterCompIdx]}, DataEntry{"FLRWATK+", UnitSystem::measure::rate, floresk_[waterCompIdx]},
{"FOAM", UnitSystem::measure::identity, cFoam_}, DataEntry{"FOAM", UnitSystem::measure::identity, cFoam_},
{"GASKR", UnitSystem::measure::identity, relativePermeability_[gasPhaseIdx]}, DataEntry{"GASKR", UnitSystem::measure::identity, relativePermeability_[gasPhaseIdx]},
{"GAS_DEN", UnitSystem::measure::density, density_[gasPhaseIdx]}, DataEntry{"GAS_DEN", UnitSystem::measure::density, density_[gasPhaseIdx]},
{"GAS_VISC", UnitSystem::measure::viscosity, viscosity_[gasPhaseIdx]}, DataEntry{"GAS_VISC", UnitSystem::measure::viscosity, viscosity_[gasPhaseIdx]},
{"OILKR", UnitSystem::measure::identity, relativePermeability_[oilPhaseIdx]}, DataEntry{"OILKR", UnitSystem::measure::identity, relativePermeability_[oilPhaseIdx]},
{"OIL_DEN", UnitSystem::measure::density, density_[oilPhaseIdx]}, DataEntry{"OIL_DEN", UnitSystem::measure::density, density_[oilPhaseIdx]},
{"OIL_VISC", UnitSystem::measure::viscosity, viscosity_[oilPhaseIdx]}, DataEntry{"OIL_VISC", UnitSystem::measure::viscosity, viscosity_[oilPhaseIdx]},
{"PBUB", UnitSystem::measure::pressure, bubblePointPressure_}, DataEntry{"PBUB", UnitSystem::measure::pressure, bubblePointPressure_},
{"PCOG", UnitSystem::measure::pressure, pcog_}, DataEntry{"PCOG", UnitSystem::measure::pressure, pcog_},
{"PCOW", UnitSystem::measure::pressure, pcow_}, DataEntry{"PCOW", UnitSystem::measure::pressure, pcow_},
{"PDEW", UnitSystem::measure::pressure, dewPointPressure_}, DataEntry{"PDEW", UnitSystem::measure::pressure, dewPointPressure_},
{"POLYMER", UnitSystem::measure::identity, cPolymer_}, DataEntry{"POLYMER", UnitSystem::measure::identity, cPolymer_},
{"PPCW", UnitSystem::measure::pressure, ppcw_}, DataEntry{"PPCW", UnitSystem::measure::pressure, ppcw_},
{"PRESROCC", UnitSystem::measure::pressure, minimumOilPressure_}, DataEntry{"PRESROCC", UnitSystem::measure::pressure, minimumOilPressure_},
{"PRESSURE", UnitSystem::measure::pressure, fluidPressure_}, DataEntry{"PRESSURE", UnitSystem::measure::pressure, fluidPressure_},
{"RS", UnitSystem::measure::gas_oil_ratio, rs_}, DataEntry{"RS", UnitSystem::measure::gas_oil_ratio, rs_},
{"RSSAT", UnitSystem::measure::gas_oil_ratio, gasDissolutionFactor_}, DataEntry{"RSSAT", UnitSystem::measure::gas_oil_ratio, gasDissolutionFactor_},
{"RV", UnitSystem::measure::oil_gas_ratio, rv_}, DataEntry{"RV", UnitSystem::measure::oil_gas_ratio, rv_},
{"RVSAT", UnitSystem::measure::oil_gas_ratio, oilVaporizationFactor_}, DataEntry{"RVSAT", UnitSystem::measure::oil_gas_ratio, oilVaporizationFactor_},
{"SALT", UnitSystem::measure::salinity, cSalt_}, DataEntry{"SALT", UnitSystem::measure::salinity, cSalt_},
{"SOMAX", UnitSystem::measure::identity, soMax_}, DataEntry{"SOMAX", UnitSystem::measure::identity, soMax_},
{"SSOLVENT", UnitSystem::measure::identity, sSol_}, DataEntry{"SSOLVENT", UnitSystem::measure::identity, sSol_},
{"SWMAX", UnitSystem::measure::identity, swMax_}, DataEntry{"SWMAX", UnitSystem::measure::identity, swMax_},
{"WATKR", UnitSystem::measure::identity, relativePermeability_[waterPhaseIdx]}, DataEntry{"WATKR", UnitSystem::measure::identity, relativePermeability_[waterPhaseIdx]},
{"WAT_DEN", UnitSystem::measure::density, density_[waterPhaseIdx]}, DataEntry{"WAT_DEN", UnitSystem::measure::density, density_[waterPhaseIdx]},
{"WAT_VISC", UnitSystem::measure::viscosity, viscosity_[waterPhaseIdx]}, DataEntry{"WAT_VISC", UnitSystem::measure::viscosity, viscosity_[waterPhaseIdx]},
}; };
const auto extendedSolutionArrays = std::vector<DataEntry> { const auto extendedSolutionArrays = std::array {
{"BIOFILM", UnitSystem::measure::identity, cBiofilm_}, DataEntry{"BIOFILM", UnitSystem::measure::identity, cBiofilm_},
{"CALCITE", UnitSystem::measure::identity, cCalcite_}, DataEntry{"CALCITE", UnitSystem::measure::identity, cCalcite_},
{"DRSDTCON", UnitSystem::measure::gas_oil_ratio_rate, drsdtcon_}, DataEntry{"DRSDTCON", UnitSystem::measure::gas_oil_ratio_rate, drsdtcon_},
{"KRNSW_GO", UnitSystem::measure::identity, krnSwMdcGo_}, DataEntry{"KRNSW_GO", UnitSystem::measure::identity, krnSwMdcGo_},
{"KRNSW_OW", UnitSystem::measure::identity, krnSwMdcOw_}, DataEntry{"KRNSW_OW", UnitSystem::measure::identity, krnSwMdcOw_},
{"MICROBES", UnitSystem::measure::density, cMicrobes_}, DataEntry{"MICROBES", UnitSystem::measure::density, cMicrobes_},
{"OXYGEN", UnitSystem::measure::density, cOxygen_}, DataEntry{"OXYGEN", UnitSystem::measure::density, cOxygen_},
{"PCSWM_GO", UnitSystem::measure::identity, pcSwMdcGo_}, DataEntry{"PCSWM_GO", UnitSystem::measure::identity, pcSwMdcGo_},
{"PCSWM_OW", UnitSystem::measure::identity, pcSwMdcOw_}, DataEntry{"PCSWM_OW", UnitSystem::measure::identity, pcSwMdcOw_},
{"PERMFACT", UnitSystem::measure::identity, permFact_}, DataEntry{"PERMFACT", UnitSystem::measure::identity, permFact_},
{"PORV_RC", UnitSystem::measure::identity, rockCompPorvMultiplier_}, DataEntry{"PORV_RC", UnitSystem::measure::identity, rockCompPorvMultiplier_},
{"PRES_OVB", UnitSystem::measure::pressure, overburdenPressure_}, DataEntry{"PRES_OVB", UnitSystem::measure::pressure, overburdenPressure_},
{"RSW", UnitSystem::measure::gas_oil_ratio, rsw_}, DataEntry{"RSW", UnitSystem::measure::gas_oil_ratio, rsw_},
{"RVW", UnitSystem::measure::oil_gas_ratio, rvw_}, DataEntry{"RVW", UnitSystem::measure::oil_gas_ratio, rvw_},
{"SALTP", UnitSystem::measure::identity, pSalt_}, DataEntry{"SALTP", UnitSystem::measure::identity, pSalt_},
{"SS_X", UnitSystem::measure::identity, extboX_}, DataEntry{"SS_X", UnitSystem::measure::identity, extboX_},
{"SS_Y", UnitSystem::measure::identity, extboY_}, DataEntry{"SS_Y", UnitSystem::measure::identity, extboY_},
{"SS_Z", UnitSystem::measure::identity, extboZ_}, DataEntry{"SS_Z", UnitSystem::measure::identity, extboZ_},
{"STD_CO2", UnitSystem::measure::identity, mFracCo2_}, DataEntry{"STD_CO2", UnitSystem::measure::identity, mFracCo2_},
{"STD_GAS", UnitSystem::measure::identity, mFracGas_}, DataEntry{"STD_GAS", UnitSystem::measure::identity, mFracGas_},
{"STD_OIL", UnitSystem::measure::identity, mFracOil_}, DataEntry{"STD_OIL", UnitSystem::measure::identity, mFracOil_},
{"TMULT_RC", UnitSystem::measure::identity, rockCompTransMultiplier_}, DataEntry{"TMULT_RC", UnitSystem::measure::identity, rockCompTransMultiplier_},
{"UREA", UnitSystem::measure::density, cUrea_}, DataEntry{"UREA", UnitSystem::measure::density, cUrea_},
}; };
for (const auto& array : baseSolutionArrays) { for (const auto& array : baseSolutionArrays) {