OpenFOAM-1712 ================== 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. 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. 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 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 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 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. --------------------------- Building on Darwin (Mac-OS) --------------------------- Support for Darwin is incomplete, but has been provisioned for. The following are typical (as of yet) unresolved issues. * Scotch, ptscotch: - The librt linkage is required for Linux, but not for Darwin. Current resolution: Edit or patch src/parallel/decompose/ptscotchDecomp/Make/options src/parallel/decompose/scotchDecomp/Make/options to remove the '-lrt' library * CGAL: - ThirdParty CGAL will normally need to be compiled without mpfr/gmp. This should be done manually prior to building OpenFOAM or other ThirdParty. Eg, cd $WM_THIRD_PARTY_DIR ./makeCGAL gmp-none mpfr-none The erroneous references to gmp/mpfr library can be directly removed from the wmake/rules/General/CGAL, but it is more advisable to override them instead in the wmake/rules/darwin64Clang/CGAL file. --