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);
};
const auto baseSolutionArrays = std::vector<DataEntry> {
{"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<DataEntry> {
{"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) {