Group Block Level Summary Vectors by Phase
Mostly to aid future maintenance. While here, also re-indent the other unit tables and add a type alias (UnitTable) to avoid spelling out the 'unordered_map<>' type repeatedly.
This commit is contained in:
@@ -1729,9 +1729,10 @@ template< typename F, typename G >
|
||||
auto sub( F f, G g ) -> bin_op< F, G, std::minus< quantity > >
|
||||
{ return { f, g }; }
|
||||
|
||||
using ofun = std::function< quantity( const fn_args& ) >;
|
||||
using ofun = std::function<quantity(const fn_args&)>;
|
||||
using UnitTable = std::unordered_map<std::string, Opm::UnitSystem::measure>;
|
||||
|
||||
static const std::unordered_map< std::string, ofun > funs = {
|
||||
static const auto funs = std::unordered_map<std::string, ofun> {
|
||||
{ "WWIR", rate< rt::wat, injector > },
|
||||
{ "WWIRT", wwirt },
|
||||
{ "WOIR", rate< rt::oil, injector > },
|
||||
@@ -2264,66 +2265,64 @@ static const std::unordered_map< std::string, ofun > funs = {
|
||||
{"WEFFG", well_efficiency_factor_grouptree},
|
||||
};
|
||||
|
||||
static const std::unordered_map< std::string, Opm::UnitSystem::measure> single_values_units = {
|
||||
{"TCPU" , Opm::UnitSystem::measure::runtime },
|
||||
{"ELAPSED" , Opm::UnitSystem::measure::identity },
|
||||
{"NEWTON" , Opm::UnitSystem::measure::identity },
|
||||
{"NLINERS" , Opm::UnitSystem::measure::identity },
|
||||
{"NLINSMIN" , Opm::UnitSystem::measure::identity },
|
||||
{"NLINSMAX" , Opm::UnitSystem::measure::identity },
|
||||
{"MLINEARS" , Opm::UnitSystem::measure::identity },
|
||||
{"NLINEARS" , Opm::UnitSystem::measure::identity },
|
||||
{"MSUMLINS" , Opm::UnitSystem::measure::identity },
|
||||
{"MSUMNEWT" , Opm::UnitSystem::measure::identity },
|
||||
{"TCPUTS" , Opm::UnitSystem::measure::identity },
|
||||
{"TIMESTEP" , Opm::UnitSystem::measure::time },
|
||||
{"TCPUDAY" , Opm::UnitSystem::measure::time },
|
||||
{"STEPTYPE" , Opm::UnitSystem::measure::identity },
|
||||
{"TELAPLIN" , Opm::UnitSystem::measure::time },
|
||||
{"FRPV" , Opm::UnitSystem::measure::volume },
|
||||
{"FWIP" , Opm::UnitSystem::measure::liquid_surface_volume },
|
||||
{"FWIPR" , Opm::UnitSystem::measure::volume },
|
||||
{"FOIP" , Opm::UnitSystem::measure::liquid_surface_volume },
|
||||
{"FOIPR" , Opm::UnitSystem::measure::volume },
|
||||
{"FOE" , Opm::UnitSystem::measure::identity },
|
||||
{"FGIP" , Opm::UnitSystem::measure::gas_surface_volume },
|
||||
{"FGIPR" , Opm::UnitSystem::measure::volume },
|
||||
{"FSIP" , Opm::UnitSystem::measure::mass },
|
||||
{"FOIPL" , Opm::UnitSystem::measure::liquid_surface_volume },
|
||||
{"FOIPG" , Opm::UnitSystem::measure::liquid_surface_volume },
|
||||
{"FGIPL" , Opm::UnitSystem::measure::gas_surface_volume },
|
||||
{"FGIPG" , Opm::UnitSystem::measure::gas_surface_volume },
|
||||
{"FPR" , Opm::UnitSystem::measure::pressure },
|
||||
{"FPRP" , Opm::UnitSystem::measure::pressure },
|
||||
{"FGCDI" , Opm::UnitSystem::measure::moles },
|
||||
{"FGCDM" , Opm::UnitSystem::measure::moles },
|
||||
{"FWCD" , Opm::UnitSystem::measure::moles },
|
||||
{"FWIPG" , Opm::UnitSystem::measure::liquid_surface_volume },
|
||||
{"FWIPL" , Opm::UnitSystem::measure::liquid_surface_volume },
|
||||
static const auto single_values_units = UnitTable {
|
||||
{"TCPU" , Opm::UnitSystem::measure::runtime },
|
||||
{"ELAPSED" , Opm::UnitSystem::measure::identity },
|
||||
{"NEWTON" , Opm::UnitSystem::measure::identity },
|
||||
{"NLINERS" , Opm::UnitSystem::measure::identity },
|
||||
{"NLINSMIN" , Opm::UnitSystem::measure::identity },
|
||||
{"NLINSMAX" , Opm::UnitSystem::measure::identity },
|
||||
{"MLINEARS" , Opm::UnitSystem::measure::identity },
|
||||
{"NLINEARS" , Opm::UnitSystem::measure::identity },
|
||||
{"MSUMLINS" , Opm::UnitSystem::measure::identity },
|
||||
{"MSUMNEWT" , Opm::UnitSystem::measure::identity },
|
||||
{"TCPUTS" , Opm::UnitSystem::measure::identity },
|
||||
{"TIMESTEP" , Opm::UnitSystem::measure::time },
|
||||
{"TCPUDAY" , Opm::UnitSystem::measure::time },
|
||||
{"STEPTYPE" , Opm::UnitSystem::measure::identity },
|
||||
{"TELAPLIN" , Opm::UnitSystem::measure::time },
|
||||
{"FRPV" , Opm::UnitSystem::measure::volume },
|
||||
{"FWIP" , Opm::UnitSystem::measure::liquid_surface_volume },
|
||||
{"FWIPR" , Opm::UnitSystem::measure::volume },
|
||||
{"FOIP" , Opm::UnitSystem::measure::liquid_surface_volume },
|
||||
{"FOIPR" , Opm::UnitSystem::measure::volume },
|
||||
{"FOE" , Opm::UnitSystem::measure::identity },
|
||||
{"FGIP" , Opm::UnitSystem::measure::gas_surface_volume },
|
||||
{"FGIPR" , Opm::UnitSystem::measure::volume },
|
||||
{"FSIP" , Opm::UnitSystem::measure::mass },
|
||||
{"FOIPL" , Opm::UnitSystem::measure::liquid_surface_volume },
|
||||
{"FOIPG" , Opm::UnitSystem::measure::liquid_surface_volume },
|
||||
{"FGIPL" , Opm::UnitSystem::measure::gas_surface_volume },
|
||||
{"FGIPG" , Opm::UnitSystem::measure::gas_surface_volume },
|
||||
{"FPR" , Opm::UnitSystem::measure::pressure },
|
||||
{"FPRP" , Opm::UnitSystem::measure::pressure },
|
||||
{"FGCDI" , Opm::UnitSystem::measure::moles },
|
||||
{"FGCDM" , Opm::UnitSystem::measure::moles },
|
||||
{"FWCD" , Opm::UnitSystem::measure::moles },
|
||||
{"FWIPG" , Opm::UnitSystem::measure::liquid_surface_volume },
|
||||
{"FWIPL" , Opm::UnitSystem::measure::liquid_surface_volume },
|
||||
};
|
||||
|
||||
static const std::unordered_map< std::string, Opm::UnitSystem::measure> region_units = {
|
||||
{"RPR" , Opm::UnitSystem::measure::pressure},
|
||||
{"RPRP" , Opm::UnitSystem::measure::pressure},
|
||||
{"RRPV" , Opm::UnitSystem::measure::volume },
|
||||
{"ROIP" , Opm::UnitSystem::measure::liquid_surface_volume },
|
||||
{"ROIPL" , Opm::UnitSystem::measure::liquid_surface_volume },
|
||||
{"ROIPG" , Opm::UnitSystem::measure::liquid_surface_volume },
|
||||
{"RGIP" , Opm::UnitSystem::measure::gas_surface_volume },
|
||||
{"RGIPL" , Opm::UnitSystem::measure::gas_surface_volume },
|
||||
{"RGIPG" , Opm::UnitSystem::measure::gas_surface_volume },
|
||||
{"RWIP" , Opm::UnitSystem::measure::liquid_surface_volume },
|
||||
{"RRPV" , Opm::UnitSystem::measure::geometric_volume },
|
||||
{"RGCDI" , Opm::UnitSystem::measure::gas_surface_volume },
|
||||
{"RGCDM" , Opm::UnitSystem::measure::gas_surface_volume },
|
||||
{"RWCD" , Opm::UnitSystem::measure::gas_surface_volume },
|
||||
{"RWIPG" , Opm::UnitSystem::measure::liquid_surface_volume },
|
||||
{"RWIPL" , Opm::UnitSystem::measure::liquid_surface_volume },
|
||||
static const auto region_units = UnitTable {
|
||||
{"RPR" , Opm::UnitSystem::measure::pressure},
|
||||
{"RPRP" , Opm::UnitSystem::measure::pressure},
|
||||
{"RRPV" , Opm::UnitSystem::measure::volume },
|
||||
{"ROIP" , Opm::UnitSystem::measure::liquid_surface_volume },
|
||||
{"ROIPL" , Opm::UnitSystem::measure::liquid_surface_volume },
|
||||
{"ROIPG" , Opm::UnitSystem::measure::liquid_surface_volume },
|
||||
{"RGIP" , Opm::UnitSystem::measure::gas_surface_volume },
|
||||
{"RGIPL" , Opm::UnitSystem::measure::gas_surface_volume },
|
||||
{"RGIPG" , Opm::UnitSystem::measure::gas_surface_volume },
|
||||
{"RWIP" , Opm::UnitSystem::measure::liquid_surface_volume },
|
||||
{"RRPV" , Opm::UnitSystem::measure::geometric_volume },
|
||||
{"RGCDI" , Opm::UnitSystem::measure::gas_surface_volume },
|
||||
{"RGCDM" , Opm::UnitSystem::measure::gas_surface_volume },
|
||||
{"RWCD" , Opm::UnitSystem::measure::gas_surface_volume },
|
||||
{"RWIPG" , Opm::UnitSystem::measure::liquid_surface_volume },
|
||||
{"RWIPL" , Opm::UnitSystem::measure::liquid_surface_volume },
|
||||
};
|
||||
|
||||
static const auto interregion_units =
|
||||
std::unordered_map<std::string, Opm::UnitSystem::measure>
|
||||
{
|
||||
static const auto interregion_units = UnitTable {
|
||||
// Flow rates (surface volume)
|
||||
{ "ROFR" , Opm::UnitSystem::measure::liquid_surface_rate },
|
||||
{ "ROFR+" , Opm::UnitSystem::measure::liquid_surface_rate },
|
||||
@@ -2351,52 +2350,64 @@ static const auto interregion_units =
|
||||
{ "RWFT-" , Opm::UnitSystem::measure::liquid_surface_volume },
|
||||
};
|
||||
|
||||
static const std::unordered_map< std::string, Opm::UnitSystem::measure> block_units = {
|
||||
{"BPR" , Opm::UnitSystem::measure::pressure},
|
||||
{"BRPV" , Opm::UnitSystem::measure::volume },
|
||||
{"BOPV" , Opm::UnitSystem::measure::volume },
|
||||
{"BGPV" , Opm::UnitSystem::measure::volume },
|
||||
{"BWPV" , Opm::UnitSystem::measure::volume },
|
||||
{"BPRESSUR" , Opm::UnitSystem::measure::pressure},
|
||||
{"BTCNFHEA" , Opm::UnitSystem::measure::temperature},
|
||||
{"BTEMP" , Opm::UnitSystem::measure::temperature},
|
||||
{"BSWAT" , Opm::UnitSystem::measure::identity},
|
||||
{"BWSAT" , Opm::UnitSystem::measure::identity},
|
||||
{"BSGAS" , Opm::UnitSystem::measure::identity},
|
||||
{"BGSAT" , Opm::UnitSystem::measure::identity},
|
||||
{"BSOIL" , Opm::UnitSystem::measure::identity},
|
||||
{"BOSAT" , Opm::UnitSystem::measure::identity},
|
||||
{"BNSAT" , Opm::UnitSystem::measure::identity},
|
||||
{"BOIP" , Opm::UnitSystem::measure::liquid_surface_volume},
|
||||
{"BOIPG" , Opm::UnitSystem::measure::liquid_surface_volume},
|
||||
{"BOIPL" , Opm::UnitSystem::measure::liquid_surface_volume},
|
||||
{"BGIP" , Opm::UnitSystem::measure::gas_surface_volume},
|
||||
{"BGIPG" , Opm::UnitSystem::measure::gas_surface_volume},
|
||||
{"BGIPL" , Opm::UnitSystem::measure::gas_surface_volume},
|
||||
{"BWIP" , Opm::UnitSystem::measure::liquid_surface_volume},
|
||||
{"BRS" , Opm::UnitSystem::measure::gas_oil_ratio},
|
||||
{"BRV" , Opm::UnitSystem::measure::oil_gas_ratio},
|
||||
{"BWKR" , Opm::UnitSystem::measure::identity},
|
||||
{"BOKR" , Opm::UnitSystem::measure::identity},
|
||||
{"BKRO" , Opm::UnitSystem::measure::identity},
|
||||
{"BKROG" , Opm::UnitSystem::measure::identity},
|
||||
{"BKROW" , Opm::UnitSystem::measure::identity},
|
||||
{"BGKR" , Opm::UnitSystem::measure::identity},
|
||||
{"BKRG" , Opm::UnitSystem::measure::identity},
|
||||
{"BKRW" , Opm::UnitSystem::measure::identity},
|
||||
{"BWPC" , Opm::UnitSystem::measure::pressure},
|
||||
{"BWPR" , Opm::UnitSystem::measure::pressure},
|
||||
{"BGPC" , Opm::UnitSystem::measure::pressure},
|
||||
{"BGPR" , Opm::UnitSystem::measure::pressure},
|
||||
{"BVWAT" , Opm::UnitSystem::measure::viscosity},
|
||||
{"BWVIS" , Opm::UnitSystem::measure::viscosity},
|
||||
{"BVGAS" , Opm::UnitSystem::measure::viscosity},
|
||||
{"BGVIS" , Opm::UnitSystem::measure::viscosity},
|
||||
{"BVOIL" , Opm::UnitSystem::measure::viscosity},
|
||||
{"BOVIS" , Opm::UnitSystem::measure::viscosity},
|
||||
static const auto block_units = UnitTable {
|
||||
// Gas quantities
|
||||
{"BGIP" , Opm::UnitSystem::measure::gas_surface_volume},
|
||||
{"BGIPG" , Opm::UnitSystem::measure::gas_surface_volume},
|
||||
{"BGIPL" , Opm::UnitSystem::measure::gas_surface_volume},
|
||||
{"BGKR" , Opm::UnitSystem::measure::identity},
|
||||
{"BKRG" , Opm::UnitSystem::measure::identity},
|
||||
{"BGPC" , Opm::UnitSystem::measure::pressure},
|
||||
{"BGPR" , Opm::UnitSystem::measure::pressure},
|
||||
{"BGPV" , Opm::UnitSystem::measure::volume},
|
||||
{"BGSAT" , Opm::UnitSystem::measure::identity},
|
||||
{"BSGAS" , Opm::UnitSystem::measure::identity},
|
||||
{"BGVIS" , Opm::UnitSystem::measure::viscosity},
|
||||
{"BVGAS" , Opm::UnitSystem::measure::viscosity},
|
||||
|
||||
// Oil quantities
|
||||
{"BOKR" , Opm::UnitSystem::measure::identity},
|
||||
{"BKRO" , Opm::UnitSystem::measure::identity},
|
||||
{"BKROG" , Opm::UnitSystem::measure::identity},
|
||||
{"BKROW" , Opm::UnitSystem::measure::identity},
|
||||
{"BOIP" , Opm::UnitSystem::measure::liquid_surface_volume},
|
||||
{"BOIPG" , Opm::UnitSystem::measure::liquid_surface_volume},
|
||||
{"BOIPL" , Opm::UnitSystem::measure::liquid_surface_volume},
|
||||
{"BOPV" , Opm::UnitSystem::measure::volume},
|
||||
{"BOSAT" , Opm::UnitSystem::measure::identity},
|
||||
{"BSOIL" , Opm::UnitSystem::measure::identity},
|
||||
{"BOVIS" , Opm::UnitSystem::measure::viscosity},
|
||||
{"BVOIL" , Opm::UnitSystem::measure::viscosity},
|
||||
|
||||
// Water quantities
|
||||
{"BWIP" , Opm::UnitSystem::measure::liquid_surface_volume},
|
||||
{"BWKR" , Opm::UnitSystem::measure::identity},
|
||||
{"BKRW" , Opm::UnitSystem::measure::identity},
|
||||
{"BWPC" , Opm::UnitSystem::measure::pressure},
|
||||
{"BWPR" , Opm::UnitSystem::measure::pressure},
|
||||
{"BWPV" , Opm::UnitSystem::measure::volume},
|
||||
{"BWSAT" , Opm::UnitSystem::measure::identity},
|
||||
{"BSWAT" , Opm::UnitSystem::measure::identity},
|
||||
{"BWVIS" , Opm::UnitSystem::measure::viscosity},
|
||||
{"BVWAT" , Opm::UnitSystem::measure::viscosity},
|
||||
|
||||
// Pressure quantities
|
||||
{"BPR" , Opm::UnitSystem::measure::pressure},
|
||||
{"BPRESSUR" , Opm::UnitSystem::measure::pressure},
|
||||
|
||||
// Volumes and ratios
|
||||
{"BRPV" , Opm::UnitSystem::measure::volume},
|
||||
{"BRS" , Opm::UnitSystem::measure::gas_oil_ratio},
|
||||
{"BRV" , Opm::UnitSystem::measure::oil_gas_ratio},
|
||||
|
||||
{"BNSAT" , Opm::UnitSystem::measure::identity},
|
||||
|
||||
// Temperature/energy
|
||||
{"BTCNFHEA" , Opm::UnitSystem::measure::temperature},
|
||||
{"BTEMP" , Opm::UnitSystem::measure::temperature},
|
||||
};
|
||||
|
||||
static const std::unordered_map< std::string, Opm::UnitSystem::measure> aquifer_units = {
|
||||
static const auto aquifer_units = UnitTable {
|
||||
{"AAQT", Opm::UnitSystem::measure::liquid_surface_volume},
|
||||
{"AAQR", Opm::UnitSystem::measure::liquid_surface_rate},
|
||||
{"AAQP", Opm::UnitSystem::measure::pressure},
|
||||
|
||||
Reference in New Issue
Block a user