diff -Naur lammps-29Sep08/doc/Eqs/pair_tersoff_zbl.jpg lammps-30Sep08/doc/Eqs/pair_tersoff_zbl.jpg --- lammps-29Sep08/doc/Eqs/pair_tersoff_zbl.jpg 1969-12-31 17:00:00.000000000 -0700 +++ lammps-30Sep08/doc/Eqs/pair_tersoff_zbl.jpg 2008-10-01 09:02:48.000000000 -0600 @@ -0,0 +1,59 @@ +JFIFHHC  !"$"$ QEU !1"AQa#2qBRWb$3Vr46s%7Stuv5CD?DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDG4 |s&تYuR{Xǒ:5\""""""""""""""""""""""""""""""""(3xjwE+y|}{E2c^['z\vKg*\__bfޝ胢""8?e;d ;m }cx=7ST,N6FweN֥;ph-sCdUP7oW Zg1q<1\ c|sy$q˸'mnBCb#ip: GϠW.cҮYָ"-% ϝJގi篍5fhl|`p\bb~yȷëoI߮GFukirYFI%LY0/ClӢ Vë{;k]_k]yei rmeXX?RL#cr8aƽY-9ˢDl&aZF?Syj#Ի9;=q@.sAҌ9?>r=_ڜ=4h<54x +gorkԖnKMՁuqsƀP^C0ze,E^J8E{26ݸLa)# J~p)ԅ 94ևtS8 vͫ5׳ W.ic浹|:ԟJ# s@?`~j2n߹%.=4Ww^5c>.#K dzcEB9I-{,\dvtC =K1 |-2"""""""""""""""""""""""""""""".7 +tl[tSL"t8c/F֏.q׀>JߧY繌K7cso)G؂pZlqqqܴ0}>5(ֲX4,M~¨TЧ/Qop sX6I>{NZpӝ-a#nn,W,4oN#cm$ qn/ph'Tܣ'0:~k2ZD;Jk׽p;[:o2v1XDPA6!poh6C ?: |+dDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDT  ,0{CZ൦VD]Sw1ͱV,Q5Yɜ;r==5o{*9Bj>ig?2c5&Fu>Gs,{DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDP*ȡٛ6 y&{vtN 'Ztq1w2qݰ749Շ=tw`;m$@rŪ:q=V2I5ݺ5poH 9&g <вJ$iph$֊DDDDQ |5~a+Xݐ6IleQy|y,`52_Ƕ=])%7 J0So"R,`kfk zliwFdF(7qc[!oŠ<|DDDDDDDDDDDDDDDD_?bOԒяqrXl<G?oUع~u ,m}m7=oD ̂n@?UE9cU%Vlk;z2Rߗ9ꦪ^wYPyQxbqЖF3n|P]~ߵO3e:4c s'M־n ԛ-B.^rFጵ>rA1q[~AZn ܍?IμVrrZgcpxl6_<˾ uG(zJ9gdo||[Zk.\Ad2ni; ;T1jUuل5s~T~wzȟ_(؎!42KS=9[(kAɉ2_F8q^29,l< 147Om o(䡎`He؝+_=þzܾ#sƱqjckf:#aCΉNm&R\*keE,|?vg IὝ8N4:eJ81RcT>7>^15kZ<7̾c s9zѡ= %̍AǝV?Cx~;%n6 `sZ<숼FkG]Jw0z*؜|6i'yØd.- ΀n>Mw)2o ffkJׁ1,^L"##$hy~q^uO[72JVaFu?RKF?%mceɳۘW%` *[9.g|0$ܶ;VW)zWrXIf;SPRձOS^Kޒw t3{NIr˽7dkab^wd{ {Rm^ގoO%AwM4X㨰m<8[+j7:/gz$84~дdq˯ysG$ @S翇9nqI?\N/LV: +ж&v?'Mmd8l<*O3b* +2K1@pؚ\ zQkŗݒ>lI \km8]c#,_7w՟0lhG!Ծ f2'jt\tu <)dXFmSdWN+aɕ͑@fL\s0'~(lݰ0`ۅB\rj4;#+G3?^Gfx܅7GᭀHEw䟰@o-3p*)aLkFY=ⓨp7Mk=[3sY[O %3tNkg|y>t*sk h9::o2.U, 0GPMIb)Zk:Z9l2 L举vC*2>":OR~{lX3|KڕicGbr +9Ws+5Ueuh!i_%]8]u&7:#k4tHm\6nIUザ0ۊ6x޼܏.|DD !s-F8q`[=i#ꙄoZ^^Lg6JWv:]eAt[iuD_NWUV uZ]чH><@]ֱc֍5h/DEa?SC OE3u Κѳ}0֯zG 1028hkX4}Hx7 VMc+E p07}+ӭU""hv.%cd>)X k1hZz퉷״!K& 8lx:$l~eut0,:(c Gf~@%e1ZlRG~vsq< 0؊N[ɤY#hI9#3Y'u2ſt興汎{֍ >_'foԷf ` ZX^,:׬pe.Gnz)\1ICy|nFwR[{YX1H<~ssXʨ٣RmAfzvi[42:7K{7~zr3\v,w#z {ӳX{0"""""""""""""""""""""""""".VCR֬j9$2h٬+iCvZv_,L)G )=Cews[a Fď25`#kAIu\licٜh0Y+#k+\GYv^Kd$c_y˘zI@kփm잯oL9 BOl_*YlqW=OǓ~?|.xo/ -Ny7#|M_#W*vSխrati y٧:f#dʮ2 L2q x)|cy\O?ls?.'G9Oo#[ˉ,i]EKlM/*#\r=RP+秉l|3>7^hv`sqUXE|K}^t>'GM::VG9Oo#[ˉ7geS3+Ŏɣ>i3Z_ @Mo>VqfL%)?# XN # ]Fz4DDDDDDDDDDDDDDDDDDDDDDEYȰ8AZjpJewstwH>q +VCC##Qmx{V1gz{-:˼%)^WLf:6l[n esޯik_+YexoٙX670/g%cOT~4VG9`bk;Hw7=,}̗AGu}͵?kSU3p̎ +}VË##oծc 3Gjڔu2 =$4;Ͼ㯈:l^;\} "k杝H<Ah6F*ܸ觍&3/, =ΚV CU> +5 އ0xnaN\Z#A{;;;l&EֵA|>zDED+cc_&4|l״DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDPLn:J^ZelP2YC]+CZփHSWgs Fyj|usc:.!jGdWm뾼tq;@ ||#=`,+6H#skZ\9hI*$|Lf'rijK5SF;4l䀮\QظʳtL.l07 Μ j,m9=ȜDGWh4M""""""""""""""""""""""""""r\6 `mzҾ8a-` #뜼 ?zIn6 Пܑ΍c݇\t5!1rOj>dd, a3d^ոmK#Ex'_sc8'N@n+ֺƀh@h_EkYnInۉa2u:@ e/e%,Z81cEHf9^a45ęgcy B@Gn4j#>6H:@qipi*躴6[rw5H%oYwI4cͻ، eܴ,NZt[^l?]'ݲ8׹b#+qBRl_=C֖Fg4sUlF}6a {߿gNbs-!Fj{-*n7DoNlYE9呸ZvC:nI;[=eRlu͘6d˥#`iPc@nQEVy%nCu&A~/Yv&Z톍9iST,'͋)dOݫr\;1F|ý tM7۽֞KMw}: Og*'Zpo')g~ժx!>-=^ւ6A$.72z{ĭ[+y$q۞m$II\??ӆi?UOOg*'ZpoY8g +N;~/a8_cȮpAb,%5q?5=7 |*ibॵ\:Q:1۳PUkx:KK}h'ᮏcpKⱑOrl.%Ev-E ZtNgj'q|lLܑ븋 GU&;w n6ݿ$#g@Z>b^s%20I4ry.c쟩nUv(M{cczDDDDDDDDDDDDDDDDDDDDDE0ٯ%{G42Hhs^4A}]n?N r:HCQlmp}ZneuێtLj'Ht֓> *-zuV~.K /p!NxqPqҖH,ND!~Ayߝ!~:!ܮkj+QK 1 ;q.Iw!f')xɈF ]#]KE㛔Y̙bܺ>Gm쵻֮07q|걖IO"Ļ\wfgp<{Pڂ~3EkqOWCƾ~ax|0h|QX yh.nt~^xhQ^;V5Ț$@l<]a(XYlq hėI${^"+6>gh5g/hӞY5ytR񶽎-# fՁNM˚3` s'd ]",[߆b3$6Ķgpm` ֝[ aցlhkGLDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDXbŏT069V|M̥DzOjZGx;hq֏ѽAgq}~c!NjHZstNYNorz YjQqN9@F8=`&f)G!Y:{]o?hV ˎɵƆ:Z@$ 1̉-;pVsO8>jZW6\1&٬tL$xty,w!ykrԒwoCBIXMR?=a1n0~v;8 ka +\JJ(ƃD6gwH_C\݉ۇg[=#?+yW6aٽ3kKw>6S6Z#*aR^d5wb3];?}*378rN$1h6;.pl~tGO4eg {FR Di'Gpi?Q?jƛ'XZ0^DDDDDDDDDDDDDDDDDDDDDDDDDDDXTƱSJ+n?g; ,'$cim.^Lٿ255u2gx*V\OϸK,2dqpp-nAkOcZ<:BDq.I$Hk|@ng?R8$[Oal, ZݑCgº2gx'T K??fLgY 7?e?RU\!mi,2IԛGu'::+JROf2Ǧt۰m ?W o3'=vjNl*sÝ}tu䭇.⸹72÷7c 9~@ MƲ #ǻ%3%+ lRAq\֏w-էk]:Y?Y=3tl!~1Z kξ-B)b + bHȦqu:| ܺ\f +J|anjn1me8V%M_ +2mEds Mq1k;u.䋞qS5ԣ[~/#طd[!,%b94|NV#-}Hkl;=.=kvK(KFT63o#qn`7>'dqRL^G73eD4<} hnDaKdVpei~OF_>U`mJ̅ل4i<8߂?y? S76;4[$~&8v/`oZ$3bKzx<]g2<ٌt4ߒ}419C00QeSZ'Hc̏ww!k7;~etA25nwB<2VE {wY5h=W^آt$5.:?@Hbd=kvDEδY֚9v745頟?sxg9f$D<?_:]洴94u.vl׬:B uE|lJ.I;,Zy]4٢_HNX{y 3rq}_b2߳+#EkA|2NCX N+YkzcuVig4sD|niׂ?Ubhyt1;?x#($6K.99:}x xg$^l;84otE%5MK.Và{Q}n73-">H;8=6'J\h:$6EC@ƻƲ5i۰8x;z$oq䃭J1IR`j8lHi#4~ Nrel4ES|nvk{]ҵZ8.ұ #l #65A+.qsFb׸Ƹ3cccgu85g^IRVٚ8bn>Gl?z͉(@o^呑De{Y\84O$R2X,Ok{C杇ASgsb+o/Iьdl:mhKdvٺ95O?]*v62H<^JSY9Q_dL7,l s!!fחXui6i+}lnrG +l}~1P;GN9(\ٍ&2R'K0kv']^ >ӝW/- dߊ7=lkZ i:=^kp?)~'~Os;޻k[s<`lh::Gꕧ 9G^W[5B&^jXu=wpk7nsѽ>|/8rW2xalq1Nd-q ^VsK2'HZ:9XZ[uxxp-?7 +vS6k47PM$p4<—SԻɧl3:Rÿ"R;ssHà\,g066X[ױ=l +W+W~x*}sM+l +yhNdu{Y$poZ4e=*CXl+LΏ{ϐ׎9 5~ʂ214F潥bCץ1 +9j&c5n}Gר$ȶP)թ4}|[.c|yZLhJqy>7SV S1bGbh~ޅ0G1׎A]s"EF~Hz,cƙGbK:XR2nS3Rъ.B310y_YR_Q  -z{?!~HRr,hyd 2,Ra|ſC' <yvcq0Wcr{h+Ȑ9Z[+o]gqn^(rYK# nXyk$h @ַҏ ̬bZrψ֗o{ :-8$˶ U 2 &߸4>@Ԙ8h362cuV27\ˢvz,V!$.먡|4fxuf4s+ kDm4Gg8Ǘځ녩ʱy#ȱ4m?]yoBusIa#s Dh㮹h r"nc#i?$FVOzXծ93d (Y!kIh?%]wg29r,v1c^x ޲=ҍ|9䏕ɹC9q_xH(GwJn-= `rXR>-K#-Il:V5oD9|=5K9dy9֘-d-P'4m1ÿe3/hIu{{Iv> )x+cz ZP86-=i-pom;aϦQw'xeasxEh!cA!?LT"뼼[5c&G5pR@||F9&kyD)X sĵ\[c_Ս|XKZHG~r|мws+fov]`YؚrZ\Ɠ ^A{!$t1lE-?dH4\^:k|#~_J8☮<=:Se.78cb8{#d`k=ON %HAf +37j}KߎFXNe<}52|bI +t=+u6}/K:s{=tn-EN.z7]1yg\zN +<ђ[qVZ*&6(Ě nG);@5 yv`0>7R^C#cXOh +{mLTBdeTv!.h[\bev/+y7t=^:}+w녩ʱy#ȱ4m?]yoBusIa#o׻񚗤җb8vx-?N-h_ w\-qXxڸ._Ï n)E\livzi䜊,gEzvEv֑=vSgqw?$qxxV+UhG26bt!d; 6_ʙTmf2kمq_VVcqtkr;${ok;N::{Zt~u(-ْh7+L]d:3zK ^@GǒVNc)C+wָlkSUw$R ds$ols^ָͣWZ5mW rfy0XZlQ:61񵡡I;]\v,w#z {ӳX{09x36UծާZA-!{:J\1=H4\r|b#"jAq !9?7g3NuU^dJkٽߢ:;[eXt9;#/,^w _W: Dq1t|v' ^JmuoPC]rL5,l^A0H1|rF?g5k>Uu#V|)mW#scZd4pf^ I,ՇYltk׻}9klG˖i}ie)DX ôMlgn>RnNolm9ƣ:C{n]xb01ϭV~cXA :qovuv7^!8lb]%XjJ}"CoS1ׯ#hc=KK3-;}vkֵ^lVk 8 mKO ;RR"XM4;GkTϧds_,1x\6]YmAeډ#`sW? m^<#̒K39 JDDE]qEW}mv~[>޷JfxK#&Kǒc^O붻uq<~XEy)Ȋu, >#xxk%m< 2Ao/^:>8{ܗj6K0[<|A>FJo :]I!@ l6^}sݚ!'($507䓲 ?sxk][$ap/{,k~\PxJw1{'G1nmM̎@ @/=uhyڴ]Zɵ>F{mt1@k y#~>t"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""bC y%)c F6ho@~edhCk;3cfQ`w;`m'ǀrGNYd\鄖l7]|m~X\~=\T絶n6\Cq:K\壿*,:[ΡB3LZ۽TKo!1ql[k̲4~kN˶H>&ɕ1R|mGdJf 4 ~4 ~=c5s_[U ["HcxwG: k::?_kѰ6N?DDD_sX5䓠Q~48vG*kR6y@h|]|( Wya9Z 9&~:V:z#@kK/Rd.|fZ\NSI>V+ͽaȘ; uOKӊx 'l&=ɽvapn$M(M]u{c{>Hn8$dzJkѳTϕ *I{y:|nA$G??0ҥi c=34ZJ~C|☖`x'VcCQ?.0rJ6ݦN}O^+],LM;ܒ>ܦc3rUc mJ-ځԤh]f}xA#mi\ YG<$| 2Fdv4 i>u$*/z%rps!k|xkX>Yu[x/ZHDOyoZ͖X\<$o㧄^-yv?zejgxtэq'$)#fϓsk:t }e=8MLϩ#ddTRI/J,1:86kuJ;=k;ٗHU׬o#AsC+`<:fOs>{c\A+\HU71bGW65kW۽I9zw&]w01tKv<|xTޗ&Bo~b5M{DE#9}>Aqz{b|631R$}laƾ:J[ީb]xp尾]z(c&6:sX9[qk!c3\zCntjvoo>f9S3$˓!2ex"_e@#r %_EDDDDDDDDDDDDDDDDDEcjOvj}B>c'm~6 ocΗE%\U c8㈱sߙAo=Wk'v#v˧̫Psc dQ |NtߕDDE> R%\Q[17٣Ivg^Zf u-cdeX^kC;[=Zt 8:G+cZ%`uߩ#}־X4?IORJ۶'da&~i!׏O977 [rWV0u!Il/yL5| "{z61؃@Fjl?%6H9n&RptӽMvMۏᥴ^S@M]OaekN ^2U,٥ eY)Em {[$v .1]z.8]9ϊ8ㅢ N,̑ >usbW]{nL%xk“{'k1f`vŦ{J^FY-i)XX썴XxMFL nf7Lg8C1Fx^v\>h+QYjJ7iѹEg< C#5ܐPpyCzW#W#MiۂēE6@9 y('-"cwBgE$R;K<}.3 >f%'ߙn%c6 9|c⧽vw5rpq"HG$dSNtFΗS~S9ưpJ2wآk@7B>6#ғddَYυ}<찗FGG#H: sH?1mYAcLMom#cAR1dM%b=\7G_V%-CI9=!RG 5wgi{3Ook[|`5ݙhFΞжHx%*2XuK9!Au|J2dW;jŽ>)ZkV5oX04{j|ӹjIPGql s|9h@;;'`$DDDDDDG4 |z{K)F%~G=6_Ir$N&{vx+ZNdl/tLHK]8ߝ5-) cVlQ /[r-3 z섀:8dd L_Ξ8KccX46Ndeiq{|znjrC%-| !P'pKޠ-&6ydhFS9?#dXKվ=~6aҸ?n_m=;vؽ|zs:-mLrk%V{,ְs^4w/v`MScWjŌ$pًUdr5.|,LϖI"R͖{dpk5ȱٛުYq쑓B 烦Յ\%5s,dI_D8=:R=p i!{麔DDDDDDDDDDDDDDDD_kKs>J=c5s_Qx)V رw>>Gue͜+nD숀kh.?5B屹fv6VZsΌ6@ָieҒ+eR&َ,Z@#o|m|g;NY"h| `O9fY#[4')Mp]H\K;huy49C%w>9&c$nǃAX""""""""""""""""""""""۫?zɐ ?BYwMވq`v?=vY7zE2l]Jx0t2Kc r.348f{07Z{u屸݀=23yٖv&&vI hSW1{Zѷ8?5?HM1lS.i5"s $O~N^`PtxyǸ{9۶7߹ONKARCrM<`q'.;%O &FKcZ摰A ǧ \L *6a+qT/{ +9Җ.za_ZqpvZ|hYrS]eR $D4F kW+sdz)b+[؎$#\h?#ET_X3ѯ#,) /(2y6q`mŘ}Xؤh%RK''@ U{L}Cy?c<썇|>^8jr)A^!̒wt=5~O8LN>=5YJeADk'l٤Nqٌ{3#7Q.Rf>oq¿c#|?$??ͺL@ 2k {!{xi-fqOj.B԰1Ut]s~^_..袙:YKHGN?#bV嬔uk28L,k:h>zo doH >@F*\LjݷJ|fĮ (=qliZ:ۯlufsƂ\OW=7+z[5ɩ\ۡ6jg-a1}aנִJN8O_'&"# akٺwmKjcn ,[5H?fyGDlqX;CI$g^evk#,v>X9[qk!c3\zs/QnR+B^H.tqXƍ'kA' + NOn6`͐+wZAh#s\W iO9.z\v916϶!%Sv9oװ0τxڹ̸f8a{5kvςyeU8L18sD~= %8oƾ;1{89k#_74(gLY^l5pD emeJSR'/$6&CƓ6CCF@[4DDDDDDDDDDQ ]ͩfEzn' hG<8E?\+&ږ&2u I iUݫL) 0i$v>A1 c8Louxᕣs% +[Q+a(G]HCC"0O֪N1a߽ ෗XGg6&?i[-J$Kmpo]EnXkVV;fKsw%ٞߍykAjtGXgd/tU綾Ϟ9~t_J_+p5%>Y,=s$tsičl4IoFԆ.ZH,sH,{O4>K#ro9J(C %D&4&DHvI2fFj%W02咰6`-ǰF\Gp;rg+hOOֶ5{XrlbKN̼J!mrcsGyU,raj\2zo,ߩ+ CerldM<#kX|GkG[f *tUvan6|_O*c11drjC$|~C |1xo 3q*ꖽx&>fȚ ckv[q'x?;WgXظ$9e$\I$I$興垞W$ cZ>՟Ɨ xo(%&9G=sO ־y +0 BG NZV-K6ރ};Zߍzy?[`SЗݩd7cv:-놜֑-W?vIX<[5xc: ;Wʻ-elҳv9--g2đo,s W=^qrU!W.^.v$/ܬwfXf*l3~Y_:8V,^.a45y=!29.q>Iq?uf.O%ٲy +{66 ] $:7{dwiA?b\b1cB' 7S0{#5wzw^}QquU03M:!/Q0[z$mIYnq2[:u;)}ى䐐ZvD` y"v7UK'y qoFζrV3|~[VxY三Y"Ogx/i=nF@)0ϳ{pz4?[ٴwXWXcV8`+c(X< ]PKяHEe71Y*Jf i$*GB|nnUuX_N,/h,kw$잍Wka|Eh{KIc\6>AAWU1Ԡl MfS$uh:'*#7Y:,;L>UPso}H$Kl.8p$ڮ x۝}lӚ8͆< v>HUFk6' DV|I,x~{zu9&ichao~ÃNYd~nHC$ag-VD`fMhZ:&KeѝZ w;^+ItiR/==j/z};.u9 +{5^$Hsr.Y5nuO &6L-dllhdd\K}U漃ư1{\9!*41 :l o Ռ=Tm5xFR.zvW9E'31GڼiXaJHi$6tI>F>g/Sj,BC B{$k1ſ +*[h\.L{ hIe=cSe'۝kvn>'{&5ΆMq+t2f"vD@g5ۄ`Bc9) :;cߩG9)%`d;ĵ]t>n܎gJ"HKX^A Jc-c"fmT~J,ֶ8׷{I~N[nE4 YY$l9^i$KGmHxWI{PX,$&^Volq&jx,C آ6G4ty*bmb ܆B7om\#< @J%b@ޡא?-8ӶzP|p5@]1_N^Dzf'J@ɚ4z#B\30,۫V,*{l={_9dKJya=JI^;Խisk^wo!b`dpN@[l4xX*#+gl9bjq:z0nxbgLYj7!99,<]Fgٚq~bec3/kωY}|= @cc\Z֏'˜l_R1[^'ɥ"xs!agוQœ da;t} +c6o\H[l !W6H>A=]!iAi~49.(5sִm'@~"""""{Ɨ=$kѰ6N?DDDDDDDDDDDDDDDDDDDDDDDDD_;ugoY2UaSu~\2N黀 ٬sy$|x.8과ne\,t`d=5M3; /5h\fhq3m1`n 0cq!zejgxtэq'$)#fϓZrJ6ݦN}O^+],LM;ܒ>ܦSӒPTܓO c>6\|Iˎf=e,+V&Ûa/YH\cΈ^w3Ȭ D[ƖۦZ:b aԠ;eݞԬt6s&0X7m3!.$Zמk|qy$1Mehwz:!to&?pÊR|zc9ȕ-` Z##c->e|? k >uvdv JKOF)ʸ*9] K\WL?";{=m+d4L_.<5àld*?dZ9:6CnQ2V9쐑a7G6n3_ͱ 2gw⅀Z \uӀw:HKv s!7uֽ٢{~>JemwRW,ZOF@.:$y 3*ܪ9?$};Oɺz ي$ 7ɢGމЁ[f`7EbnoE&Hz@cAk[Tv>A1 c8Louxᕣs% +[Q+a(G]HCC"0O֪N1a߽ ෗XGg6&?i[-J$Kmpo]EnXkVV;fKsw%ٞߍykAj"dx\(nRBzuI r<3 K3{;vѻpI7Nˋ"=Z I.;: ra^ٻjw2g014Cn+9G gY? dpv"b>zzo$*}Ak^bק::"2\ C{7lx:;[RYN!&&'Gc$Ktqeyg$oTANC=,~NLdZ0ÿP|agpul11t,Pufqcˎ˃k8I~Q102if)[^!ln w.q:.qԆ ($Z0nIC㍣ց$5 +⮺7]K-׏|Ȟ֒mߠ̅5+G,p_(kHޏ?U5cr8+|vQU&SNB)%ݚC"vhZJCfv+{H ^CdsSU݇#?Cyczw7$-+ *6Ƹ4N@޷z #mYY#kBZ |8xߒ?ϔ3CJJqFl/u݃M$\Lؚu{,bŝ?['kkZ;qzmdg:28{pkmGBJ݃NXQw%͘'ml3B&,؛ٮ8=חG@+IΜ~c׷ ĦGWE7c$9{Nt䥯e/cw]޼o_:Tr<5h \elW|Ose9 y;i'<=^n3F6bfif $|""""""""""""""""""""""""",?/i`yW h dLbV@vbOj`N[rdؿ{ى21`;:bh}ۥvf[[FнHsCvBUf(~*dZ~<n?ssv9`ajuɹo +Y?Y ǥ\$41IѥŭrCt?R]/6 7SURdވ`>-y[<-@ pw;yy%}?~GV2CI-MeyCA_K@|Էʽ: KS+a5rYB9.uG^c4. K~w\PY6c+ +Ե(XLJZKv%Y9VrX򮩆F;`e{=CkKWC{:Vy.?WŨDOgs:D*^M VN-]!k斸H6;5މi֕~r&k%@0DeruZsl} sZ>VB~60:Cq_.I߆ knDDDDDDDDDDDDDDDDDDDDDDDDDDDQ1Fgc_ryq׺vR+eE(L^BVL@sZC湠48UUy -{cEv~-Iժ[%F+Ԥՙ ?i ƈB9ykIߓrܫ SzӰ>)|9M78m熘L7[.5dite2D%]ZXsH>Znj*bAHbw_@qJ-ao Mk!֞*2l9Ή q!p?? |vJ,c=K]Z *rp[%WZvil^mc.lRKVfQ2=<# +J""(ձ{rtǫw!U9wf !}Z\ִ@ ֐ +{!8:cا42{^6ZX[ڻ>^?W>Nsv\K?r"""""""""""""","2\Ĥ-ldn!8])s>ipZ؆M|Lhh~]v֙C!`2|yםꪳ eQ3o>Or__o5ԎO޻\1ޡp8;cpQ14~u>gy'!S ;ךhdw@v> /ǂ9ń l~|/G~3xyY ؽ]3bG@c1߀ Yrr|Lx+XNC:j-55Og^G#xgA^aj*$Y8Y. y"232v]mmg]0E~6B<ێf cz!V-48#s ~F|w!f1Xvy{d?sgR&ĭms{;T޳EN` k݆fJ3mydlSfɬD#/8`|>!;ZW2J;AvN^{/s io> +C{`>#܆<~MJduyCZIޟ2-7=X7૎eh|bg@foO; +~?SVNfo[ B>؎KQطi07Ӭ4aUȱ,4tfF Ybf0@yY_Q0ܧ!JoqّvhgV#؂Ik/q9-O^_m#l2#OY_Nۜ|h:rt)CNWInV D^6Fy>9SBkD >Gʬf2: +W1Df;]0;|vSַbKRVs\w=^w -~,f+Sp] |̮H>{P:\~DF[4/:?զFƞFF7nht'GKӇ#3,X~t_* 8ic1ˌs!ߘ} [LrNb h[8X"""""""""""""",;9jVS6ߒh?@, ^E _䫃fz՞R,maCwn1φn+[b`Ѕ&|@xgi}M&ròUEeW rȵ j#~'H`gM>zZX#scf\W$ Z[ͬsyXp9L>"Ld,Yxoi%~#/9l9cMJ/Y,wtO-sd1ZE] ZF<1gԯ9[]\~ձkb3۪Rh v؞1q@|hx$$EɫEf:fJ%F D˃O^t +p7r<i{XFĐ8\S(t25sH4yN7U#smn`=H֓DO4jƖ2Yc#R'WV-֟1XݱGzً6%x^F▮lbt![GiorV8K;حd]7.B6ջ;ޏ 51-' +T*R[w#6B s %'Z-?ch;Ģ[4NkkNx$|\8kb^i+-KfZ_#~ 3̸-V>=J]c=_-ƽ̑{xkQ>b=*œܐIfi$t@{=一<LjA:6e qkӣ#`pS~:_,SQ+1kZƉJ^MkXufЙ5/?wU<#0F,4,pXldË+E6keXCAݑb^Gl)jYf̱'Ia5z>v{ӼC?rGX2ˁwryjDW#w!^#xٔortoV yONs7ǔAsV2J?Y ` +ﱈO} KYZuiR9^۩0G xs<bhy{ WQ !4 hS)?kb,{5T[Yά,|lv:s[]!՞uw#Ѧ5,:'p6Ld GJxdrȡAx{ 'A47ff1q|G RI=66 o`mVȈ-ϑm,;275ё\|V1TX_{rstnkzRjV"n@E~G9F:Y̵f?^lyӯe|k*Z0LlduV i ,qk_;W^/Ȋ"[Wr=\{={=D AxV.lhrg:rHA B-r""""""""""""""""""""""""""""""""""""nMn^$H5hq'6q\4YIqЎÜ:{uwCghP3`v: K#n}QucpvDDDDDDP&]N[r3"k7g>I҇s.6mا+{a]ٽtt DDDU<400Wb~<#aW7^X㿤qȈF᤻d{]xuJ3H6(>l%o-sۜo?bZ`F wH"46''z#N>WV] V!Zv "Fx X;/?ے6Wip? '5k+ӼS~jV2Fl ?EkVs%= +L_uiZ+O.G'U"H.>H|fF4ֻ.q]kXƱ kF4"""""vkrV)4 .Tq缎@R|r+zn9#vJ4h0l0]*sܲn#t;DkF|>?ѱO%q\nNW>͑a|cmqڑ,AnO{9k]fk'Q:GڭF7GZe k9s|0$8bF VB!n82k(~|-brJVML'^+RL r2Հަ5-.h%m$|kc do+`̄,bϰ9h"/qsknEv\ogbmlucݐ{ggJ)wbMxُ]+B׳$8ZUo>_lG+?Wa͗lX]#2I'd>Va}88쟡K}N*E+ kx-lF$Y8_ㅰ266Z + ovC +("6h k@p~zk{/7|! +K]2h ګzp9W[ўf:0Rp&%Ƿm*ˈ?Jy*Kt6Sk=HetO,w;7 aoOHXNxc$1\x?Lo;:?2Og**ޔM_L8o)u1)V!o-vf?6i?UOOg*#(.w,6IY?ǽ'eq1E7 f;5^͜e]b(L}_[#d/i~݀]4NK?է qV??ӆi?UOOg**Q'CMjBjQ0g:kXǽGMc%+c},uz)n|21 wǍg^g c!KIj`kyV_l"" @QNzy k=ǒIs6ej&(c_ȹ_&Hf_ߍdH>AQ9ucpx|.idj0R 8L+wﯥݎ{]Πnr(~XAc>y'`sytF}A:r:Z95Ձ7]qn?ZQcql>VI,c1q``#.ul3r fat k%o<]~Oƻ)٭:ع!y?m9;3ZE*L xdI#C|J̻yLC 6X7ĸ ;^|a_\]G'_^ xw7 ؃)Og1qI:eꌯ#$%vgW }:yl Whfܯ6h2>K޺,4A/־l9x|p y-ޡ}ñKw1칎Ab[Ode]w7 ^s\ +d̿ 9xE3-1t&`N|dy͢"""*N-2y3%iC= "7?[?*9i!Xc?܅h&7u-=\quV11㲙 UdM5iߎֶ \"""""x*Nٌ$%->D !荆4:DcϜOzV:Wa\|l21f}3p_Ke2X \/1SH+P |Ukϸ: ]jiUJzlPCY4ր< \ No newline at end of file diff -Naur lammps-29Sep08/doc/Eqs/pair_tersoff_zbl.tex lammps-30Sep08/doc/Eqs/pair_tersoff_zbl.tex --- lammps-29Sep08/doc/Eqs/pair_tersoff_zbl.tex 1969-12-31 17:00:00.000000000 -0700 +++ lammps-30Sep08/doc/Eqs/pair_tersoff_zbl.tex 2008-10-01 09:02:48.000000000 -0600 @@ -0,0 +1,33 @@ +\documentclass[12pt]{article} + +\begin{document} + +\begin{eqnarray*} + E & = & \frac{1}{2} \sum_i \sum_{j \neq i} V_{ij} \\ + V_{ij} & = & (1 - f_F(r_{ij})) V^{ZBL}_{ij} + f_F(r_{ij}) V^{Tersoff}_{ij} \\ +f_F(r_{ij}) & = & \frac{1}{1 + e^{-A_F(r_{ij} - r_C)}}\\ + \\ + \\ + V^{ZBL}_{ij} & = & \frac{1}{4\pi\epsilon_0} \frac{Z_1 Z_2 \,e^2}{r_{ij}} \phi(r_{ij}/a) \\ + a & = & \frac{0.8854\,a_0}{Z_{1}^{0.23} + Z_{2}^{0.23}}\\ + \phi(x) & = & 0.1818e^{-3.2x} + 0.5099e^{-0.9423x} + 0.2802e^{-0.4029x} + 0.02817e^{-0.2016x}\\ + \\ + \\ + V^{Tersoff}_{ij} & = & f_C(r_{ij}) \left[ f_R(r_{ij}) + b_{ij} f_A(r_{ij}) \right] \\ + f_C(r) & = & \left\{ \begin{array} {r@{\quad:\quad}l} + 1 & r < R - D \\ + \frac{1}{2} - \frac{1}{2} \sin \left( \frac{\pi}{2} \frac{r-R}{D} \right) & + R-D < r < R + D \\ + 0 & r > R + D + \end{array} \right. \\ + f_R(r) & = & A \exp (-\lambda_1 r) \\ + f_A(r) & = & -B \exp (-\lambda_2 r) \\ + b_{ij} & = & \left( 1 + \beta^n {\zeta_{ij}}^n \right)^{-\frac{1}{2n}} \\ + \zeta_{ij} & = & \sum_{k \neq i,j} f_C(r_{ik}) g(\theta_{ijk}) + \exp \left[ {\lambda_3}^3 (r_{ij} - r_{ik})^m \right] \\ + g(\theta) & = & \gamma_{ijk} \left( 1 + \frac{c^2}{d^2} - + \frac{c^2}{\left[ d^2 + + (\cos \theta - \cos \theta_0)^2\right]} \right) +\end{eqnarray*} + +\end{document} diff -Naur lammps-29Sep08/doc/Section_commands.html lammps-30Sep08/doc/Section_commands.html --- lammps-29Sep08/doc/Section_commands.html 2008-07-24 13:43:24.000000000 -0600 +++ lammps-30Sep08/doc/Section_commands.html 2008-10-01 09:02:48.000000000 -0600 @@ -373,7 +373,7 @@ lj/expandlj/gromacslj/gromacs/coul/gromacslj/smooth lubricatemeammorsemorse/opt resquaredperi/pmbsoftsw -tabletersoffyukawa +tabletersofftersoff/zblyukawa

These are pair styles contributed by users, which can be used if diff -Naur lammps-29Sep08/doc/Section_commands.txt lammps-30Sep08/doc/Section_commands.txt --- lammps-29Sep08/doc/Section_commands.txt 2008-07-24 13:43:24.000000000 -0600 +++ lammps-30Sep08/doc/Section_commands.txt 2008-10-01 09:02:48.000000000 -0600 @@ -532,6 +532,7 @@ "sw"_pair_sw.html, "table"_pair_table.html, "tersoff"_pair_tersoff.html, +"tersoff/zbl"_pair_tersoff_zbl.html, "yukawa"_pair_yukawa.html :tb(c=4,ea=c) These are pair styles contributed by users, which can be used if diff -Naur lammps-29Sep08/doc/pair_coeff.html lammps-30Sep08/doc/pair_coeff.html --- lammps-29Sep08/doc/pair_coeff.html 2008-07-23 17:26:28.000000000 -0600 +++ lammps-30Sep08/doc/pair_coeff.html 2008-10-01 09:02:48.000000000 -0600 @@ -96,7 +96,7 @@

  • pair_style coul/cut - cutoff Coulombic potential
  • pair_style coul/debye - cutoff Coulombic potential with Debye screening
  • pair_style coul/long - long-range Coulombic potential -
  • pair_style dipole/cut - point dipoles with cutoff +
  • pair_style dipole/cut - point dipoles with cutoff
  • pair_style dpd - dissipative particle dynamics (DPD)
  • pair_style eam - embedded atom method (EAM)
  • pair_style eam/opt - optimized version of EAM @@ -135,6 +135,7 @@
  • pair_style sw - Stillinger-Weber 3-body potential
  • pair_style table - tabulated pair potential
  • pair_style tersoff - Tersoff 3-body potential +
  • pair_style tersoff/zbl - Tersoff/ZBL 3-body potential
  • pair_style yukawa - Yukawa potential

    There are also additional pair styles submitted by users which are diff -Naur lammps-29Sep08/doc/pair_coeff.txt lammps-30Sep08/doc/pair_coeff.txt --- lammps-29Sep08/doc/pair_coeff.txt 2008-07-23 17:26:28.000000000 -0600 +++ lammps-30Sep08/doc/pair_coeff.txt 2008-10-01 09:02:48.000000000 -0600 @@ -92,7 +92,7 @@ "pair_style coul/cut"_pair_coul.html - cutoff Coulombic potential "pair_style coul/debye"_pair_coul.html - cutoff Coulombic potential with Debye screening "pair_style coul/long"_pair_coul.html - long-range Coulombic potential -"pair_style dipole/cut"_pair_dpd.html - point dipoles with cutoff +"pair_style dipole/cut"_pair_dipole.html - point dipoles with cutoff "pair_style dpd"_pair_dpd.html - dissipative particle dynamics (DPD) "pair_style eam"_pair_eam.html - embedded atom method (EAM) "pair_style eam/opt"_pair_eam.html - optimized version of EAM @@ -131,6 +131,7 @@ "pair_style sw"_pair_sw.html - Stillinger-Weber 3-body potential "pair_style table"_pair_table.html - tabulated pair potential "pair_style tersoff"_pair_tersoff.html - Tersoff 3-body potential +"pair_style tersoff/zbl"_pair_tersoff.html - Tersoff/ZBL 3-body potential "pair_style yukawa"_pair_yukawa.html - Yukawa potential :ul There are also additional pair styles submitted by users which are diff -Naur lammps-29Sep08/doc/pair_style.html lammps-30Sep08/doc/pair_style.html --- lammps-29Sep08/doc/pair_style.html 2008-09-26 09:13:52.000000000 -0600 +++ lammps-30Sep08/doc/pair_style.html 2008-10-01 09:02:48.000000000 -0600 @@ -137,6 +137,7 @@

  • pair_style sw - Stillinger-Weber 3-body potential
  • pair_style table - tabulated pair potential
  • pair_style tersoff - Tersoff 3-body potential +
  • pair_style tersoff/zbl - Tersoff/ZBL 3-body potential
  • pair_style yukawa - Yukawa potential

    There are also additional pair styles submitted by users which are diff -Naur lammps-29Sep08/doc/pair_style.txt lammps-30Sep08/doc/pair_style.txt --- lammps-29Sep08/doc/pair_style.txt 2008-09-26 09:13:52.000000000 -0600 +++ lammps-30Sep08/doc/pair_style.txt 2008-10-01 09:02:48.000000000 -0600 @@ -133,6 +133,7 @@ "pair_style sw"_pair_sw.html - Stillinger-Weber 3-body potential "pair_style table"_pair_table.html - tabulated pair potential "pair_style tersoff"_pair_tersoff.html - Tersoff 3-body potential +"pair_style tersoff/zbl"_pair_tersoff.html - Tersoff/ZBL 3-body potential "pair_style yukawa"_pair_yukawa.html - Yukawa potential :ul There are also additional pair styles submitted by users which are diff -Naur lammps-29Sep08/doc/pair_tersoff.html lammps-30Sep08/doc/pair_tersoff.html --- lammps-29Sep08/doc/pair_tersoff.html 2008-08-11 11:49:36.000000000 -0600 +++ lammps-30Sep08/doc/pair_tersoff.html 2008-10-01 09:02:48.000000000 -0600 @@ -18,7 +18,7 @@

    Examples:

    pair_style tersoff
    -pair_coeff * * si.tersoff Si
    +pair_coeff * * Si.tersoff Si
     pair_coeff * * SiC.tersoff Si C Si 
     

    Description: @@ -124,7 +124,7 @@ equivalent form for alloys, which we will refer to as Tersoff_2 potential (Tersoff_2).

    -

    LAMMPS parameter values for Tersoff_2 can be obtained as follows. +

    LAMMPS parameter values for Tersoff_2 can be obtained as follows: gamma = 1, just as for Tersoff_1, but now lambda3 = 0 and the value of m has no effect. The parameters for species i and j can be calculated using the Tersoff_2 mixing rules: diff -Naur lammps-29Sep08/doc/pair_tersoff.txt lammps-30Sep08/doc/pair_tersoff.txt --- lammps-29Sep08/doc/pair_tersoff.txt 2008-08-11 11:49:36.000000000 -0600 +++ lammps-30Sep08/doc/pair_tersoff.txt 2008-10-01 09:02:48.000000000 -0600 @@ -15,7 +15,7 @@ [Examples:] pair_style tersoff -pair_coeff * * si.tersoff Si +pair_coeff * * Si.tersoff Si pair_coeff * * SiC.tersoff Si C Si :pre [Description:] @@ -121,7 +121,7 @@ equivalent form for alloys, which we will refer to as Tersoff_2 potential "(Tersoff_2)"_#Tersoff_2. -LAMMPS parameter values for Tersoff_2 can be obtained as follows. +LAMMPS parameter values for Tersoff_2 can be obtained as follows: gamma = 1, just as for Tersoff_1, but now lambda3 = 0 and the value of m has no effect. The parameters for species i and j can be calculated using the Tersoff_2 mixing rules: diff -Naur lammps-29Sep08/doc/pair_tersoff_zbl.html lammps-30Sep08/doc/pair_tersoff_zbl.html --- lammps-29Sep08/doc/pair_tersoff_zbl.html 1969-12-31 17:00:00.000000000 -0700 +++ lammps-30Sep08/doc/pair_tersoff_zbl.html 2008-10-01 09:02:48.000000000 -0600 @@ -0,0 +1,243 @@ + +

    LAMMPS WWW Site - LAMMPS Documentation - LAMMPS Commands +
    + + + + + + +
    + +

    pair_style tersoff/zbl command +

    +

    Syntax: +

    +
    pair_style tersoff/zbl 
    +
    +

    Examples: +

    +
    pair_style tersoff/zbl
    +pair_coeff * * SiC.tersoff.zbl Si C Si 
    +
    +

    Description: +

    +

    The tersoff/zbl style computes a 3-body Tersoff potential +(Tersoff_1) with a close-separation pairwise modification +based on a Coulomb potential and the Ziegler-Biersack-Littmark +universal screening function (ZBL), giving the energy E of a +system of atoms as +

    +
    +
    +

    The f_F term is a fermi-like function used to smoothly connect the ZBL +repulsive potential with the Tersoff potential. There are 2 +parameters used to adjust it: A_F and r_C. A_F controls how "sharp" +the transition is between the two, and r_C is essentially the cutoff +for the ZBL potential. +

    +

    For the ZBL portion, there are two terms. The first is the Coulomb +repulsive term, with Z1, Z2 as the number of protons in each nucleus, +e as the electron charge (1 for metal and real units) and epsilon0 as +the permittivity of vacuum. The second part is the ZBL universal +screening function, with a0 being the Bohr radius (typically 0.529 +Angstroms), and the remainder of the coefficients provided by the +original paper. This screening function should be applicable to most +systems. However, it is only accurate for small separations +(i.e. less than 1 Angstrom). +

    +

    For the Tersoff portion, f_R is a two-body term and f_A includes +three-body interactions. The summations in the formula are over all +neighbors J and K of atom I within a cutoff distance = R + D. +

    +

    Only a single pair_coeff command is used with the tersoff/zbl style +which specifies a Tersoff/ZBL potential file with parameters for all +needed elements. These are mapped to LAMMPS atom types by specifying +N additional arguments after the filename in the pair_coeff command, +where N is the number of LAMMPS atom types: +

    +
    • filename +
    • N element names = mapping of Tersoff/ZBL elements to atom types +
    +

    As an example, imagine the SiC.tersoff.zbl file has Tersoff/ZBL values +for Si and C. If your LAMMPS simulation has 4 atoms types and you +want the 1st 3 to be Si, and the 4th to be C, you would use the +following pair_coeff command: +

    +
    pair_coeff * * SiC.tersoff Si Si Si C 
    +
    +

    The 1st 2 arguments must be * * so as to span all LAMMPS atom types. +The first three Si arguments map LAMMPS atom types 1,2,3 to the Si +element in the Tersoff/ZBL file. The final C argument maps LAMMPS +atom type 4 to the C element in the Tersoff/ZBL file. If a mapping +value is specified as NULL, the mapping is not performed. This can be +used when a tersoff/zbl potential is used as part of the hybrid +pair style. The NULL values are placeholders for atom types that will +be used with other potentials. +

    +

    Tersoff/ZBL files in the potentials directory of the LAMMPS +distribution have a ".tersoff.zbl" suffix. Lines that are not blank +or comments (starting with #) define parameters for a triplet of +elements. The parameters in a single entry correspond to coefficients +in the formula above: +

    +
    • element 1 (the center atom in a 3-body interaction) +
    • element 2 (the atom bonded to the center atom) +
    • element 3 (the atom influencing the 1-2 bond in a bond-order sense) +
    • m +
    • gamma +
    • lambda3 (1/distance units) +
    • c +
    • d +
    • costheta0 (can be a value < -1 or > 1) +
    • n +
    • beta +
    • lambda2 (1/distance units) +
    • B (energy units) +
    • R (distance units) +
    • D (distance units) +
    • lambda1 (1/distance units) +
    • A (energy units) +
    • Z_i +
    • Z_j +
    • ZBLcut (distance units) +
    • ZBLexpscale (1/distance units) +
    +

    The n, beta, lambda2, B, lambda1, and A parameters are only used for +two-body interactions. The m, gamma, lambda3, c, d, and costheta0 +parameters are only used for three-body interactions. The R and D +parameters are used for both two-body and three-body interactions. The +Z_i,Z_j, ZBLcut, ZBLexpscale parameters are used in the ZBL repulsive +portion of the potential and in the Fermi-like function. The +non-annotated parameters are unitless. The value of m must be 3 or 1. +

    +

    The Tersoff/ZBL potential file must contain entries for all the +elements listed in the pair_coeff command. It can also contain +entries for additional elements not being used in a particular +simulation; LAMMPS ignores those entries. +

    +

    For a single-element simulation, only a single entry is required +(e.g. SiSiSi). For a two-element simulation, the file must contain 8 +entries (for SiSiSi, SiSiC, SiCSi, SiCC, CSiSi, CSiC, CCSi, CCC), that +specify Tersoff parameters for all permutations of the two elements +interacting in three-body configurations. Thus for 3 elements, 27 +entries would be required, etc. +

    +

    As annotated above, the first element in the entry is the center atom +in a three-body interaction and it is bonded to the 2nd atom and the +bond is influenced by the 3rd atom. Thus an entry for SiCC means Si +bonded to a C with another C atom influencing the bond. Thus +three-body parameters for SiCSi and SiSiC entries will not, in +general, be the same. The parameters used for the two-body +interaction come from the entry where the 2nd element is repeated. +Thus the two-body parameters for Si interacting with C, comes from the +SiCC entry. By symmetry, the twobody parameters in the SiCC and CSiSi +entries should thus be the same. The parameters used for a particular +three-body interaction come from the entry with the corresponding +three elements. The parameters used only for two-body interactions +(n, beta, lambda2, B, lambda1, and A) in entries whose 2nd and 3rd +element are different (e.g. SiCSi) are not used for anything and can +be set to 0.0 if desired. +

    +

    We chose the above form so as to enable users to define all commonly +used variants of the Tersoff portion of the potential. In particular, +our form reduces to the original Tersoff form when m = 3 and gamma = +1, while it reduces to the form of Albe et al. when beta = 1 +and m = 1. Note that in the current Tersoff implementation in LAMMPS, +m must be specified as either 3 or 1. Tersoff used a slightly +different but equivalent form for alloys, which we will refer to as +Tersoff_2 potential (Tersoff_2). +

    +

    LAMMPS parameter values for Tersoff_2 can be obtained as follows: +gamma = 1, just as for Tersoff_1, but now lambda3 = 0 and the value of +m has no effect. The parameters for species i and j can be calculated +using the Tersoff_2 mixing rules: +

    +
    +
    +

    Values not shown are determined by the firstatom type. Finally, the +Tersoff_2 parameters R and S must be converted to the LAMMPS +parameters R and D (R is different in both forms), using the following +relations: R=(R'+S')/2 and D=(S'-R')/2, where the primes indicate the +Tersoff_2 parameters. +

    +

    In the potentials directory, the file SiCGe.tersoff provides the +LAMMPS parameters for Tersoff's various versions of Si, as well as his +alloy parameters for Si, C, and Ge. This file can be used for pure Si, +(three different versions), pure C, pure Ge, binary SiC, and binary +SiGe. LAMMPS will generate an error if this file is used with any +combination involving C and Ge, since there are no entries for the GeC +interactions (Tersoff did not publish parameters for this +cross-interaction.) Tersoff files are also provided for the SiC alloy +(SiC.tersoff) and the GaN (GaN.tersoff) alloys. +

    +

    Many thanks to Rutuparna Narulkar, David Farrell, and Xiaowang Zhou +for helping clarify how Tersoff parameters for alloys have been +defined in various papers. Also thanks to Ram Devanathan for +providing the base ZBL implementation. +

    +
    + +

    Mixing, shift, table, tail correction, restart, rRESPA info: +

    +

    For atom type pairs I,J and I != J, where types I and J correspond to +two different element types, mixing is performed by LAMMPS as +described above from values in the potential file. +

    +

    This pair style does not support the pair_modify +shift, table, and tail options. +

    +

    This pair style does not write its information to binary restart +files, since it is stored in potential files. Thus, you +need to re-specify the pair_style and pair_coeff commands in an input +script that reads a restart file. +

    +

    This pair style can only be used via the pair keyword of the +run_style respa command. It does not support the +inner, middle, outer keywords. +

    +
    + +

    Restrictions: +

    +

    This pair style is part of the "manybody" package. It is only enabled +if LAMMPS was built with that package (which it is by default). See +the Making LAMMPS section for more info. +

    +

    This pair style requires the newton setting to be "on" +for pair interactions. +

    +

    The Tersoff/ZBL potential files provided with LAMMPS (see the +potentials directory) are parameterized for metal units. +You can use the Tersoff potential with any LAMMPS units, but you would +need to create your own Tersoff potential file with coefficients +listed in the appropriate units if your simulation doesn't use "metal" +units. +

    +

    Related commands: +

    +

    pair_coeff +

    +

    Default: none +

    +
    + + + +

    (Tersoff_1) J. Tersoff, Phys Rev B, 37, 6991 (1988). +

    + + +

    (ZBL) J.F. Ziegler, J.P. Biersack, U. Littmark, 'Stopping and Ranges +of Ions in Matter' Vol 1, 1985, Pergamon Press. +

    + + +

    (Albe) J. Nord, K. Albe, P. Erhartand K. Nordlund, J. Phys.: +Condens. Matter, 15, 5649(2003). +

    + + +

    (Tersoff_2) J. Tersoff, Phys Rev B, 39, 5566 (1989) +

    + diff -Naur lammps-29Sep08/doc/pair_tersoff_zbl.txt lammps-30Sep08/doc/pair_tersoff_zbl.txt --- lammps-29Sep08/doc/pair_tersoff_zbl.txt 1969-12-31 17:00:00.000000000 -0700 +++ lammps-30Sep08/doc/pair_tersoff_zbl.txt 2008-10-01 09:02:48.000000000 -0600 @@ -0,0 +1,234 @@ +"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +pair_style tersoff/zbl command :h3 + +[Syntax:] + +pair_style tersoff/zbl :pre + +[Examples:] + +pair_style tersoff/zbl +pair_coeff * * SiC.tersoff.zbl Si C Si :pre + +[Description:] + +The {tersoff/zbl} style computes a 3-body Tersoff potential +"(Tersoff_1)"_#Tersoff_1 with a close-separation pairwise modification +based on a Coulomb potential and the Ziegler-Biersack-Littmark +universal screening function "(ZBL)"_#ZBL, giving the energy E of a +system of atoms as + +:c,image(Eqs/pair_tersoff_zbl.jpg) + +The f_F term is a fermi-like function used to smoothly connect the ZBL +repulsive potential with the Tersoff potential. There are 2 +parameters used to adjust it: A_F and r_C. A_F controls how "sharp" +the transition is between the two, and r_C is essentially the cutoff +for the ZBL potential. + +For the ZBL portion, there are two terms. The first is the Coulomb +repulsive term, with Z1, Z2 as the number of protons in each nucleus, +e as the electron charge (1 for metal and real units) and epsilon0 as +the permittivity of vacuum. The second part is the ZBL universal +screening function, with a0 being the Bohr radius (typically 0.529 +Angstroms), and the remainder of the coefficients provided by the +original paper. This screening function should be applicable to most +systems. However, it is only accurate for small separations +(i.e. less than 1 Angstrom). + +For the Tersoff portion, f_R is a two-body term and f_A includes +three-body interactions. The summations in the formula are over all +neighbors J and K of atom I within a cutoff distance = R + D. + +Only a single pair_coeff command is used with the {tersoff/zbl} style +which specifies a Tersoff/ZBL potential file with parameters for all +needed elements. These are mapped to LAMMPS atom types by specifying +N additional arguments after the filename in the pair_coeff command, +where N is the number of LAMMPS atom types: + +filename +N element names = mapping of Tersoff/ZBL elements to atom types :ul + +As an example, imagine the SiC.tersoff.zbl file has Tersoff/ZBL values +for Si and C. If your LAMMPS simulation has 4 atoms types and you +want the 1st 3 to be Si, and the 4th to be C, you would use the +following pair_coeff command: + +pair_coeff * * SiC.tersoff Si Si Si C :pre + +The 1st 2 arguments must be * * so as to span all LAMMPS atom types. +The first three Si arguments map LAMMPS atom types 1,2,3 to the Si +element in the Tersoff/ZBL file. The final C argument maps LAMMPS +atom type 4 to the C element in the Tersoff/ZBL file. If a mapping +value is specified as NULL, the mapping is not performed. This can be +used when a {tersoff/zbl} potential is used as part of the {hybrid} +pair style. The NULL values are placeholders for atom types that will +be used with other potentials. + +Tersoff/ZBL files in the {potentials} directory of the LAMMPS +distribution have a ".tersoff.zbl" suffix. Lines that are not blank +or comments (starting with #) define parameters for a triplet of +elements. The parameters in a single entry correspond to coefficients +in the formula above: + +element 1 (the center atom in a 3-body interaction) +element 2 (the atom bonded to the center atom) +element 3 (the atom influencing the 1-2 bond in a bond-order sense) +m +gamma +lambda3 (1/distance units) +c +d +costheta0 (can be a value < -1 or > 1) +n +beta +lambda2 (1/distance units) +B (energy units) +R (distance units) +D (distance units) +lambda1 (1/distance units) +A (energy units) +Z_i +Z_j +ZBLcut (distance units) +ZBLexpscale (1/distance units) :ul + +The n, beta, lambda2, B, lambda1, and A parameters are only used for +two-body interactions. The m, gamma, lambda3, c, d, and costheta0 +parameters are only used for three-body interactions. The R and D +parameters are used for both two-body and three-body interactions. The +Z_i,Z_j, ZBLcut, ZBLexpscale parameters are used in the ZBL repulsive +portion of the potential and in the Fermi-like function. The +non-annotated parameters are unitless. The value of m must be 3 or 1. + +The Tersoff/ZBL potential file must contain entries for all the +elements listed in the pair_coeff command. It can also contain +entries for additional elements not being used in a particular +simulation; LAMMPS ignores those entries. + +For a single-element simulation, only a single entry is required +(e.g. SiSiSi). For a two-element simulation, the file must contain 8 +entries (for SiSiSi, SiSiC, SiCSi, SiCC, CSiSi, CSiC, CCSi, CCC), that +specify Tersoff parameters for all permutations of the two elements +interacting in three-body configurations. Thus for 3 elements, 27 +entries would be required, etc. + +As annotated above, the first element in the entry is the center atom +in a three-body interaction and it is bonded to the 2nd atom and the +bond is influenced by the 3rd atom. Thus an entry for SiCC means Si +bonded to a C with another C atom influencing the bond. Thus +three-body parameters for SiCSi and SiSiC entries will not, in +general, be the same. The parameters used for the two-body +interaction come from the entry where the 2nd element is repeated. +Thus the two-body parameters for Si interacting with C, comes from the +SiCC entry. By symmetry, the twobody parameters in the SiCC and CSiSi +entries should thus be the same. The parameters used for a particular +three-body interaction come from the entry with the corresponding +three elements. The parameters used only for two-body interactions +(n, beta, lambda2, B, lambda1, and A) in entries whose 2nd and 3rd +element are different (e.g. SiCSi) are not used for anything and can +be set to 0.0 if desired. + +We chose the above form so as to enable users to define all commonly +used variants of the Tersoff portion of the potential. In particular, +our form reduces to the original Tersoff form when m = 3 and gamma = +1, while it reduces to the form of "Albe et al."_#Albe when beta = 1 +and m = 1. Note that in the current Tersoff implementation in LAMMPS, +m must be specified as either 3 or 1. Tersoff used a slightly +different but equivalent form for alloys, which we will refer to as +Tersoff_2 potential "(Tersoff_2)"_#Tersoff_2. + +LAMMPS parameter values for Tersoff_2 can be obtained as follows: +gamma = 1, just as for Tersoff_1, but now lambda3 = 0 and the value of +m has no effect. The parameters for species i and j can be calculated +using the Tersoff_2 mixing rules: + +:c,image(Eqs/pair_tersoff_2.jpg) + +Values not shown are determined by the firstatom type. Finally, the +Tersoff_2 parameters R and S must be converted to the LAMMPS +parameters R and D (R is different in both forms), using the following +relations: R=(R'+S')/2 and D=(S'-R')/2, where the primes indicate the +Tersoff_2 parameters. + +In the potentials directory, the file SiCGe.tersoff provides the +LAMMPS parameters for Tersoff's various versions of Si, as well as his +alloy parameters for Si, C, and Ge. This file can be used for pure Si, +(three different versions), pure C, pure Ge, binary SiC, and binary +SiGe. LAMMPS will generate an error if this file is used with any +combination involving C and Ge, since there are no entries for the GeC +interactions (Tersoff did not publish parameters for this +cross-interaction.) Tersoff files are also provided for the SiC alloy +(SiC.tersoff) and the GaN (GaN.tersoff) alloys. + +Many thanks to Rutuparna Narulkar, David Farrell, and Xiaowang Zhou +for helping clarify how Tersoff parameters for alloys have been +defined in various papers. Also thanks to Ram Devanathan for +providing the base ZBL implementation. + +:line + +[Mixing, shift, table, tail correction, restart, rRESPA info]: + +For atom type pairs I,J and I != J, where types I and J correspond to +two different element types, mixing is performed by LAMMPS as +described above from values in the potential file. + +This pair style does not support the "pair_modify"_pair_modify.html +shift, table, and tail options. + +This pair style does not write its information to "binary restart +files"_restart.html, since it is stored in potential files. Thus, you +need to re-specify the pair_style and pair_coeff commands in an input +script that reads a restart file. + +This pair style can only be used via the {pair} keyword of the +"run_style respa"_run_style.html command. It does not support the +{inner}, {middle}, {outer} keywords. + +:line + +[Restrictions:] + +This pair style is part of the "manybody" package. It is only enabled +if LAMMPS was built with that package (which it is by default). See +the "Making LAMMPS"_Section_start.html#2_3 section for more info. + +This pair style requires the "newton"_newton.html setting to be "on" +for pair interactions. + +The Tersoff/ZBL potential files provided with LAMMPS (see the +potentials directory) are parameterized for metal "units"_units.html. +You can use the Tersoff potential with any LAMMPS units, but you would +need to create your own Tersoff potential file with coefficients +listed in the appropriate units if your simulation doesn't use "metal" +units. + +[Related commands:] + +"pair_coeff"_pair_coeff.html + +[Default:] none + +:line + +:link(Tersoff_1) +[(Tersoff_1)] J. Tersoff, Phys Rev B, 37, 6991 (1988). + +:link(ZBL) +[(ZBL)] J.F. Ziegler, J.P. Biersack, U. Littmark, 'Stopping and Ranges +of Ions in Matter' Vol 1, 1985, Pergamon Press. + +:link(Albe) +[(Albe)] J. Nord, K. Albe, P. Erhartand K. Nordlund, J. Phys.: +Condens. Matter, 15, 5649(2003). + +:link(Tersoff_2) +[(Tersoff_2)] J. Tersoff, Phys Rev B, 39, 5566 (1989) diff -Naur lammps-29Sep08/potentials/SiC.tersoff.zbl lammps-30Sep08/potentials/SiC.tersoff.zbl --- lammps-29Sep08/potentials/SiC.tersoff.zbl 1969-12-31 17:00:00.000000000 -0700 +++ lammps-30Sep08/potentials/SiC.tersoff.zbl 2008-10-01 09:02:55.000000000 -0600 @@ -0,0 +1,31 @@ +# Tersoff parameters for various elements and mixtures +# multiple entries can be added to this file, LAMMPS reads the ones it needs +# these entries are in LAMMPS "metal" units: +# A,B = eV; lambda1,lambda2,lambda3 = 1/Angstroms; R,D, ZBLcut = Angstroms; Z_i, Z_j = electron charge units +# other quantities are unitless +# These parameters are from Devanathan JNM 1998, adapted to fit the form used in LAMMPS (tersoff PRB 37 1988 instead of 1989 form) +# Z_i, Z_j are the charges of the i,j th nuclei from the coulomb potential +# ZBLcut is the ZBL cutoff parameter (should be less than 1.0 angstrom), ZBLexpscale is the scaling parameter in the exponential of the smoothing function +# These parameters have been taken from Devanathan et al JNM 253, 1998 and a private communication on the ZBL potential, thanks goes to Ram Devanathan for help +# with the ZBL potential. + + +# format of a single entry (one or more lines): +# element 1, element 2, element 3, +# m, gamma, lambda3, c, d, h, n, beta, lambda2, X_ij*B, R, D, lambda1, A, Z_i, Z_j, ZBLcut, ZBLexpscale + +Si Si Si 1.0 1.0 0.0 1.0039e5 1.6217e1 -5.9825e-1 7.8734e-1 1.1e-6 1.7322 4.7118e2 2.85 .15 2.4799 1.8308e3 14 14 .95 14 + +Si Si C 1.0 1.0 0.0 1.0039e5 1.6217e1 -5.9825e-1 7.8734e-1 1.1e-6 1.7322 4.7118e2 2.85 .15 2.4799 1.8308e3 14 14 .95 14 + +Si C Si 1.0 1.0 0.0 1.0039e5 1.6217e1 -5.9825e-1 7.8734e-1 1.1e-6 2.0193 4.3215e2 2.36 .15 2.9726 1.6817e3 14 6 .95 14 + +C Si Si 1.0 1.0 0.0 1.9981e4 7.034e0 -3.3953e-1 9.9054e-1 4.1612e-6 2.0193 4.3215e2 2.36 .15 2.9726 1.6817e3 6 14 .95 14 + +C C Si 1.0 1.0 0.0 1.9981e4 7.034e0 -3.3953e-1 9.9054e-1 4.1612e-6 2.3064 3.8963e2 1.95 .15 3.4653 1.5448e3 6 6 .95 14 + +C Si C 1.0 1.0 0.0 1.9981e4 7.034e0 -3.3953e-1 9.9054e-1 4.1612e-6 2.0193 4.3215e2 2.36 .15 2.9726 1.6817e3 6 14 .95 14 + +Si C C 1.0 1.0 0.0 1.0039e5 1.6217e1 -5.9825e-1 7.8734e-1 1.1e-6 2.0193 4.3215e2 2.36 .15 2.9726 1.6817e3 14 6 .95 14 + +C C C 1.0 1.0 0.0 1.9981e4 7.034e0 -3.3953e-1 9.9054e-1 4.1612e-6 2.3064 3.8963e2 1.95 .15 3.4653 1.5448e3 6 6 .95 14 \ No newline at end of file diff -Naur lammps-29Sep08/src/MANYBODY/Install.csh lammps-30Sep08/src/MANYBODY/Install.csh --- lammps-29Sep08/src/MANYBODY/Install.csh 2007-08-10 16:59:04.000000000 -0600 +++ lammps-30Sep08/src/MANYBODY/Install.csh 2008-10-01 09:02:36.000000000 -0600 @@ -10,6 +10,7 @@ cp pair_eam_fs.cpp .. cp pair_sw.cpp .. cp pair_tersoff.cpp .. + cp pair_tersoff_zbl.cpp .. cp pair_airebo.h .. cp pair_eam.h .. @@ -17,6 +18,7 @@ cp pair_eam_fs.h .. cp pair_sw.h .. cp pair_tersoff.h .. + cp pair_tersoff_zbl.h .. else if ($1 == 0) then @@ -29,6 +31,7 @@ rm ../pair_eam_fs.cpp rm ../pair_sw.cpp rm ../pair_tersoff.cpp + rm ../pair_tersoff_zbl.cpp rm ../pair_airebo.h rm ../pair_eam.h @@ -36,5 +39,6 @@ rm ../pair_eam_fs.h rm ../pair_sw.h rm ../pair_tersoff.h + rm ../pair_tersoff_zbl.h endif diff -Naur lammps-29Sep08/src/MANYBODY/pair_tersoff.cpp lammps-30Sep08/src/MANYBODY/pair_tersoff.cpp --- lammps-29Sep08/src/MANYBODY/pair_tersoff.cpp 2008-08-11 11:47:40.000000000 -0600 +++ lammps-30Sep08/src/MANYBODY/pair_tersoff.cpp 2008-10-01 09:02:36.000000000 -0600 @@ -41,6 +41,7 @@ single_enable = 0; one_coeff = 1; + PI = 4.0*atan(1.0); PI2 = 2.0*atan(1.0); PI4 = atan(1.0); diff -Naur lammps-29Sep08/src/MANYBODY/pair_tersoff.h lammps-30Sep08/src/MANYBODY/pair_tersoff.h --- lammps-29Sep08/src/MANYBODY/pair_tersoff.h 2008-08-11 11:47:40.000000000 -0600 +++ lammps-30Sep08/src/MANYBODY/pair_tersoff.h 2008-10-01 09:02:36.000000000 -0600 @@ -21,14 +21,14 @@ class PairTersoff : public Pair { public: PairTersoff(class LAMMPS *); - ~PairTersoff(); + virtual ~PairTersoff(); void compute(int, int); void settings(int, char **); void coeff(int, char **); void init_style(); double init_one(int, int); - private: + protected: struct Param { double lam1,lam2,lam3; double c,d,h; @@ -39,9 +39,11 @@ double c1,c2,c3,c4; int ielement,jelement,kelement; int powermint; + double Z_i,Z_j; + double ZBLcut,ZBLexpscale; }; - double PI2,PI4; + double PI,PI2,PI4; double cutmax; // max cutoff for all elements int nelements; // # of unique elements char **elements; // names of unique elements @@ -52,9 +54,9 @@ Param *params; // parameter set for an I-J-K interaction void allocate(); - void read_file(char *); + virtual void read_file(char *); void setup(); - void repulsive(Param *, double, double &, int, double &); + virtual void repulsive(Param *, double, double &, int, double &); double zeta(Param *, double, double, double *, double *); void force_zeta(Param *, double, double, double &, double &, int, double &); void attractive(Param *, double, double, double, double *, double *, @@ -62,14 +64,14 @@ double ters_fc(double, Param *); double ters_fc_d(double, Param *); - double ters_fa(double, Param *); - double ters_fa_d(double, Param *); + virtual double ters_fa(double, Param *); + virtual double ters_fa_d(double, Param *); double ters_bij(double, Param *); double ters_bij_d(double, Param *); double ters_gijk(double, Param *); double ters_gijk_d(double, Param *); void ters_zetaterm_d(double, double *, double, double *, double, - double *, double *, double *, Param *); + double *, double *, double *, Param *); void costheta_d(double *, double, double *, double, double *, double *, double *); diff -Naur lammps-29Sep08/src/MANYBODY/pair_tersoff_zbl.cpp lammps-30Sep08/src/MANYBODY/pair_tersoff_zbl.cpp --- lammps-29Sep08/src/MANYBODY/pair_tersoff_zbl.cpp 1969-12-31 17:00:00.000000000 -0700 +++ lammps-30Sep08/src/MANYBODY/pair_tersoff_zbl.cpp 2008-10-01 09:02:36.000000000 -0600 @@ -0,0 +1,285 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- + Contributing author: Aidan Thompson (SNL) - original Tersoff implementation + David Farrell (NWU) - ZBL addition +------------------------------------------------------------------------- */ + +#include "math.h" +#include "stdio.h" +#include "stdlib.h" +#include "string.h" +#include "pair_tersoff_zbl.h" +#include "atom.h" +#include "update.h" +#include "neighbor.h" +#include "neigh_list.h" +#include "neigh_request.h" +#include "force.h" +#include "comm.h" +#include "memory.h" +#include "error.h" + +using namespace LAMMPS_NS; + +#define MAXLINE 1024 +#define DELTA 4 + +/* ---------------------------------------------------------------------- */ + +PairTersoffZBL::PairTersoffZBL(LAMMPS *lmp) : PairTersoff(lmp) +{ + // hard-wired constants in metal or real units + // a0 = Bohr radius + // epsilon0 = permittivity of vacuum = q / energy-distance units + // e = unit charge + // 1 Kcal/mole = 0.043365121 eV + + if (strcmp(update->unit_style,"metal") == 0) { + global_a_0 = 0.529; + global_epsilon_0 = 0.00552635; + global_e = 1.0; + } else if (strcmp(update->unit_style,"real") == 0) { + global_a_0 = 0.529; + global_epsilon_0 = 0.00552635 * 0.043365121; + global_e = 1.0; + } else error->all("Pair tersoff/zbl requires metal or real units"); +} + +/* ---------------------------------------------------------------------- */ + +void PairTersoffZBL::read_file(char *file) +{ + int params_per_line = 21; + char **words = new char*[params_per_line+1]; + + if (params) delete [] params; + params = NULL; + nparams = 0; + + // open file on proc 0 + + FILE *fp; + if (comm->me == 0) { + fp = fopen(file,"r"); + if (fp == NULL) { + char str[128]; + sprintf(str,"Cannot open Tersoff potential file %s",file); + error->one(str); + } + } + + // read each line out of file, skipping blank lines or leading '#' + // store line of params if all 3 element tags are in element list + + int n,nwords,ielement,jelement,kelement; + char line[MAXLINE],*ptr; + int eof = 0; + + while (1) { + if (comm->me == 0) { + ptr = fgets(line,MAXLINE,fp); + if (ptr == NULL) { + eof = 1; + fclose(fp); + } else n = strlen(line) + 1; + } + MPI_Bcast(&eof,1,MPI_INT,0,world); + if (eof) break; + MPI_Bcast(&n,1,MPI_INT,0,world); + MPI_Bcast(line,n,MPI_CHAR,0,world); + + // strip comment, skip line if blank + + if (ptr = strchr(line,'#')) *ptr = '\0'; + nwords = atom->count_words(line); + if (nwords == 0) continue; + + // concatenate additional lines until have params_per_line words + + while (nwords < params_per_line) { + n = strlen(line); + if (comm->me == 0) { + ptr = fgets(&line[n],MAXLINE-n,fp); + if (ptr == NULL) { + eof = 1; + fclose(fp); + } else n = strlen(line) + 1; + } + MPI_Bcast(&eof,1,MPI_INT,0,world); + if (eof) break; + MPI_Bcast(&n,1,MPI_INT,0,world); + MPI_Bcast(line,n,MPI_CHAR,0,world); + if (ptr = strchr(line,'#')) *ptr = '\0'; + nwords = atom->count_words(line); + } + + if (nwords != params_per_line) + error->all("Incorrect format in Tersoff potential file"); + + // words = ptrs to all words in line + + nwords = 0; + words[nwords++] = strtok(line," \t\n\r\f"); + while (words[nwords++] = strtok(NULL," \t\n\r\f")) continue; + + // ielement,jelement,kelement = 1st args + // if all 3 args are in element list, then parse this line + // else skip to next line + + for (ielement = 0; ielement < nelements; ielement++) + if (strcmp(words[0],elements[ielement]) == 0) break; + if (ielement == nelements) continue; + for (jelement = 0; jelement < nelements; jelement++) + if (strcmp(words[1],elements[jelement]) == 0) break; + if (jelement == nelements) continue; + for (kelement = 0; kelement < nelements; kelement++) + if (strcmp(words[2],elements[kelement]) == 0) break; + if (kelement == nelements) continue; + + // load up parameter settings and error check their values + + if (nparams == maxparam) { + maxparam += DELTA; + params = (Param *) memory->srealloc(params,maxparam*sizeof(Param), + "pair:params"); + } + + params[nparams].ielement = ielement; + params[nparams].jelement = jelement; + params[nparams].kelement = kelement; + params[nparams].powerm = atof(words[3]); + params[nparams].gamma = atof(words[4]); + params[nparams].lam3 = atof(words[5]); + params[nparams].c = atof(words[6]); + params[nparams].d = atof(words[7]); + params[nparams].h = atof(words[8]); + params[nparams].powern = atof(words[9]); + params[nparams].beta = atof(words[10]); + params[nparams].lam2 = atof(words[11]); + params[nparams].bigb = atof(words[12]); + params[nparams].bigr = atof(words[13]); + params[nparams].bigd = atof(words[14]); + params[nparams].lam1 = atof(words[15]); + params[nparams].biga = atof(words[16]); + params[nparams].Z_i = atof(words[17]); + params[nparams].Z_j = atof(words[18]); + params[nparams].ZBLcut = atof(words[19]); + params[nparams].ZBLexpscale = atof(words[20]); + + // currently only allow m exponent of 1 or 3 + + params[nparams].powermint = int(params[nparams].powerm); + + if ( + params[nparams].lam3 < 0.0 || params[nparams].c < 0.0 || + params[nparams].d < 0.0 || params[nparams].powern < 0.0 || + params[nparams].beta < 0.0 || params[nparams].lam2 < 0.0 || + params[nparams].bigb < 0.0 || params[nparams].bigr < 0.0 || + params[nparams].bigd < 0.0 || + params[nparams].bigd > params[nparams].bigr || + params[nparams].lam3 < 0.0 || params[nparams].biga < 0.0 || + params[nparams].powerm - params[nparams].powermint != 0.0 || + (params[nparams].powermint != 3 && params[nparams].powermint != 1) || + params[nparams].gamma < 0.0 || + params[nparams].Z_i < 1.0 || params[nparams].Z_j < 1.0 || + params[nparams].ZBLcut < 0.0 || params[nparams].ZBLexpscale < 0.0) + error->all("Illegal Tersoff parameter"); + + nparams++; + } + + delete [] words; +} + +/* ---------------------------------------------------------------------- */ + +void PairTersoffZBL::repulsive(Param *param, double rsq, double &fforce, + int eflag, double &eng) +{ + double r,tmp_fc,tmp_fc_d,tmp_exp; + + // Tersoff repulsive portion + + r = sqrt(rsq); + tmp_fc = ters_fc(r,param); + tmp_fc_d = ters_fc_d(r,param); + tmp_exp = exp(-param->lam1 * r); + double fforce_ters = param->biga * tmp_exp * (tmp_fc_d - tmp_fc*param->lam1); + double eng_ters = tmp_fc * param->biga * tmp_exp; + + // ZBL repulsive portion + + double esq = pow(global_e,2.0); + double a_ij = (0.8854*global_a_0) / + (pow(param->Z_i,0.23) + pow(param->Z_j,0.23)); + double premult = (param->Z_i * param->Z_j * esq)/(4.0*PI*global_epsilon_0); + double r_ov_a = r/a_ij; + double phi = 0.1818*exp(-3.2*r_ov_a) + 0.5099*exp(-0.9423*r_ov_a) + + 0.2802*exp(-0.4029*r_ov_a) + 0.02817*exp(-0.2016*r_ov_a); + double dphi = (1.0/a_ij) * (-3.2*0.1818*exp(-3.2*r_ov_a) - + 0.9423*0.5099*exp(-0.9423*r_ov_a) - + 0.4029*0.2802*exp(-0.4029*r_ov_a) - + 0.2016*0.02817*exp(-0.2016*r_ov_a)); + double fforce_ZBL = premult*-pow(r,-2.0)* phi + premult*pow(r,-1.0)*dphi; + double eng_ZBL = premult*(1.0/r)*phi; + + // combine two parts with smoothing by Fermi-like function + + fforce = -(-F_fermi_d(r,param) * eng_ZBL + + (1.0 - F_fermi(r,param))*fforce_ZBL + + F_fermi_d(r,param)*eng_ters + F_fermi(r,param)*fforce_ters) / r; + + if (eflag) + eng = (1.0 - F_fermi(r,param))*eng_ZBL + F_fermi(r,param)*eng_ters; +} + +/* ---------------------------------------------------------------------- */ + +double PairTersoffZBL::ters_fa(double r, Param *param) +{ + if (r > param->bigr + param->bigd) return 0.0; + return -param->bigb * exp(-param->lam2 * r) * ters_fc(r,param) * + F_fermi(r,param); +} + +/* ---------------------------------------------------------------------- */ + +double PairTersoffZBL::ters_fa_d(double r, Param *param) +{ + if (r > param->bigr + param->bigd) return 0.0; + return param->bigb * exp(-param->lam2 * r) * + (param->lam2 * ters_fc(r,param) * F_fermi(r,param) - + ters_fc_d(r,param) * F_fermi(r,param) - ters_fc(r,param) * + F_fermi_d(r,param)); +} + +/* ---------------------------------------------------------------------- + Fermi-like smoothing function +------------------------------------------------------------------------- */ + +double PairTersoffZBL::F_fermi(double r, Param *param) +{ + return 1.0 / (1.0 + exp(-param->ZBLexpscale*(r-param->ZBLcut))); +} + +/* ---------------------------------------------------------------------- + Fermi-like smoothing function derivative with respect to r +------------------------------------------------------------------------- */ + +double PairTersoffZBL::F_fermi_d(double r, Param *param) +{ + return param->ZBLexpscale*exp(-param->ZBLexpscale*(r-param->ZBLcut)) / + pow(1.0 + exp(-param->ZBLexpscale*(r-param->ZBLcut)),2.0); +} diff -Naur lammps-29Sep08/src/MANYBODY/pair_tersoff_zbl.h lammps-30Sep08/src/MANYBODY/pair_tersoff_zbl.h --- lammps-29Sep08/src/MANYBODY/pair_tersoff_zbl.h 1969-12-31 17:00:00.000000000 -0700 +++ lammps-30Sep08/src/MANYBODY/pair_tersoff_zbl.h 2008-10-01 09:02:36.000000000 -0600 @@ -0,0 +1,43 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifndef PAIR_TERSOFF_ZBL_H +#define PAIR_TERSOFF_ZBL_H + +#include "pair_tersoff.h" + +namespace LAMMPS_NS { + +class PairTersoffZBL : public PairTersoff { + public: + PairTersoffZBL(class LAMMPS *); + ~PairTersoffZBL() {} + + private: + double global_a_0; // Bohr radius for Coulomb repulsion + double global_epsilon_0; // permittivity of vacuum for Coulomb repulsion + double global_e; // proton charge (negative of electron charge) + + void read_file(char *); + void repulsive(Param *, double, double &, int, double &); + + double ters_fa(double, Param *); + double ters_fa_d(double, Param *); + + double F_fermi(double, Param *); + double F_fermi_d(double, Param *); +}; + +} + +#endif diff -Naur lammps-29Sep08/src/MANYBODY/style_manybody.h lammps-30Sep08/src/MANYBODY/style_manybody.h --- lammps-29Sep08/src/MANYBODY/style_manybody.h 2007-08-10 16:59:04.000000000 -0600 +++ lammps-30Sep08/src/MANYBODY/style_manybody.h 2008-10-01 09:02:36.000000000 -0600 @@ -18,6 +18,7 @@ #include "pair_eam_fs.h" #include "pair_sw.h" #include "pair_tersoff.h" +#include "pair_tersoff_zbl.h" #endif #ifdef PairClass @@ -27,4 +28,5 @@ PairStyle(eam/fs,PairEAMFS) PairStyle(sw,PairSW) PairStyle(tersoff,PairTersoff) +PairStyle(tersoff/zbl,PairTersoffZBL) #endif