[Dune] How to use parallel linear solvers

Dominic Kempf dominic.r.kempf at gmail.com
Tue Jun 9 17:28:56 CEST 2015


Okay, USE_MPI=ON is an OPM-specific. I have no idea how their build system
deviates from ours. If your project is a (correctly configured) dune
module, my solution should be sufficient.

Dominic

On Tue, Jun 9, 2015 at 5:13 PM, Tobias Ritschel <tobiasritschel at gmail.com>
wrote:

> I have tried to add
>
> add_executable(runoilsim FI_Simulation.cpp)
> add_dune_mpi_flags(runoilsim)
>
> also without the first line, and I get the error
>
> CMake Error at CMakeLists.txt:19 (add_dune_mpi_flags):
>   Unknown CMake command "add_dune_mpi_flags".
>
> The config file is included as the first in every .cpp file.
>
> I believe I've stumbled upon a solution though. Running cmake with the
> option -DUSE_MPI=ON seems to have solved the problem. It was suggested when
> I was running cmake without it.
>
>
>
> On 9 June 2015 at 16:51, Dominic Kempf <dominic.r.kempf at gmail.com> wrote:
>
>> The problem could of course also lie with not including config.h, which
>> is where HAVE_MPI is defined.
>>
>> On Tue, Jun 9, 2015 at 4:14 PM, Dominic Kempf <dominic.r.kempf at gmail.com>
>> wrote:
>>
>>> Hey Tobias,
>>>
>>> The problem is that with our current build system, external packages
>>> like MPI need not only to be found but also explicitly enabled in order to
>>> be used. You can do this in your CMakeLists.txt file by adding:
>>>
>>> add_dune_mpi_flags(targetname)
>>>
>>> Note, that we are aiming to change this errorprone behaviour and to
>>> auto-enable all packages by default. Using git master you can instead use
>>> the macros from dune-common/cmake/modules/DuneEnableAllPackages.cmake
>>>
>>> Best,
>>> Dominic
>>>
>>> On Tue, Jun 9, 2015 at 4:03 PM, Tobias Ritschel <
>>> tobiasritschel at gmail.com> wrote:
>>>
>>>> Hi
>>>>
>>>> I am trying to implement a parallel linear solver using ISTL. For that
>>>> I need to use the *OwnerOverlapCopyCommunication *class. I include
>>>>
>>>> #include <dune/istl/owneroverlapcopy.hh>
>>>>
>>>> and when I try to compile I get the following error
>>>>
>>>> /home/tobias/Documents/OPM_Optimization/src/OPMSim.cpp:556:52: error:
>>>> 'OwnerOverlapCopyCommunication' is not a member of 'Dune'
>>>>
>>>> From *owneroverlapcopy.hh* it seems that the *OwnerOverlapCopyCommunication
>>>> *is only defined if HAVE_MPI is defined. I believe that the solution
>>>> is to change the cmake files. I am currently using cmake files copied from
>>>> opm-autodiff and haven't been able to find anything which searches for MPI.
>>>>
>>>> Is it correct that this is what is causing the compilation error and
>>>> could you point me towards a solution?
>>>>
>>>> Kind regards
>>>> Tobias Ritschel
>>>>
>>>> _______________________________________________
>>>> Dune mailing list
>>>> Dune at dune-project.org
>>>> http://lists.dune-project.org/mailman/listinfo/dune
>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.dune-project.org/pipermail/dune/attachments/20150609/73079b3e/attachment.htm>


More information about the Dune mailing list