This commit switches to using the simulator's notion of initial
aquifer pressure, aquifer mass density of water, aquifer water
viscosity, and aquifer time constants. These values will,
ultimately, come from the *_data structures for the analytic
aquifers but the simulator is the only system that is able to
compute equilibrated initial pressure values if that is defaulted in
the input.
This commit renames various data members of the *_data structures to
aid the reader who may not be intimately familiar with the details
of the analytic models. We switch the 'initial_pressure' into an
optional<double> instead of a pair<bool,double> with 'std::nullopt'
representing defaulted initial aquifer pressure values in the input
file.
We also add logic and private data members to compute/store aquifer
time constants, mass density of water, water viscosity and, in the
case of Carter-Tracy aquifers, also the influx constant 'beta'.
This centralises the requisite logic which reduces the risk of
subtle errors.
In the case of defaulted initial pressures, we support deferred
calculation of aquifer properties until the equilibrium pressure is
known. Users are then expected to assign a value to the initial
pressure members and call 'finishInitialisation()' to derive those
properties.
While here, also switch to using raw string literals instead of
concatenated and escaped literals for the embedded deck strings in
the ParserTests.
The 'PoreVolume' value is supposed to be calculated at reference
conditions (i.e., no rock compressibility or temperature effects),
but being able to report the non-reference condition value is
beneficial. This commit adds a slot for accumulating that value per
FIP region and transporting the aggregated values to the PRT output
system.
For whatever reason it produced a file like
_2tmp_2reprotest_81JBnX9_2build-experiment-1_2build-experiment-1_2opm_2output_2OutputWriter_8hpp-example.html
with the full path in it.
BTW: correct usage is "\example <cpp-file>" where the cpp file
includes the example code.
With that combination the first search seems to happen in CONFIG mode
but subsequent searches will use MODULE mode. This will result in the
following warning:
CMake Warning at /usr/share/cmake-3.18/Modules/FindBoost.cmake:1187 (message):
New Boost version may have incorrect or missing dependencies and imported
targets
Call Stack (most recent call first):
/usr/share/cmake-3.18/Modules/FindBoost.cmake:1311 (_Boost_COMPONENT_DEPENDENCIES)
/usr/share/cmake-3.18/Modules/FindBoost.cmake:1919 (_Boost_MISSING_DEPENDENCIES)
cmake/Modules/OpmFind.cmake:135 (find_package)
cmake/Modules/OpmFind.cmake:230 (find_and_append_package_to)
cmake/Modules/OpmLibMain.cmake:83 (find_and_append_package_list_to)
CMakeLists.txt:222 (include)
Also the variable Boost_LIBRARIES will look quite messed up by
occurrences of optimized and debug:
Boost_LIBRARIES=optimized;/usr/lib/x86_64-linux-gnu/libboost_system.so.1.74.0;debug;/usr/lib/x86_64-linux-gnu/libboost_system.so;optimized;/usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.74.0;debug;/usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so
Which will make the modules unusable because of CMake errors during
linking:
CMake Error at /usr/share/dune/cmake/modules/DuneMacros.cmake:991 (target_link_libraries):
The "debug" argument must be followed by a library.
Call Stack (most recent call first):
src/CMakeLists.txt:2 (target_link_dune_default_libraries)
-- Configuring incomplete, errors occurred!
Note this fix is only needed for Boost versions 1.70 and higher.
Older versions do not provide cmake package configuration
files (BoostConfig.cmake) and hence there can be no mixup.
Note also that the alternative approach of setting
CMAKE_FIND_PACKAGE_PREFER_CONFIG does not work for OPM as with this
e.g. the Dune module versions would not be set correctly.
That location is /usr/share/bash-completion/completions and scripts
will be loaded on demand. Added option USE_BASH_COMPLETIONS_DIR (default OFF)
to request this. It is needed to prevent lintian warnings for Debian
packages.