【LAMMPS学习】三、构建LAMMPS(8)构建 LAMMPS 文档

3. 构建 LAMMPS

3.8.构建 LAMMPS 文档 

根据您获取 LAMMPS 的方式以及您是否自己构建了手册,该目录有许多子目录和文件。这是一个包含描述的列表:

README           # brief info about the documentation
src              # content files for LAMMPS documentation
html             # HTML version of the LAMMPS manual (see html/Manual.html)
utils            # tools and settings for building the documentation
lammps.1         # man page for the lammps command
msi2lmp.1        # man page for the msi2lmp command
Manual.pdf       # large PDF version of entire manual
LAMMPS.epub      # Manual in ePUB e-book format
LAMMPS.mobi      # Manual in MOBI e-book format
docenv           # virtualenv folder for processing the manual sources
doctrees         # temporary data from processing the manual
doxygen          # doxygen configuration and output
.gitignore       # list of files and folders to be ignored by git
doxygen-warn.log # logfile with warnings from running doxygen
github-development-workflow.md   # notes on the LAMMPS development workflow

如果您从 LAMMPS 网站下载 LAMMPS 作为 tarball,则应包含 html 文件夹和 PDF 文件。

如果您从公共 git 存储库下载 LAMMPS,则不包含 HTML 和 PDF 文件。您可以通过在 doc 文件夹中键入 make html 或 make pdf 自行构建 HTML 或 PDF 文件。这需要各种工具和文件。其中一些必须安装(见下文)。对于其余部分,构建过程将尝试下载并将它们安装到 python 虚拟环境和本地文件夹中。

该手册的当前版本(最新功能版本,即发布分支的状态)可在线获取:https://docs.lammps.org/。与正在进行的开发(即开发分支的状态)相对应的手册版本可在线获取:https://docs.lammps.org/latest/ 与最新稳定的 LAMMPS 版本相对应的手册版本(这是稳定分支的状态)可在线获取:https://docs.lammps.org/stable/

3.8.1.使用 GNU make 构建 

LAMMPS 手册以 reStructuredText 格式编写,可以使用 Sphinx 文档生成器工具将其转换为不同的输出格式。它还包含通过 Doxygen 程序从 LAMMPS C++ 源代码中提取的程序员文档。目前支持翻译为 HTML、PDF(通过 LaTeX)、ePUB(对于许多电子书阅读器)和 MOBI(对于 Amazon Kindle 阅读器)。为了使 Python 解释器版本 3.8 或更高版本正常工作,需要 doxygen 工具以及用于下载其他文件和工具的 Internet 访问权限。通常仅需要一次或在使用 make clean-all 将文档文件夹返回到原始状态后才需要进行此下载。

对于文档构建,在文件夹 doc/docenv 中设置了 python 虚拟环境,并通过 pip 工具将各种 python 包安装到该虚拟环境中。为了渲染嵌入式 LaTeX 代码,还需要下载 MathJax JavaScript 引擎。如果您需要将其他选项传递给 pip 命令才能工作(例如,使用 Web 代理或指向其他 SSL 证书),您可以通过 PIP_OPTIONS 环境变量进行设置,或者取消注释并编辑 PIP_OPTIONS 在 makefile 开头设置。

然后通过 doc 文件夹中的 make 命令完成实际编译。以下 make 命令可用:

make html          # generate HTML in html dir using Sphinx
make pdf           # generate PDF  as Manual.pdf using Sphinx and PDFLaTeX
make epub          # generate LAMMPS.epub in ePUB format using Sphinx
make mobi          # generate LAMMPS.mobi in MOBI format using ebook-convertmake fasthtml      # generate approximate HTML in fasthtml dir using Sphinx# some Sphinx extensions do not work correctly with thismake clean         # remove intermediate RST files created by HTML build
make clean-all     # remove entire build folder and any cached datamake anchor_check  # check for duplicate anchor labels
make style_check   # check for complete and consistent style lists
make package_check # check for complete and consistent package lists
make link_check    # check for broken or outdated URLs
make spelling      # spell-check the manual

3.8.2.使用 CMake 构建 

