【LAMMPS学习】八、基础知识(6.6)在 Windows 10 上使用 LAMMPS 和 WSL

2024-05-15 04:44

本文主要是介绍【LAMMPS学习】八、基础知识(6.6)在 Windows 10 上使用 LAMMPS 和 WSL,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

8. 基础知识

此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语,以及相应 LAMMPS 手册页的链接。 LAMMPS 源代码分发的 examples 目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和运行各种模拟。

8.1.通用基础知识

8.2. 设置入门

8.3. 分析入门

8.4. 力场入门

8.5. 软件包入门

8.6.操作教程

8.6.1.将 CMake 与 LAMMPS 结合使用

8.6.2. LAMMPS GitHub 教程

8.6.3.使用 LAMMPS GUI

8.6.4.Moltemplate教程

8.6.5. PyLammps 教程

8.6.6. 在 Windows 10 上使用 LAMMPS 和 WSL

让 LAMMPS 用户和开发人员在 Windows 上工作对我们来说一直很棘手。我们主要开发在 Linux 集群上运行的 LAMMPS。为了在研讨会环境中教授 LAMMPS,我们必须将 Windows 用户重定向到 Linux 虚拟机,例如 VirtualBox 或使用 Cygwin 进行类 Unix 编译。

通过 Windows 10(版本 2004、Build 19041 或更高版本)的最新更新,Microsoft 添加了一种处理基于 Linux 的代码的新方法。适用于 Linux 的 Windows 子系统 (WSL)。借助 WSL 版本 2,您现在可以获得一个透明地集成到 Windows 中的 Linux 虚拟机。您所需要做的就是确保安装了最新的 Windows 更新并启用此新功能。然后可以使用 Microsoft Store 轻松安装 Linux VM。

在本教程中,我将向您展示如何设置和编译 LAMMPS 以在 WSL2 中使用串行和 MPI。


安装
升级到最新的 Windows 10

在 Windows 开始中键入“更新”,然后选择“检查更新”。

_images/updates.png


安装所有挂起的更新并根据需要多次重新启动系统。继续,直到 Windows 安装更新。

_images/windows_update.png

验证您的系统至少具有版本 2004 和内部版本 19041 或更高版本。您可以通过单击“操作系统构建信息”找到此信息。

_images/osinfo.png

启用 WSL

接下来,我们必须安装两个附加的 Windows 功能才能启用 WSL 支持。以管理员身份打开 PowerShell 窗口。在 Windows 开始中键入“PowerShell”,然后选择“以管理员身份运行”。

_images/powershell.png

Windows 将要求您提供管理员访问权限。接受后,将出现一个新的命令行窗口。输入以下命令来安装 WSL:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

_images/wsl_install1.png

接下来,使用以下命令启用 VirtualMachinePlatform 功能:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

最后,重新启动系统。

更新 WSL 内核组件

下载并安装 WSL Kernel Component Update 。然后,重新启动系统。

将 WSL2 设置为默认值

再次以管理员身份打开 PowerShell 并运行以下命令:

wsl --set-default-version 2

此命令可确保未来所有 Linux 安装都将使用 WSL 版本 2。

_images/wsl_install3.png

安装 Linux 发行版
接下来,我们需要通过 Microsoft Store 安装 Linux 发行版。安装 Ubuntu 20.04 LTS。安装后,您可以像任何其他应用程序一样从“开始”菜单启动它。

_images/ubuntu_in_store.png

初始设置

第一次启动 Ubuntu Linux 控制台时,它会提示您输入 UNIX 用户名和密码。您稍后将需要此密码来执行 sudo 命令。完成后,您的 Linux shell 就可以使用了。您的所有操作和命令都将以您指定的 Linux 用户身份运行。

_images/first_login.png

Windows 资源管理器/WSL 集成
您的 Linux 安装将有自己的 Linux 文件系统,其中包含 Ubuntu 文件。您的 Linux 用户将在 /home/<USERNAME> 中有一个常规的 Linux 主目录。该目录与您的 Windows 用户目录不同。 Windows 和 Linux 文件系统通过 WSL 连接。

