【LAMMPS学习】五、LAMMPS命令(2) 输入脚本的解析规则

5. 命令 

本部分描述了 LAMMPS 输入脚本的格式以及其中的命令如何用于定义 LAMMPS 模拟。主要包括以下内容。

5.1. LAMMPS 输入脚本

5.2.输入脚本的解析规则

输入脚本中的每个非空行都被视为一条命令。 LAMMPS 命令区分大小写。命令名称是小写的,指定的命令参数也是小写的。大写字母可用于文件名或用户选择的 ID 字符串。

以下是 LAMMPS 如何解析输入脚本中的每一行的 6 条规则:

1、如果该行的最后一个可打印字符是“&”字符,则假定该命令在下一行继续。通过删除“&”字符和换行符,下一行与上一行连接起来。这允许长命令跨两行或更多行继续。有关如何在不使用“&”字符的情况下跨多行继续命令的信息,请参阅第 6 节中对三引号的讨论。

2、从第一个“#”字符开始的所有字符都被视为注释并被丢弃。此规则的例外情况在 6 中进行了描述。请注意,尾随“&”字符后的注释将阻止该命令在下一行继续。另请注意,对于多行命令,单个前导“#”将注释掉整个命令。

# this is a comment
timestep  1.0   # this is also a comment

3、将在该行中重复搜索 $ 字符,这些字符表示被文本字符串替换的变量。该规则的例外情况在第 6 条中进行了描述。

如果 $ 后面跟着大括号“{}”中的文本,则变量名称就是大括号内的文本。如果 $ 后面没有大括号,则变量名称是紧跟在 $ 后面的单个字符。因此,${myTemp} 和 $x 引用名为“myTemp”和“x”的变量,而“$xx”将被解释为名为“x”的变量,后跟“x”字符。

变量如何转换为文本字符串取决于变量的样式;有关详细信息,请参阅变量页面。它可以是一个存储多个文本字符串的变量,并返回其中之一。返回的文本字符串可以是多个“单词”(空格分隔),然后将其解释为输入命令中的多个参数。该变量还可以存储将被计算的数值公式,并将其数值结果作为字符串返回。

作为一种特殊情况,如果 $ 后面跟着括号“()”,则括号内的文本将被视为“immediate”变量并被评估为 equal 样式变量。这是一种在输入脚本中使用数值公式而无需将它们分配给变量名称的方法。例如,这 3 个输入脚本行:

variable X equal (xlo+xhi)/2+sqrt(v_area)
region 1 block $X 2 INF INF EDGE EDGE
variable X delete

可以替换为:

region 1 block $((xlo+xhi)/2+sqrt(v_area)) 2 INF INF EDGE EDGE

这样您就不必定义(或丢弃)临时变量,在本例中为“X”。

此外,整个“immediate”变量表达式后面可以跟一个冒号,后面跟一个 C 风格的格式字符串,例如“:%f”或“:%.10g”。格式字符串必须适合双精度浮点值。格式字符串用于输出变量表达式求值的结果。如果未指定格式字符串,则使用高精度“%.20g”作为默认格式。

这对于将打印输出格式化为所需的精度很有用:

print "Final energy per atom: $(v_ke_per_atom+v_pe_per_atom:%10.3f) eV/atom"

请注意,变量的大括号或直接形式都不能包含嵌套的 $ 字符以供其他变量替换。因此你不可以这样做:

variable        a equal 2
variable        b2 equal 4
print           "B2 = ${b$a}"

您也不能为立即变量指定“$($x-1.0)”之类的表达式,但可以使用 $(v_x-1.0),因为后者是 equal-style 变量的有效语法。

有关如何将字符串分配给变量并求值以及如何在输入脚本命令中使用它们的更多详细信息,请参阅变量命令。

4、该行被分成由空格(制表符、空格)分隔的“单词”。请注意,单词可以包含字母、数字、下划线或标点符号。

5、第一个单词是命令名称。该行中所有连续的单词都是参数。

6、如果您希望将带有空格的文本视为单个参数,则可以将其括在单引号 (’) 或双引号 (") 或三引号 (""") 中。如果使用“&”字符,则用单引号或双引号括起来的长单个参数可以跨越多行,如上面 1 中所述。当通过 LAMMPS 将行连接在一起(并删除“&”字符和换行符)时,组合的文本将成为单行。如果您希望参数的多行保留换行符,则可以将文本括在三引号中,在这种情况下,不需要“&”字符,并且不能用作行继续字符。例如:

print "Volume = $v"
print 'Volume = $v'
if "${steps} > 1000" then quit
variable a string "red green blue &purple orange cyan"
print """
System volume = $v
System temperature = $t
"""

在每种情况下,单引号、双引号或三引号都会被删除,并且所包含的文本将在内部存储为单个参数。

