Commit Graph

112 Commits

Author SHA1 Message Date
Tor Harald Sandve
02031a00e6 add salinity to unitSystem 2020-09-14 08:22:21 +02:00
Tor Harald Sandve
8c14eac213 add polymer density to the unit system 2020-06-29 13:53:42 +02:00
Joakim Hove
4f0fa5c21a Introduce time unit ecl_years == 365.25 days 2020-04-24 10:19:53 +02:00
Williham Williham Totland
c255116133 Adds static assertions to ensure at compile time that all unit names are provided. 2020-04-02 10:23:46 +02:00
Arne Morten Kvarving
e3bd1e6723 add static method to return a test object for serialization
this allows killing the constructors taking member values
2020-03-23 10:58:15 +01:00
Arne Morten Kvarving
0f31e76ae7 remove accessors in UnitSystem added for external serialization 2020-03-19 09:34:12 +01:00
Arne Morten Kvarving
977e1ce1d4 add serialization template to UnitSystem 2020-03-19 09:34:12 +01:00
Arne Morten Kvarving
1573687264 refactor: put copy-pasted switch in separate member function for reuse 2020-03-19 09:34:12 +01:00
Arne Morten Kvarving
27bfe63146 remove accessors in Dimension added for external serialization 2020-03-19 09:34:12 +01:00
Arne Morten Kvarving
82ade7e7e1 add serialization template to Dimension 2020-03-19 09:34:12 +01:00
Joakim Hove
ac79a7a1b1 Add UnitSystem::getDimension( measure ) method 2020-03-05 13:08:00 +01:00
Joakim Hove
4b0ee9d0bb Remove method Dimension::newComposite() 2020-03-05 13:08:00 +01:00
Joakim Hove
874c734628 Remove name property from UnitSystem dimension 2020-03-05 13:08:00 +01:00
Arne Morten Kvarving
36d4fa2923 replace boost with std in comment 2020-02-19 09:53:01 +01:00
Joakim Hove
35a580f610 Add UnitSystem functionality to handle eclipse integer id
Writing of INTEHEAD keyword uses UnitSystem class instead of intermediate enum
UnitSystem.
2020-02-05 07:38:00 +01:00
Arne Morten Kvarving
7ac2febae2 changed: allow disabling sanity check in Dimension constructor
while this makes sense to do in general, it causes issues
when reconstructing after deserialization.
we have dimensions with '/' and '*' in the name that was
constructed through newComposite.
2020-01-17 10:08:50 +01:00
Arne Morten Kvarving
6ea8dd8104 make UnitSystem constructible from variables
also make it default constructible and add accessors
2020-01-02 08:27:31 +01:00
Arne Morten Kvarving
7c3f89b0a1 add non-throwing accessor for si scaling factor in Dimension 2020-01-02 08:25:51 +01:00
Bård Skaflestad
3f2b143b30 Unit System: Add New ICD-Related Units
This commit introduces a couple of new units of measure for
ICD-related quantities, especially AICD and SICD strength
parameters.  Add base unit "GeomVolume" ([Length]**3) and 'measure'
entities

    geometric_volume      (= GeomVolume)
    geometric_volume_rate (= GeomVolume / Time)
    icd_strength          (= Pressure / (GeomVolume / Time)**2)

Add conversion factor unit tests for these, and also complete the
set of unit tests for FIELD, LAB, and PVT_M to cover measures that
were not already there.

Also add a parser Dimension ("GeometricVolume") to play the role of
[Length]**3 in .json files.
2019-12-06 14:32:07 +01:00
Joakim Hove
697545cf54 Use dimensions from ParserKeyword 2019-10-16 21:03:02 +02:00
Bård Skaflestad
c51842d65b Make UnitSystem Independent of LibECL
This commit decouples the UnitSystem class from the LibECL type
ert_ecl_unit_enum.  This, in turn, makes UnitSystem independent of
LibECL.

Update the unit test accordingly, and include <ert/util/util.h>
where needed.  This header was included transitively through
UnitSystem.hpp before.
2019-09-30 23:49:57 +02:00
Joakim Hove
bef36f6c0d Add missing energy to unit system measure table 2019-08-15 07:10:44 +02:00
Joakim Hove
2ff8816bb7 UnitSystem refactor
- Add new constructor based on deck names 'FIELD', 'METRIC', 'PVT-M' and 'LAB'.
 - Refactor UnitSystem construction.
2019-07-21 13:12:01 +02:00
Atgeirr Flø Rasmussen
c314464ef3 Add unit support for FoamSurfactantConcentration.
Note that FoamDensity and FoamSurfactantConcentration differ in field units,
as one is then poind/barrel and the other is pound/(1000 cubic feet)!
2019-07-01 14:40:05 +02:00
Franz G. Fuchs
31415679f7 defined FoamDensity, added test 2019-06-25 13:32:11 +02:00
Joakim Hove
f4009fc6d8 Add default constructor for unit Dimension 2019-04-28 16:08:02 +02:00
Tor Harald Sandve
2d5d0953ee Add support for output of well productivity index 2018-11-02 15:57:21 +01:00
Joakim Hove
5283611695 Add static method for conversion between unit system enums 2018-10-16 00:12:53 +02:00
Bård Skaflestad
687f108285 Unit System: Recognize Units for Effective Kh Product
While here, also add check for all (current) unit conversion
constants for METRIC, FIELD, and LAB unit conventions and extend the
existing PVT-M checks to cover effective Kh too.
2018-07-11 22:07:38 +02:00
Lars Petter Øren Hauge
fc3bc714fc Support WCI(R/T) 2018-06-29 09:45:14 +02:00
Joakim Hove
2d8457e3a9 Added pseoudo unit system for untransformed input values. 2018-03-15 10:43:53 +01:00
Andreas Lauser
c9291f165c address review comments 2018-02-05 10:38:57 +01:00
Andreas Lauser
ce93d98b80 respect the fact that non-SI temperature may be offset from zero
also, the UnitTests test was buggy.

