From 24a8c09956cb57bb8bb44ef01f49f8ccfb09f159 Mon Sep 17 00:00:00 2001 From: Joakim Hove Date: Wed, 24 Nov 2021 08:48:56 +0100 Subject: [PATCH] Add UnitSystem::from_si() and to_si based on string --- opm/parser/eclipse/Units/UnitSystem.hpp | 2 ++ src/opm/parser/eclipse/Units/UnitSystem.cpp | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/opm/parser/eclipse/Units/UnitSystem.hpp b/opm/parser/eclipse/Units/UnitSystem.hpp index abf3023e8..1f8fb83cd 100644 --- a/opm/parser/eclipse/Units/UnitSystem.hpp +++ b/opm/parser/eclipse/Units/UnitSystem.hpp @@ -110,6 +110,8 @@ namespace Opm { Dimension parse(const std::string& dimension) const; + double from_si( const std::string& dimension, double ); + double to_si( const std::string& dimension, double ); double from_si( measure, double ) const; double to_si( measure, double ) const; void from_si( measure, std::vector& ) const; diff --git a/src/opm/parser/eclipse/Units/UnitSystem.cpp b/src/opm/parser/eclipse/Units/UnitSystem.cpp index 0f3810986..f9546dc55 100644 --- a/src/opm/parser/eclipse/Units/UnitSystem.cpp +++ b/src/opm/parser/eclipse/Units/UnitSystem.cpp @@ -1437,6 +1437,16 @@ namespace { + this->measure_table_to_si_offset[ static_cast< int >( m ) ]; } + double UnitSystem::from_si( const std::string& dimension, double value) { + const auto& dim = this->parse(dimension); + return dim.convertSiToRaw(value); + } + + double UnitSystem::to_si( const std::string& dimension, double value) { + const auto& dim = this->parse(dimension); + return dim.convertRawToSi(value); + } + void UnitSystem::from_si( measure m, std::vector& data ) const { double factor = this->measure_table_from_si[ static_cast< int >( m ) ]; double offset = this->measure_table_to_si_offset[ static_cast< int >( m ) ];