This is, at best, a work-around for an issue that presents when
earlier versions of Autoconf (e.g., 2.59) are used to process Dune's
DUNE_BOOST_BASE macro (introduced in dune-common@6480,
dune-istl@1492). For reasons I've been unable to determine, the
HAVE_BOOST symbol just gets #define-d, not set to `ENABLE_BOOST' as
was intended. Some kind of race condition?
Anyway, the Dune ISTL module uses statements such as
#if HAVE_BOOST
/* ... */
#endif
to determine if particular software features should be enabled.
This breaks down if `HAVE_BOOST' is simply defined. Following
commit fb614100, the symbol `OPM_HAVE_BOOST' is always defined (as a
Boolean state), so if we override ISTL's notion of `HAVE_BOOST', the
above construction continues to work.
We will, however, happily remove thise kluge if a better solution
arises in the core Dune modules.
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.
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.
Existing mark-up (/** ... */) would erroneously apply the documentation
of one field to the one below. Using /**< ... */ avoids this problem.
Found by reading the Doxygen manual more carefully...