| 27 | 1/1 | 返回列表 |
| 查看: 3804 | 回復(fù): 26 | |||
| 【獎(jiǎng)勵(lì)】 本帖被評價(jià)19次,作者tim562944200增加金幣 14.8 個(gè) | |||
[資源]
【轉(zhuǎn)】(已搜索無重復(fù))LAMMPS中fix ave spatial空間平均命令中文版
|
|||
|
翻譯挺詳細(xì)!給家分享一下 LAMMPS命令:fix ave/spatial 【轉(zhuǎn)】fix ave/spatial command (空間平均命令) limey@kyxk 2008-11-30 (這個(gè)命令是看到lammps論壇有人翻譯了一點(diǎn),于是心血來潮也開始翻譯這條命令,可是后來擱置了很長時(shí)間,今日突然想不能老這樣擱著,于是就翻譯完了。) 語法: fix ID group-id ave/spatial Nevery Nrepeat Nfreq dim origin delta value1 value2 ... keyword args ... 例子: fix 1 all ave/spatial 10000 1 10000 z lower 0.02 c_myCentro units reduced fix 1 flow ave/spatial 100 10 1000 y 0.0 1.0 vx vz norm sample file vel.profile fix 1 flow ave/spatial 100 5 1000 y 0.0 2.5 density/mass ave running 命令描述: 用于計(jì)算幾個(gè)時(shí)間步的瞬態(tài)單原子屬性(per-atom quantities),并在選定的維度上按“層”平均,再將“層屬性”(layer values)在較長時(shí)間尺度上平均。平均值可以被用于其他的輸出命令(比如thermo_style custom),或者寫入文件。 每個(gè)列出的屬性值是獨(dú)立計(jì)算其平均值得。group-id用于指定本命令作用的原子,這意味著只有在指定組(group)里的原子才對層平均有貢獻(xiàn)。 每個(gè)列出的屬性值可以原子的位置、速度、力場分量、質(zhì)量密度、原子密度或者compute、fix等命令計(jì)算的單原子屬性變量。對于后者(limey:指compute、fix計(jì)算的變量),必須是單原子屬性值而不能是全局的值。如果你想對compute、fix等命令計(jì)算的全局值做時(shí)間平均,請參考fix ave/time命令。 產(chǎn)生單原子屬性的compute命令是在類型中指明atom屬性的命令;產(chǎn)生單原子屬性的fix命令請參考相應(yīng)的fix命令的手冊;atom類型的變量是唯一可以用于本命令的變量,因?yàn)槠渌愋偷淖兞慷籍a(chǎn)生全局量。 Nevery,Nrepeat和Nfreq參數(shù)指明用于平均的層屬性在哪些時(shí)間步計(jì)算。最終的平均值每Nfreq步產(chǎn)生一次。由相隔Nevery個(gè)時(shí)間步的Nrepeat個(gè)值平均得到。因此,Nfreq必須是Nevery的整數(shù)倍,Nevery必須非零(即使Nrepeat為1,Nevery也必須非零)。同時(shí),用于計(jì)算兩個(gè)相鄰平均值的時(shí)間步不能重疊,即必須滿足Nfreq > (Nrepeat-1)*Nevery。 例如,如果Nevery=2, Nrepeat=6, Nfreq=100,這意味著時(shí)間步100的值由時(shí)間步90, 92, 94, 96, 98, 100做平均得到。同樣地,時(shí)間步200的值由時(shí)間步190, 192, 194, 196, 198, 200做平均得到。如果Nrepeat=1, Nfreq=100,則不做時(shí)間平均,命令產(chǎn)生的值僅僅是時(shí)間步100, 200的值。 每個(gè)單原子屬性的平均是在一層原子中進(jìn)行的。層是指在特定的維度dim上厚度為delta的區(qū)域。每隔Nfreq時(shí)間步,當(dāng)平均開始執(zhí)行,也就是單原子屬性第一次計(jì)算的時(shí)候,層的數(shù)目和邊界(limey:按照層的定義,一個(gè)box中有很多層)被計(jì)算出來。因此,如果模擬的過程中simulation box的大小發(fā)生改變,層的數(shù)目和邊界也會發(fā)生改變。層的位置定義到相對于一個(gè)指定的原點(diǎn)(origin),原點(diǎn)可以是box在dim維度的上/下邊界(upper/lower)、中心點(diǎn)(center)或者一個(gè)指定的坐標(biāo)值。從原點(diǎn)(origin)開始,創(chuàng)建足夠多的層用以充滿整個(gè)box。在接下來的計(jì)算中,每個(gè)原子映射到一個(gè)層,超過最低/最高層的原子被計(jì)入最低/最高層。(limey:既然層已經(jīng)充滿了整個(gè)box,怎么會有超出的原子呢?——或者解釋就是創(chuàng)建層就像搭積木一樣,邊界上的層不超出box,這樣邊界總可能有原子不在層里,如果box不能被劃分為整數(shù)個(gè)層的話。另外,從描述上看,每個(gè)平均原子的層信息是不被記錄的。) 對于立方simulation box,層是沿xyz坐標(biāo)軸排列的切片。對于非立方(三斜)box,層是平行于box的斜面的斜切片。參見LAMMPS手冊的region prism命令關(guān)于非立方box的討論。設(shè)非立方box的邊矢量為a,b,c。則x維層的層面與bXc(limey:向量叉乘)垂直;y維層的層面與aXc垂直;z維層的層面與aXb垂直。注意:為了準(zhǔn)確定義層的位置和厚度,對于非立方box,units選項(xiàng)必須設(shè)成reduced。 原子屬性(x,y,z,vx,vy,vz,fx,fy,fz)跟這些符號表示的意思相同。 density/number意味著計(jì)算每一層的原子密度,即每個(gè)原子的權(quán)重為1。density/mass意味著計(jì)算每一層的質(zhì)量密度,即每個(gè)原子的權(quán)重為原子的質(zhì)量。密度的結(jié)果用層的體積標(biāo)準(zhǔn)化,輸出的單位是1/體積和質(zhì)量/體積。 如 果屬性值以“c_”開頭,后面必須跟一個(gè)compute ID,且該compute必須在之前定義過。如果compute ID后面沒有跟[],則計(jì)算出單原子標(biāo)量;如果后面跟了[N],則計(jì)算單原子矢量的第N個(gè)分量。用戶可以添加自己的compute類型到LAMMPS里。 如 果屬性值以“f_”開頭,后面必須跟一個(gè)fix ID,且該fix必須在之前定義過。如果后面沒有跟[],則計(jì)算出單原子標(biāo)量;如果跟了[N],則計(jì)算單原子矢量的第N個(gè)分量。注意一些fix命令只在特 定的時(shí)間步產(chǎn)生數(shù)值,這種情況必須與Nevery相容,否則會給出錯(cuò)誤。用戶可以添加自己的fix類型到LAMMPS里。 如果屬性值以“v_”開頭,后面跟的變量名必須在之前定義過。atom類型的變量可以引用熱力學(xué)參數(shù),或者調(diào)用其他的compute、fix或變量。這是產(chǎn)生空間平均單原子屬性值的一般方法。 ________________________________________ 本命令的附加選項(xiàng)對命令執(zhí)行有影響。 units關(guān)鍵字指定層厚delta以及origin(如果origin是坐標(biāo)值的話)的單位。對于立方simulation box,units的三個(gè)選項(xiàng)都可以使用,對于三斜box,只能使用reduced選項(xiàng)。 box 選項(xiàng)將使長度單位與units命令(limey:注意不是units選項(xiàng))指定的長度單位相同。比如對于units real/metal的情況,長度的單位是Angstrom。lattice選項(xiàng)使長度單位與晶格長度相同,這個(gè)選項(xiàng)需要之前有l(wèi)attice命令指定。 reduced選項(xiàng)指歸一化的長度,從0到1分別表示box的底面到頂面,這種情況下origin為0.5即表示在box三個(gè)方向的中點(diǎn)。 delta=0.1表示將box一個(gè)維度分成10層。 考慮一個(gè)非正方box,在x方向分層。不管box有多斜,origin為0.0表示起始層為box的bXc平面,origin為1.0表示起始層為box的bXc上表面。不管box現(xiàn)在的大小和形狀,delta為0.1表示從0.0到1.0分10層。 norm關(guān)鍵字影響到每Nfreq步的輸出結(jié)果如何平均出來。對于all選項(xiàng),層屬性對所有Nrepeat個(gè)采樣點(diǎn)的所有原子進(jìn)行平均,輸出值是總量和/總原子數(shù);蛘哒f是對整個(gè)Nfreq步做平均。 指 定sample選項(xiàng),層屬性是對單個(gè)樣本點(diǎn)進(jìn)行平均(limey:空間平均),然后計(jì)算樣本點(diǎn)的平均值(limey:時(shí)間平均,樣本是由Nrepeat、 Nfreq指定的一個(gè)時(shí)間序列)。輸出的值是該層對Nrepeat個(gè)樣本平均值(limey:空間平均值)的平均。換言之就是平均值的平均 值。(limey:這么看來,all選項(xiàng)是把一個(gè)層內(nèi)原子在所有時(shí)間序列上的屬性值做平均。不過,如前所述,每個(gè)樣本上指定層內(nèi)原子會發(fā)生變化,似乎 sample選項(xiàng)的物理意義更明顯一些。) file關(guān)鍵字允許指定一個(gè)文件名。每Nfreq時(shí)間步,層的信息按照下列格式以文本的形式寫入文件。第一行記下時(shí)間步和層數(shù),下面寫下層的信息,一行一層,包括層號(1-N),層中心點(diǎn)的坐標(biāo),層內(nèi)原子數(shù),一個(gè)或多個(gè)計(jì) 算值。每行有多少個(gè)數(shù)值取決于fix ave/spatial命令行中指定的值的數(shù)目。層內(nèi)原子數(shù)和計(jì)算值是平均值。如果units關(guān)鍵字是box或lattice,輸出的坐標(biāo)值的單位為 units命令指定的單位。如果units關(guān)鍵字是reduced,輸出的坐標(biāo)值是歸一化的。 ave關(guān)鍵字指明在將計(jì)算出的平均值打印到文件之 前,當(dāng)前步計(jì)算出的ave/spatial平均值如何用前面輸出的平均值求平均。(limey:每Nfreq步輸出平均值,如果時(shí)間步是Nfreq的倍 數(shù),則該時(shí)間步是輸出結(jié)果的時(shí)間步,暫且叫它輸出步。lammps在每個(gè)輸出步將計(jì)算結(jié)果寫入文件,ave關(guān)鍵字表明lammps不僅能對(n-1)*Nfreq時(shí)間步到n*Nfreq時(shí)間步的狀態(tài)量進(jìn)行平均,還可以調(diào)出以前的計(jì)算結(jié)果進(jìn)行平均。) 如果ave設(shè)為one,則每個(gè)“輸出步”都是獨(dú)立輸出結(jié)果的(這樣的輸出步?jīng)]有記憶)。 如果ave設(shè)為running,則輸出步的計(jì)算值還要與以前輸出的計(jì)算值進(jìn)行平均。這個(gè)時(shí)候每個(gè)層屬性是之前寫入文件的所有輸出步的同一層的屬性值。running平均從fix定義的那個(gè)時(shí)刻開始,要想從新開始平均,只能用unfix命令刪掉這個(gè)fix,或者重新定義這個(gè)fix。 如果ave設(shè)為window,則輸出步的計(jì)算值還要與指定的window時(shí)間窗中的計(jì)算值平均,因此需要重讀M個(gè)值才能生成當(dāng)前輸出步的層屬性。例如:如果M=3、Nfreq=1000,第10000步是一個(gè)輸出步,這個(gè)輸出步的輸出結(jié)果是8000、9000、10000步各層的平均值。如果輸出步太早(limey:沒有足夠的輸出步在窗口里),則平均將在少于M個(gè)值上進(jìn)行。 ________________________________________ restart, fix_modify, output, run start/stop, minimize信息:本fix的信息不會寫入二進(jìn)制的restart文件,fix_modify的選項(xiàng)與本fix沒有關(guān)系。 本fix計(jì)算一個(gè)全局向量用來存儲屬性值,這個(gè)向量能被多種輸出命令訪問。向量的值只能在輸出步(Nfreq的倍數(shù)的時(shí)間步)被訪問,因?yàn)橹挥羞@個(gè)時(shí)刻才執(zhí)行平均。全局向量的長度為N=nlayer*nvalues,其中nlayer是層數(shù),nvalues是fix計(jì)算的平均值的數(shù)目。被其他的輸出命令訪問時(shí),只需要指定一個(gè)指數(shù)M,M會被映射到層id:I=M/nvalues+1,值id:J=M%nvalues+1。如果I(層號)超出現(xiàn)有的層數(shù)(即指數(shù)越界),則引用的該向量的第M個(gè)值將被置0.0(不會返回一個(gè)錯(cuò)誤,因?yàn)閷訑?shù)是可變的,與simulation box的大小有關(guān))。本向量的值是“強(qiáng)度量”,也就是說他們與模擬的原子數(shù)無關(guān),因?yàn)橛?jì)算過程中已經(jīng)用原子數(shù)正則化了。(limey:1、就是說寫入文件的那些值選都是可以引用的。2、不要用這個(gè)fix做廣延量的平均。) 本fix的參數(shù)不會用在run命令的start/stop關(guān)鍵字中。本fix不會被能量最小化(minimize?)喚起。 限制: 如果ave關(guān)鍵字設(shè)為running或window,模擬過程中層數(shù)必須保持不變,這樣指定的平均才可以完成。這是指simulation box不變或者units關(guān)鍵字設(shè)為reduced的情況。 相關(guān)命令: compute, fix_ave/time 缺省值: units=lattice, norm=all, ave=one, 沒有文件輸出 |
LAMMPS |
| 27 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 336求調(diào)劑 +4 | kiyy 2026-04-01 | 4/200 |
|
|---|---|---|---|---|
|
[考研] 一志愿北京科技大學(xué)085601材料工程英一數(shù)二初試總分335求調(diào)劑 +7 | 雙馬尾痞老板2 2026-04-01 | 7/350 |
|
|
[考研] 266求調(diào)劑 +7 | 陽陽哇塞 2026-04-01 | 7/350 |
|
|
[考研] 085601材料工程找調(diào)劑 +20 | oatmealR 2026-03-29 | 21/1050 |
|
|
[考研] 284求調(diào)劑 +12 | 小熊~~ 2026-03-31 | 12/600 |
|
|
[考研] 290求調(diào)劑 +5 | dfffsar 2026-03-29 | 5/250 |
|
|
[考研] 085600,321分求調(diào)劑 +13 | 大饞小子 2026-03-31 | 13/650 |
|
|
[考研] 安徽大學(xué)專碩生物與醫(yī)藥專業(yè)(086000)324分,英語已過四六級,六級521,求調(diào)劑 +10 | 美味可樂雞翅 2026-03-26 | 12/600 |
|
|
[碩博家園] 博一被送出聯(lián)培感覺不適應(yīng)怎么辦 +3 | 全村的狗 2026-03-31 | 3/150 |
|
|
[考研] 已決定調(diào)劑院校 +8 | JKSOIID 2026-03-26 | 8/400 |
|
|
[考研] 08工科,295,接受跨專業(yè)調(diào)劑 +6 | lmnlzy 2026-03-30 | 6/300 |
|
|
[考研] 085600材料與化工調(diào)劑 +16 | kikiki7 2026-03-30 | 16/800 |
|
|
[考研] 11408總分309,一志愿東南大學(xué)求調(diào)劑,不挑專業(yè) +5 | 天賦帶到THU 2026-03-29 | 6/300 |
|
|
[考研] 279求調(diào)劑 +12 | j的立方 2026-03-29 | 12/600 |
|
|
[考研] 085600 286分 材料求調(diào)劑 +11 | 麻辣魷魚 2026-03-27 | 12/600 |
|
|
[考研] 0703化學(xué)求調(diào)劑 +6 | 丹青奶蓋 2026-03-26 | 8/400 |
|
|
[考研] 283求調(diào)劑(080500) +14 | A child 2026-03-27 | 14/700 |
|
|
[考研] 材料與化工304求B區(qū)調(diào)劑 +4 | 邱gl 2026-03-26 | 7/350 |
|
|
[考研] 085600,材料與化工321分求調(diào)劑 +10 | 大饞小子 2026-03-28 | 10/500 |
|
|
[考研] 298求調(diào)劑 +3 | 種圣賜 2026-03-29 | 3/150 |
|