还可以在 CMake 构建目录中创建手册的 HTML 版本(并且仅 HTML 版本)。使用此选项的原因是在通过 cmake --build . --target install CMake 构建后安装 LAMMPS 时,将 HTML 手册页的安装包含到“安装”步骤中。文档构建包含在默认构建目标中,但也可以通过 cmake --build . --target doc 独立请求。如果您需要将其他选项传递给 pip 命令才能工作(例如,使用 Web 代理或指向其他 SSL 证书),您可以通过 PIP_OPTIONS 环境变量进行设置。

-D BUILD_DOC=value       # yes or no (default)

3.8.3. HTML 的先决条件 

要运行 HTML 文档构建工具链,必须在本地安装 python 3、git、doxygen 和 virtualenv。以下是常见设置的说明:

Ubuntu

sudo apt-get install git doxygen
RHEL or CentOS (Version 7.x)
sudo yum install git doxygen
Fedora or RHEL/CentOS (8.x or later)
sudo dnf install git doxygen
MacOS
如果您的 macOS 系统上没有 Python 3,您可以从 https://www.python.org 下载最新的 Python 3 macOS 软件包并安装。这将安装 Python 3 和 pip3。

3.8.4. PDF 的先决条件 

除了构建 HTML 格式手册所需的工具之外,还需要支持 PDFLaTeX 的工作 LaTeX 安装以及精选的 LaTeX 样式/包。要运行 PDFLaTeX 翻译,还需要安装 latexmk 脚本。

3.8.5. ePUB 和 MOBI 的先决条件

除了构建 HTML 格式手册所需的工具之外,还需要使用一些附加 LaTeX 包以及 dvipng 工具来安装有效的 LaTeX,以将嵌入式数学表达式透明地转换为嵌入式图像。

要将生成的 ePUB 文件转换为 MOBI 格式文件(对于无法读取 ePUB 的电子书阅读器,如 Kindle),您还需要安装“calibre”软件中的 ebook-convert 工具。 https://calibre-ebook.com/ 输入 make mobi 将首先创建 ePUB 文件,然后对其进行转换。特别是在 Kindle 阅读器上,您还支持 PDF 文件,因此您可以下载并查看 PDF 版本作为替代方案。

3.8.6. 开发者须知

当向 LAMMPS 代码添加新样式或选项时,需要相应的文档,并且需要更新 src 文件夹中的现有文件或添加新文件。这些文件以 reStructuredText 标记编写,以便使用 Sphinx 工具进行翻译。

在提供任何文档之前,请检查 HTML 和 PDF 格式文档是否可以正确翻译。在测试 html 翻译期间,您可以使用 make fasthtml 命令进行近似翻译(即并非所有 Sphinx 功能和扩展都可以工作),但运行速度非常快,因为它只会翻译自此以来已更改的文件最后一个 make fasthtml 命令。

另请检查控制台的输出是否有任何警告或问题。将自动运行多个测试:

  • 测试所有锚标签及其引用的正确性
  • 测试所有 LAMMPS 包(= 源位于 lammps/src 中的文件夹)是否已记录并列出。典型的警告会显示包含可疑新包代码的文件夹名称以及需要列出它们的文档文件:
Found 88 packages
Package NEWPACKAGE missing in Packages_list.rst
Package NEWPACKAGE missing in Packages_details.rst
  • 仅使用标准的可打印 ASCII 文本字符的测试。这将运行命令 env LC_ALL=C grep -n '[^ -~]' src/*.rst ,从而打印所有有问题的行,并在屏幕上添加文件名和行号。特殊字符,例如希腊字母、上标或下标、数学表达式或埃符号( Å, :math:`x^2 \mathrm{E}_{LJ}` 、 :math:`\frac{1}2}\mathrm{N} x\to\infty` 或 :math:`\AA` )。
  • 嵌入式 LaTeX 通过 MathJax 在 HTML 输出中呈现,并通过将嵌入文本传递给 LaTeX 在 PDF 输出中呈现。不过,必须要小心,因为在任一模式下使用宏和功能都存在限制,因此建议始终检查任何新的或更改的文档是否能够正确地使用任一输出进行翻译和渲染。
  • 测试所有样式是否都已记录并在各自的概述页面中列出。带有警告的典型输出如下所示:
Parsed style names w/o suffixes from C++ tree in ../src:Angle styles:      21    Atom styles:       24Body styles:        3    Bond styles:       17Command styles:    41    Compute styles:   143Dihedral styles:   16    Dump styles:       26Fix styles:       223    Improper styles:   13Integrate styles:   4    Kspace styles:     15Minimize styles:    9    Pair styles:      234Reader styles:      4    Region styles:      8
Compute style entry newcomp is missing or incomplete in Commands_compute.rst
Compute style entry newcomp is missing or incomplete in compute.rst
Fix style entry newfix is missing or incomplete in Commands_fix.rst
Fix style entry newfix is missing or incomplete in fix.rst
Pair style entry new is missing or incomplete in Commands_pair.rst
Pair style entry new is missing or incomplete in pair_style.rst
Found 6 issue(s) with style lists

此外,还可以选择使用 make spelling 对整个手册运行拼写检查。这需要一个名为 enchant 的库。为了避免打印出误报(例如关键字、名称、缩写),可以将它们添加到文件 lammps/doc/utils/sphinx-config/false_positives.txt 中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/771587.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# LINQ笔记

C# LINQ笔记 from子句 foreach语句命令式指定了按顺序一个个访问集合中的项。from子句只是声明式地规定集合中的每个项都要访问,并没有指定顺序。foreach在遇到代码时就执行其主体。from子句什么也不执行,只有在遇到访问查询变量的语句时才会执行。 u…

Unbtun环境切换

之前的环境都是下载到系统环境里面的,后面安装了anaconda发现切换不到系统环境里面了,通过查找资料可以发现: ubuntu的python可分为三大类: ubuntu自带的系统python环境 一般安装在/usr/bin/中python2和python3可以共存 anaconda…

[Qt学习笔记]Qt实现自定义控件SwitchButton开关按钮

1、功能介绍 在项目UI中使用较多的打开/关闭的开关按钮,一般都是找图片去做效果,比如说如下的图像来表征打开或关闭。 如果想要控件有打开/关闭的动画效果或比较好的视觉效果,这里就可以使用自定义控件,使用Painter来绘制控件。软…

JavaScript的学习笔记

<script src"index.js" defer></script>&#xff0c;defer的作用是延迟加载index.js文件 定义变量 变量的类型分为两大类&#xff1a;基本类型和复合类型 JavaScript是一种弱类型语言&#xff0c;所以没有强类型语言所具有的int,float,char等等&#x…

阿里云linux服务器数据盘待初始化

如果您的阿里云Linux服务器数据盘已经购买但未进行初始化和格式化&#xff0c;您可以按照以下步骤进行操作&#xff1a; 查看数据盘信息&#xff1a; 使用fdisk -l命令查看当前所有磁盘的信息&#xff0c;识别未初始化的数据盘设备名称&#xff0c;如/dev/xvdb。分区数据盘&am…

Spring 实现 OAuth2 授权之解决方案

Spring Security OAuth2 - 已经废弃的项目 早期的Spring 使用 Spring Security OAuth2 实现 OAuth 2.0 的认证服务器和资源服务器。OAuth2是一个授权框架,它允许第三方应用获取有限的访问权限,而无需获取用户的账号和密码等敏感信息。通过这种方式,OAuth2协议实现了安全的用…

java语言实现树莓派4b下的超远程高精度电子秤

通常情况下,Java语言基于jvm虚拟机,垃圾回收,代码优化等机制,无法直接通过Java语言来操控硬件,获取传感器数据,本文做个折中,通过编写c语言代码,编译为.so文件,Java使用jni调用.so文件的方式,springboot操作Java方法,来编写一套超远程高精度电子秤的代码。总成本:2…

VScode通过ssh连接github

通过ssh连接github 1.生成公钥和私钥2.设置config文件3.配置ssh免密登录4.远程仓库初始化 1.生成公钥和私钥 首先选择一个文件夹&#xff0c;右击 git bash here&#xff0c;在命令行输入命令&#xff0c;按下三次回车生成一个**.ssh文件夹**&#xff0c;一般在用户的user根目…

AI浪潮下,新闻媒体的新变革与记者职业的未来发展

中国媒体经历了从口口相传到报纸、再到电视&#xff0c;最后到互联网自媒体的演变过程。传统报业在新媒体冲击下面临着存亡的挑战。 中国媒体的演变概括如下&#xff1a; 19世纪初&#xff1a;主要依靠口口相传和阅读报纸获取信息&#xff1b;20世纪&#xff1a;电视逐渐取代报…

MyBatis:查询与连接池

一、查询 1、多表查询 尽量避免使用多表查询&#xff0c;尤其是对性能要求较高的项目。因为多表查询必然会导致性能变低。 例如&#xff1a;select *from ta运行需要10ms&#xff0c;select *from tb 运行也需要10s。但是&#xff0c;select *from ta left join tb on ta.xx…

zabbix监控vmware esxi

一、zabbix服务端配置 修改zabbix_server.conf配置文件 vim /etc/zabbix/zabbix_server.conf #######zabbix_server.conf底部第二行开始添加下面配置######## StartVMwareCollectors5 #StartVMwareCollectors - 预先启动Vmware collector收集器实例的数量。此值取决于要监控的…

android13实现切换导航模式功能

支持android13以上系统&#xff0c;需要系统签名。 public class NavigationHelper {/*** 设置导航模式** param context* param mode GESTURAL&#xff1a;手势 TWOBUTTON&#xff1a;二按钮 THREEBUTTON&#xff1a;三按钮*/public static void setNavigationMode(Contex…

GEE显示研究区sentinel-2每年可用影像

第一次使用GEE&#xff0c;用了别人的代码&#xff0c;想查看每年影像可用数量&#xff0c;但是老是报错&#xff0c;说是null geometry&#xff0c;之前我是用GAMMA软件导出的kml文件&#xff0c;后面在arcgis自己勾画了sho文件&#xff0c;线类型&#xff0c;然后我就在想会不…

android各种软件下载

Android Studio 历史版本下载地址&#xff1a;https://developer.android.google.cn/studio/archive 拉到网页底部&#xff0c;点击 I agree to the terms 按钮 buildTools历史版本下载地址&#xff1a;https://androidsdkmanager.azurewebsites.net/build_tools.html

MySQL进阶-----索引的结构与分类

目录 前言 一、认识索引 二、索引结构 1.概述 2. 二叉树 3 .B-Tree 4.BTree 5.Hash 三、索引的分类 1 .索引分类 2 .聚集索引&二级索引 前言 索引&#xff08;index&#xff09;是帮助MySQL高效获取数据的数据结构(有序)。在数据之外&#xff0c;数据库系统还维…

进制转换(Python)

一、把10进制数转换成N进制数 将10进制数转换为N进制数通常遵循以下步骤&#xff1a; 将10进制数除以N&#xff0c;记录下商和余数。将商作为新的被除数重复步骤1&#xff0c;直到商为0。将得到的余数逆序排列&#xff0c;这就是所求的N进制数。 假设我们要将10进制数29转换为N…

【第十二届“泰迪杯”数据挖掘挑战赛】【2024泰迪杯】B题基于多模态特征融合的图像文本检索—解题全流程(持续更新)

2024 年(第 12 届)“泰迪杯”数据挖掘挑战赛B题 解题全流程&#xff08;持续更新&#xff09; -----基于多模态特征融合的图像文本检索 一、写在前面&#xff1a; ​ 本题的全部资料打包为“全家桶”&#xff0c; “全家桶”包含&#xff1a;模型数据、全套代码、训练好的模…

OpenLayers基础教程——使用WebGLPoints加载海量点数据

1、前言 最近遇到一个问题&#xff1a;如何在OpenLayers中高效加载海量的场强点&#xff1f;由于项目中的一些要求&#xff0c;不能使用聚合的方法加载。一番搜索之后发现&#xff1a;OpenLayers中有一个WebGLPoints类&#xff0c;使用该类可以轻松应对几十万的数据量&#xf…

汽车后视镜反射率检测光纤光谱仪:安全驾驶的守护神

在汽车的日常使用中&#xff0c;后视镜扮演着至关重要的角色。它不仅帮助驾驶员观察车辆后方的情况&#xff0c;还确保了行车的安全性。然而&#xff0c;由于各种原因&#xff0c;后视镜的反射率可能会降低&#xff0c;从而影响到驾驶员的视线范围和判断能力。为了解决这一问题…

7-Zip、7z、7za.exe 命令行用法(加解压zip文件)

文章目录 7-Zip什么是7z使用7-Zip、7z的场景 常用命令7za.exe 命令行用法 7-Zip 什么是7z 主页&#xff1a;http://www.7-zip.org/ 7z&#xff0c;全称7-Zip&#xff0c; 是一款开源软件。是目前公认的压缩比例最大的压缩解压软件。 7-Zip is free software with open sour…