OpenFOAM 的 Spack 安装不安装实用程序和求解器程序

Spack installation of OpenFOAM does not install utility and solver programs

提问人:gkaf 提问时间:9/14/2023 最后编辑:gkaf 更新时间:9/19/2023 访问量:92

问:

我正在使用 spack 安装 OpenFOAM。Spack 的配置如下:

cat << EOF >> $SPACK_ROOT/etc/spack/packages.yaml
packages:
    slurm:
        externals:
        - spec: [email protected]
          prefix: /usr
        buildable: False
    libevent:
        externals:
        - spec: [email protected]
          prefix: /usr
        buildable: False
    pmix:
        externals:
        - spec: [email protected] 
          prefix: /usr
        buildable: False
    hwloc:
        externals:
        - spec: [email protected]
          prefix: /usr
        buildable: False
EOF

Spack 报告的 OpenFOAM 的可用变体包括:

# spack list openfoam
...
Variants:
    Name [Default]            When    Allowed values    Description
    ======================    ====    ==============    ==================================================

    build_system [generic]    --      generic           Build systems supported by the package
    int64 [off]               --      on, off           With 64-bit labels
    kahip [off]               --      on, off           With kahip decomposition
    knl [off]                 --      on, off           Use KNL compiler settings
    metis [off]               --      on, off           With metis decomposition
    mgridgen [off]            --      on, off           With mgridgen support
    paraview [off]            --      on, off           Build paraview plugins and runtime post-processing
    precision [dp]            --      sp, dp, spdp      Precision option
    scotch [on]               --      on, off           With scotch/ptscotch decomposition
    source [on]               --      on, off           Install library/application sources and tutorials
    vtk [off]                 --      on, off           With VTK runTimePostProcessing
    zoltan [off]              --      on, off           With zoltan renumbering
...

使用以下命令执行编译:

spack install -j [email protected] +pmi schedulers=slurm ^[email protected] ^[email protected]
spack install -j openfoam +metis +scotch +zoltan +kahip +mgridgen ^[email protected] 

安装后,我加载了 OpenFOAM 包,

spack load openfoam

我按照源代码文件中的说明测试安装:doc/Build.md

# Create the user "run" directory:
mkdir -p "$FOAM_RUN"
# Change to the user "run" directory:
run
# Copy tutorial
cp -r "$FOAM_TUTORIALS"/incompressible/simpleFoam/pitzDaily ./
# Run the tutorial
( cd pitzDaily && blockMesh && simpleFoam )

但是,没有安装求解器。搜索显示存在求解器的代码,但未生成可执行文件:simpleFoamsimpleFoam

# find $(spack location -i openfoam) -name simpleFoam
/mnt/irisgpfs/users/gkafanas/.spack/opt/spack/linux-rhel8-zen/gcc-8.5.0/openfoam-2306-ytaggtrqximxwyjmh6b77mw4j66leaxn/tutorials/basic/simpleFoam
/mnt/irisgpfs/users/gkafanas/.spack/opt/spack/linux-rhel8-zen/gcc-8.5.0/openfoam-2306-ytaggtrqximxwyjmh6b77mw4j66leaxn/tutorials/incompressible/simpleFoam
/mnt/irisgpfs/users/gkafanas/.spack/opt/spack/linux-rhel8-zen/gcc-8.5.0/openfoam-2306-ytaggtrqximxwyjmh6b77mw4j66leaxn/etc/caseDicts/createZeroDirectoryTemplates/solvers/simpleFoam
/mnt/irisgpfs/users/gkafanas/.spack/opt/spack/linux-rhel8-zen/gcc-8.5.0/openfoam-2306-ytaggtrqximxwyjmh6b77mw4j66leaxn/applications/solvers/incompressible/simpleFoam

更详细的搜索显示,未安装多个实用程序 () 和求解器 () 可执行文件。applications/utilities/applications/solvers/

是否可以使用 Spack 编译和加载所有实用程序和求解器可执行文件?它需要任何额外的配置吗?

Openfoam Spack (开放式泡沫包装

评论


答:

1赞 Heiko Herrmann - TalTech 9/19/2023 #1

诀窍可能是禁用 METIS 和 ParaView,见下文。

我们在不同的 Linux 发行版上有几个 SPACK/OpenFOAM 版本(具有非常相似的 packages.yaml):

CentOS 7(手动编译的 GCC 10.3.0)

SPACK 0.17.1 openfoam@2112%g[email protected]~float32~int64~kahip~knl~metis~mgridgen~paraview+scotch+source~spdp~vtk~zoltan

SPACK 0.19.0 openfoam@2212%[email protected]~float32~int64~kahip~knl~metis~mgridgen~paraview+scotch+source~spdp~vtk~zoltan build_system=通用

Ubuntu focal(系统 GCC 9.3.0):

SPACK 0.19.0 openfoam@2106%[email protected]~float32~int64~kahip~knl~metis~mgridgen~paraview+scotch+source~spdp~vtk~zoltan build_system=通用

我还没有成功编译支持METIS的OpenFOAM(还没有),到目前为止,我无法从SPACK编译ParaView,所以这些都被禁用了。ParaView 是从系统或上游二进制文件安装的。

以下操作应有效:

spack install openfoam@2212 ~float32~int64~kahip~knl~metis~mgridgen~paraview+scotch+source~spdp~vtk~zoltan ^[email protected]

SPACK 可能有点脾气暴躁,具体取决于 Linux 发行版和编译器(以及已安装的系统软件包)。

评论

0赞 gkaf 9/23/2023
删除 METIS 分区器有很大帮助!这是新的编译命令:bash spack install openfoam +scotch +source precision=dp ~int64 ~kahip ~knl ~metis ~mgridgen ~paraview ~vtk ~zoltan ^[email protected]