liggght
liggghts是一个开源的离散元程序包,是以lammps为基础进一步开发的,其全称为: LAMMPS Improved for General Granular and Granular Heat Transfer Simulations,首字母简写为LIGGGHTS
一、脚本模板
#!/bin/bash
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=56
#SBATCH --partition=g1_share
#SBATCH --job-name=liggght
#SBATCH --output=liggghts.%j.out
#SBATCH --error=liggghts.%j.err
ulimit -s unlimited
ulimit -l unlimited
unset I_MPI_PMI_LIBRARY # 取消默认mpi库,使用intel自带
export I_MPI_JOB_RESPECT_PROCESS_PLACEMENT=0 # intel 多节点作业所需修改参数
module load gcc/9.4.0 # intel 环境加载
module load hpcx/2.11
module load liggghts/3.8_gcc9.4
mpirun -x lmp_auto -in in.sph_1
二、 编译
#1、下载地址
#liggghts https://github.com/CFDEMproject/LIGGGHTS-PUBLIC/tags
#vtk https://gitlab.kitware.com/ vtk/vtk
#2、环境选择 gcc9.4+openmpi4.1.1_gcc9.4 cmake/3.23.1
export CC=`which gcc`
export CXX=`which g++`
export FC=`which gfortran`
#3、选择vtk 版本
tar xf LIGGGHTS-PUBLIC-3.8.0.tar.gz
vim LIGGGHTS-PUBLIC-3.8.0/src/MAKE/Makefile.auto
/vtk
#查看 liggght 要下载的vtk 版本 ,3.8.0版本liggghts 依赖 VTK-8.0.1 下载地址为 http://www.vtk.org/files/release/8.0/VTK-8.0.1.zip
#4、查看 vtk 编译命令
#查找 cmake
/cmkae
# N n 上下切换搜索项 大概在 800 行
cmake -DBUILD_TESTING:BOOL=OFF -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX=../install -DModule_vtkIOMPIParallel:BOOL=ON -DVTK_Group_MPI:BOOL=ON -DVTK_Group_Rendering:BOOL=OFF -DVTK_RENDERING_BACKEND:STRING=None -DVTK_USE_X:BOOL=OFF -DModule_vtkIOMPIImage:BOOL=ON -DModule_vtkParallelMPI:BOOL=ON ../
#退出 LIGGGHTS-PUBLIC-3.8.0/src/MAKE/Makefile.auto 文件
:q
# 5、安装 vtk
unzip VTK-8.0.1.zip
cd VTK-8.0.1
mkdir build
cd build
cmake -DBUILD_TESTING:BOOL=OFF -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX=../install -DModule_vtkIOMPIParallel:BOOL=ON -DVTK_Group_MPI:BOOL=ON -DVTK_Group_Rendering:BOOL=OFF -DVTK_RENDERING_BACKEND:STRING=None -DVTK_USE_X:BOOL=OFF -DModule_vtkIOMPIImage:BOOL=ON -DModule_vtkParallelMPI:BOOL=ON ../
make -j 20
make install -j 20
#6、安装 liggghts
cd LIGGGHTS-PUBLIC-3.8.0/src/
make auto
#修改 MAKE/Makefile.user
12 AUTOINSTALL_VTK = "ON"
###vtk 安装目录
120 VTK_INC_USR=-I/sh2/software/app/liggghts/vtk/VTK-8.0.1/install/include/vtk-8.0
122 VTK_LIB_USR=-L/sh2/software/app/liggghts/vtk/VTK-8.0.1/install/lib
#保存退出
make auto
#编译成功后会 生成 lmp_auto
##7、加载 环境变量 需要 加载 vtk lib 目录 及 lmp_auto文件目录
报错:
用户要求协助编译liggght,并告知她对源代码进行了部分修改,没法直接用集群中预编译的。本地能正常编译安装。
本地环境:openmpi1.10.7 vtk6.2 liggght3.8 源代码修改版本 gcc4.8.5
vtk 编译:
cmake -DBUILD_TESTING:BOOL=OFF -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX=../install -DModule_vtkIOMPIParallel:BOOL=ON -DVTK_Group_MPI:BOOL=ON -DModule_vtkIOMPIImage:BOOL=ON -DModule_v
tkParallelMPI:BOOL=ON ../
make -j
make -j install
liggght:编译
vim MAKE/Makefinde.mpi
MPI_INC = -I/public/software/mpi/openmpi/1.10.7/openmpi_gcc4.8.5/include
MPI_PATH = -L/public/software/mpi/openmpi/1.10.7/openmpi_gcc4.8.5/lib
FFT_INC = -I/public/software/mathlib/fftw/3.3.10/fftw_gcc4.8.5/include
FFT_PATH = -L/public/software/mathlib/fftw/3.3.10/fftw_gcc4.8.5/lib
VTK_INC = -I/public/home/limc/software/6.2/vtk-v6.2.0/install/include/vtk-6.2
VTK_PATH = -L/public/home/limc/software/6.2/vtk-v6.2.0/install/lib
JPG_INC = -I/usr/include
JPG_PATH = -L/usr/lib64
make mpi
1.找不到vtk 库 添加以下环境变量
export LD_LIBRARY_PATH=/public/home/limc/software/6.2/vtk-v6.2.0/install/lib:/public/software/mpi/openmpi/1.10.7/openmpi_gcc4.8.5/lib:$LD_LIBRARY_PATH
export PATH=/public/home/limc/software/6.2/vtk-v6.2.0/install/bin:/public/software/mpi/openmpi/1.10.7/openmpi_gcc4.8.5/bin:$PATH
2、少函数
怀疑源码问题,查看提示中的函数包含在LIGGGHTS-PUBLIC-3.8.0/src: neigh_request.h
按照提示查看pair_hybrid.cpp 及 pair_hybrif_overlay.cpp 两个文件,发现均包含 neigh_request.h
因用户修改过源码,尝试编译原版liggght,判断是否为依赖环境问题,编译正常,基本排除依赖库问题。
使用 diff 比对原版和用户修改源码后的版本,输出提示4千多行,重点筛选上述报错提到的几个文件及neigh_request字样的文件名的文件,发现少LIGGGHTS-PUBLIC-3.8.0/src: neigh_request.cpp
复制原版中 LIGGGHTS-PUBLIC-3.8.0/src: neigh_request.cpp到用户修改版本的源码包对应位置,编译成功
与用户确认 LIGGGHTS-PUBLIC-3.8.0/src: neigh_request.cpp 未经过修改,并索要算例,经测试编译正常
作者:admin 创建时间:2024-12-05 09:21
最后编辑:admin 更新时间:2024-12-05 10:18
最后编辑:admin 更新时间:2024-12-05 10:18