The error checking macro makes it harder to read and harder to write, so
instead we now only check for functions that can contain errors. Bounds and
range checks are handled by PETSc and not OPM.
The previous implementation set plenty of values in the initialization list and
immediately overwrote these values with values looked up from the param group.
This patch makes it look up the parameteres from the param group argument,
making the constructor simpler.
Petsc only supports initialisation through the ParameterGroup constructor.
Calling the default, non-arg constructor is a static error, and not
implementing it makes using it break compiles.
call_petsc.c was really a thin C wrapper around the call to petsc itself and
turns out was mostly unnecessary C++ emulation. This removes the file entirely
and ports its functionality into LinearSolverPetsc.cpp.
All features from the file should now be more readable as well as properly
utilising modern C++ features.
The patch uses the CHKERRXX macro from petsc to handle errors reported by
petsc, and currently does not handle this and give the control back to OPM's
error/throw system.
Removes a lot of the conditionals in the makefile. As reflected in the
comments, find_* won't run if the target variable is already set, and appending
empty list elements changes nothing. In order to make reading the file easier
these conditionals have mostly been removed.
Allows a specific PETSC_ROOT to override and replace default search paths. Now,
if PETSC_ROOT is passed and the find_library calls cannot find the libraries,
the makefile will only search in user provided directories.
When building with USE_MPI=ON the FindPetsc now uses the system provided
MPI if available. Falls back to looking for the PETSc provided unimpi for
sequential builds.
Removed the NO_DEFAULT_PATH flag as this really isn't working for most systems
(where PETSc will be installed from a repository and in /usr or /). Path suffix
parameters extended to accept more version-less configs too, to be compatible
with a default PETSc (debian style) install.
The FindPetsc module would check for a PETSC_ROOT and not attempt to look for
mpi and the petsc header if this was not set, which it in most cases won't be.
If the variable is set then the conditional include is redundant, as it will
search the explicitly passed paths first anyways.
that one was quite specific to the old parser and would thus require
more work to convert to the opm-parser than what it is worth the
effort. If you _really_ want to keep this tool, ping me and I'll port
it...