In the case of both phases being upscaled, only one of the tensors were sent,
i.e. the send-buffer was 3 doubles short. This causes program output to always
be wrong in the MPI version.
This commit replaces the hard-coded conversion factor from mD to
m**2 (metres squared) with an expression based on the Units.hpp
facility of module opm-core.
Note: This may introduce slight changes to the upscaling result due
to reduced rounding error in the unit conversions.
We need access to the raw, unconverted property vectors to use the
existing algorithm for defining (e.g.,) capillary pressure ranges.
This subtle point was missed during the initial transition to using
the opm-parser module for input handling.
This commit replaces the hard-coded conversion factor from mD to
m**2 (metres squared) with an expression based on the Units.hpp
facility of module opm-core.
Note: This may introduce slight changes to the upscaling result due
to reduced rounding error in the unit conversions.
We need access to the raw, unconverted property vectors to use the
existing algorithm for defining (e.g.,) capillary pressure ranges.
This subtle point was missed during the initial transition to using
the opm-parser module for input handling.
This means that PINCH must be used in the input deck,
whereas before, z_tolerance was available as a program
parameter (but only for some programs). A benefit is that
all programs will now uniformly accept PINCH in the input
decks.
this is currently just "RHO", an non-standard addition for
opm-upscaling and needs to be added to the Eclipse parser manually
before it is set loose on the deck file...
we need to call mpi_init when compiled against mpi (in particular mpich)
even if running with a single node.
this fixes this across all apps in a uniform way (the dune-intended approach)
The <have_boost_redef.hpp> header was introduced (commit
OPM/opm-core@82369f9) as a work-around for a particular interaction
in the Autotools-based setup of OPM-Core and the Dune core modules.
Notably, Dune's "Enable" trick for Boost failed on some older
Autoconf systems. Now that we're using CMake, however, that kluge
is no longer needed because OPM-Core always
#define HAVE_BOOST 1
i.e., as an explict true/false value.
Therefore, we need no longer include <have_boost_redef.hpp> . The
header will be removed at a later time.
Zero or negative user-supplied surface tension made the code
crash. Kr(Sw) is indifferent to this value, so it is
a valid fix to postpone the multiplication of surface-tension
to the vector of pressure data to the end of the code,
right before it is printed.
- Added the possibility to set the number of iterations A.M() make no sense for large matrices.
- Added the possibility to set the number of smoother steps to use.
- Added upscaling_relperm binaries for anisotropic criterion and for different smoothers:
upscale_relperm: default criterion with ILU0 smoother
upscale_relperm_aniso: Use settings for anisotropic problems with ILU0 smoother
upscale_relperm_ssor: default criterion with SSOR smoother
upscale_relperm_aniso_ssor: default criterion with SSOR smoother
upscale_relperm_bgs: default criterion with Block Gauss-Seidel smoother
upscale_relperm_aniso_bgs: default criterion with block Gauss-Seidel smoother
In the 4.6.x range of GNU compilers, the cmath header include math.h, adding
isinf() and isnan() to the global namespace as well as std. When used in if
statements, there is then an ambiguity between the std version which returns
bool and the global function which returns int; for more details see:
<http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48891>
If we qualify the functions explicitly with their namespace, this error goes
away.
- Code using the ...Upscaler classes must supply an SI-converted parser.
- Code manipulating arrays of PERMX values (for example) must take care
to use the non-converted values, as it is usually written with millidarcies.