Skip to content
Snippets Groups Projects
BuildIssues.txt 3.84 KiB
Newer Older
==================
Known Build Issues
==================

---------------------
Intel MPI (Gcc/Clang)
---------------------

  Either I_MPI_ROOT or MPI_ROOT can be used to specify the Intel-MPI
  installation directory path.

  The ThirdParty build of ptscotch uses `mpiicc` for Intel-MPI
  instead of the usual `mpicc`.
  When gcc or clang are used, it is highly likely that the
  I_MPI_CC environment variable also needs to be set accordingly.

  See `mpiicc -help` for more information about environment variables.


--------------
Intel Compiler
--------------

  Since OpenFOAM uses C++11, a fairly recent version is required.
Mark Olesen's avatar
Mark Olesen committed
  The Intel compiler - icc (ICC) 17.0.1 20161005 is ok, but the
  initial release - icc (ICC) 17.0.0 20160721 - has a bug that
  will result in these types of error messages.

    MatrixSpaceI.H(492): error: no instance of overloaded function
    "Foam::MatrixSpace<Form, Cmpt, Mrows, Ncols>::Block<SubTensor,
    BRowStart, BColStart>::operator=" matches the specified type


---
VTK
---

If using the runTimePostProcessing to create on-the-fly images, you
can simply just compile ParaView and these libraries will be used.
Mark Olesen's avatar
Mark Olesen committed
If you elect to use a separate VTK compilation (for example for
off-screen rendering), it is advisable to reuse the VTK libraries that
are provided with ParaView by making an appropriate symlink
Mark Olesen's avatar
Mark Olesen committed
prior to using makeVTK. This doesn't just reduce disk-space, but works
much better than using the VTK tar file.
Using runTimePostProcessing with the 'plain' VTK libraries does
Mark Olesen's avatar
Mark Olesen committed
generally work, but does not exit cleanly:

    symbol lookup error: .../linux64Gcc/VTK-7.1.0/lib/libvtkCommonExecutionModel-7.1.so.1:
    undefined symbol: _ZN33vtkFilteringInformationKeyManager13ClassFinalizeEv

    symbol lookup error: .../linux64Gcc/VTK-7.1.0/lib/libvtkCommonDataModel-7.1.so.1:
    undefined symbol: _ZN49vtkInformationQuadratureSchemeDefinitionVectorKeyD1Ev

Mark Olesen's avatar
Mark Olesen committed
This error appears to be suppressed if VTK is compiled with a Debug build-type.


-------------------------
Building on older systems
-------------------------

If the system gcc is too old for building OpenFOAM, a third-party gcc or
clang/llvm installation can be used. If building clang/llvm, note that
there are also minimum gcc/g++ requirements there:

   Min gcc/g++
   ===========   ==========
    4.4          llvm-3.4.2
    4.7          llvm-3.5.2 - llvm-3.7.0


If your system compiler is too old to build the minimum required gcc or
clang/llvm, it is just simply too old.

---------------------------------
ThirdParty clang without gmp/mpfr
---------------------------------

If using ThirdParty clang without gmp/mpfr, the ThirdParty makeCGAL
script will need to be run manually and specify that there is no
gmp/mpfr. Eg,

    cd $WM_THIRD_PARTY_DIR
    ./makeCGAL gmp-none mpfr-none

Subequent compilation with Allwmake will now run largely without any
problems, except that the components linking against CGAL
(foamyMesh and surfaceBooleanFeatures) will also try to link against
a nonexistent mpfr library. As a workaround, the link-dependency can
be removed in wmake/rules/General/CGAL :

    CGAL_LIBS = \
        -L$(BOOST_ARCH_PATH)/lib \
        -L$(BOOST_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) \
        -L$(CGAL_ARCH_PATH)/lib \
        -L$(CGAL_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) \
        -lCGAL

This is a temporary inconvenience until a more robust solution is found.


-------------------------
Building with spack
-------------------------

If you are building with spack, note that the depends_on for paraview
resolves poorly. The +qt dependency (for building the reader module)
may need to be specified as a preference by including the following in
your `~/.spack/packages.yaml` file:

    packages:
        paraview:
            variants: +qt

It appears that spack will otherwise ignore any paraview+qt version
and attempt to install a paraview~qt version instead.