[petsc-users] Integrating PETSc with existing software using CMake

Jed Brown jedbrown at mcs.anl.gov
Mon Jul 30 18:46:50 CDT 2012


On Mon, Jul 30, 2012 at 4:27 PM, Hadayat Seddiqi <hadsed at gmail.com> wrote:

> Hi Jed,
>
> Apparently it's failing to run the test script (it says
> PETSC_EXECUTABLE_RUNS was not set). If I'm correct, the output of the
> failed test script should be in CMakeFiles/CMakeError.log . Looking at
> this, it gives me the following:
>
> In file included from /home/h37/petsc-3.2-p7/include/petscis.h:7,
>                  from /home/h37/petsc-3.2-p7/include/petscvec.h:9,
>                  from /home/h37/petsc-3.2-p7/include/petscmat.h:6,
>                  from /home/h37/petsc-3.2-p7/include/petscdm.h:6,
>                  from /home/h37/petsc-3.2-p7/include/petscpc.h:6,
>                  from /home/h37/petsc-3.2-p7/include/petscksp.h:6,
>                  from /home/h37/petsc-3.2-p7/include/petscsnes.h:6,
>                  from /home/h37/petsc-3.2-p7/include/petscts.h:7,
>                  from
> /home/h37/sapphiresimulator/FOP/build/CMakeFiles/CMakeTmp/src.c:3:
> /home/h37/petsc-3.2-p7/include/petscsys.h:105:17: error: mpi.h: No such
> file or director
>

You may need to set the correct MPI wrapper compiler. If that doesn't work,
can you send the full Output and Error files to petsc-maint?


>
> And of course a lot more afterwards. How is it possible that it cannot
> find MPI, even though all of the test cases and example/tutorial programs
> worked with mpi?
>
> I realize it's probably bad practice, but I also thought I would try to
> disable this flag by forcing PETSC_EXECUTABLE_RUNS to "YES", but it doesn't
> seem to work. I tried commenting out if (${${run}}) and the corresponding
> endif, as well as moving it outside the macro. I feel rather silly about
> this, but I just cannot get it to work.
>
> Thanks,
>
> Had
>
> On Mon, Jul 30, 2012 at 5:36 PM, Jed Brown <jedbrown at mcs.anl.gov> wrote:
>
>> On Mon, Jul 30, 2012 at 4:19 PM, Hadayat Seddiqi <hadsed at gmail.com>wrote:
>>
>>> Hello,
>>>
>>> I'm working on a large numerical software project whose framework has
>>> largely been developed already. We're using CMake to generate makefiles.
>>> I'm also using SLEPc (for full disclosure). The examples given by PETSc and
>>> SLEPc documentation require me to include makefiles, but I don't know of
>>> any straightforward way to command CMake to do this for me.
>>>
>>> I have looked at the FAQ's link for the CMake question:
>>> https://github.com/jedbrown/dohp But this seems very old, and in any
>>> case it doesn't exactly work.
>>>
>>
>> The CMake stuff is here.
>>
>> https://github.com/jedbrown/cmake-modules/
>>
>> I'm not an expert on CMake, so I couldn't say what was the causing the
>>> problem, but in the end it told me it could not find the PETSc libraries.
>>> It seemed to be rather complicated-- I know PETSc will be where I need it,
>>> so I don't need all the verification that it's there and everything works.
>>> I thought, with the benefit of more intimate knowledge of how PETSc runs,
>>> that someone could show a much simpler way (it seems to me that this ought
>>> to be the case).
>>>
>>
>> The problem is that there are lots of ways that things can "not work", so
>> its important for the FindPETSc.cmake script to really try. Also, CMake
>> insists on taking parameters in a different way (e.g. converting
>> command-line flags to full paths).
>>
>> Have you looked at the logs (CMakeFiles/CMake{Output,Error}.log
>>
>> Here is more active package that uses the FindPETSc.cmake script
>>
>> https://github.com/pism/pism
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120730/925ad5e0/attachment-0001.html>


More information about the petsc-users mailing list