提问人:gkaf 提问时间:9/14/2023 最后编辑:gkaf 更新时间:9/19/2023 访问量:92
OpenFOAM 的 Spack 安装不安装实用程序和求解器程序
Spack installation of OpenFOAM does not install utility and solver programs
问:
我正在使用 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 )
但是,没有安装求解器。搜索显示存在求解器的代码,但未生成可执行文件:simpleFoam
simpleFoam
# 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 编译和加载所有实用程序和求解器可执行文件?它需要任何额外的配置吗?
答:
诀窍可能是禁用 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 发行版和编译器(以及已安装的系统软件包)。
评论
bash spack install openfoam +scotch +source precision=dp ~int64 ~kahip ~knl ~metis ~mgridgen ~paraview ~vtk ~zoltan ^[email protected]
评论