mirror of
				https://github.com/OPM/opm-simulators.git
				synced 2025-02-25 18:55:30 -06:00 
			
		
		
		
	Removed special case handling of ALLPROPS keyword
This commit is contained in:
		| @@ -437,55 +437,14 @@ namespace Opm | |||||||
|  |  | ||||||
|             std::vector<data::CellData> simProps; |             std::vector<data::CellData> simProps; | ||||||
|  |  | ||||||
|             std::map<const char*, int> outKeywords { |  | ||||||
|                 {"ALLPROPS", 0}, |  | ||||||
|  |  | ||||||
|                 // Formation volume factors |  | ||||||
|                 {"BG", 0}, |  | ||||||
|                 {"BO", 0}, |  | ||||||
|                 {"BW", 0}, |  | ||||||
|  |  | ||||||
|                 {"CONV", 0}, // < Cells with convergence problems |  | ||||||
|                 {"DEN", 0},  // < Densities |  | ||||||
|  |  | ||||||
|                 // Relative permeabilities |  | ||||||
|                 {"KRG", 0}, |  | ||||||
|                 {"KRO", 0}, |  | ||||||
|                 {"KRW", 0}, |  | ||||||
|  |  | ||||||
|                 {"RVSAT", 0}, // < Vaporized gas/oil ratio |  | ||||||
|                 {"RSSAT", 0}, // < Dissolved gas/oil ratio |  | ||||||
|  |  | ||||||
|                 {"NORST", 0}, // < Visualization restart file only |  | ||||||
|                 {"PBPD", 0},  // < Bubble point and dew point pressures |  | ||||||
|                 {"VISC", 0}   // < Viscosities |  | ||||||
|             }; |  | ||||||
|  |  | ||||||
|             //Get the value of each of the keys |             //Get the value of each of the keys | ||||||
|  |             std::map<std::string, int> outKeywords = restartConfig.getRestartKeywords(reportStepNum); | ||||||
|             for (auto& keyValue : outKeywords) { |             for (auto& keyValue : outKeywords) { | ||||||
|                 keyValue.second = restartConfig.getKeyword(keyValue.first, reportStepNum); |                 keyValue.second = restartConfig.getKeyword(keyValue.first, reportStepNum); | ||||||
|             } |             } | ||||||
|  |  | ||||||
|             //Postprocess some of the special keys |  | ||||||
|             //FIXME: This logic should be removed once ALLPROPS-handling works in RestartConfig |  | ||||||
|             if (outKeywords["ALLPROPS"] > 0) { |  | ||||||
|                 //ALLPROPS implies KRO,KRW,KRG,xxx_DEN,xxx_VISC,BG,BO (xxx= OIL,GAS,WAT) |  | ||||||
|                 outKeywords["BG"] = std::max(outKeywords["BG"], 1); |  | ||||||
|                 outKeywords["BO"] = std::max(outKeywords["BO"], 1); |  | ||||||
|                 outKeywords["BW"] = std::max(outKeywords["BW"], 1); |  | ||||||
|  |  | ||||||
|                 outKeywords["DEN"] = std::max(outKeywords["DEN"], 1); |  | ||||||
|  |  | ||||||
|                 outKeywords["KRG"] = std::max(outKeywords["KRG"], 1); |  | ||||||
|                 outKeywords["KRO"] = std::max(outKeywords["KRO"], 1); |  | ||||||
|                 outKeywords["KRW"] = std::max(outKeywords["KRW"], 1); |  | ||||||
|  |  | ||||||
|                 outKeywords["VISC"] = std::max(outKeywords["VISC"], 1); |  | ||||||
|             } |  | ||||||
|  |  | ||||||
|             const typename Model::SimulatorData& sd = model.getSimulatorData(); |             const typename Model::SimulatorData& sd = model.getSimulatorData(); | ||||||
|  |  | ||||||
|  |  | ||||||
|             //Get shorthands for water, oil, gas |             //Get shorthands for water, oil, gas | ||||||
|             const int aqua_active = phaseUsage.phase_used[Opm::PhaseUsage::Aqua]; |             const int aqua_active = phaseUsage.phase_used[Opm::PhaseUsage::Aqua]; | ||||||
|             const int liquid_active = phaseUsage.phase_used[Opm::PhaseUsage::Liquid]; |             const int liquid_active = phaseUsage.phase_used[Opm::PhaseUsage::Liquid]; | ||||||
| @@ -500,18 +459,21 @@ namespace Opm | |||||||
|              * Formation volume factors for water, oil, gas |              * Formation volume factors for water, oil, gas | ||||||
|              */ |              */ | ||||||
|             if (aqua_active && outKeywords["BW"] > 0) { |             if (aqua_active && outKeywords["BW"] > 0) { | ||||||
|  |                 outKeywords["BW"] = 0; | ||||||
|                 simProps.emplace_back( |                 simProps.emplace_back( | ||||||
|                         "1OVERBW", |                         "1OVERBW", | ||||||
|                         Opm::UnitSystem::measure::water_formation_volume_factor, |                         Opm::UnitSystem::measure::water_formation_volume_factor, | ||||||
|                         std::move(adbToDoubleVector(sd.rq[aqua_idx].b))); |                         std::move(adbToDoubleVector(sd.rq[aqua_idx].b))); | ||||||
|             } |             } | ||||||
|             if (liquid_active && outKeywords["BO"]  > 0) { |             if (liquid_active && outKeywords["BO"]  > 0) { | ||||||
|  |                 outKeywords["BO"] = 0; | ||||||
|                 simProps.emplace_back( |                 simProps.emplace_back( | ||||||
|                         "1OVERBO", |                         "1OVERBO", | ||||||
|                         Opm::UnitSystem::measure::oil_formation_volume_factor, |                         Opm::UnitSystem::measure::oil_formation_volume_factor, | ||||||
|                         std::move(adbToDoubleVector(sd.rq[liquid_idx].b))); |                         std::move(adbToDoubleVector(sd.rq[liquid_idx].b))); | ||||||
|             } |             } | ||||||
|             if (vapour_active && outKeywords["BG"] > 0) { |             if (vapour_active && outKeywords["BG"] > 0) { | ||||||
|  |                 outKeywords["BG"] = 0; | ||||||
|                 simProps.emplace_back( |                 simProps.emplace_back( | ||||||
|                         "1OVERBG", |                         "1OVERBG", | ||||||
|                         Opm::UnitSystem::measure::gas_formation_volume_factor, |                         Opm::UnitSystem::measure::gas_formation_volume_factor, | ||||||
| @@ -522,6 +484,7 @@ namespace Opm | |||||||
|              * Densities for water, oil gas |              * Densities for water, oil gas | ||||||
|              */ |              */ | ||||||
|             if (outKeywords["DEN"] > 0) { |             if (outKeywords["DEN"] > 0) { | ||||||
|  |                 outKeywords["DEN"] = 0; | ||||||
|                 if (aqua_active) { |                 if (aqua_active) { | ||||||
|                     simProps.emplace_back( |                     simProps.emplace_back( | ||||||
|                             "WAT_DEN", |                             "WAT_DEN", | ||||||
| @@ -546,6 +509,7 @@ namespace Opm | |||||||
|              * Viscosities for water, oil gas |              * Viscosities for water, oil gas | ||||||
|              */ |              */ | ||||||
|             if (outKeywords["VISC"] > 0) { |             if (outKeywords["VISC"] > 0) { | ||||||
|  |                 outKeywords["VISC"] = 0; | ||||||
|                 if (aqua_active) { |                 if (aqua_active) { | ||||||
|                     simProps.emplace_back( |                     simProps.emplace_back( | ||||||
|                             "WAT_VISC", |                             "WAT_VISC", | ||||||
| @@ -570,18 +534,21 @@ namespace Opm | |||||||
|              * Relative permeabilities for water, oil, gas |              * Relative permeabilities for water, oil, gas | ||||||
|              */ |              */ | ||||||
|             if (aqua_active && outKeywords["KRW"] > 0) { |             if (aqua_active && outKeywords["KRW"] > 0) { | ||||||
|  |                 outKeywords["KRW"] = 0; | ||||||
|                 simProps.emplace_back( |                 simProps.emplace_back( | ||||||
|                         "WATKR", |                         "WATKR", | ||||||
|                         Opm::UnitSystem::measure::permeability, |                         Opm::UnitSystem::measure::permeability, | ||||||
|                         std::move(adbToDoubleVector(sd.rq[aqua_idx].kr))); |                         std::move(adbToDoubleVector(sd.rq[aqua_idx].kr))); | ||||||
|             } |             } | ||||||
|             if (aqua_active && outKeywords["KRO"] > 0) { |             if (aqua_active && outKeywords["KRO"] > 0) { | ||||||
|  |                 outKeywords["KRO"] = 0; | ||||||
|                 simProps.emplace_back( |                 simProps.emplace_back( | ||||||
|                         "OILKR", |                         "OILKR", | ||||||
|                         Opm::UnitSystem::measure::permeability, |                         Opm::UnitSystem::measure::permeability, | ||||||
|                         std::move(adbToDoubleVector(sd.rq[liquid_idx].kr))); |                         std::move(adbToDoubleVector(sd.rq[liquid_idx].kr))); | ||||||
|             } |             } | ||||||
|             if (aqua_active && outKeywords["KRG"] > 0) { |             if (aqua_active && outKeywords["KRG"] > 0) { | ||||||
|  |                 outKeywords["KRG"] = 0; | ||||||
|                 simProps.emplace_back( |                 simProps.emplace_back( | ||||||
|                         "GASKR", |                         "GASKR", | ||||||
|                         Opm::UnitSystem::measure::permeability, |                         Opm::UnitSystem::measure::permeability, | ||||||
| @@ -592,12 +559,14 @@ namespace Opm | |||||||
|              * Vaporized and dissolved gas/oil ratio |              * Vaporized and dissolved gas/oil ratio | ||||||
|              */ |              */ | ||||||
|             if (vapour_active && liquid_active && outKeywords["RSSAT"] > 0) { |             if (vapour_active && liquid_active && outKeywords["RSSAT"] > 0) { | ||||||
|  |                 outKeywords["RSSAT"] = 0; | ||||||
|                 simProps.emplace_back( |                 simProps.emplace_back( | ||||||
|                         "RSSAT", |                         "RSSAT", | ||||||
|                         Opm::UnitSystem::measure::gas_oil_ratio, |                         Opm::UnitSystem::measure::gas_oil_ratio, | ||||||
|                         std::move(adbToDoubleVector(sd.rs))); |                         std::move(adbToDoubleVector(sd.rs))); | ||||||
|             } |             } | ||||||
|             if (vapour_active && liquid_active && outKeywords["RVSAT"] > 0) { |             if (vapour_active && liquid_active && outKeywords["RVSAT"] > 0) { | ||||||
|  |                 outKeywords["RVSAT"] = 0; | ||||||
|                 simProps.emplace_back( |                 simProps.emplace_back( | ||||||
|                         "RVSAT", |                         "RVSAT", | ||||||
|                         Opm::UnitSystem::measure::oil_gas_ratio, |                         Opm::UnitSystem::measure::oil_gas_ratio, | ||||||
| @@ -609,11 +578,21 @@ namespace Opm | |||||||
|              * Bubble point and dew point pressures |              * Bubble point and dew point pressures | ||||||
|              */ |              */ | ||||||
|             if (vapour_active && liquid_active && outKeywords["PBPD"] > 0) { |             if (vapour_active && liquid_active && outKeywords["PBPD"] > 0) { | ||||||
|  |                 outKeywords["PBPD"] = 0; | ||||||
|                 Opm::OpmLog::warning("Bubble/dew point pressure output unsupported", |                 Opm::OpmLog::warning("Bubble/dew point pressure output unsupported", | ||||||
|                         "Writing bubble points and dew points (PBPD) to file is unsupported, " |                         "Writing bubble points and dew points (PBPD) to file is unsupported, " | ||||||
|                         "as the simulator does not use these internally."); |                         "as the simulator does not use these internally."); | ||||||
|             } |             } | ||||||
|  |  | ||||||
|  |             //Warn for any unhandled keyword | ||||||
|  |             for (auto& keyValue : outKeywords) { | ||||||
|  |                 if (keyValue.second > 0) { | ||||||
|  |                     std::string logstring = "Keyword '"; | ||||||
|  |                     logstring.append(keyValue.first); | ||||||
|  |                     logstring.append("' is unhandled for output to file."); | ||||||
|  |                     Opm::OpmLog::warning("Unhandled output keyword", logstring); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |  | ||||||
|             return simProps; |             return simProps; | ||||||
|         } |         } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user