有关示例,请参阅转储修改格式、打印、if 和 python 命令。

引号之间的“#”或“$”字符不会被视为 2 中的注释指示符,也不会被替换为 3 中的变量。

注:

如果参数本身是一个需要带引号的参数的命令(例如,使用 print 命令作为 if 或 run every 命令的一部分),则可以按通常的方式嵌套单引号、双引号或三引号。有关示例,请参阅这些命令的文档页面。仅允许一层嵌套,但这对于大多数用例来说应该足够了。

ASCII 与 UTF-8:

LAMMPS 在内部期望并处理 7 位 ASCII 格式文本。许多现代环境使用 UTF-8 编码,它是 7 位 ASCII 字符表的超集,因此大部分是兼容的。但是,有一些非 ASCII 字符可能看起来与其 ASCII 等效字符非常相似,或者是不可见的(因此它们看起来像空白),但编码方式不同。众所周知,Web 浏览器、PDF 查看器、文档编辑器有时会用另一种来替换其中一种,以获得更好看的输出。然而,这可能会导致问题,例如,当使用网页中的输入文件示例剪切粘贴时,或者使用文档编辑器(不是专用的纯文本编辑器)编写 LAMMPS 输入时。 LAMMPS 将尝试检测这一点,并用已知的 ASCII 等效字符替换非 ASCII 字符。如果发生这种情况,还会打印一条警告。建议在 LAMMPS 输入、数据和潜在文件中完全避免使用此类字符。替换表可能不完整,并且依赖于报告正确处理包含 UTF-8 编码的非 ASCII 字符的输入的问题的用户。

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

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

相关文章

Spring Cloud 网关Gateway + 配置中心

网关 网络的接口,负责请求的路由、转发、身份校验 路由:告诉请求去哪找 转发:请求找不到直接带请求过去 路由及转发 判断前端请求的规则就这么配 当前情况下只需要访问8080端口 就可以完成对全部微服务的访问 路由属性 登录校验 没必要在每…

sonar+gitlab提交阻断 增量扫描

通过本文,您将可以学习到 sonarqube、git\gitlab、shell、sonar-scanner、sonarlint 一、前言 sonarqube 是一款开源的静态代码扫描工具。 实际生产应用中,sonarqube 如何落地,需要考虑以下四个维度: 1、规则的来源 现在规则的…

ACSAC 2023

Web Security 1. PhishReplicant: A Language Model-based Approach to Detect Generated Squatting Domain Names. PhishReplicant:一种基于语言模型的检测生成的领域名抢注的方法。 2. From Attachments to SEO: Click Here to Learn More about Clickbait…

java一和零(力扣Leetcode474)

一和零 力扣原题 给定一个二进制字符串数组 strs 和两个整数 m 和 n,请你找出并返回 strs 的最大子集的长度,该子集中最多有 m 个 0 和 n 个 1。 示例 1: 输入:strs [“10”, “0001”, “111001”, “1”, “0”], m 5, n …

【msyql】mysqldump: 未找到命令...

使用mysqldump备份数据库出现错误提示: mysqldump: 未找到命令... 执行的命令如下: mysqldump -uroot -proot --databases db_user > /home/backups/databackup.sql 解决方法 确认mysql是否安装 查看mysql版本 mysql --version 查找mysql安装路…

php反序列化刷题1

[SWPUCTF 2021 新生赛]ez_unserialize 查看源代码想到robots协议 看这个代码比较简单 直接让adminadmin passwdctf就行了 poc <?php class wllm {public $admin;public $passwd; }$p new wllm(); $p->admin "admin"; $p->passwd "ctf"; ec…

Dockerfile将jar部署成docker容器

将jar包copy到linux&#xff0c;新建Dockerfile文件 -rw-r--r-- 1 root root 52209844 Mar 25 22:55 data-sharing-0.0.1-SNAPSHOT.jar -rwxrwxrwx 1 root root 227 Mar 25 22:57 Dockerfile [rootlocalhost mnt]# pwd /mntDockerfile内容 # 指定基础镜像 FROM java:8-a…

极光笔记|极光消息推送服务的云原生实践

摘要 极光始终秉承“以开发者为中心”的战略导向&#xff0c;极光推送&#xff08;JPush&#xff09;是国内领先的消息推送服务。极光推送&#xff08;JPush&#xff09;本质上是一种软件付费应用程序&#xff0c;结合当前主流云厂商基础施设&#xff0c;逐渐演进成了云上SaaS…

Java后端设置服务器允许跨域

文章目录 1、实现2、一些问题关于各项请求头的作用关于预检请求 3、一些补充4、疑问点 1、实现 以下通过servlet的Filter给所有响应的header加了一些跨域相关的数据&#xff0c;以实现允许跨域。 import org.springframework.context.annotation.Configuration; import org.s…

