| 查看: 882 | 回复: 0 | |||
[交流]
lammps脚本语法小结
|
|
输入脚本中的每个非空行被当作一个命令。LAMMPS命令是区分大小写的。命令名是小写的,如指定命令参数。大写字母可能用于文件名或用户选择的ID字符串。 下面是LAMMPS每一行的输入脚本解析: (1)如果某行的最后一个可打印字符是“&”字符,则假定该命令在下一行继续。通过删除“&”字符和换行符,下一行将连接到上一行。这使长命令延续在两条或更多条的命令上。请参阅(6),如何在不使用“&”字符的情况下在多行上继续执行命令。 (2) “#”字符后的所有字符都被视为注释并被丢弃,详见(6)。注意,“&”字符后面的注释将阻止命令在下一行继续。另外请注意,对于多行命令,单个“#”字符将注释整个命令。 (3)某行重复搜索“$”字符,表示用文本字符串替换该变量,详见(6)。如果字符“$”后跟大括号,则变量名称是大括号内的文本。 如果字符“$”后没有大括号跟随,则变量名称是紧跟在$之后的单个字符。如${myTemp}和$x的变量名分别为"myTemp" and "x"。 变量如何转换为文本字符串取决于变量的样式。它可以是一个存储多个文本字符串的变量,并返回其中的一个。返回的文本字符串可以是多个“单词”(空格分隔),然后将其解释为输入命令中的多个参数。该变量还可以存储为一个数学公式,该公式将被估算,其数值结果作为字符串返回。 如果字符$后跟圆括号则是一种特殊情况,圆括号内的文本被视为“临时”变量,并被评估为等式样式的变量。这是在输入脚本中使用数字公式的方法,而不必给它们分配变量名称。 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. 注意,变量的大括号或即时形式都不能包含嵌套的$字符以供其他变量替代。 如下做法是错误的: variable a equal 2 variable b2equal 4 print "B2 = ${b$a}" 不能为一个临时变量指定$($ x-1.0),但可以使用$(v_x-1.0),因为后者是符合等效样式变量语法。 有关字符串如何分配给变量和评估的详细信息,以及如何在输入脚本命令中使用,请参阅变量命令。 (4)某行“单词”被空格分隔(制表符,空格)隔开。请注意,单词可以包含字母,数字,下划线或标点符号。 (5)每行的第一个词是命令名。行中的所有连续词都是参数。 (6)如果要将具有空格的文本视为单个参数,则可以将其包含在单引号或双引号或三引号中。如果使用“&”字符,则单引号或双引号的单个参数可以跨多个行。当行连接在一起(并删除“&”字符和换行符)时,文本将变为单行。如果希望多行参数保留换行符,则文本可以用三重引号括起来,在这种情况下不需要“&”字符。 例如: 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""" 在每种情况下,单个,双引号或三引号在其内部存储的单个参数被删除。引号之间的“#”或“$”字符不会被视为(2)中的注释指示符,或在)(3)中替换为变量。 注意:如果参数本身是一个需要引用参数的命令(例如,使用print命令作为if或run命令的一部分),则单引号,双引号或三引号可以以通常的方式嵌套。 最后,有需求欢迎通过微信公众号联系我们。 微信公众号:320科技工作室。 |
» 猜你喜欢
JMPT 期刊投稿流程
已经有4人回复
博士读完未来一定会好吗
已经有18人回复
心脉受损
已经有5人回复
Springer期刊投稿求助
已经有4人回复
读博
已经有3人回复
小论文投稿
已经有3人回复
Bioresource Technology期刊,第一次返修的时候被退回好几次了
已经有9人回复
到新单位后,换了新的研究方向,没有团队,持续积累2区以上论文,能申请到面上吗
已经有8人回复
申请2026年博士
已经有6人回复














回复此楼