mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
bdc4573e2ad381fa753017fb82d6c9bdda9da0c9
To support this the solveSystem methods of the LinearSolverInterface gets an optional additional template parameter of type boost::any. It can hold any copy constructable object. In our case it is used to pass the information about the parallelization into the solvers of dune-istl without the compiler needing to know their type. Inside of LinearSolverIstl::solveSystem we check whether the type stored inside of boost::any is the new ParallelIstlInformation. If this is the case we extract the information and use the parallel solvers if available, otherwise we solve serial/sequential. The new ParallelIstlInformation is needed as the OwnerOverlapCopyCommunication is not copy constructable. This is indeed a design flaw that should and will fixed upstream, but for the time being we need ParallelIstlInformation to transfer the ParallelIndexSet and RemoteIndices objects.
Description
Simulator programs and utilities for automatic differentiation.
Languages
C++
78.3%
ECL
17.7%
CMake
1.8%
Cuda
1.2%
Shell
0.5%
Other
0.5%