Use result of OPM_DYNLINK_BOOST_TEST to determine whether or not to
#define the Boost symbol BOOST_TEST_DYN_LINK .
While here, replace an unprintable character with the proper UTF-8
encoding in a comment.
Details:
Test suites based on Boost.Test must know how to include the library
support code into the executables. If the Boost.Test library is
dynamically linked, then test suites must define the pre-processor
symbol "BOOST_TEST_DYN_LINK". Otherwise, this symbol must *not* be
defined.
Resolution:
Introduce a new Autoconf macro, OPM_DYNLINK_BOOST_TEST, that defines a
secondary symbol--HAVE_DYNAMIC_BOOST_TEST--if the local computer system
uses dynamic linking. Test suites (e.g., tests/param_test.cpp) may then
inspect this symbol to determine whether or not to #define
BOOST_TEST_DYN_LINK.
Call the macro from "configure.ac".
Suggested by: Joakim Hove
Conflicts:
opm/core/grid/cpgpreprocess/geometry.c
Defer printing diagnostic message concerning negative cell volumes
until we're absolutely sure that the volume actually *is*
negative. Since we're now accumulating signed volumes, some of
the initial contributions might be negative but the end result
likely won̈́'t be.
This merge also brings feature parity with the MATLAB Reservoir
Simulation Toolbox.
diagnostic message. We don't know if we should emit a
diagnostic concerning non-positive cell volumes until
we have accumulated all tetrahedral contributions.
While here, amend the diagnostic message to also report the cell in
which non-positive volumes are detected.
Conflicts:
Makefile.am
opm/core/grid/cpgpreprocess/facetopology.c
opm/core/grid/cpgpreprocess/mxgrdecl.c
opm/core/grid/cpgpreprocess/preprocess.c
opm/core/grid/cpgpreprocess/sparsetable.c
opm/core/grid/cpgpreprocess/sparsetable.h
opm/core/grid/cpgpreprocess/uniquepoints.c
This merge brings a new, more resilient and feature-complete
corner-point processing. In particular, the new code features
exact, in-plane vertex coordinates for face nodes that arise as a
result of fault processing and which are not located on pillars.
Secondly, the resulting grid's cells are ordered lexicographically
with the I index cycling the most rapidly, followed by J and
finally K.
Finally, this merge also brings automatic handling of left-handed
coordinate systems which, until now, have produced negative cell
volumes as a result of face vertices being ordered such that
interface normals point from cell 2 to cell 1 in this case.
Left-handed coordinate systems are recognised using a simplistic
triple-product characterisation akin to the implementation of
function "processGRDECL" of MRST.
This code is now an (almost) exact replica of revision 1001 of
https://public.ict.sintef.no/viewvc/openrs/trunk/dune-cornerpoint/grid/preprocess/
The merge also removes opm/core/grid/cpgpreprocess/readvector*, so
remove tests/test_readvector.cpp (and accompanying Make rule) to
maintain a buildable tree.
Specifically:
* Use a simple triple-product characterisation of left-handed
coordinate systems.
* Reflect Y coordinates about XZ plane to guarantee right-handed
systems during facetopology() processing.
* Restore original Y coordinates upon completion of
process_grdecl() lest subsequent geometry processing fail to
produce correct results.
* Reverse face-node order if an odd number of sign changes have
been applied to the node coordinates (i.e., if *either* the Y
*or* the Z--but not both--coordinates have been flipped).
Signed-off-by: Bård Skaflestad <Bard.Skaflestad@sintef.no>
Specifically:
* Move linearindex() ahead of all existing functions and use it in
compute_cell_index().
* compute_cell_index(): Insert white-space and comments.
* process_vertical_faces(): Add comments to describe stages in the
process of computing new connections (faces).
Signed-off-by: Bård Skaflestad <Bard.Skaflestad@sintef.no>