V2: improve the accuracy of the °F->K offset, unit test all temperature measures
2018-02-02 17:13:50 +01:00
Joakim Hove
494dda28a8 Revert "respect the fact that non-SI temperature may be offset from zero" 2018-02-01 15:08:12 +01:00
Andreas Lauser
d6f4cb016e respect the fact that non-SI temperature may be offset from zero
also, the UnitTests test was buggy.
2018-01-31 13:17:06 +01:00
Andreas Lauser
62333f08a8 units: add energy
an alternative is to add heat capacity, but this is more cumbersome
because some heat capacities are volumetric while others are mass
specific. (note that the "single division" shenengian of the unit
system's expression parser needs to be considered for most energy
related keywords.)
2017-11-25 18:08:28 +01:00
Bård Skaflestad
e821f5534b UnitSystem: Add Support for PVT-M Unit Conventions
The PVT-M unit convention is essentially the same as the Metric
collection, except that pressure values are measured in atmospheres
rather than bars.
2017-10-05 17:39:45 +02:00
Jørgen Kvalsvik
e884b0664c Redesign cmake
Tune the makefile according to new principles, which adds a few bells
and whistles and for clarity.

Synopsis:

* The dependency on opm-common is completely gone. This is reflected in
  travis and appveyor as well. No non-kitware cmake modules are used.
* Directories are flattened, quite a bit - source code is located in the
  lib/ directory if it belongs to opm-parser, and external/ if third
  party.
* The sibling build feature is implemented through cmake's
  export(PACKAGE) rather than implicitly looking through source files.
* Targets explicitly set required public and private include
  directories, compile options and definitions, which cmake will handle
  and propagate
* opm-parser-config.cmake for downstream users is now provided.
* Dependencies are set up using targets. In the future, when cmake 3.x+
  can be used, these should be either targets from newer Find modules,
  or interface libraries.
* Fewer system specific assumptions are coded in, instead we assume
  cmake or users set up system specific details.
* All module wide configuration and looking up libraries is handled in
  the root makefile - all sub directories only set up libraries and
  compile options for the module in question.
* Targets are defined and links handled transitively because cmake now
  is told about them. ${module_LIBRARIES} variables are gone.

This is largely guided by the principles outlined in
https://rix0r.nl/blog/2015/08/13/cmake-guide/

Most source files are just moved - if they have some content change then
it's nothing more than include fixes or similar in order to make them
compile.
2017-06-01 15:29:23 +02:00
Joakim Hove
f1308fa352 Instantiate unit system from Eclipse type id. 2017-01-12 13:36:42 +01:00
Joakim Hove
ef6def6511 Added getEclType() to UnitSystem 2017-01-12 13:36:38 +01:00
Atgeirr Flø Rasmussen
31dd76a39f Add some tests for the unit constants. 2016-12-05 12:49:45 +01:00
Jørgen Kvalsvik
18de2c0751 Correct unit for Field gas-oil+oil-gas ratio
The FIELD units don't use identity in their converison from SI, as the
unit is Mscf/stb rather than m3/m3.
2016-11-29 13:52:50 +01:00
Atgeirr Flø Rasmussen
d34711d600 Make constructor explicit, fix operator<<. 2016-10-25 11:39:43 +02:00
Jørgen Kvalsvik
f2e509f59f UnitSystem named constructors with automatic storage 2016-10-19 20:38:28 +02:00
Jørgen Kvalsvik
f9cb516b99 Remove DeckPtr+ParserPtr aliases
Remove the deprecated DeckPtr and ParserPtr aliases and removes
shared_ptr<Deck> and friends from all interfaces.
2016-10-19 20:38:28 +02:00
Jørgen Kvalsvik
56608e9a10 3DProperties default constructible
This also means UnitSystem must be default constructible, which now
makes the default unit system metric. GridProperties must also be
default constructible (a valid 0x0x0 grid with no properties).
2016-10-19 20:38:28 +02:00
Jørgen Kvalsvik
c893a92aa6 Make Dimension+UnitSystem no longer use shared_ptr 2016-10-19 20:38:27 +02:00
Jørgen Kvalsvik
47ca0b333d Remove unnecessary silencing of unused vars
__attribute__ is a gcc extension (supported by clang), but isn't
portable. However, this warning doesn't show up when the variables are
constexpr.
2016-10-19 20:37:43 +02:00
Andreas Lauser
a8b6047b1d fully move the units code from opm-core to opm-parser
this fixes some annoying inconsistencies (e.g., the recently
introduced 'dyne' unit was unavailable in the opm-core version) and
gets rid of some compiler abiguity errors if 'using namespace
Opm::details' was used by code inside the 'Opm' namespace.

Since opm-parser is a hard dependency of opm-core, the only measure
which must be taken by higher-level code is to include
'opm/parser/eclipse/Units/Units.hpp' instead of
'opm/parser/eclipse/Units/ConversionFactors.hpp' or
'opm/core/utility/Units.hpp'.

Note that a potentially better location for this code would be
opm-common, but this would break the Windows build of opm-parser.
2016-10-10 17:45:37 +02:00
Andreas Lauser
eb9dd487c6 add the infrastructure needed to deal with surface tension
this is required for the JFUNC keyword...
2016-10-06 17:18:10 +02:00