Site Overlay

Lammps安装教程

近些时间,由于组内项目需要,在自学lammps安装使用的相关问题。

Lammps对于初学者极不友好,安装使用lammps不仅需要分子动力学的相关专业知识,同时也需要掌握Linux,Cmake等相关计算机的基础知识。Linux本身对初学者也很不友好,所以,特写此文,希望可以帮助到那些也挣扎在学习Lammps路上的同学们。本文中,一些内容来源于网络和Lammps官方手册,如有侵权,请您联系我删除,谢谢!

(笔者的配置环境是Ubuntu 22.04 LTS,如您使用Windows或其他Linux发行版,请自行参照安装手册。)

首先,想告诉大家,如果是初学者,安装Lammps要有耐心!笔者在本科阶段从事过ROS机器人的相关开发工作,故学习过一些Linux基础,但是在此次安装中依然遇到了很多问题;遇到没问题,寻找解决办法的过程亦是学习的过程。大家遇到任何问题,可以在CSDN、Google或MATSCI(https://matsci.org/c/lammps/40)的官方论坛检索错误代码寻找解决方案,如果无解,可在MATSCI论坛发表求助帖,会大神帮你解决。

Lammps官方提供了两个版本供各位选择,一个是Pre-build版,安装会相对容易,但是功能包有限,适合学习或者简单的模拟任务;还有一种是完整版的,完整版的分为两种编译模式,一种是传统的make安装,另一种为Cmake安装;在这里笔者强烈建议大家使用Cmake方式安装完整版Lammps。使用Cmake安装有点众多,如:CMake可以检测可用的硬件、工具、功能和库,并相应地调整LAMMPS默认构建配置;CMake可以为不同的构建工具和集成开发环境(IDE)生成文件;Lammps中所有启用的组件都在单个构建操作中编译等。

  • 安装依赖

Lammps需要几个依赖环境来运行,所以,第一步我们需要先把必要的依赖安装完成,不然后面一定会报错;

请在Ubuntu打开终端并执行以下命令:

$ apt install build-essential

$ apt install cmake apt install gfortran    

$ apt update apt upgrade

FFTW,快速傅里叶变换所需的软件包,如果没有安装其他版本,将会使用LAMMPS自带;如果有其他版本,CMake将会自动检测。

  • 下载源码包并解压

源码有两种方式获得;1、使用Git命令 2、官方Github下载

Git命令:git clone https://github.com/lammps/lammps.git

下载后,请在终端中cd到压缩包存放的目录:

之后,执行:tar -zxvf lammps-devlop.zip 解压到此目录

  • 安装并行LAMMPS所需的并行框架mpich (4.0.2版本见文末链接下载),若使用OpenMpi请举一反三。首先去官方网站下载mpich3的源码,然后

请在终端中执行:

$ tar -zxvf mpich3.tar.gz #解压缩

$ ./configure –enable-shared=yes #–enable-shared=yes是必不可少的参数;如果安装到其他路径,注意环境变量的问题。

$ make

$ make install

  • 编译安装Lammps

我们需要自行在解压出的lammps文件夹中建立build文件夹后进行编译操作:

命令:

请在终端中执行:

$ cd lammps #进入源码根目录

$ mkdir build

$ cd build

这里我们需要讨论一下如何选择需要编译的包。众所周知,巴比塔不是一伙人建成的,同样,LAMMPS开发组也不会事必躬亲,所以肯定要借助别人的代码来完善功能。由于这些代码的贡献者不同,因此很多功能不能合并到主线当中;又或者是有些包是只有少部分人会用到或者还要依赖其他的工具,因此给出了一个选项,允许各位选择什么包需要编译,什么包不需要。这个文件就叫*.cmake*。(*.cmake文件在 lammps/cmake/preset目录下

那么,什么是编译呢?

说白了,我的理解就是,在Windows上,我们安装软件,有一个安装向导,向导会指引你一步一步成功安装软件;但是在Linux中不一样,我们没有安装向导,我们只能按照我们的需要,使用命令去安装软件;(也就是说,Windows装软件像一键安装脚本,所有的安装流程都是自动操作的,有可视化的GUI;但是Linux没有一键脚本,我们只能手动告诉电脑怎么装);

我们随意打开一个.cmake文件看:

这几行代码说明的意思是不言自明的。很显然,set()声明了一个名为ALL_PACKAGE 的集合,集合中包括了一些包的名称。然后在一个foreach循环中,将ALL_PACKAGE的包全部ON。因此如果你需要加减什么包,可以自行从这个集合中添加或者移除。presets里同时还提供了其他的预设文件可供参考。笔者使用了all on文件,打开了所有的功能包。

我们使用以下命令按需选择预设包进行编译:

$ cmake -C ../cmake/preset/all_on.cmake ../cmake      #从../CMake/preset/all_on.cmake读取CMake脚本的配置

$ make   #编译

这将创建并更改build文件夹,然后运行预配置的build命令生成构建文件,然后启动该构建命令来编译LAMMPS。在配置步骤中,CMake将尝试检测是否支持MPI、OpenMP、FFTW、gzip、JPEG、PNG和ffmpeg,并启用相应的配置设置。我们可以在屏幕上跟踪此配置的进度,最后将打印所选选项和设置的摘要。make命令将启动编译,如果编译成功,最终将生成库liblammps。最终在构建文件夹中生成LAMMPS的可执行文件lmp。

如果您的机器有多个CPU内核(目前大多数计算机都是多核CPU),可以通过使用make-jN并行编译源代码来加快速度(N是并发执行的最大任务数)。

编译后,您可以选择将LAMMPS可执行文件安装到系统中,命令是:

$ make install

至此,Lammps安装完成,下面我们使用自带的几个例子来检测Lammps是否安装成功;

自带的例子在/lammps/examples/目录下;

请在终端执行:

$ cd lammps/examples/melt/

$ lmp -in in.melt

如果出现如下图示,则说明,您的安装已成功!

这时,在melt目录下,将生成log.lammps,即为模拟结果:

P.S 如过出现错误:lmp无法找到时,是因为您未在/home/usrname/.bashrc文件中添加环境变量(环境变量添加教程,请点这里),可以选择添加环境变量:也就是将:export PATH=~/lammps/build/lmp:$PATH添加至.bashrc文件中;或在终端中直接执行export PATH=~/lammps/build/lmp:$PATH使其在本个终端中生效即可!

P.S. MPICH 4.0.2版本,请点此下载

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注