数据可视化基础与应用-04-seaborn库从入门到精通01-02

总结 本系列是数据可视化基础与应用的第04篇seaborn&#xff0c;是seaborn从入门到精通系列第1-2篇。本系列的目的是可以完整的完成seaborn从入门到精通。主要介绍基于seaborn实现数据可视化。 参考 参考:数据可视化-seaborn seaborn从入门到精通01-seaborn介绍与load_datas…

RabbitMQ3.x之二_RabbitMQ所有端口说明及开启后台管理功能

RabbitMQ3.x之二_RabbitMQ所有端口说明及开启后台管理功能 文章目录 RabbitMQ3.x之二_RabbitMQ所有端口说明及开启后台管理功能1. RabbitMQ端口说明2. 开启Rabbitmq后台管理功能1. 查看rabbitmq已安装的插件2. 开启rabbitmq后台管理平台插件3. 开启插件后&#xff0c;再次查看插…

RSTP环路避免实验(华为)

思科设备参考&#xff1a;RSTP环路避免实验&#xff08;思科&#xff09; 一&#xff0c;技术简介 RSTP (Rapid Spanning Tree Protocol) 是从STP发展而来 • RSTP标准版本为IEEE802.1w • RSTP具备STP的所有功能&#xff0c;可以兼容STP运行 • RSTP和STP有所不同 减少了…

Tomcat下载安装以及配置

一、Tomcat介绍 二、Tomcat下载安装 进入tomcat官网&#xff0c;https://tomcat.apache.org/ 1、选择需要下载的版本&#xff0c;点击下载 下载路径一定要记住&#xff0c;并且路径中尽量不要有中文 8、9、10都可以&#xff0c;本博文以8为例 2、将下载后的安装包解压到指定位…

linux-开发板移植MQTT

将源码复制到共享文件夹 链接&#xff1a;https://pan.baidu.com/s/1kvvO-HhDMDXkQ_wlNtyW_A?pwd332i 提取码&#xff1a;332i 以下步骤教程里都写了&#xff0c;我这里边进行&#xff0c;方便大家对照 pc端 1.进入mqtt_lib, 解压open压缩包 2.按照教程复制这一句并运行&…

服务端应用多级缓存架构方案

服务端应用多级缓存架构方案 场景 20w的QPS的场景下&#xff0c;服务端架构应如何设计&#xff1f; 常规解决方案 可使用分布式缓存来抗&#xff0c;比如redis集群&#xff0c;6主6从&#xff0c;主提供读写&#xff0c;从作为备&#xff0c;不提供读写服务。1台平均抗3w并…

【算法专题--双指针算法】leecode-15.三数之和(medium)、leecode-18. 四数之和(medium)

&#x1f341;你好&#xff0c;我是 RO-BERRY &#x1f4d7; 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f384;感谢你的陪伴与支持 &#xff0c;故事既有了开头&#xff0c;就要画上一个完美的句号&#xff0c;让我们一起加油 目录 前言1. 三数之和2. 解法&…

选择最佳图像处理工具OpenCV、JAI、ImageJ、Thumbnailator和Graphics2D

文章目录 1、前言2、 图像处理工具效果对比2.1 Graphics2D实现2.2 Thumbnailator实现2.3 ImageJ实现2.4 JAI&#xff08;Java Advanced Imaging&#xff09;实现2.5 OpenCV实现 3、图像处理工具结果 1、前言 SVD(stable video diffusion)开放了图生视频的API&#xff0c;但是限…

使用GPT将文档生成问答对

根据文档生成问题列表 url https://api.openai.com/v1/chat/completions# 替换为您自己的API密钥 api_key sk-xxxxxxxxxmodel "gpt-3.5-turbo-16k"prompt1 #01 你是一个问答对数据集处理专家。 #02 你的任务是根据我给出的内容&#xff0c;生成适合作为问答对数…

Ubuntu deb文件 安装 MySQL

更新系统软件依赖 sudo apt update && sudo apt upgrade下载安装包 输入命令查看Ubuntu系统版本 lsb_release -a2. 网站下载对应版本的安装包 下载地址. 解压安装 mkdir /home/mysqlcd /home/mysqltar -xvf mysql-server_8.0.36-1ubuntu20.04_amd64.deb-bundle.tar# …

Elasticsearch性能优化:实战策略与最佳实践

-在数据密集型的应用场景中&#xff0c;Elasticsearch作为一个强大的搜索和分析引擎&#xff0c;能够提供快速的搜索能力和处理大规模数据的能力。然而&#xff0c;随着数据量的增长和查询需求的复杂化&#xff0c;对Elasticsearch的性能优化成为了维护高效、稳定服务的重要任务…