From b11fd0473554ee807822be9acc5e08c2eff0eab5 Mon Sep 17 00:00:00 2001 From: Arne Morten Kvarving Date: Mon, 7 Aug 2023 16:24:44 +0200 Subject: [PATCH] EclGenericOutputBlackoilModule: unify how data tables are specified --- ebos/eclgenericoutputblackoilmodule.cc | 144 ++++++++++++------------- 1 file changed, 72 insertions(+), 72 deletions(-) diff --git a/ebos/eclgenericoutputblackoilmodule.cc b/ebos/eclgenericoutputblackoilmodule.cc index d812b1ff3..1ac73c3ef 100644 --- a/ebos/eclgenericoutputblackoilmodule.cc +++ b/ebos/eclgenericoutputblackoilmodule.cc @@ -741,80 +741,80 @@ assignToSolution(data::Solution& sol) target); }; - const auto baseSolutionArrays = std::vector { - {"1OVERBG", UnitSystem::measure::gas_inverse_formation_volume_factor, invB_[gasPhaseIdx]}, - {"1OVERBO", UnitSystem::measure::oil_inverse_formation_volume_factor, invB_[oilPhaseIdx]}, - {"1OVERBW", UnitSystem::measure::water_inverse_formation_volume_factor, invB_[waterPhaseIdx]}, - {"FLOGASI+", UnitSystem::measure::gas_surface_rate, flowsi_[gasCompIdx]}, - {"FLOGASJ+", UnitSystem::measure::gas_surface_rate, flowsj_[gasCompIdx]}, - {"FLOGASK+", UnitSystem::measure::gas_surface_rate, flowsk_[gasCompIdx]}, - {"FLOOILI+", UnitSystem::measure::liquid_surface_rate, flowsi_[oilCompIdx]}, - {"FLOOILJ+", UnitSystem::measure::liquid_surface_rate, flowsj_[oilCompIdx]}, - {"FLOOILK+", UnitSystem::measure::liquid_surface_rate, flowsk_[oilCompIdx]}, - {"FLOWATI+", UnitSystem::measure::liquid_surface_rate, flowsi_[waterCompIdx]}, - {"FLOWATJ+", UnitSystem::measure::liquid_surface_rate, flowsj_[waterCompIdx]}, - {"FLOWATK+", UnitSystem::measure::liquid_surface_rate, flowsk_[waterCompIdx]}, - {"FLRGASI+", UnitSystem::measure::rate, floresi_[gasCompIdx]}, - {"FLRGASJ+", UnitSystem::measure::rate, floresj_[gasCompIdx]}, - {"FLRGASK+", UnitSystem::measure::rate, floresk_[gasCompIdx]}, - {"FLROILI+", UnitSystem::measure::rate, floresi_[oilCompIdx]}, - {"FLROILJ+", UnitSystem::measure::rate, floresj_[oilCompIdx]}, - {"FLROILK+", UnitSystem::measure::rate, floresk_[oilCompIdx]}, - {"FLRWATI+", UnitSystem::measure::rate, floresi_[waterCompIdx]}, - {"FLRWATJ+", UnitSystem::measure::rate, floresj_[waterCompIdx]}, - {"FLRWATK+", UnitSystem::measure::rate, floresk_[waterCompIdx]}, - {"FOAM", UnitSystem::measure::identity, cFoam_}, - {"GASKR", UnitSystem::measure::identity, relativePermeability_[gasPhaseIdx]}, - {"GAS_DEN", UnitSystem::measure::density, density_[gasPhaseIdx]}, - {"GAS_VISC", UnitSystem::measure::viscosity, viscosity_[gasPhaseIdx]}, - {"OILKR", UnitSystem::measure::identity, relativePermeability_[oilPhaseIdx]}, - {"OIL_DEN", UnitSystem::measure::density, density_[oilPhaseIdx]}, - {"OIL_VISC", UnitSystem::measure::viscosity, viscosity_[oilPhaseIdx]}, - {"PBUB", UnitSystem::measure::pressure, bubblePointPressure_}, - {"PCOG", UnitSystem::measure::pressure, pcog_}, - {"PCOW", UnitSystem::measure::pressure, pcow_}, - {"PDEW", UnitSystem::measure::pressure, dewPointPressure_}, - {"POLYMER", UnitSystem::measure::identity, cPolymer_}, - {"PPCW", UnitSystem::measure::pressure, ppcw_}, - {"PRESROCC", UnitSystem::measure::pressure, minimumOilPressure_}, - {"PRESSURE", UnitSystem::measure::pressure, fluidPressure_}, - {"RS", UnitSystem::measure::gas_oil_ratio, rs_}, - {"RSSAT", UnitSystem::measure::gas_oil_ratio, gasDissolutionFactor_}, - {"RV", UnitSystem::measure::oil_gas_ratio, rv_}, - {"RVSAT", UnitSystem::measure::oil_gas_ratio, oilVaporizationFactor_}, - {"SALT", UnitSystem::measure::salinity, cSalt_}, - {"SOMAX", UnitSystem::measure::identity, soMax_}, - {"SSOLVENT", UnitSystem::measure::identity, sSol_}, - {"SWMAX", UnitSystem::measure::identity, swMax_}, - {"WATKR", UnitSystem::measure::identity, relativePermeability_[waterPhaseIdx]}, - {"WAT_DEN", UnitSystem::measure::density, density_[waterPhaseIdx]}, - {"WAT_VISC", UnitSystem::measure::viscosity, viscosity_[waterPhaseIdx]}, + const auto baseSolutionArrays = std::array { + DataEntry{"1OVERBG", UnitSystem::measure::gas_inverse_formation_volume_factor, invB_[gasPhaseIdx]}, + DataEntry{"1OVERBO", UnitSystem::measure::oil_inverse_formation_volume_factor, invB_[oilPhaseIdx]}, + DataEntry{"1OVERBW", UnitSystem::measure::water_inverse_formation_volume_factor, invB_[waterPhaseIdx]}, + DataEntry{"FLOGASI+", UnitSystem::measure::gas_surface_rate, flowsi_[gasCompIdx]}, + DataEntry{"FLOGASJ+", UnitSystem::measure::gas_surface_rate, flowsj_[gasCompIdx]}, + DataEntry{"FLOGASK+", UnitSystem::measure::gas_surface_rate, flowsk_[gasCompIdx]}, + DataEntry{"FLOOILI+", UnitSystem::measure::liquid_surface_rate, flowsi_[oilCompIdx]}, + DataEntry{"FLOOILJ+", UnitSystem::measure::liquid_surface_rate, flowsj_[oilCompIdx]}, + DataEntry{"FLOOILK+", UnitSystem::measure::liquid_surface_rate, flowsk_[oilCompIdx]}, + DataEntry{"FLOWATI+", UnitSystem::measure::liquid_surface_rate, flowsi_[waterCompIdx]}, + DataEntry{"FLOWATJ+", UnitSystem::measure::liquid_surface_rate, flowsj_[waterCompIdx]}, + DataEntry{"FLOWATK+", UnitSystem::measure::liquid_surface_rate, flowsk_[waterCompIdx]}, + DataEntry{"FLRGASI+", UnitSystem::measure::rate, floresi_[gasCompIdx]}, + DataEntry{"FLRGASJ+", UnitSystem::measure::rate, floresj_[gasCompIdx]}, + DataEntry{"FLRGASK+", UnitSystem::measure::rate, floresk_[gasCompIdx]}, + DataEntry{"FLROILI+", UnitSystem::measure::rate, floresi_[oilCompIdx]}, + DataEntry{"FLROILJ+", UnitSystem::measure::rate, floresj_[oilCompIdx]}, + DataEntry{"FLROILK+", UnitSystem::measure::rate, floresk_[oilCompIdx]}, + DataEntry{"FLRWATI+", UnitSystem::measure::rate, floresi_[waterCompIdx]}, + DataEntry{"FLRWATJ+", UnitSystem::measure::rate, floresj_[waterCompIdx]}, + DataEntry{"FLRWATK+", UnitSystem::measure::rate, floresk_[waterCompIdx]}, + DataEntry{"FOAM", UnitSystem::measure::identity, cFoam_}, + DataEntry{"GASKR", UnitSystem::measure::identity, relativePermeability_[gasPhaseIdx]}, + DataEntry{"GAS_DEN", UnitSystem::measure::density, density_[gasPhaseIdx]}, + DataEntry{"GAS_VISC", UnitSystem::measure::viscosity, viscosity_[gasPhaseIdx]}, + DataEntry{"OILKR", UnitSystem::measure::identity, relativePermeability_[oilPhaseIdx]}, + DataEntry{"OIL_DEN", UnitSystem::measure::density, density_[oilPhaseIdx]}, + DataEntry{"OIL_VISC", UnitSystem::measure::viscosity, viscosity_[oilPhaseIdx]}, + DataEntry{"PBUB", UnitSystem::measure::pressure, bubblePointPressure_}, + DataEntry{"PCOG", UnitSystem::measure::pressure, pcog_}, + DataEntry{"PCOW", UnitSystem::measure::pressure, pcow_}, + DataEntry{"PDEW", UnitSystem::measure::pressure, dewPointPressure_}, + DataEntry{"POLYMER", UnitSystem::measure::identity, cPolymer_}, + DataEntry{"PPCW", UnitSystem::measure::pressure, ppcw_}, + DataEntry{"PRESROCC", UnitSystem::measure::pressure, minimumOilPressure_}, + DataEntry{"PRESSURE", UnitSystem::measure::pressure, fluidPressure_}, + DataEntry{"RS", UnitSystem::measure::gas_oil_ratio, rs_}, + DataEntry{"RSSAT", UnitSystem::measure::gas_oil_ratio, gasDissolutionFactor_}, + DataEntry{"RV", UnitSystem::measure::oil_gas_ratio, rv_}, + DataEntry{"RVSAT", UnitSystem::measure::oil_gas_ratio, oilVaporizationFactor_}, + DataEntry{"SALT", UnitSystem::measure::salinity, cSalt_}, + DataEntry{"SOMAX", UnitSystem::measure::identity, soMax_}, + DataEntry{"SSOLVENT", UnitSystem::measure::identity, sSol_}, + DataEntry{"SWMAX", UnitSystem::measure::identity, swMax_}, + DataEntry{"WATKR", UnitSystem::measure::identity, relativePermeability_[waterPhaseIdx]}, + DataEntry{"WAT_DEN", UnitSystem::measure::density, density_[waterPhaseIdx]}, + DataEntry{"WAT_VISC", UnitSystem::measure::viscosity, viscosity_[waterPhaseIdx]}, }; - const auto extendedSolutionArrays = std::vector { - {"BIOFILM", UnitSystem::measure::identity, cBiofilm_}, - {"CALCITE", UnitSystem::measure::identity, cCalcite_}, - {"DRSDTCON", UnitSystem::measure::gas_oil_ratio_rate, drsdtcon_}, - {"KRNSW_GO", UnitSystem::measure::identity, krnSwMdcGo_}, - {"KRNSW_OW", UnitSystem::measure::identity, krnSwMdcOw_}, - {"MICROBES", UnitSystem::measure::density, cMicrobes_}, - {"OXYGEN", UnitSystem::measure::density, cOxygen_}, - {"PCSWM_GO", UnitSystem::measure::identity, pcSwMdcGo_}, - {"PCSWM_OW", UnitSystem::measure::identity, pcSwMdcOw_}, - {"PERMFACT", UnitSystem::measure::identity, permFact_}, - {"PORV_RC", UnitSystem::measure::identity, rockCompPorvMultiplier_}, - {"PRES_OVB", UnitSystem::measure::pressure, overburdenPressure_}, - {"RSW", UnitSystem::measure::gas_oil_ratio, rsw_}, - {"RVW", UnitSystem::measure::oil_gas_ratio, rvw_}, - {"SALTP", UnitSystem::measure::identity, pSalt_}, - {"SS_X", UnitSystem::measure::identity, extboX_}, - {"SS_Y", UnitSystem::measure::identity, extboY_}, - {"SS_Z", UnitSystem::measure::identity, extboZ_}, - {"STD_CO2", UnitSystem::measure::identity, mFracCo2_}, - {"STD_GAS", UnitSystem::measure::identity, mFracGas_}, - {"STD_OIL", UnitSystem::measure::identity, mFracOil_}, - {"TMULT_RC", UnitSystem::measure::identity, rockCompTransMultiplier_}, - {"UREA", UnitSystem::measure::density, cUrea_}, + const auto extendedSolutionArrays = std::array { + DataEntry{"BIOFILM", UnitSystem::measure::identity, cBiofilm_}, + DataEntry{"CALCITE", UnitSystem::measure::identity, cCalcite_}, + DataEntry{"DRSDTCON", UnitSystem::measure::gas_oil_ratio_rate, drsdtcon_}, + DataEntry{"KRNSW_GO", UnitSystem::measure::identity, krnSwMdcGo_}, + DataEntry{"KRNSW_OW", UnitSystem::measure::identity, krnSwMdcOw_}, + DataEntry{"MICROBES", UnitSystem::measure::density, cMicrobes_}, + DataEntry{"OXYGEN", UnitSystem::measure::density, cOxygen_}, + DataEntry{"PCSWM_GO", UnitSystem::measure::identity, pcSwMdcGo_}, + DataEntry{"PCSWM_OW", UnitSystem::measure::identity, pcSwMdcOw_}, + DataEntry{"PERMFACT", UnitSystem::measure::identity, permFact_}, + DataEntry{"PORV_RC", UnitSystem::measure::identity, rockCompPorvMultiplier_}, + DataEntry{"PRES_OVB", UnitSystem::measure::pressure, overburdenPressure_}, + DataEntry{"RSW", UnitSystem::measure::gas_oil_ratio, rsw_}, + DataEntry{"RVW", UnitSystem::measure::oil_gas_ratio, rvw_}, + DataEntry{"SALTP", UnitSystem::measure::identity, pSalt_}, + DataEntry{"SS_X", UnitSystem::measure::identity, extboX_}, + DataEntry{"SS_Y", UnitSystem::measure::identity, extboY_}, + DataEntry{"SS_Z", UnitSystem::measure::identity, extboZ_}, + DataEntry{"STD_CO2", UnitSystem::measure::identity, mFracCo2_}, + DataEntry{"STD_GAS", UnitSystem::measure::identity, mFracGas_}, + DataEntry{"STD_OIL", UnitSystem::measure::identity, mFracOil_}, + DataEntry{"TMULT_RC", UnitSystem::measure::identity, rockCompTransMultiplier_}, + DataEntry{"UREA", UnitSystem::measure::density, cUrea_}, }; for (const auto& array : baseSolutionArrays) {