Windows 中的所有硬盘都可以在 Linux 中的 /mnt 目录中访问。例如,WSL 将 C 硬盘驱动器映射到 /mnt/c 目录。这意味着您可以访问 /mnt/c/Users/<WINDOWS_USERNAME> 中的 Windows 用户目录。

Windows 资源管理器还可以访问 Linux 文件系统。为了说明这种集成,请打开 Ubuntu 控制台并导航到您选择的目录。要在 Windows 资源管理器中查看此位置,请使用 explorer.exe . 命令(不要忘记最后一个点!)。

_images/wsl_integration.png

编译 LAMMPS


您现在已经安装了功能齐全的 Ubuntu,并且可以按照大多数指南在 Linux 系统上安装 LAMMPS。以下是需要遵循的一些基本步骤:

安装必备包

在开始之前,我们需要下载必要的编译工具链和库来编译 LAMMPS。在我们基于 Ubuntu 的 Linux 安装中,我们将使用 apt 包管理器来安装其他包。

首先,使用 apt update 和 apt upgrade 升级所有现有包。

sudo apt update
sudo apt upgrade -y

接下来,使用 apt install 安装以下软件包:

sudo apt install -y cmake build-essential ccache gfortran openmpi-bin libopenmpi-dev \libfftw3-dev libjpeg-dev libpng-dev python3-dev python3-pip \python3-virtualenv libblas-dev liblapack-dev libhdf5-serial-dev \hdf5-tools
下载 LAMMPS

获取 LAMMPS 源代码的副本并使用 cd 命令进入它。

选项 1:使用 wget 下载 LAMMPS tarball
wget https://github.com/lammps/lammps/archive/stable_3Mar2020.tar.gz
tar xvzf stable_3Mar2020.tar.gz
cd lammps
选项 2:从 GitHub 下载 LAMMPS 开发版本
git clone --depth=1 https://github.com/lammps/lammps.git
cd lammps
使用 CMake 配置和编译 LAMMPS

一种适合初学者的编译 LAMMPS 的方法是使用 CMake。创建一个 build 目录来编译 LAMMPS 并移入其中。该目录将存储构建配置和编译期间生成的任何二进制文件。

mkdir build
cd build

编译 LAMMPS 的方法有无数种。它超出了本教程的范围。如果您想了解有关可以启用哪些功能的更多信息,请查阅广泛的文档。

为了编译最小版本的 LAMMPS,我们将使用预设。预设是一种使用文件指定 CMake 选项集合的方法。

cmake ../cmake/presets/basic.cmake ../cmake

此命令配置构建并生成必要的 Makefile。要编译二进制文件,请运行 make 命令。

make -j 4

-j 选项指定将执行编译的并行进程数。该选项可以显着加快编译时间。使用与系统中处理器数量相对应的数字。

编译成功完成后,您将在 build 目录中看到一个名为 lmp 的可执行文件。

_images/compilation_result.png

请记下 build 目录的绝对路径。稍后您需要知道执行 LAMMPS 二进制文件的位置。

获取当前目录的绝对路径的一种方法是通过 $PWD 变量:

# prints out the current value of the PWD variable
echo $PWD

让我们将此值保存在临时变量 LAMMPS_BUILD_DIR 中以供将来使用:

LAMMPS_BUILD_DIR=$PWD

LAMMPS 二进制文件的完整路径是 $LAMMPS_BUILD_DIR/lmp 。

运行示例脚本

Now that we have a LAMMPS binary, we will run a script from the examples folder.
现在我们有了 LAMMPS 二进制文件,我们将从示例文件夹中运行脚本。

Switch into the examples/melt folder:
切换到 examples/melt 文件夹:

cd ../examples/melt

要串行运行此示例,请使用以下命令行:

$LAMMPS_BUILD_DIR/lmp -in in.melt

要使用具有 4 个进程的 MPI 并行运行同一脚本,请执行以下操作:

mpirun -np 4 $LAMMPS_BUILD_DIR/lmp -in in.melt

如果您第一次运行 LAMMPS,Windows 防火墙可能会提示您确认访问。 LAMMPS 正在访问网络堆栈以启用并行计算。允许访问。

_images/windows_firewall.png


在串行或 MPI 情况下,LAMMPS 执行并将输出类似于以下内容的内容:

LAMMPS (30 Jun 2020)
...
...
...
Total # of neighbors = 151513
Ave neighs/atom = 37.878250
Neighbor list builds = 12
Dangerous builds not checked
Total wall time: 0:00:00

恭喜!您已经在 WSL 上成功编译并执行了 LAMMPS!

最后步骤

总是指定 LAMMPS 二进制文件的路径很麻烦。您可以通过将 build 目录的绝对路径添加到 PATH 环境变量来避免这种情况。

export PATH=$LAMMPS_BUILD_DIR:$PATH

然后您可以像这样运行 LAMMPS 输入脚本:

lmp -in in.melt

或者

mpirun -np 4 lmp -in in.melt

注:

一旦您关闭控制台窗口,此 PATH 变量的值就会消失。要保留此设置,请使用您喜欢的文本编辑器编辑 $HOME/.bashrc 文件并添加以下行:

export PATH=/full/path/to/your/lammps/build:$PATH

示例:如果 LAMMPS 可执行文件 lmp 具有以下绝对路径:

/home/<USERNAME>/lammps/build/lmp

PATH 变量应该是:

export PATH=/home/<USERNAME>/lammps/build:$PATH

设置完成后,您的所有 Ubuntu 控制台将始终可以访问您的 lmp 二进制文件,而无需指定其位置。

结论

希望这能让您很好地了解如何在 Windows 上开始编译和运行 LAMMPS。 WSL 使在 Windows 上准备和运行脚本成为更好的体验。

如果您对 Linux 完全陌生,强烈建议您花一些时间学习 Linux 在线教程。例如,有关 Bash Shell 和基本 Unix 命令的教程(例如  Linux Journey)。获得这些技能将使您在这种环境中更加高效。


也可以查阅参考适用于 Linux 的 Windows 子系统文档

这篇关于【LAMMPS学习】八、基础知识(6.6)在 Windows 10 上使用 LAMMPS 和 WSL的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/990840

相关文章

Linux使用fdisk进行磁盘的相关操作

《Linux使用fdisk进行磁盘的相关操作》fdisk命令是Linux中用于管理磁盘分区的强大文本实用程序,这篇文章主要为大家详细介绍了如何使用fdisk进行磁盘的相关操作,需要的可以了解下... 目录简介基本语法示例用法列出所有分区查看指定磁盘的区分管理指定的磁盘进入交互式模式创建一个新的分区删除一个存

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

Linux使用dd命令来复制和转换数据的操作方法

《Linux使用dd命令来复制和转换数据的操作方法》Linux中的dd命令是一个功能强大的数据复制和转换实用程序,它以较低级别运行,通常用于创建可启动的USB驱动器、克隆磁盘和生成随机数据等任务,本文... 目录简介功能和能力语法常用选项示例用法基础用法创建可启动www.chinasem.cn的 USB 驱动

C#使用yield关键字实现提升迭代性能与效率

《C#使用yield关键字实现提升迭代性能与效率》yield关键字在C#中简化了数据迭代的方式,实现了按需生成数据,自动维护迭代状态,本文主要来聊聊如何使用yield关键字实现提升迭代性能与效率,感兴... 目录前言传统迭代和yield迭代方式对比yield延迟加载按需获取数据yield break显式示迭

使用SQL语言查询多个Excel表格的操作方法

《使用SQL语言查询多个Excel表格的操作方法》本文介绍了如何使用SQL语言查询多个Excel表格,通过将所有Excel表格放入一个.xlsx文件中,并使用pandas和pandasql库进行读取和... 目录如何用SQL语言查询多个Excel表格如何使用sql查询excel内容1. 简介2. 实现思路3

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

c# checked和unchecked关键字的使用

《c#checked和unchecked关键字的使用》C#中的checked关键字用于启用整数运算的溢出检查,可以捕获并抛出System.OverflowException异常,而unchecked... 目录在 C# 中,checked 关键字用于启用整数运算的溢出检查。默认情况下,C# 的整数运算不会自

在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码

《在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码》在MyBatis的XML映射文件中,trim元素用于动态添加SQL语句的一部分,处理前缀、后缀及多余的逗号或连接符,示... 在MyBATis的XML映射文件中,<trim>元素用于动态地添加SQL语句的一部分,例如SET或W