and make sure that we always search for ParMETIS in the *prereq.cmake file
This file gets processed when running CMake for opm-simulators and
during a find_package(opm-simulators) call.
Previously this was done via config.h, but due to the recent build
system refactoring these defines became MIA and some code is never
activated even if it would be supported by the hardware.
We now set the necessary compile definitois as properties for the relevant
source files to fix this.
This is what we did before refactoring the build system. Somehow this
was accidentally skipped during the refactoring and this commit
reintroduces it.
This is needed, because without it we will always directly agglomerate
the data on the coase levels to on process instead of fewer and fewer.
This should make a difference in scalability of the linear solver when
using many processes.
- TPSA-Flow coupling done at the nonlinear solver step level:
- -- Lagged coupling -> TPSA lags behind one time step
- -- Fixed-stress -> Iterate until Flow and TPSA converge
- Generic TPSA solver using Newton with associated linearizer.
- Linear elasticity equations implemented
- Specialized version of ISTL linear solver for TPSA
- Output to restart files and VTK
Reject invalid GCONINJE configurations where multiple RESV/VREP
injection phases conflict, either within the same group or along
an ancestor-descendant path in the group hierarchy. Disconnected
branches with different top-up phases remain allowed.
The validation runs once per time step from setCmodeGroup() when
processing the FIELD group, before injection controls and guide
rates are propagated.
Also add a defensive NETV guide rate check in GuideRateHandler
that rejects NETV usage when the group's top-up phase does not
match the guide rate phase.
Companion PR: opm-common change to exclude REIN from
Group::topup_phase(), so it only reflects RESV and VREP modes.
only used in cpp files and two header files. neither of
these header files are part of any public interface,
so mark them private.
while this means downstreams cannot detect if the library
was built with float support, they will certainly notice the linking
errors. should this become a problem, we can easily move it to
public
the stl functions are marked constexpr, and this causes
warnings when used in device code. turn on option to
relax this restriction.
move code doing this for other files into source hook