refactor code and examples to match LAMMPS conventions. whitespace cleanup. shorten examples.

This commit is contained in:
Axel Kohlmeyer
2018-03-22 19:31:41 -04:00
parent 04c968362f
commit 8de7c449fc
29 changed files with 3542 additions and 5137 deletions

View File

@ -1,228 +0,0 @@
LAMMPS (5 Feb 2018)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:90)
using 1 OpenMP thread(s) per MPI task
# Initialization
units metal
boundary p p p
atom_style full
processors * * 1 # domain decomposition over x and y
# System and atom definition
# we use 2 atom types so that inter- and intra-layer
# interactions can be specified separately
# read lammps data file
read_data Bi_gr_AB_stack_2L_noH_300K.data
orthogonal box = (0 0 0) to (42.6 41.8117 100)
2 by 2 by 1 MPI processor grid
reading atoms ...
1360 atoms
reading velocities ...
1360 velocities
0 = max # of 1-2 neighbors
0 = max # of 1-3 neighbors
0 = max # of 1-4 neighbors
1 = max # of special neighbors
mass 1 12.0107 # carbon mass (g/mole) | membrane
mass 2 12.0107 # carbon mass (g/mole) | adsorbate
# Separate atom groups
group membrane type 1
680 atoms in group membrane
group adsorbate type 2
680 atoms in group adsorbate
######################## Potential defition ########################
pair_style hybrid/overlay rebo ILP/graphene/hBN 16.0
####################################################################
pair_coeff * * rebo CH.airebo NULL C # chemical
Reading potential file CH.airebo with DATE: 2011-10-25
pair_coeff * * ILP/graphene/hBN BNCH-old.ILP C C # long range
####################################################################
# Neighbor update settings
neighbor 2.0 bin
neigh_modify every 1
neigh_modify delay 0
neigh_modify check yes
# calculate the COM
variable adsxcom equal xcm(adsorbate,x)
variable adsycom equal xcm(adsorbate,y)
variable adszcom equal xcm(adsorbate,z)
variable adsvxcom equal vcm(adsorbate,x)
variable adsvycom equal vcm(adsorbate,y)
variable adsvzcom equal vcm(adsorbate,z)
#### Simulation settings ####
timestep 0.001
#velocity adsorbate create 300.0 12345
fix subf membrane setforce 0.0 0.0 0.0
fix thermostat all nve
compute 0 all pair rebo
compute 1 all pair ILP/graphene/hBN
variable REBO equal c_0
variable ILP equal c_1
############################
# Output
thermo 100
thermo_style custom step cpu etotal pe ke v_REBO v_ILP temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom
thermo_modify line one format float %.16f
thermo_modify flush yes norm no lost warn
dump 1 all custom 1000 traj.lammpstrj id mol type xu yu zu
dump_modify 1 format line "%7d %3d %3d %15.10g %15.10g %15.10g" flush yes
###### Run molecular dynamics ######
run 10000
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 5 5 12
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair rebo, perpetual, skip from (2)
attributes: full, newton on, ghost
pair build: skip/ghost
stencil: none
bin: none
(2) pair ILP/graphene/hBN, perpetual
attributes: full, newton on, ghost
pair build: full/bin/ghost
stencil: full/ghost/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 12.39 | 12.39 | 12.39 Mbytes
Step CPU TotEng PotEng KinEng v_REBO v_ILP Temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom
0 0.0000000000000000 -5029.3801131277232344 -5044.0700799791011377 14.6899668513774859 -5011.2636297758563160 -32.8064502032452268 83.6251135126841376 22.0155657205247799 20.2812150219063234 3.4623630944674200 0.0282287194990573 0.0535565744690331 0.2193320108238477
100 1.2623029460082762 -5029.3895815657115236 -5045.3201249689691394 15.9305434032573761 -5012.4897058028163883 -32.8304191661527582 90.6873047362403781 22.0181751544732087 20.2867946176261533 3.4502536830854829 0.0239131348561319 0.0576557373214319 -0.4387830564309839
200 2.5089902369654737 -5029.3874064118581373 -5045.8119502227937119 16.4245438109355142 -5012.7276250747399899 -33.0843251480532530 93.4994853616529298 22.0202931358059395 20.2926890775462887 3.3883512918454923 0.0180268638923536 0.0596894423424165 -0.6964675465005062
300 3.7808456399943680 -5029.3851410393026526 -5044.9928147366936173 15.6076736973907035 -5012.1131531405408168 -32.8796615961530279 88.8493144891503590 22.0216852688933749 20.2985091182852351 3.3368274018412345 0.0093519892779965 0.0546775051020221 -0.2110676539008828
400 5.0828477439936250 -5029.3900102081943260 -5045.6706717598035539 16.2806615516088193 -5012.7330095297320440 -32.9376622300724975 92.6804113371579206 22.0220931528717330 20.3035219615837050 3.3560233852136392 -0.0015365116268860 0.0454268926971423 0.5478139708774018
500 6.3374099530046806 -5029.3985510532884291 -5046.0433160610555205 16.6447650077673792 -5013.0924334585288307 -32.9508826025281962 94.7531316611500074 22.0214795943650969 20.3074656871053847 3.4232399721971314 -0.0107212023950575 0.0332249365749148 0.6595923534430731
600 7.5914500529761426 -5029.3929936745525993 -5045.4367231194828491 16.0437294449299230 -5012.7046931021195633 -32.7320300173640391 91.3316353653480064 22.0200027175784747 20.3101652564580348 3.4651727437862387 -0.0178110391142554 0.0210056001697192 0.1144372537107130
700 8.8539019739837386 -5029.3934435811052026 -5045.6074608403341699 16.2140172592290135 -5012.7886962164220677 -32.8187646239108304 92.3010274643678201 22.0178838793005234 20.3116257076998501 3.4432436715031316 -0.0242636236518299 0.0078323423535019 -0.5162836954824445
800 10.1049926480045542 -5029.3892931255340955 -5046.2270462379728997 16.8377531124386870 -5013.2383770824435487 -32.9886691555297418 95.8517489911287015 22.0151485190623291 20.3116305041057075 3.3780520461370140 -0.0302821177574879 -0.0083184718697242 -0.6710801514935791
900 11.3630027609760873 -5029.3930414671476683 -5046.0272003817681252 16.6341589146203184 -5013.2317798383628542 -32.7954205434054487 94.6927546873744745 22.0119224939835121 20.3099187654038786 3.3350551183455268 -0.0341747588450106 -0.0256858065985706 -0.0799872839190919
1000 12.6231660830089822 -5029.3908907830582393 -5045.6437703691590286 16.2528795861005300 -5012.6800867884940089 -32.9636835806647710 92.5222578135494871 22.0084902521404544 20.3065746721438387 3.3658243730415687 -0.0336536244697077 -0.0406018547138186 0.6191660973820151
1100 13.8672335039591417 -5029.3936273537710804 -5045.9027321589628627 16.5091048051920097 -5012.9359164310717460 -32.9668157278903138 93.9808630812208889 22.0052717045119905 20.3019474054695905 3.4333328890827421 -0.0306983142305894 -0.0504731478622083 0.5931965879862887
1200 15.1198259049560875 -5029.3940797064951767 -5045.6377384352035733 16.2436587287087058 -5012.8554686686165951 -32.7822697665871203 92.4697665279069270 22.0023306815922979 20.2966557735895385 3.4659529127677287 -0.0274706885173217 -0.0547501807332978 0.0091573603413281
1300 16.3654009730089456 -5029.3984566732624444 -5045.6895616381252694 16.2911049648628570 -5012.7356994597503217 -32.9538621783744219 92.7398622282092333 21.9998860754741905 20.2910565803948018 3.4345399235545337 -0.0213260369994740 -0.0568287466574244 -0.5888067543760942
1400 17.6155319709796458 -5029.3815168178471140 -5045.2912598742987029 15.9097430564518749 -5012.3239955600220128 -32.9672643142766546 90.5688952544279573 21.9981598497936552 20.2854554509222993 3.3672595338608167 -0.0132303590611009 -0.0543234153355907 -0.6236559250459623
1500 18.8714692159555852 -5029.3921017874845347 -5045.6708613750924997 16.2787595876079862 -5012.8369791315399198 -32.8338822435533757 92.6695840863495306 21.9974041415691559 20.2802681532087163 3.3352413807666181 -0.0014089849714996 -0.0481849064168331 0.0587582898344604
1600 20.1541873109526932 -5029.3874846931976208 -5045.7731643864972284 16.3856796932995650 -5012.8388777565696728 -32.9342866299264614 93.2782448182427402 21.9977706803512874 20.2759915865795222 3.3762928385876232 0.0085254010295789 -0.0376205539327122 0.6681442617907806
1700 21.4234082509647124 -5029.3869010344951676 -5045.3169437830329116 15.9300427485373124 -5012.4635360220827351 -32.8534077609500770 90.6844546748195768 21.9990330035990027 20.2727720473957298 3.4424374239173727 0.0168149635384655 -0.0269413439785030 0.5265928985608515
1800 22.6835704990080558 -5029.3860480733746954 -5045.4015510274330154 16.0155029540583165 -5012.6540263485476316 -32.7475246788853056 91.1709513061473160 22.0010236218414903 20.2706889597509488 3.4653364051690918 0.0229089788849714 -0.0142749791424698 -0.1062662269544749
1900 23.9297129529877566 -5029.3992153438584864 -5046.0849535192628537 16.6857381754043104 -5013.1667872952384641 -32.9181662240248301 94.9863783273459319 22.0036010850046679 20.2699115012928246 3.4242520686326885 0.0283626891504371 -0.0012584790958115 -0.6446526361083699
2000 25.1922093119937927 -5029.3947678008062212 -5046.0655253357617767 16.6707575349551895 -5013.1017054839030607 -32.9638198518594550 94.9010985053609772 22.0065845205626758 20.2704964280075011 3.3582948439944240 0.0313750540289036 0.0137999047920244 -0.5449451253646518
2100 26.4518803840037435 -5029.3820643301123710 -5045.4331743009661295 16.0511099708533358 -5012.5538273606616713 -32.8793469403044938 91.3736502537662716 22.0097398064544976 20.2727372928018958 3.3379848824292826 0.0322718100086602 0.0304537099550799 0.1867563300323286
2200 27.7058059349656105 -5029.3843727776211381 -5045.0848436909873271 15.7004709133658302 -5012.0668628677258312 -33.0179808232617233 89.3775782897492945 22.0127920131602473 20.2765354452670756 3.3881998421430568 0.0292294495100443 0.0449660178787396 0.7042838989885432
2300 28.9594137629610486 -5029.3902199294761886 -5045.3993732492435811 16.0091533197674920 -5012.5253283328802354 -32.8740449163632320 91.1348049421897599 22.0155716600061417 20.2815245415556973 3.4510500976839618 0.0259484063993953 0.0538549628124416 0.4400016714913355
2400 30.2447868830058724 -5029.3940355103695765 -5045.9434469962816365 16.5494114859119250 -5013.1710648528805905 -32.7723821434015932 94.2103156582501100 22.0179797175199319 20.2871333501902136 3.4632861236609225 0.0218917592723929 0.0581043349886307 -0.2124896915144417
2500 31.5081150379846804 -5029.3842094590991110 -5045.4423687097469156 16.0581592506475950 -5012.4554219817418925 -32.9869467280046536 91.4137794677353384 22.0198491689972187 20.2929823072195745 3.4144243213892453 0.0156275666670157 0.0584945195169434 -0.6844296511643093
2600 32.7705356059595942 -5029.3960582840263669 -5045.6469174766025390 16.2508591925761650 -5012.8198838898442773 -32.8270335867577927 92.5107563827072994 22.0210406125338700 20.2986562400797226 3.3502383230453026 0.0082866848267277 0.0535700449402662 -0.4533139815189942
2700 34.0687214930076152 -5029.4005011063927668 -5046.1812481784818374 16.7807470720886371 -5013.3384539147527903 -32.8427942637283650 95.5272324933440444 22.0214074387511722 20.3035983394416988 3.3422072391285718 -0.0010968873414058 0.0448881856269352 0.3053226005544524
2800 35.3371960269869305 -5029.3918450884730191 -5045.4663013118542949 16.0744562233815529 -5012.5518420452062855 -32.9144592666481230 91.5065527332286166 22.0208057886537567 20.3075286333744920 3.3990332666058265 -0.0107042888216099 0.0331308854628973 0.7104765178449446
2900 36.5826528539764695 -5029.4007271172231412 -5046.3887404126471665 16.9880132954239791 -5013.5657268280101562 -32.8230135846359303 96.7071304215778440 22.0193692100171923 20.3101603808999265 3.4577797292506842 -0.0181908513743875 0.0197672476938271 0.3528489229883396
3000 37.8225702039781027 -5029.3940496855184392 -5045.4382560043904959 16.0442063188722450 -5012.6853249922505711 -32.7529310121395909 91.3343500506812944 22.0171604936519856 20.3114668671039951 3.4591467250701471 -0.0250556884411515 0.0058380040945131 -0.3232243449560073
3100 39.1152549439575523 -5029.3932299425177916 -5045.7076145083992742 16.3143845658812481 -5012.7273205114888697 -32.9802939969102908 92.8723852827122727 22.0144106189674247 20.3113170196305575 3.4036898869224110 -0.0295489605326196 -0.0093545138913292 -0.6945887338714194
3200 40.3652645039837807 -5029.3999346652944951 -5046.2743567265588354 16.8744220612639957 -5013.3523379216176181 -32.9220188049421125 96.0604931659067063 22.0112657104147473 20.3096089828088715 3.3446022440995744 -0.0331585594875426 -0.0245083162220922 -0.3611700155337798
3300 41.7497809809865430 -5029.3912545533439697 -5045.6188249698325308 16.2275704164882058 -5012.7210368537616887 -32.8977881160708634 92.3781810975735169 22.0079411449246116 20.3062958566965044 3.3478683972107479 -0.0330599183649122 -0.0412983807445889 0.4228102245782292
3400 43.0772461489541456 -5029.3913786027551396 -5045.6933303802852606 16.3019517775300287 -5012.6836451483668498 -33.0096852319176293 92.8016095384462147 22.0046876041177768 20.3016343021786838 3.4103619804324348 -0.0302848635086505 -0.0508933045183329 0.6902755158347326
3500 44.3340892840060405 -5029.3864373789210731 -5044.9075681866406740 15.5211308077191479 -5012.1156930534052663 -32.7918751332351519 88.3566544957194822 22.0018906600734354 20.2961922297910284 3.4617631548194869 -0.0260020821660879 -0.0574179239791507 0.2536077963142296
3600 45.5714052729890682 -5029.3956106765108416 -5045.8281093106388653 16.4324986341276862 -5013.0062724883737246 -32.8218368222655954 93.5447695341190126 21.9995902792937201 20.2903196955397753 3.4528875370982139 -0.0198574899622142 -0.0590999812510351 -0.4161058838372516
3700 46.8187310720095411 -5029.3999849462825296 -5045.8608125716009454 16.4608276253185934 -5012.9301564107845479 -32.9306561608159001 93.7060370936722506 21.9980000204408341 20.2845522706275894 3.3917483074441592 -0.0115465621905488 -0.0553944579545257 -0.6931324325703953
3800 48.0849941459600814 -5029.3934499086271899 -5045.0668678198253474 15.6734179111983085 -5012.2357009255956655 -32.8311668942298382 89.2235745128853779 21.9973189064792436 20.2792712394156425 3.3397277035718815 -0.0020664024879512 -0.0492333401974764 -0.2331021270184729
3900 49.3429405399947427 -5029.3995770528044886 -5046.0950053993201436 16.6954283465152358 -5013.2247015792199818 -32.8703038200997284 95.0415412604762082 21.9976186964129639 20.2749399452365466 3.3551882655200593 0.0084267344129547 -0.0373784583523626 0.5086238489046713
4000 50.5998689539846964 -5029.3888468870900397 -5045.4588592431082361 16.0700123560180224 -5012.5056530215588282 -32.9532062215491379 91.4812552688796359 21.9989183465402434 20.2718151808636300 3.4207597363868252 0.0165850539989395 -0.0251757999596484 0.6640462831884847
4100 51.8629528660094365 -5029.3910837396306306 -5045.2793764258776719 15.8882926862469578 -5012.4770743669359945 -32.8023020589422742 90.4467854047990585 22.0009590702850808 20.2699385934667973 3.4644847478947058 0.0233393143572127 -0.0117891349194484 0.1342112403658827
4200 53.1236869489657693 -5029.3984010758495060 -5046.2448879520343326 16.8464868761852031 -5013.3818327446442709 -32.8630552073907438 95.9014674140553467 22.0035487123982918 20.2693875306188644 3.4447945125877593 0.0282346202644504 0.0006576204547461 -0.4934516926995214
4300 54.3830584579845890 -5029.3974364654013698 -5045.8912824487397302 16.4938459833379767 -5012.8566186763018777 -33.0346637724379022 93.8939996646779349 22.0065160962032245 20.2702208441870937 3.3813367869591255 0.0318644587592501 0.0164543727145067 -0.6628252924648856
4400 55.6534237450105138 -5029.3926368191096117 -5045.2218371804192429 15.8292003613099244 -5012.3457495788206870 -32.8760876015986199 90.1103923801868518 22.0096837224699016 20.2727742192121454 3.3372739454265710 0.0314356050658150 0.0335424174115672 -0.1161529061464756
4500 56.9183939939830452 -5029.3940454417834189 -5045.9258580870837250 16.5318126453004588 -5012.9929638810244796 -32.9328942060604319 94.1101312903264073 22.0128271345169999 20.2768840530886756 3.3637778632090720 0.0302602474720397 0.0485668445849368 0.5881899043646754
4600 58.1842329019564204 -5029.3897931061719646 -5045.3405006579350811 15.9507075517634878 -5012.4008178333297110 -32.9396828246052280 90.8020925519495847 22.0156613833127963 20.2821435957056515 3.4302716374285005 0.0260054978861435 0.0562442375978452 0.6083123358868219
4700 59.4382298499695025 -5029.3969593583269670 -5045.7810386931287212 16.3840793348014095 -5013.0572476947481846 -32.7237909983807498 93.2691345076189435 22.0180314970645661 20.2879823773636403 3.4648846252063747 0.0214335018843589 0.0598518189522713 0.0304394820826928
4800 60.6967262169928290 -5029.3856671230942084 -5045.3017305595958533 15.9160634365015543 -5012.4665014359597990 -32.8352291236367648 90.6048750836845613 22.0199625290182688 20.2941047508438963 3.4363593409545792 0.0167963433674092 0.0615833915650458 -0.5541548942758866
4900 61.9512241869815625 -5029.3923848959475436 -5045.7384583560833562 16.3460734601355888 -5012.7852573671316350 -32.9532009889525597 93.0527796570441836 22.0212592278909085 20.3000537186652821 3.3718475316480969 0.0086391048459562 0.0563118558122456 -0.6148391029712286
5000 63.2058322129887529 -5029.3915775167406537 -5045.1695079529654322 15.7779304362247856 -5012.3445352609178371 -32.8249726920481351 89.8185296858452773 22.0217142875197673 20.3052386826657560 3.3368855121137573 -0.0005848472434748 0.0469229219675754 -0.0025464403573191
5100 64.4612582869594917 -5029.3892459301187046 -5045.4092843740309036 16.0200384439126253 -5012.4115638930270507 -32.9977204810038813 91.1967703469756117 22.0211363551768393 20.3092236811018836 3.3731385391734987 -0.0104558693316052 0.0318306688289283 0.6399924297249336
5200 65.7134019279619679 -5029.4030454404182819 -5046.2627024036355579 16.8596569632174536 -5013.2682522266104570 -32.9944501770255414 95.9764403553959653 22.0196975554592207 20.3116344765031158 3.4385226880437783 -0.0183768904268109 0.0160982826367598 0.5345362236176538
5300 66.9578059059567750 -5029.3919597195299502 -5045.5335222071535100 16.1415624876236983 -5012.7301328351986740 -32.8033893719546015 91.8885664587487412 22.0175315555966975 20.3126154236309091 3.4630139347774884 -0.0242754059642420 0.0032173312250643 -0.0775763877645290
5400 68.2489708719658665 -5029.3846231466677636 -5045.4515583416805384 16.0669351950124017 -5012.5148025922717352 -32.9367557494093148 91.4637380109446525 22.0148268891839543 20.3122214814806945 3.4262265154739362 -0.0300322552067342 -0.0114101644224351 -0.5957408015264980
5500 69.5872814320027828 -5029.3976079434123676 -5046.2615016619420203 16.8638937185299866 -5013.2875337165860401 -32.9739679453564989 96.0005587994687488 22.0116064706776839 20.3102420050743042 3.3624439592830382 -0.0331793464510278 -0.0273205776972141 -0.5547024024481256
5600 71.0810253079980612 -5029.3990311253737673 -5046.3786084092271267 16.9795772838533381 -5013.5810569834520720 -32.7975514257743583 96.6591070031231538 22.0082577080594533 20.3067263674726988 3.3382716477917813 -0.0327038891431524 -0.0431208290112252 0.1347255325181367
5700 72.4856253899633884 -5029.3926984710069519 -5045.4056210227572592 16.0129225517498952 -5012.4766481517817738 -32.9289728709757838 91.1562619308659805 22.0050646686591129 20.3018397290024808 3.3836722937755463 -0.0302272076858413 -0.0535767293433688 0.6666043489739104
5800 73.8634844649932347 -5029.3834029837780690 -5045.1129758304869029 15.7295728467090985 -5012.2694155058643446 -32.8435603246219827 89.5432459528482951 22.0022483685200818 20.2961021426530372 3.4452080928763542 -0.0254277345115299 -0.0599208650276596 0.4504328249672133
5900 75.3915032909717411 -5029.3974484823693274 -5045.9428387883463074 16.5453903059766532 -5013.1858688276588509 -32.7569699606872575 94.1874244133654770 21.9999199731949346 20.2899812203382055 3.4600553052011818 -0.0206282083304644 -0.0609517769948545 -0.1746052875828525
6000 76.6400258549838327 -5029.3913152258628543 -5045.4435744126367354 16.0522591867739663 -5012.4608078601768284 -32.9827665524597151 91.3801923591900334 21.9982238811128710 20.2840090111223468 3.4161665208076437 -0.0125595347519585 -0.0579440096045873 -0.6333327422350389
6100 77.8959925099625252 -5029.3932757362208577 -5045.8790782711030261 16.4858025348824633 -5012.8969642404263141 -32.9821140306764420 93.8482109779551621 21.9973730537864682 20.2785476188032163 3.3549557462646411 -0.0042410493519084 -0.0506002459180393 -0.4680789345019807
6200 79.1497183470055461 -5029.4088636981850868 -5046.6649961249258922 17.2561324267410470 -5013.7231617170655227 -32.9418344078599077 98.2334437902978976 21.9974997583151222 20.2740486557909172 3.3425028819702134 0.0059955322593470 -0.0383588614992616 0.2484046320153767
6300 80.4047899909783155 -5029.3923725331251262 -5045.8449198462867571 16.4525473131614497 -5012.7774496031424860 -33.0674702431445411 93.6589000203849338 21.9985309965303522 20.2709033994038990 3.3945366047562309 0.0146161778945059 -0.0238717757127838 0.6755315511238056
6400 81.6621199259534478 -5029.3873259574293115 -5045.4805995313954554 16.0932735739664388 -5012.6101575755155864 -32.8704419558798833 91.6136736746568658 22.0004178415001554 20.2692296192343555 3.4515126206720894 0.0224924238087105 -0.0095626954394393 0.3649317751543234
6500 82.9068036190001294 -5029.3885153625169551 -5045.6513413124866929 16.2628259499700896 -5012.8502848348771295 -32.8010564776094071 92.5788791671608067 22.0028744822954785 20.2690295011692143 3.4565824273753738 0.0266893593346073 0.0051394765466491 -0.2690238272862540
6600 84.1584947239607573 -5029.3921990608459964 -5045.6152780635047748 16.2230790026588494 -5012.6733651291715432 -32.9419129343335868 92.3526129669499198 22.0057446397104144 20.2703054065310688 3.4059684940340356 0.0301975147648949 0.0206588430605317 -0.6562141768091865
6700 85.5309034659876488 -5029.3958221014900118 -5045.9855980438351253 16.5897759423451419 -5013.1614032626457629 -32.8241947811894832 94.4400971332701857 22.0088155297199890 20.2731431317838826 3.3483252260002931 0.0305868287843257 0.0360401338403821 -0.3706227597734457
6800 86.7887097629718482 -5029.3989256161685262 -5046.1660314126675075 16.7671057964989494 -5013.3811893242827864 -32.7848420883840248 95.4495772316823547 22.0117933253442750 20.2774465117832499 3.3473285762193563 0.0293264534798696 0.0498605326239532 0.3567087933199659
6900 88.0344084189855494 -5029.3894635412279968 -5045.3755615873205898 15.9860980460924917 -5012.4313435990561629 -32.9442179882648674 91.0035589089179382 22.0145527278245225 20.2830023561391073 3.4048481829747144 0.0261339472632872 0.0603043040288190 0.6629381496962342
7000 89.2877694109920412 -5029.3931851776624171 -5046.2660855250323948 16.8729003473701340 -5013.4206101329300509 -32.8454753921025357 96.0518305529549394 22.0169018761537423 20.2892381473745935 3.4563764158029811 0.0215256303139502 0.0635714094149741 0.2735262616382870
7100 90.5343435019603930 -5029.3943719418657565 -5045.8063859927260637 16.4120140508601793 -5012.9341376927177407 -32.8722483000083230 93.4281575894947309 22.0187504680106265 20.2956576132647477 3.4511897261914934 0.0151769557575876 0.0638586358909771 -0.3697827551013745
7200 91.7890073219896294 -5029.3882574016588478 -5045.6074919269822203 16.2192345253231593 -5012.5576675194106429 -33.0498244075712222 92.3307276314112642 22.0199381323646897 20.3017542818957075 3.3949190800948910 0.0083746540157601 0.0572124597101438 -0.6554142442507734
7300 93.0481603289954364 -5029.3919256510280320 -5045.3161120841996308 15.9241864331714869 -5012.3304308333417794 -32.9856812508580077 90.6511166120323679 22.0203434199504891 20.3069201065105531 3.3436661088988298 -0.0008082605025240 0.0457808438470512 -0.2589589418874469
7400 94.2895189719856717 -5029.3973426785032643 -5045.6621408997361868 16.2647982212324713 -5012.7648025615653751 -32.8973383381705773 92.5901066539116755 22.0197952390567870 20.3107436357954469 3.3541554622638241 -0.0103306966484018 0.0301663424617996 0.4552583449586026
7500 95.5377785899909213 -5029.3948467570653520 -5045.7331434291627374 16.3382966720969520 -5012.7514741351296834 -32.9816692940330185 93.0085089797121896 22.0182835442860032 20.3129031135621219 3.4158962237430512 -0.0195959596334220 0.0135047192390157 0.6456073746637249
7600 96.8022272579837590 -5029.3931838808439352 -5045.4289963141181943 16.0358124332747032 -5012.6277589903447733 -32.8012373237726393 91.2865664414322850 22.0159526773315513 20.3134816232245754 3.4596215546593516 -0.0265035067457815 -0.0018448570141999 0.1605592216624496
7700 98.0480918029788882 -5029.3927224394574296 -5045.5505410460209532 16.1578186065634384 -5012.7503911560907000 -32.8001498899307080 91.9811071571291450 22.0130792027109443 20.3125442860891496 3.4436146964093655 -0.0310809711922193 -0.0174733457478587 -0.4479487784855753
7800 99.2981190299615264 -5029.4031547353506539 -5046.1752453778135532 16.7720906424625866 -5013.2528054902131771 -32.9224398875998361 95.4779543079392141 22.0098273587463140 20.3100791980582827 3.3840076444806408 -0.0342478030204245 -0.0319633867573659 -0.6355009600038708
7900 100.5537567089777440 -5029.3944791921421711 -5044.9960502255426036 15.6015710334007611 -5012.1309422092845125 -32.8651080162585743 88.8145740452778938 22.0064004970442220 20.3061392621748453 3.3408200783635791 -0.0334515103138912 -0.0469088387662372 -0.1361992518732273
8000 101.8002213349682279 -5029.3929935269861744 -5045.6154036718935458 16.2224101449071263 -5012.6903925591586813 -32.9250111127354685 92.3488053814068479 22.0031954529123475 20.3008903778718448 3.3630664386411944 -0.0303145741127793 -0.0573027579844121 0.5298234484194294
8100 103.0604241339606233 -5029.3895181224415865 -5045.5242483757247101 16.1347302532831307 -5012.5130106423803227 -33.0112377333444016 91.8496728126257977 22.0004617169451784 20.2948581865125668 3.4259829025735637 -0.0235597360754076 -0.0625047587166574 0.5944988997279915
8200 104.3003088539699093 -5029.3921128333386150 -5045.3442595710002934 15.9521467376618311 -5012.4679081513959318 -32.8763514196039210 90.8102853603699458 21.9984673460497753 20.2885772435489642 3.4606217876185612 -0.0159679066697783 -0.0624611171154739 0.0390314113354409
8300 105.5484032649546862 -5029.3877455487827319 -5045.0575951302926114 15.6698495815094372 -5012.1517525987401314 -32.9058425315530698 89.2032611943938178 21.9972613261819880 20.2824755664924403 3.4344648587864106 -0.0085123036477869 -0.0597425423571583 -0.5144098325620685
8400 106.7977103599696420 -5029.3940956297292360 -5045.7712194348414414 16.3771238051123973 -5012.7148337952312431 -33.0563856396105251 93.2295389819333309 21.9968254159544792 20.2768205630926097 3.3742357039982664 0.0005515507797924 -0.0525489103533247 -0.5831587742081521
8500 108.0498831009608693 -5029.3966688220943979 -5045.9181006527742284 16.5214318306794148 -5013.1123929561299519 -32.8057076966441983 94.0510367525495781 21.9973649793415653 20.2722228282212278 3.3398553423288360 0.0104639615307145 -0.0388449586124005 -0.0141990665176662
8600 109.3168672239989974 -5029.3901274034988091 -5045.9375078140647020 16.5473804105655624 -5012.9853021568969780 -32.9522056571671698 94.1987534193348921 21.9989049134571175 20.2690982462850933 3.3731313497904591 0.0192133927474549 -0.0232345679884083 0.5999078241684682
8700 110.5636035219649784 -5029.3901389215689051 -5045.6376930378537509 16.2475541162848280 -5012.7481174817003193 -32.8895755561536873 92.4919416785743636 22.0011367928294845 20.2675706259688049 3.4350238082277742 0.0251426611885136 -0.0075450321086530 0.5206167046178872
8800 111.8004809370031580 -5029.3924574370830669 -5045.1157123468474310 15.7232549097647301 -5012.3693783131229793 -32.7463340337239828 89.5072800313806596 22.0038756926631685 20.2674918694414608 3.4599837012727228 0.0287406400340964 0.0054631832109070 -0.0593929995926347
8900 113.0429552759742364 -5029.3987474982423009 -5046.0489177048530109 16.6501702066103476 -5013.1575753877641546 -32.8913423170885579 94.7839016670577763 22.0068663666915683 20.2687690591312801 3.4257808041439497 0.0309099788432120 0.0202171302469460 -0.5672379170296111
9000 114.3028285600012168 -5029.3950511511229706 -5045.5452299460939685 16.1501787949714100 -5012.5755502794254426 -32.9696796666691085 91.9376162413181817 22.0100025642331438 20.2715213988307390 3.3652959904269899 0.0310727498337748 0.0350587744467375 -0.5243423250951003
9100 115.5504704579943791 -5029.4011682817399560 -5045.7686964972572241 16.3675282155176056 -5012.8956927574890869 -32.8730037397681514 93.1749144700332010 22.0129932323966244 20.2757847863275558 3.3416863642298322 0.0278865835662406 0.0500593574538005 0.1106488240215337
9200 116.7946333579602651 -5029.4017720229812767 -5046.2095242659142968 16.8077522429334536 -5013.1790196502061008 -33.0305046157081676 95.6809639823375306 22.0155766145636562 20.2813847767229340 3.3837475995761923 0.0229459653959643 0.0606619684052993 0.6316843785669454
9300 118.0373532379744574 -5029.3897983703673162 -5045.3852343116877819 15.9954359413206522 -5012.4098851963299239 -32.9753491153576448 91.0567164521802823 22.0176661603918404 20.2876093495490188 3.4433051081136128 0.0182119330164441 0.0630872424142740 0.4408646538230431
9400 119.3096107059973292 -5029.3940044671780925 -5045.1494022809556554 15.7553978137776411 -5012.3373351985219415 -32.8120670824327760 89.6902589328241930 22.0191620625590261 20.2939150847352963 3.4576781527342213 0.0120237458614373 0.0624136446207651 -0.1706807559293053
9500 120.5569760259822942 -5029.4028547635489304 -5046.4916138968292216 17.0887591332807105 -5013.5750575302763536 -32.9165563665534435 97.2806430926366943 22.0200362005428580 20.2999278998203252 3.4154427529782021 0.0047438742484681 0.0566484545204492 -0.6003708189460565
9600 121.8032315599848516 -5029.3943080876824752 -5045.8625616630897639 16.4682535754077222 -5012.9435173518513693 -32.9190443112383448 93.7483105668138563 22.0201112440302111 20.3051306661589130 3.3573333481987917 -0.0034848828375071 0.0463786363566361 -0.4464499679272487
9700 123.0481046040076762 -5029.3963743848999002 -5046.0931232530328998 16.6967488681334011 -5013.3188208671426764 -32.7743023858902305 95.0490585524709672 22.0192892506256435 20.3090481568511585 3.3449646688919508 -0.0126993251202254 0.0313153276927252 0.2347902151897416
9800 124.3171976699959487 -5029.4041067798116273 -5046.2351730935588421 16.8310663137475451 -5013.3022700315450493 -32.9329030620125565 95.8136832619653376 22.0176816744773589 20.3113320548697089 3.3948762489105730 -0.0190003685475649 0.0145775023377736 0.6452872225841749
9900 125.6034698109724559 -5029.3967328994849595 -5045.7044510326986710 16.3077181332140952 -5012.8792223601285514 -32.8252286725705744 92.8344354905748617 22.0154641674261171 20.3119427417383847 3.4494353673823004 -0.0251076944963040 -0.0022494305485361 0.3449321806936739
10000 126.8703936609672382 -5029.3954046432463656 -5045.6299775343904912 16.2345728911443530 -5012.8287818160133611 -32.8011957183766398 92.4180438654010175 22.0127364302381388 20.3109725422284022 3.4537555828445510 -0.0290125415995836 -0.0167131954412302 -0.2644721653229455
Loop time of 126.87 on 4 procs for 10000 steps with 1360 atoms
Performance: 6.810 ns/day, 3.524 hours/ns, 78.821 timesteps/s
99.9% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 117.02 | 119.45 | 123.17 | 21.1 | 94.15
Bond | 0.0041073 | 0.0042996 | 0.004639 | 0.3 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 3.4989 | 7.2187 | 9.6549 | 85.7 | 5.69
Output | 0.013072 | 0.013851 | 0.016114 | 1.1 | 0.01
Modify | 0.060992 | 0.063045 | 0.065171 | 0.8 | 0.05
Other | | 0.1165 | | | 0.09
Nlocal: 340 ave 344 max 334 min
Histogram: 1 0 0 0 0 0 1 0 1 1
Nghost: 4628 ave 4634 max 4624 min
Histogram: 1 0 1 0 1 0 0 0 0 1
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
FullNghs: 66301.5 ave 67860 max 63963 min
Histogram: 1 0 0 0 0 0 1 0 1 1
Total # of neighbors = 265206
Ave neighs/atom = 195.004
Ave special neighs/atom = 0
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:02:06

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
../../../../potentials/BNC.tersoff

View File

@ -0,0 +1 @@
../../../../potentials/BNCH-old.ILP

View File

@ -0,0 +1 @@
../../../../../potentials/BNCH-old.ILP

View File

@ -0,0 +1 @@
../../../../../potentials/CH.airebo

View File

@ -16,10 +16,10 @@ group membrane type 1
group adsorbate type 2 group adsorbate type 2
######################## Potential defition ######################## ######################## Potential defition ########################
pair_style hybrid/overlay rebo ILP/graphene/hBN 16.0 pair_style hybrid/overlay rebo ilp/graphene/hbn 16.0
#################################################################### ####################################################################
pair_coeff * * rebo CH.airebo NULL C # chemical pair_coeff * * rebo CH.airebo NULL C # chemical
pair_coeff * * ILP/graphene/hBN BNCH-old.ILP C C # long range pair_coeff * * ilp/graphene/hbn BNCH-old.ILP C C # long range
#################################################################### ####################################################################
# Neighbor update settings # Neighbor update settings
neighbor 2.0 bin neighbor 2.0 bin
@ -42,7 +42,7 @@ fix subf membrane setforce 0.0 0.0 0.0
fix thermostat all nve fix thermostat all nve
compute 0 all pair rebo compute 0 all pair rebo
compute 1 all pair ILP/graphene/hBN compute 1 all pair ilp/graphene/hbn
variable REBO equal c_0 variable REBO equal c_0
variable ILP equal c_1 variable ILP equal c_1
@ -50,12 +50,12 @@ variable ILP equal c_1
# Output # Output
thermo 100 thermo 100
thermo_style custom step cpu etotal pe ke v_REBO v_ILP temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom thermo_style custom step etotal pe ke v_REBO v_ILP temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom
thermo_modify line one format float %.16f thermo_modify line one format float %.10f
thermo_modify flush yes norm no lost warn thermo_modify flush yes norm no lost warn
dump 1 all custom 1000 traj.lammpstrj id mol type xu yu zu #dump 1 all custom 1000 traj.lammpstrj id mol type xu yu zu
dump_modify 1 format line "%7d %3d %3d %15.10g %15.10g %15.10g" flush yes #dump_modify 1 format line "%7d %3d %3d %15.10g %15.10g %15.10g" flush yes
###### Run molecular dynamics ###### ###### Run molecular dynamics ######
run 10000 run 1000

View File

@ -0,0 +1,137 @@
LAMMPS (8 Mar 2018)
using 1 OpenMP thread(s) per MPI task
# Initialization
units metal
boundary p p p
atom_style full
processors * * 1 # domain decomposition over x and y
# System and atom definition
# we use 2 atom types so that inter- and intra-layer
# interactions can be specified separately
# read lammps data file
read_data Bi_gr_AB_stack_2L_noH_300K.data
orthogonal box = (0 0 0) to (42.6 41.8117 100)
1 by 1 by 1 MPI processor grid
reading atoms ...
1360 atoms
reading velocities ...
1360 velocities
0 = max # of 1-2 neighbors
0 = max # of 1-3 neighbors
0 = max # of 1-4 neighbors
1 = max # of special neighbors
mass 1 12.0107 # carbon mass (g/mole) | membrane
mass 2 12.0107 # carbon mass (g/mole) | adsorbate
# Separate atom groups
group membrane type 1
680 atoms in group membrane
group adsorbate type 2
680 atoms in group adsorbate
######################## Potential defition ########################
pair_style hybrid/overlay rebo ilp/graphene/hbn 16.0
####################################################################
pair_coeff * * rebo CH.airebo NULL C # chemical
Reading potential file CH.airebo with DATE: 2011-10-25
pair_coeff * * ilp/graphene/hbn BNCH-old.ILP C C # long range
####################################################################
# Neighbor update settings
neighbor 2.0 bin
neigh_modify every 1
neigh_modify delay 0
neigh_modify check yes
# calculate the COM
variable adsxcom equal xcm(adsorbate,x)
variable adsycom equal xcm(adsorbate,y)
variable adszcom equal xcm(adsorbate,z)
variable adsvxcom equal vcm(adsorbate,x)
variable adsvycom equal vcm(adsorbate,y)
variable adsvzcom equal vcm(adsorbate,z)
#### Simulation settings ####
timestep 0.001
#velocity adsorbate create 300.0 12345
fix subf membrane setforce 0.0 0.0 0.0
fix thermostat all nve
compute 0 all pair rebo
compute 1 all pair ilp/graphene/hbn
variable REBO equal c_0
variable ILP equal c_1
############################
# Output
thermo 100
thermo_style custom step etotal pe ke v_REBO v_ILP temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom
thermo_modify line one format float %.10f
thermo_modify flush yes norm no lost warn
#dump 1 all custom 1000 traj.lammpstrj id mol type xu yu zu
#dump_modify 1 format line "%7d %3d %3d %15.10g %15.10g %15.10g" flush yes
###### Run molecular dynamics ######
run 1000
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 5 5 12
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair rebo, perpetual, skip from (2)
attributes: full, newton on, ghost
pair build: skip/ghost
stencil: none
bin: none
(2) pair ilp/graphene/hbn, perpetual
attributes: full, newton on, ghost
pair build: full/bin/ghost
stencil: full/ghost/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 16.96 | 16.96 | 16.96 Mbytes
Step TotEng PotEng KinEng v_REBO v_ILP Temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom
0 -5029.3801131277 -5044.0700799791 14.6899668514 -5011.2636297759 -32.8064502032 83.6251135127 22.0155657205 20.2812150219 3.4623630945 0.0282287195 0.0535565745 0.2193320108
100 -5029.3895815657 -5045.3201249690 15.9305434033 -5012.4897058028 -32.8304191662 90.6873047362 22.0181751545 20.2867946176 3.4502536831 0.0239131349 0.0576557373 -0.4387830564
200 -5029.3874064119 -5045.8119502228 16.4245438109 -5012.7276250747 -33.0843251481 93.4994853617 22.0202931358 20.2926890775 3.3883512918 0.0180268639 0.0596894423 -0.6964675465
300 -5029.3851410393 -5044.9928147367 15.6076736974 -5012.1131531405 -32.8796615962 88.8493144891 22.0216852689 20.2985091183 3.3368274018 0.0093519893 0.0546775051 -0.2110676539
400 -5029.3900102082 -5045.6706717598 16.2806615516 -5012.7330095297 -32.9376622301 92.6804113372 22.0220931529 20.3035219616 3.3560233852 -0.0015365116 0.0454268927 0.5478139709
500 -5029.3985510533 -5046.0433160610 16.6447650078 -5013.0924334585 -32.9508826025 94.7531316612 22.0214795944 20.3074656871 3.4232399722 -0.0107212024 0.0332249366 0.6595923534
600 -5029.3929936746 -5045.4367231195 16.0437294449 -5012.7046931021 -32.7320300174 91.3316353653 22.0200027176 20.3101652565 3.4651727438 -0.0178110391 0.0210056002 0.1144372537
700 -5029.3934435811 -5045.6074608403 16.2140172592 -5012.7886962164 -32.8187646239 92.3010274644 22.0178838793 20.3116257077 3.4432436715 -0.0242636237 0.0078323424 -0.5162836955
800 -5029.3892931255 -5046.2270462380 16.8377531124 -5013.2383770824 -32.9886691555 95.8517489911 22.0151485191 20.3116305041 3.3780520461 -0.0302821178 -0.0083184719 -0.6710801515
900 -5029.3930414672 -5046.0272003818 16.6341589146 -5013.2317798384 -32.7954205434 94.6927546874 22.0119224940 20.3099187654 3.3350551183 -0.0341747588 -0.0256858066 -0.0799872839
1000 -5029.3908907831 -5045.6437703691 16.2528795861 -5012.6800867885 -32.9636835807 92.5222578135 22.0084902521 20.3065746721 3.3658243730 -0.0336536245 -0.0406018547 0.6191660974
Loop time of 137.46 on 1 procs for 1000 steps with 1360 atoms
Performance: 0.629 ns/day, 38.183 hours/ns, 7.275 timesteps/s
95.1% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 137.33 | 137.33 | 137.33 | 0.0 | 99.90
Bond | 0.00071788 | 0.00071788 | 0.00071788 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.067907 | 0.067907 | 0.067907 | 0.0 | 0.05
Output | 0.0016029 | 0.0016029 | 0.0016029 | 0.0 | 0.00
Modify | 0.036542 | 0.036542 | 0.036542 | 0.0 | 0.03
Other | | 0.02574 | | | 0.02
Nlocal: 1360 ave 1360 max 1360 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 7964 ave 7964 max 7964 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 265206 ave 265206 max 265206 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 265206
Ave neighs/atom = 195.004
Ave special neighs/atom = 0
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:02:17

View File

@ -0,0 +1,137 @@
LAMMPS (8 Mar 2018)
using 1 OpenMP thread(s) per MPI task
# Initialization
units metal
boundary p p p
atom_style full
processors * * 1 # domain decomposition over x and y
# System and atom definition
# we use 2 atom types so that inter- and intra-layer
# interactions can be specified separately
# read lammps data file
read_data Bi_gr_AB_stack_2L_noH_300K.data
orthogonal box = (0 0 0) to (42.6 41.8117 100)
2 by 2 by 1 MPI processor grid
reading atoms ...
1360 atoms
reading velocities ...
1360 velocities
0 = max # of 1-2 neighbors
0 = max # of 1-3 neighbors
0 = max # of 1-4 neighbors
1 = max # of special neighbors
mass 1 12.0107 # carbon mass (g/mole) | membrane
mass 2 12.0107 # carbon mass (g/mole) | adsorbate
# Separate atom groups
group membrane type 1
680 atoms in group membrane
group adsorbate type 2
680 atoms in group adsorbate
######################## Potential defition ########################
pair_style hybrid/overlay rebo ilp/graphene/hbn 16.0
####################################################################
pair_coeff * * rebo CH.airebo NULL C # chemical
Reading potential file CH.airebo with DATE: 2011-10-25
pair_coeff * * ilp/graphene/hbn BNCH-old.ILP C C # long range
####################################################################
# Neighbor update settings
neighbor 2.0 bin
neigh_modify every 1
neigh_modify delay 0
neigh_modify check yes
# calculate the COM
variable adsxcom equal xcm(adsorbate,x)
variable adsycom equal xcm(adsorbate,y)
variable adszcom equal xcm(adsorbate,z)
variable adsvxcom equal vcm(adsorbate,x)
variable adsvycom equal vcm(adsorbate,y)
variable adsvzcom equal vcm(adsorbate,z)
#### Simulation settings ####
timestep 0.001
#velocity adsorbate create 300.0 12345
fix subf membrane setforce 0.0 0.0 0.0
fix thermostat all nve
compute 0 all pair rebo
compute 1 all pair ilp/graphene/hbn
variable REBO equal c_0
variable ILP equal c_1
############################
# Output
thermo 100
thermo_style custom step etotal pe ke v_REBO v_ILP temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom
thermo_modify line one format float %.10f
thermo_modify flush yes norm no lost warn
#dump 1 all custom 1000 traj.lammpstrj id mol type xu yu zu
#dump_modify 1 format line "%7d %3d %3d %15.10g %15.10g %15.10g" flush yes
###### Run molecular dynamics ######
run 1000
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 5 5 12
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair rebo, perpetual, skip from (2)
attributes: full, newton on, ghost
pair build: skip/ghost
stencil: none
bin: none
(2) pair ilp/graphene/hbn, perpetual
attributes: full, newton on, ghost
pair build: full/bin/ghost
stencil: full/ghost/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 11.13 | 11.13 | 11.13 Mbytes
Step TotEng PotEng KinEng v_REBO v_ILP Temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom
0 -5029.3801131277 -5044.0700799791 14.6899668514 -5011.2636297759 -32.8064502032 83.6251135127 22.0155657205 20.2812150219 3.4623630945 0.0282287195 0.0535565745 0.2193320108
100 -5029.3895815657 -5045.3201249690 15.9305434033 -5012.4897058028 -32.8304191662 90.6873047362 22.0181751545 20.2867946176 3.4502536831 0.0239131349 0.0576557373 -0.4387830564
200 -5029.3874064119 -5045.8119502228 16.4245438109 -5012.7276250747 -33.0843251481 93.4994853617 22.0202931358 20.2926890775 3.3883512918 0.0180268639 0.0596894423 -0.6964675465
300 -5029.3851410393 -5044.9928147367 15.6076736974 -5012.1131531405 -32.8796615962 88.8493144891 22.0216852689 20.2985091183 3.3368274018 0.0093519893 0.0546775051 -0.2110676539
400 -5029.3900102082 -5045.6706717598 16.2806615516 -5012.7330095297 -32.9376622301 92.6804113371 22.0220931529 20.3035219616 3.3560233852 -0.0015365116 0.0454268927 0.5478139709
500 -5029.3985510533 -5046.0433160611 16.6447650078 -5013.0924334585 -32.9508826025 94.7531316612 22.0214795944 20.3074656871 3.4232399722 -0.0107212024 0.0332249366 0.6595923534
600 -5029.3929936746 -5045.4367231195 16.0437294449 -5012.7046931021 -32.7320300174 91.3316353653 22.0200027176 20.3101652565 3.4651727438 -0.0178110391 0.0210056002 0.1144372537
700 -5029.3934435811 -5045.6074608403 16.2140172592 -5012.7886962164 -32.8187646239 92.3010274643 22.0178838793 20.3116257077 3.4432436715 -0.0242636237 0.0078323424 -0.5162836955
800 -5029.3892931255 -5046.2270462380 16.8377531124 -5013.2383770824 -32.9886691555 95.8517489911 22.0151485191 20.3116305041 3.3780520461 -0.0302821178 -0.0083184719 -0.6710801515
900 -5029.3930414671 -5046.0272003818 16.6341589146 -5013.2317798384 -32.7954205434 94.6927546874 22.0119224940 20.3099187654 3.3350551183 -0.0341747588 -0.0256858066 -0.0799872839
1000 -5029.3908907831 -5045.6437703692 16.2528795861 -5012.6800867885 -32.9636835807 92.5222578135 22.0084902521 20.3065746721 3.3658243730 -0.0336536245 -0.0406018547 0.6191660974
Loop time of 36.0917 on 4 procs for 1000 steps with 1360 atoms
Performance: 2.394 ns/day, 10.025 hours/ns, 27.707 timesteps/s
97.6% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 33.204 | 34.289 | 35.893 | 17.3 | 95.01
Bond | 0.00038719 | 0.00065947 | 0.00097609 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.1539 | 1.7595 | 2.8464 | 76.7 | 4.88
Output | 0.0013447 | 0.0014529 | 0.0016887 | 0.4 | 0.00
Modify | 0.010811 | 0.012037 | 0.013764 | 1.0 | 0.03
Other | | 0.0287 | | | 0.08
Nlocal: 340 ave 344 max 334 min
Histogram: 1 0 0 0 0 0 1 0 1 1
Nghost: 4628 ave 4634 max 4624 min
Histogram: 1 0 1 0 1 0 0 0 0 1
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
FullNghs: 66301.5 ave 67860 max 63963 min
Histogram: 1 0 0 0 0 0 1 0 1 1
Total # of neighbors = 265206
Ave neighs/atom = 195.004
Ave special neighs/atom = 0
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:36

View File

@ -0,0 +1 @@
../../../../../potentials/BNC.tersoff

View File

@ -0,0 +1 @@
../../../../../potentials/BNCH-old.ILP

View File

@ -0,0 +1 @@
../../../../../potentials/CH.airebo

View File

@ -16,11 +16,11 @@ group membrane type 1 2
group adsorbate type 3 group adsorbate type 3
######################## Potential defition ######################## ######################## Potential defition ########################
pair_style hybrid/overlay rebo tersoff ILP/graphene/hBN 16.0 coul/shield 16.0 pair_style hybrid/overlay rebo tersoff ilp/graphene/hbn 16.0 coul/shield 16.0
#################################################################### ####################################################################
pair_coeff * * rebo CH.airebo NULL NULL C # chemical pair_coeff * * rebo CH.airebo NULL NULL C # chemical
pair_coeff * * tersoff BNC.tersoff B N NULL # chemical pair_coeff * * tersoff BNC.tersoff B N NULL # chemical
pair_coeff * * ILP/graphene/hBN BNCH-old.ILP B N C # long range pair_coeff * * ilp/graphene/hbn BNCH-old.ILP B N C # long range
pair_coeff 1 1 coul/shield 0.70 pair_coeff 1 1 coul/shield 0.70
pair_coeff 1 2 coul/shield 0.69498201415576216335 pair_coeff 1 2 coul/shield 0.69498201415576216335
pair_coeff 2 2 coul/shield 0.69 pair_coeff 2 2 coul/shield 0.69
@ -46,7 +46,7 @@ fix thermostat all nve
compute 0 all pair rebo compute 0 all pair rebo
compute 1 all pair tersoff compute 1 all pair tersoff
compute 2 all pair ILP/graphene/hBN compute 2 all pair ilp/graphene/hbn
compute 3 all pair coul/shield compute 3 all pair coul/shield
variable REBO equal c_0 variable REBO equal c_0
variable Tersoff equal c_1 variable Tersoff equal c_1
@ -61,11 +61,11 @@ variable Evdw equal c_sldsub
# Output # Output
thermo 100 thermo 100
thermo_style custom step cpu etotal pe ke v_Evdw v_Tersoff v_REBO v_EILP v_Ecoul temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom thermo_style custom step etotal pe ke v_Evdw v_Tersoff v_REBO v_EILP v_Ecoul temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom
thermo_modify line one format float %.16f thermo_modify line one format float %.10f
dump 1 all custom 1000 traj.lammpstrj id mol type xu yu zu #dump 1 all custom 1000 traj.lammpstrj id mol type xu yu zu
dump_modify 1 format line "%7d %3d %3d %15.10g %15.10g %15.10g" flush yes #dump_modify 1 format line "%7d %3d %3d %15.10g %15.10g %15.10g" flush yes
###### Run molecular dynamics ###### ###### Run molecular dynamics ######
run 100000 run 1000

View File

@ -0,0 +1,171 @@
LAMMPS (8 Mar 2018)
using 1 OpenMP thread(s) per MPI task
# Initialization
units metal
boundary p p p
atom_style full
processors * * 1 # domain decomposition over x and y
# System and atom definition
# we use 2 atom types so that inter- and intra-layer
# interactions can be specified separately
read_data gr_hBN_Cstack_2L_noH.data
orthogonal box = (0 0 0) to (44.583 42.9 100)
1 by 1 by 1 MPI processor grid
reading atoms ...
1440 atoms
0 = max # of 1-2 neighbors
0 = max # of 1-3 neighbors
0 = max # of 1-4 neighbors
1 = max # of special neighbors
mass 1 10.8110 # boron mass (g/mole) | membrane
mass 2 14.0067 # nitrogen mass (g/mole) | membrane
mass 3 12.0107 # carbon mass (g/mole) | adsorbate
# Separate atom groups
group membrane type 1 2
720 atoms in group membrane
group adsorbate type 3
720 atoms in group adsorbate
######################## Potential defition ########################
pair_style hybrid/overlay rebo tersoff ilp/graphene/hbn 16.0 coul/shield 16.0
####################################################################
pair_coeff * * rebo CH.airebo NULL NULL C # chemical
Reading potential file CH.airebo with DATE: 2011-10-25
pair_coeff * * tersoff BNC.tersoff B N NULL # chemical
Reading potential file BNC.tersoff with DATE: 2013-03-21
pair_coeff * * ilp/graphene/hbn BNCH-old.ILP B N C # long range
pair_coeff 1 1 coul/shield 0.70
pair_coeff 1 2 coul/shield 0.69498201415576216335
pair_coeff 2 2 coul/shield 0.69
####################################################################
# Neighbor update settings
neighbor 2.0 bin
neigh_modify every 1
neigh_modify delay 0
neigh_modify check yes
# calculate the COM
variable adsxcom equal xcm(adsorbate,x)
variable adsycom equal xcm(adsorbate,y)
variable adszcom equal xcm(adsorbate,z)
variable adsvxcom equal vcm(adsorbate,x)
variable adsvycom equal vcm(adsorbate,y)
variable adsvzcom equal vcm(adsorbate,z)
#### Simulation settings ####
timestep 0.001
velocity all create 300.0 12345
fix thermostat all nve
compute 0 all pair rebo
compute 1 all pair tersoff
compute 2 all pair ilp/graphene/hbn
compute 3 all pair coul/shield
variable REBO equal c_0
variable Tersoff equal c_1
variable EILP equal c_2
variable Ecoul equal c_3
# Calculate the pair potential between the substrate and slider
compute sldsub adsorbate group/group membrane
variable Evdw equal c_sldsub
############################
# Output
thermo 100
thermo_style custom step etotal pe ke v_Evdw v_Tersoff v_REBO v_EILP v_Ecoul temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom
thermo_modify line one format float %.10f
#dump 1 all custom 1000 traj.lammpstrj id mol type xu yu zu
#dump_modify 1 format line "%7d %3d %3d %15.10g %15.10g %15.10g" flush yes
###### Run molecular dynamics ######
run 1000
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 5 5 12
7 neighbor lists, perpetual/occasional/extra = 6 1 0
(1) pair rebo, perpetual, skip from (3)
attributes: full, newton on, ghost
pair build: skip/ghost
stencil: none
bin: none
(2) pair tersoff, perpetual, skip from (6)
attributes: full, newton on
pair build: skip
stencil: none
bin: none
(3) pair ilp/graphene/hbn, perpetual
attributes: full, newton on, ghost
pair build: full/bin/ghost
stencil: full/ghost/bin/3d
bin: standard
(4) pair coul/shield, perpetual, half/full from (2)
attributes: half, newton on
pair build: halffull/newton/skip
stencil: none
bin: none
(5) compute group/group, occasional, copy from (7)
attributes: half, newton on
pair build: copy
stencil: none
bin: none
(6) neighbor class addition, perpetual, copy from (3)
attributes: full, newton on
pair build: copy
stencil: none
bin: none
(7) neighbor class addition, perpetual, half/full from (6)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 25.93 | 25.93 | 25.93 Mbytes
Step TotEng PotEng KinEng v_Evdw v_Tersoff v_REBO v_EILP v_Ecoul Temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom
0 -10708.4531746010 -10764.2547791975 55.8016045965 -66.8250335416 -5401.7347845703 -5322.2780762734 -40.2419183538 0.0000000000 300.0000000000 21.6722857297 22.1650000000 3.3300000000 0.1682661410 -0.0842226772 0.1056563755
100 -10708.2491256387 -10738.4532793285 30.2041536898 -68.8603937785 -5389.4304136167 -5309.6361134033 -39.3867523085 0.0000000000 162.3832535368 21.6879886706 22.1574778199 3.3223279482 0.1346509596 -0.0580689194 -0.1274433614
200 -10708.1985754490 -10736.7142682477 28.5156927987 -70.0276479251 -5388.8677096501 -5308.3263464524 -39.5202121452 0.0000000000 153.3057678444 21.6968427596 22.1541506320 3.3143666142 0.0334706445 -0.0081639882 -0.0055006321
300 -10708.1878214116 -10736.9033486636 28.7155272520 -68.2422175765 -5388.5952548022 -5308.9505338445 -39.3575600169 0.0000000000 154.3801157314 21.6939171741 22.1551483321 3.3251666346 -0.0896064591 0.0248921781 0.1717740196
400 -10708.2036103906 -10738.2295882994 30.0259779088 -67.4993928655 -5389.4510311345 -5309.1985887571 -39.5799684078 0.0000000000 161.4253467759 21.6806789605 22.1589742804 3.3300374170 -0.1615300496 0.0532638209 -0.1185426799
500 -10708.1853082161 -10736.0245173060 27.8392090900 -69.9737746636 -5387.9379921501 -5308.5551693329 -39.5313558230 0.0000000000 149.6688632411 21.6641276776 22.1655659011 3.3143210751 -0.1579504334 0.0766822604 -0.1154029266
600 -10708.1781001285 -10736.4254568396 28.2473567110 -69.9368770273 -5388.3515507737 -5308.6700567475 -39.4038493184 0.0000000000 151.8631421907 21.6516789999 22.1733266592 3.3149997184 -0.0805825343 0.0684349609 0.1419617624
700 -10708.1867253590 -10736.6143955088 28.4276701498 -67.1597096579 -5387.8570063253 -5309.0676141640 -39.6897750195 0.0000000000 152.8325414049 21.6489884054 22.1774523945 3.3315351816 0.0259900263 0.0094570835 0.0707953688
800 -10708.1733385055 -10736.0277775931 27.8544390876 -68.6354557276 -5388.1933954711 -5308.5094712719 -39.3249108500 0.0000000000 149.7507425941 21.6565725156 22.1751617515 3.3227650180 0.1222442823 -0.0531420670 -0.1677749693
900 -10708.1827888042 -10737.2646739167 29.0818851126 -70.2218493216 -5387.9824857335 -5309.6527953488 -39.6293928345 0.0000000000 156.3497250098 21.6716950833 22.1680989334 3.3131455846 0.1650154385 -0.0820901425 0.0072049300
1000 -10708.1804322657 -10736.1966428009 28.0162105352 -68.3753745517 -5388.2611029662 -5308.4521913187 -39.4833485160 0.0000000000 150.6204565501 21.6865468141 22.1602434319 3.3246621699 0.1213363701 -0.0688593023 0.1701174943
Loop time of 149.449 on 1 procs for 1000 steps with 1440 atoms
Performance: 0.578 ns/day, 41.514 hours/ns, 6.691 timesteps/s
96.7% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 149.06 | 149.06 | 149.06 | 0.0 | 99.74
Bond | 0.00082946 | 0.00082946 | 0.00082946 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.068351 | 0.068351 | 0.068351 | 0.0 | 0.05
Output | 0.25935 | 0.25935 | 0.25935 | 0.0 | 0.17
Modify | 0.030915 | 0.030915 | 0.030915 | 0.0 | 0.02
Other | | 0.02702 | | | 0.02
Nlocal: 1440 ave 1440 max 1440 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 8180 ave 8180 max 8180 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 140400 ave 140400 max 140400 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 280800 ave 280800 max 280800 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 280800
Ave neighs/atom = 195
Ave special neighs/atom = 0
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:02:29

View File

@ -0,0 +1,171 @@
LAMMPS (8 Mar 2018)
using 1 OpenMP thread(s) per MPI task
# Initialization
units metal
boundary p p p
atom_style full
processors * * 1 # domain decomposition over x and y
# System and atom definition
# we use 2 atom types so that inter- and intra-layer
# interactions can be specified separately
read_data gr_hBN_Cstack_2L_noH.data
orthogonal box = (0 0 0) to (44.583 42.9 100)
2 by 2 by 1 MPI processor grid
reading atoms ...
1440 atoms
0 = max # of 1-2 neighbors
0 = max # of 1-3 neighbors
0 = max # of 1-4 neighbors
1 = max # of special neighbors
mass 1 10.8110 # boron mass (g/mole) | membrane
mass 2 14.0067 # nitrogen mass (g/mole) | membrane
mass 3 12.0107 # carbon mass (g/mole) | adsorbate
# Separate atom groups
group membrane type 1 2
720 atoms in group membrane
group adsorbate type 3
720 atoms in group adsorbate
######################## Potential defition ########################
pair_style hybrid/overlay rebo tersoff ilp/graphene/hbn 16.0 coul/shield 16.0
####################################################################
pair_coeff * * rebo CH.airebo NULL NULL C # chemical
Reading potential file CH.airebo with DATE: 2011-10-25
pair_coeff * * tersoff BNC.tersoff B N NULL # chemical
Reading potential file BNC.tersoff with DATE: 2013-03-21
pair_coeff * * ilp/graphene/hbn BNCH-old.ILP B N C # long range
pair_coeff 1 1 coul/shield 0.70
pair_coeff 1 2 coul/shield 0.69498201415576216335
pair_coeff 2 2 coul/shield 0.69
####################################################################
# Neighbor update settings
neighbor 2.0 bin
neigh_modify every 1
neigh_modify delay 0
neigh_modify check yes
# calculate the COM
variable adsxcom equal xcm(adsorbate,x)
variable adsycom equal xcm(adsorbate,y)
variable adszcom equal xcm(adsorbate,z)
variable adsvxcom equal vcm(adsorbate,x)
variable adsvycom equal vcm(adsorbate,y)
variable adsvzcom equal vcm(adsorbate,z)
#### Simulation settings ####
timestep 0.001
velocity all create 300.0 12345
fix thermostat all nve
compute 0 all pair rebo
compute 1 all pair tersoff
compute 2 all pair ilp/graphene/hbn
compute 3 all pair coul/shield
variable REBO equal c_0
variable Tersoff equal c_1
variable EILP equal c_2
variable Ecoul equal c_3
# Calculate the pair potential between the substrate and slider
compute sldsub adsorbate group/group membrane
variable Evdw equal c_sldsub
############################
# Output
thermo 100
thermo_style custom step etotal pe ke v_Evdw v_Tersoff v_REBO v_EILP v_Ecoul temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom
thermo_modify line one format float %.10f
#dump 1 all custom 1000 traj.lammpstrj id mol type xu yu zu
#dump_modify 1 format line "%7d %3d %3d %15.10g %15.10g %15.10g" flush yes
###### Run molecular dynamics ######
run 1000
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 5 5 12
7 neighbor lists, perpetual/occasional/extra = 6 1 0
(1) pair rebo, perpetual, skip from (3)
attributes: full, newton on, ghost
pair build: skip/ghost
stencil: none
bin: none
(2) pair tersoff, perpetual, skip from (6)
attributes: full, newton on
pair build: skip
stencil: none
bin: none
(3) pair ilp/graphene/hbn, perpetual
attributes: full, newton on, ghost
pair build: full/bin/ghost
stencil: full/ghost/bin/3d
bin: standard
(4) pair coul/shield, perpetual, half/full from (2)
attributes: half, newton on
pair build: halffull/newton/skip
stencil: none
bin: none
(5) compute group/group, occasional, copy from (7)
attributes: half, newton on
pair build: copy
stencil: none
bin: none
(6) neighbor class addition, perpetual, copy from (3)
attributes: full, newton on
pair build: copy
stencil: none
bin: none
(7) neighbor class addition, perpetual, half/full from (6)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 14.25 | 14.25 | 14.25 Mbytes
Step TotEng PotEng KinEng v_Evdw v_Tersoff v_REBO v_EILP v_Ecoul Temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom
0 -10708.4531746011 -10764.2547791976 55.8016045965 -66.8250335415 -5401.7347845703 -5322.2780762735 -40.2419183538 0.0000000000 300.0000000000 21.6722857297 22.1650000000 3.3300000000 0.1682661410 -0.0842226772 0.1056563755
100 -10708.2491256387 -10738.4532793285 30.2041536898 -68.8603937785 -5389.4304136167 -5309.6361134033 -39.3867523085 0.0000000000 162.3832535368 21.6879886706 22.1574778199 3.3223279482 0.1346509596 -0.0580689194 -0.1274433614
200 -10708.1985754490 -10736.7142682477 28.5156927987 -70.0276479251 -5388.8677096501 -5308.3263464524 -39.5202121452 0.0000000000 153.3057678444 21.6968427596 22.1541506320 3.3143666142 0.0334706445 -0.0081639882 -0.0055006321
300 -10708.1878214116 -10736.9033486636 28.7155272520 -68.2422175765 -5388.5952548022 -5308.9505338445 -39.3575600169 0.0000000000 154.3801157314 21.6939171741 22.1551483321 3.3251666346 -0.0896064591 0.0248921781 0.1717740196
400 -10708.2036103906 -10738.2295882994 30.0259779088 -67.4993928655 -5389.4510311345 -5309.1985887571 -39.5799684078 0.0000000000 161.4253467759 21.6806789605 22.1589742804 3.3300374170 -0.1615300496 0.0532638209 -0.1185426799
500 -10708.1853082161 -10736.0245173060 27.8392090900 -69.9737746636 -5387.9379921501 -5308.5551693329 -39.5313558230 0.0000000000 149.6688632411 21.6641276776 22.1655659011 3.3143210751 -0.1579504334 0.0766822604 -0.1154029266
600 -10708.1781001285 -10736.4254568396 28.2473567110 -69.9368770273 -5388.3515507736 -5308.6700567475 -39.4038493184 0.0000000000 151.8631421907 21.6516789999 22.1733266592 3.3149997184 -0.0805825343 0.0684349609 0.1419617624
700 -10708.1867253590 -10736.6143955089 28.4276701498 -67.1597096579 -5387.8570063253 -5309.0676141640 -39.6897750195 0.0000000000 152.8325414049 21.6489884054 22.1774523945 3.3315351816 0.0259900263 0.0094570835 0.0707953688
800 -10708.1733385055 -10736.0277775930 27.8544390876 -68.6354557276 -5388.1933954711 -5308.5094712719 -39.3249108500 0.0000000000 149.7507425941 21.6565725156 22.1751617515 3.3227650180 0.1222442823 -0.0531420670 -0.1677749693
900 -10708.1827888042 -10737.2646739167 29.0818851126 -70.2218493216 -5387.9824857335 -5309.6527953488 -39.6293928345 0.0000000000 156.3497250098 21.6716950833 22.1680989334 3.3131455846 0.1650154385 -0.0820901425 0.0072049300
1000 -10708.1804322657 -10736.1966428009 28.0162105352 -68.3753745517 -5388.2611029662 -5308.4521913187 -39.4833485160 0.0000000000 150.6204565501 21.6865468141 22.1602434319 3.3246621699 0.1213363701 -0.0688593023 0.1701174943
Loop time of 39.6206 on 4 procs for 1000 steps with 1440 atoms
Performance: 2.181 ns/day, 11.006 hours/ns, 25.239 timesteps/s
98.9% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 34.948 | 37.122 | 39.309 | 31.6 | 93.69
Bond | 0.00046444 | 0.0005914 | 0.00089121 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.20131 | 2.3895 | 4.565 | 124.7 | 6.03
Output | 0.069107 | 0.069157 | 0.069264 | 0.0 | 0.17
Modify | 0.010056 | 0.010403 | 0.010688 | 0.3 | 0.03
Other | | 0.02875 | | | 0.07
Nlocal: 360 ave 380 max 340 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Nghost: 4716 ave 4736 max 4696 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Neighs: 35100 ave 37050 max 33150 min
Histogram: 2 0 0 0 0 0 0 0 0 2
FullNghs: 70200 ave 74100 max 66300 min
Histogram: 2 0 0 0 0 0 0 0 0 2
Total # of neighbors = 280800
Ave neighs/atom = 195
Ave special neighs/atom = 0
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:39

View File

@ -17,10 +17,10 @@ group membrane type 1 2
group adsorbate type 3 4 group adsorbate type 3 4
######################## Potential defition ######################## ######################## Potential defition ########################
pair_style hybrid/overlay tersoff ILP/graphene/hBN 16.0 coul/shield 16.0 1 pair_style hybrid/overlay tersoff ilp/graphene/hbn 16.0 coul/shield 16.0 1
#################################################################### ####################################################################
pair_coeff * * tersoff BNC.tersoff NULL NULL B N # chemical pair_coeff * * tersoff BNC.tersoff NULL NULL B N # chemical
pair_coeff * * ILP/graphene/hBN BNCH-old.ILP B N B N # long range pair_coeff * * ilp/graphene/hbn BNCH-old.ILP B N B N # long range
pair_coeff 1 3 coul/shield 0.70 pair_coeff 1 3 coul/shield 0.70
pair_coeff 1 4 coul/shield 0.69498201415576216335 pair_coeff 1 4 coul/shield 0.69498201415576216335
pair_coeff 2 3 coul/shield 0.69498201415576216335 pair_coeff 2 3 coul/shield 0.69498201415576216335
@ -48,7 +48,7 @@ fix thermostat all nve
compute 0 all pair tersoff compute 0 all pair tersoff
compute 1 all pair coul/shield ecoul compute 1 all pair coul/shield ecoul
compute 2 all pair ILP/graphene/hBN compute 2 all pair ilp/graphene/hbn
variable Tersoff equal c_0 variable Tersoff equal c_0
variable Ecoul equal c_1 variable Ecoul equal c_1
variable EILP equal c_2 variable EILP equal c_2
@ -61,12 +61,12 @@ variable Evdw equal c_sldsub
# Output # Output
thermo 100 thermo 100
thermo_style custom step cpu etotal pe ke v_Evdw v_Tersoff v_EILP v_Ecoul temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom f_subf[1] f_subf[2] f_subf[3] thermo_style custom step etotal pe ke v_Evdw v_Tersoff v_EILP v_Ecoul temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom f_subf[1] f_subf[2] f_subf[3]
thermo_modify line one format float %.15f thermo_modify line one format float %.10f
thermo_modify flush yes norm no lost warn #ignore thermo_modify flush yes norm no lost warn #ignore
dump 1 all custom 1000 traj.lammpstrj id mol type xu yu zu #dump 1 all custom 1000 traj.lammpstrj id mol type xu yu zu
dump_modify 1 format line "%7d %3d %3d %15.10g %15.10g %15.10g" flush yes #dump_modify 1 format line "%7d %3d %3d %15.10g %15.10g %15.10g" flush yes
###### Run molecular dynamics ###### ###### Run molecular dynamics ######
run 100000 run 1000

View File

@ -0,0 +1,168 @@
LAMMPS (8 Mar 2018)
using 1 OpenMP thread(s) per MPI task
# Initialization
units metal
boundary p p p
atom_style full
processors * * 1 # domain decomposition over x and y
# System and atom definition
# we use 2 atom types so that inter- and intra-layer
# interactions can be specified separately
read_data hBN_AB_stack_2L_noH_equi_300K.data
orthogonal box = (0 0 0) to (43.38 42.5773 100)
1 by 1 by 1 MPI processor grid
reading atoms ...
1360 atoms
reading velocities ...
1360 velocities
0 = max # of 1-2 neighbors
0 = max # of 1-3 neighbors
0 = max # of 1-4 neighbors
1 = max # of special neighbors
mass 1 10.8110 # boron mass (g/mole) | membrane
mass 2 14.0067 # nitrogen mass (g/mole) | adsorbate
mass 3 10.8110 # boron mass (g/mole) | membrane
mass 4 14.0067 # nitrogen mass (g/mole) | adsorbate
# Separate atom groups
group membrane type 1 2
680 atoms in group membrane
group adsorbate type 3 4
680 atoms in group adsorbate
######################## Potential defition ########################
pair_style hybrid/overlay tersoff ilp/graphene/hbn 16.0 coul/shield 16.0 1
####################################################################
pair_coeff * * tersoff BNC.tersoff NULL NULL B N # chemical
Reading potential file BNC.tersoff with DATE: 2013-03-21
pair_coeff * * ilp/graphene/hbn BNCH-old.ILP B N B N # long range
pair_coeff 1 3 coul/shield 0.70
pair_coeff 1 4 coul/shield 0.69498201415576216335
pair_coeff 2 3 coul/shield 0.69498201415576216335
pair_coeff 2 4 coul/shield 0.69
####################################################################
# Neighbor update settings
neighbor 2.0 bin
neigh_modify every 1
neigh_modify delay 0
neigh_modify check yes
# calculate the COM
variable adsxcom equal xcm(adsorbate,x)
variable adsycom equal xcm(adsorbate,y)
variable adszcom equal xcm(adsorbate,z)
variable adsvxcom equal vcm(adsorbate,x)
variable adsvycom equal vcm(adsorbate,y)
variable adsvzcom equal vcm(adsorbate,z)
#### Simulation settings ####
timestep 0.001
#velocity adsorbate create 300.0 12345
fix subf membrane setforce 0.0 0.0 0.0
fix thermostat all nve
compute 0 all pair tersoff
compute 1 all pair coul/shield ecoul
compute 2 all pair ilp/graphene/hbn
variable Tersoff equal c_0
variable Ecoul equal c_1
variable EILP equal c_2
# Calculate the pair potential between the substrate and slider
compute sldsub adsorbate group/group membrane
variable Evdw equal c_sldsub
############################
# Output
thermo 100
thermo_style custom step etotal pe ke v_Evdw v_Tersoff v_EILP v_Ecoul temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom f_subf[1] f_subf[2] f_subf[3]
thermo_modify line one format float %.10f
thermo_modify flush yes norm no lost warn #ignore
#dump 1 all custom 1000 traj.lammpstrj id mol type xu yu zu
#dump_modify 1 format line "%7d %3d %3d %15.10g %15.10g %15.10g" flush yes
###### Run molecular dynamics ######
run 1000
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 5 5 12
6 neighbor lists, perpetual/occasional/extra = 5 1 0
(1) pair tersoff, perpetual, skip from (5)
attributes: full, newton on
pair build: skip
stencil: none
bin: none
(2) pair ilp/graphene/hbn, perpetual
attributes: full, newton on, ghost
pair build: full/bin/ghost
stencil: full/ghost/bin/3d
bin: standard
(3) pair coul/shield, perpetual, skip from (6)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
(4) compute group/group, occasional, copy from (6)
attributes: half, newton on
pair build: copy
stencil: none
bin: none
(5) neighbor class addition, perpetual, copy from (2)
attributes: full, newton on
pair build: copy
stencil: none
bin: none
(6) neighbor class addition, perpetual, half/full from (5)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 57.85 | 57.85 | 57.85 Mbytes
Step TotEng PotEng KinEng v_Evdw v_Tersoff v_EILP v_Ecoul Temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom f_subf[1] f_subf[2] f_subf[3]
0 -5114.6628078598 -5127.8586355055 13.1958276458 -75.3652234209 -5091.4120857465 -36.0831137829 -0.3634359761 75.1194741238 20.9113202537 20.6582215878 3.2895976612 -0.0495147937 -0.0552233516 -0.0166592619 -0.1742790202 -0.0884665936 -0.8010816801
100 -5114.6620580583 -5127.6958349342 13.0337768758 -75.2249487778 -5091.2407919311 -36.0927601416 -0.3622828614 74.1969727889 20.9076129631 20.6534162972 3.2908118318 -0.0234802196 -0.0397832410 0.0332404745 -0.2430042439 -0.1598109185 -0.5351246275
200 -5114.6630637865 -5127.5945140906 12.9314503041 -74.6445167393 -5091.1507571912 -36.0866688941 -0.3570880053 73.6144615235 20.9067696105 20.6505240051 3.2976575241 0.0078967872 -0.0170385302 0.0850447973 -0.2934041648 -0.2405295165 0.2309200807
300 -5114.6693830121 -5128.3286231421 13.6592401300 -74.2223518942 -5091.8645555419 -36.1107860098 -0.3532815904 77.7575278367 20.9090146500 20.6502445717 3.3024525026 0.0352437329 0.0112279015 -0.0021399216 -0.2166516175 -0.2410661267 0.9007458614
400 -5114.6614035404 -5127.6423784754 12.9809749350 -74.6548295432 -5091.2348011465 -36.0496340516 -0.3579432773 73.8963888364 20.9136276183 20.6526810045 3.2977225951 0.0556629502 0.0358324354 -0.0738287296 -0.1431221016 -0.1626739623 0.0673046122
500 -5114.6599876234 -5127.4097813122 12.7497936887 -75.2268687829 -5090.9284608504 -36.1195707042 -0.3617497575 72.5803506074 20.9197050770 20.6571510311 3.2909058903 0.0631939085 0.0530269602 -0.0516940297 -0.0112976844 -0.1217009147 -0.4713422319
600 -5114.6672773464 -5128.0912983829 13.4240210364 -75.3848112535 -5091.6338883189 -36.0938401510 -0.3635699131 76.4185034811 20.9258252862 20.6628322031 3.2892805234 0.0573396226 0.0579085440 0.0291853982 0.1059950758 0.0102266125 -0.7683214794
700 -5114.6609647250 -5127.7466720637 13.0857073388 -74.7981789470 -5091.2811095008 -36.1066385732 -0.3589239897 74.4925957063 20.9307092134 20.6683554324 3.2957959411 0.0396744013 0.0503347378 0.0818267711 0.1737903706 0.1258761156 0.1307185989
800 -5114.6622627667 -5128.0130406264 13.3507778597 -74.2952448854 -5091.5693975625 -36.0897180314 -0.3539250325 76.0015543464 20.9334441079 20.6725125240 3.3019570181 0.0142277646 0.0313116646 0.0291673132 0.2457478793 0.1912082770 0.7239823553
900 -5114.6675469561 -5128.1496933801 13.4821464240 -74.3644898573 -5091.6703861750 -36.1246785145 -0.3546286905 76.7493920516 20.9334403558 20.6744181494 3.3005582394 -0.0141399355 0.0063543986 -0.0561206619 0.2370151923 0.2115707560 0.7822017606
1000 -5114.6683146144 -5128.3364609113 13.6681462969 -75.1091579020 -5091.9370210069 -36.0375964349 -0.3618434694 77.8082276935 20.9306643096 20.6737238853 3.2922181699 -0.0411219854 -0.0200694204 -0.0788193565 0.2225175431 0.2377413412 -0.5875288557
Loop time of 202.063 on 1 procs for 1000 steps with 1360 atoms
Performance: 0.428 ns/day, 56.129 hours/ns, 4.949 timesteps/s
91.0% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 201.4 | 201.4 | 201.4 | 0.0 | 99.67
Bond | 0.00092697 | 0.00092697 | 0.00092697 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.086005 | 0.086005 | 0.086005 | 0.0 | 0.04
Output | 0.50438 | 0.50438 | 0.50438 | 0.0 | 0.25
Modify | 0.038846 | 0.038846 | 0.038846 | 0.0 | 0.02
Other | | 0.03093 | | | 0.02
Nlocal: 1360 ave 1360 max 1360 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 7840 ave 7840 max 7840 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 249628 ave 249628 max 249628 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 253390 ave 253390 max 253390 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 253390
Ave neighs/atom = 186.316
Ave special neighs/atom = 0
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:03:22

View File

@ -0,0 +1,168 @@
LAMMPS (8 Mar 2018)
using 1 OpenMP thread(s) per MPI task
# Initialization
units metal
boundary p p p
atom_style full
processors * * 1 # domain decomposition over x and y
# System and atom definition
# we use 2 atom types so that inter- and intra-layer
# interactions can be specified separately
read_data hBN_AB_stack_2L_noH_equi_300K.data
orthogonal box = (0 0 0) to (43.38 42.5773 100)
2 by 2 by 1 MPI processor grid
reading atoms ...
1360 atoms
reading velocities ...
1360 velocities
0 = max # of 1-2 neighbors
0 = max # of 1-3 neighbors
0 = max # of 1-4 neighbors
1 = max # of special neighbors
mass 1 10.8110 # boron mass (g/mole) | membrane
mass 2 14.0067 # nitrogen mass (g/mole) | adsorbate
mass 3 10.8110 # boron mass (g/mole) | membrane
mass 4 14.0067 # nitrogen mass (g/mole) | adsorbate
# Separate atom groups
group membrane type 1 2
680 atoms in group membrane
group adsorbate type 3 4
680 atoms in group adsorbate
######################## Potential defition ########################
pair_style hybrid/overlay tersoff ilp/graphene/hbn 16.0 coul/shield 16.0 1
####################################################################
pair_coeff * * tersoff BNC.tersoff NULL NULL B N # chemical
Reading potential file BNC.tersoff with DATE: 2013-03-21
pair_coeff * * ilp/graphene/hbn BNCH-old.ILP B N B N # long range
pair_coeff 1 3 coul/shield 0.70
pair_coeff 1 4 coul/shield 0.69498201415576216335
pair_coeff 2 3 coul/shield 0.69498201415576216335
pair_coeff 2 4 coul/shield 0.69
####################################################################
# Neighbor update settings
neighbor 2.0 bin
neigh_modify every 1
neigh_modify delay 0
neigh_modify check yes
# calculate the COM
variable adsxcom equal xcm(adsorbate,x)
variable adsycom equal xcm(adsorbate,y)
variable adszcom equal xcm(adsorbate,z)
variable adsvxcom equal vcm(adsorbate,x)
variable adsvycom equal vcm(adsorbate,y)
variable adsvzcom equal vcm(adsorbate,z)
#### Simulation settings ####
timestep 0.001
#velocity adsorbate create 300.0 12345
fix subf membrane setforce 0.0 0.0 0.0
fix thermostat all nve
compute 0 all pair tersoff
compute 1 all pair coul/shield ecoul
compute 2 all pair ilp/graphene/hbn
variable Tersoff equal c_0
variable Ecoul equal c_1
variable EILP equal c_2
# Calculate the pair potential between the substrate and slider
compute sldsub adsorbate group/group membrane
variable Evdw equal c_sldsub
############################
# Output
thermo 100
thermo_style custom step etotal pe ke v_Evdw v_Tersoff v_EILP v_Ecoul temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom f_subf[1] f_subf[2] f_subf[3]
thermo_modify line one format float %.10f
thermo_modify flush yes norm no lost warn #ignore
#dump 1 all custom 1000 traj.lammpstrj id mol type xu yu zu
#dump_modify 1 format line "%7d %3d %3d %15.10g %15.10g %15.10g" flush yes
###### Run molecular dynamics ######
run 1000
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 18
ghost atom cutoff = 18
binsize = 9, bins = 5 5 12
6 neighbor lists, perpetual/occasional/extra = 5 1 0
(1) pair tersoff, perpetual, skip from (5)
attributes: full, newton on
pair build: skip
stencil: none
bin: none
(2) pair ilp/graphene/hbn, perpetual
attributes: full, newton on, ghost
pair build: full/bin/ghost
stencil: full/ghost/bin/3d
bin: standard
(3) pair coul/shield, perpetual, skip from (6)
attributes: half, newton on
pair build: skip
stencil: none
bin: none
(4) compute group/group, occasional, copy from (6)
attributes: half, newton on
pair build: copy
stencil: none
bin: none
(5) neighbor class addition, perpetual, copy from (2)
attributes: full, newton on
pair build: copy
stencil: none
bin: none
(6) neighbor class addition, perpetual, half/full from (5)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
Per MPI rank memory allocation (min/avg/max) = 30.63 | 30.63 | 30.64 Mbytes
Step TotEng PotEng KinEng v_Evdw v_Tersoff v_EILP v_Ecoul Temp v_adsxcom v_adsycom v_adszcom v_adsvxcom v_adsvycom v_adsvzcom f_subf[1] f_subf[2] f_subf[3]
0 -5114.6628078598 -5127.8586355055 13.1958276458 -75.3652234209 -5091.4120857465 -36.0831137829 -0.3634359761 75.1194741238 20.9113202537 20.6582215878 3.2895976612 -0.0495147937 -0.0552233516 -0.0166592619 -0.1742790202 -0.0884665936 -0.8010816801
100 -5114.6620580583 -5127.6958349342 13.0337768758 -75.2249487778 -5091.2407919311 -36.0927601416 -0.3622828614 74.1969727889 20.9076129631 20.6534162972 3.2908118318 -0.0234802196 -0.0397832410 0.0332404745 -0.2430042439 -0.1598109185 -0.5351246275
200 -5114.6630637865 -5127.5945140906 12.9314503041 -74.6445167393 -5091.1507571912 -36.0866688941 -0.3570880053 73.6144615235 20.9067696105 20.6505240051 3.2976575241 0.0078967872 -0.0170385302 0.0850447973 -0.2934041648 -0.2405295165 0.2309200807
300 -5114.6693830121 -5128.3286231421 13.6592401300 -74.2223518942 -5091.8645555419 -36.1107860098 -0.3532815904 77.7575278367 20.9090146500 20.6502445717 3.3024525026 0.0352437329 0.0112279015 -0.0021399216 -0.2166516175 -0.2410661267 0.9007458614
400 -5114.6614035404 -5127.6423784754 12.9809749350 -74.6548295432 -5091.2348011465 -36.0496340516 -0.3579432773 73.8963888364 20.9136276183 20.6526810045 3.2977225951 0.0556629502 0.0358324354 -0.0738287296 -0.1431221016 -0.1626739623 0.0673046122
500 -5114.6599876234 -5127.4097813122 12.7497936887 -75.2268687829 -5090.9284608504 -36.1195707042 -0.3617497575 72.5803506074 20.9197050770 20.6571510311 3.2909058903 0.0631939085 0.0530269602 -0.0516940297 -0.0112976844 -0.1217009147 -0.4713422319
600 -5114.6672773464 -5128.0912983829 13.4240210364 -75.3848112535 -5091.6338883189 -36.0938401510 -0.3635699131 76.4185034811 20.9258252862 20.6628322031 3.2892805234 0.0573396226 0.0579085440 0.0291853982 0.1059950758 0.0102266125 -0.7683214794
700 -5114.6609647250 -5127.7466720637 13.0857073388 -74.7981789470 -5091.2811095008 -36.1066385732 -0.3589239897 74.4925957063 20.9307092134 20.6683554324 3.2957959411 0.0396744013 0.0503347378 0.0818267711 0.1737903706 0.1258761156 0.1307185989
800 -5114.6622627667 -5128.0130406264 13.3507778597 -74.2952448854 -5091.5693975625 -36.0897180314 -0.3539250325 76.0015543464 20.9334441079 20.6725125240 3.3019570181 0.0142277646 0.0313116646 0.0291673132 0.2457478793 0.1912082770 0.7239823553
900 -5114.6675469561 -5128.1496933801 13.4821464240 -74.3644898573 -5091.6703861750 -36.1246785145 -0.3546286905 76.7493920516 20.9334403558 20.6744181494 3.3005582394 -0.0141399355 0.0063543986 -0.0561206619 0.2370151923 0.2115707560 0.7822017606
1000 -5114.6683146144 -5128.3364609113 13.6681462969 -75.1091579020 -5091.9370210069 -36.0375964349 -0.3618434694 77.8082276935 20.9306643096 20.6737238853 3.2922181699 -0.0411219854 -0.0200694204 -0.0788193565 0.2225175431 0.2377413412 -0.5875288557
Loop time of 53.3155 on 4 procs for 1000 steps with 1360 atoms
Performance: 1.621 ns/day, 14.810 hours/ns, 18.756 timesteps/s
97.6% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 49.475 | 50.978 | 52.988 | 18.0 | 95.62
Bond | 0.00045061 | 0.00066602 | 0.00086665 | 0.0 | 0.00
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.16491 | 2.1759 | 3.679 | 87.0 | 4.08
Output | 0.11871 | 0.11882 | 0.11911 | 0.0 | 0.22
Modify | 0.012956 | 0.013504 | 0.01387 | 0.3 | 0.03
Other | | 0.02828 | | | 0.05
Nlocal: 340 ave 346 max 336 min
Histogram: 1 0 1 0 1 0 0 0 0 1
Nghost: 4537.5 ave 4540 max 4534 min
Histogram: 1 0 0 0 0 0 2 0 0 1
Neighs: 62407 ave 62413 max 62402 min
Histogram: 1 0 0 1 1 0 0 0 0 1
FullNghs: 63347.5 ave 65585 max 61866 min
Histogram: 1 1 0 1 0 0 0 0 0 1
Total # of neighbors = 253926
Ave neighs/atom = 186.71
Ave special neighs/atom = 0
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:53

6
src/.gitignore vendored
View File

@ -685,6 +685,8 @@
/pair_coul_long.h /pair_coul_long.h
/pair_coul_msm.cpp /pair_coul_msm.cpp
/pair_coul_msm.h /pair_coul_msm.h
/pair_coul_shield.cpp
/pair_coul_shield.h
/pair_dipole_cut.cpp /pair_dipole_cut.cpp
/pair_dipole_cut.h /pair_dipole_cut.h
/pair_dipole_sf.cpp /pair_dipole_sf.cpp
@ -728,6 +730,10 @@
/pair_hbond_dreiding_lj.h /pair_hbond_dreiding_lj.h
/pair_hbond_dreiding_morse.cpp /pair_hbond_dreiding_morse.cpp
/pair_hbond_dreiding_morse.h /pair_hbond_dreiding_morse.h
/pair_ilp_graphene_hbn.cpp
/pair_ilp_graphene_hbn.h
/pair_kolmogorov_crespi_full.cpp
/pair_kolmogorov_crespi_full.h
/pair_kolmogorov_crespi_z.cpp /pair_kolmogorov_crespi_z.cpp
/pair_kolmogorov_crespi_z.h /pair_kolmogorov_crespi_z.h
/pair_lcbop.cpp /pair_lcbop.cpp

View File

@ -13,7 +13,7 @@
/* ---------------------------------------------------------------------- /* ----------------------------------------------------------------------
Contributing author: Wengen Ouyang (Tel Aviv University) Contributing author: Wengen Ouyang (Tel Aviv University)
e-mail: w.g.ouyang at gmail dot com e-mail: w.g.ouyang at gmail dot com
This is a Coulomb potential described in This is a Coulomb potential described in
[Maaravi et al, J. Phys. Chem. C 121, 22826-22835 (2017)] [Maaravi et al, J. Phys. Chem. C 121, 22826-22835 (2017)]
------------------------------------------------------------------------- */ ------------------------------------------------------------------------- */
@ -29,19 +29,20 @@
#include "neighbor.h" #include "neighbor.h"
#include "neigh_list.h" #include "neigh_list.h"
#include "memory.h" #include "memory.h"
#include "math_special.h"
#include "error.h" #include "error.h"
using namespace LAMMPS_NS; using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
PairCoulshield::PairCoulshield(LAMMPS *lmp) : Pair(lmp) { PairCoulShield::PairCoulShield(LAMMPS *lmp) : Pair(lmp) {
Tapflag = 1; tap_flag = 1;
} }
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
PairCoulshield::~PairCoulshield() PairCoulShield::~PairCoulShield()
{ {
if (allocated) { if (allocated) {
memory->destroy(setflag); memory->destroy(setflag);
@ -55,7 +56,7 @@ PairCoulshield::~PairCoulshield()
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
void PairCoulshield::compute(int eflag, int vflag) void PairCoulShield::compute(int eflag, int vflag)
{ {
int i,j,ii,jj,inum,jnum,itype,jtype; int i,j,ii,jj,inum,jnum,itype,jtype;
double qtmp,xtmp,ytmp,ztmp,delx,dely,delz,ecoul,fpair,Tap,dTap; double qtmp,xtmp,ytmp,ztmp,delx,dely,delz,ecoul,fpair,Tap,dTap;
@ -107,15 +108,16 @@ void PairCoulshield::compute(int eflag, int vflag)
// only include the interation between different layers // only include the interation between different layers
if (rsq < cutsq[itype][jtype] && atom->molecule[i] != atom->molecule[j]) { if (rsq < cutsq[itype][jtype] && atom->molecule[i] != atom->molecule[j]) {
r = sqrt(rsq); r = sqrt(rsq);
r3 = rsq*r; r3 = rsq*r;
rarg = 1.0/sigmae[itype][jtype]; rarg = 1.0/sigmae[itype][jtype];
th = r3 + pow(rarg,3.0); th = r3 + MathSpecial::cube(rarg);
epsr = 1.0/pow(th,0.333333333333333333333333); epsr = 1.0/pow(th,0.333333333333333333333333);
depsdr = pow(epsr,4.0); depsdr = MathSpecial::square(epsr);
Vc = qqrd2e*qtmp*q[j]*epsr; depsdr *= depsdr;
Vc = qqrd2e*qtmp*q[j]*epsr;
// turn on/off Tapper function // turn on/off taper function
if (Tapflag) { if (tap_flag) {
Tap = calc_Tap(r,sqrt(cutsq[itype][jtype])); Tap = calc_Tap(r,sqrt(cutsq[itype][jtype]));
dTap = calc_dTap(r,sqrt(cutsq[itype][jtype])); dTap = calc_dTap(r,sqrt(cutsq[itype][jtype]));
} else {Tap = 1.0; dTap = 0.0;} } else {Tap = 1.0; dTap = 0.0;}
@ -134,8 +136,8 @@ void PairCoulshield::compute(int eflag, int vflag)
} }
if (eflag) { if (eflag) {
if (Tapflag) ecoul = Vc*Tap; if (tap_flag) ecoul = Vc*Tap;
else ecoul = Vc - offset[itype][jtype]; else ecoul = Vc - offset[itype][jtype];
ecoul *= factor_coul; ecoul *= factor_coul;
} }
@ -152,7 +154,7 @@ void PairCoulshield::compute(int eflag, int vflag)
allocate all arrays allocate all arrays
------------------------------------------------------------------------- */ ------------------------------------------------------------------------- */
void PairCoulshield::allocate() void PairCoulShield::allocate()
{ {
allocated = 1; allocated = 1;
int n = atom->ntypes; int n = atom->ntypes;
@ -165,7 +167,6 @@ void PairCoulshield::allocate()
memory->create(cutsq,n+1,n+1,"pair:cutsq"); memory->create(cutsq,n+1,n+1,"pair:cutsq");
memory->create(cut,n+1,n+1,"pair:cut"); memory->create(cut,n+1,n+1,"pair:cut");
memory->create(sigmae,n+1,n+1,"pair:sigmae"); memory->create(sigmae,n+1,n+1,"pair:sigmae");
//memory->create(rme,n+1,n+1,"pair:rme");
memory->create(offset,n+1,n+1,"pair:offset"); memory->create(offset,n+1,n+1,"pair:offset");
} }
@ -173,12 +174,12 @@ void PairCoulshield::allocate()
global settings global settings
------------------------------------------------------------------------- */ ------------------------------------------------------------------------- */
void PairCoulshield::settings(int narg, char **arg) void PairCoulShield::settings(int narg, char **arg)
{ {
if (narg < 1 || narg > 2) error->all(FLERR,"Illegal pair_style command"); if (narg < 1 || narg > 2) error->all(FLERR,"Illegal pair_style command");
cut_global = force->numeric(FLERR,arg[0]); cut_global = force->numeric(FLERR,arg[0]);
if (narg == 2) Tapflag = force->numeric(FLERR,arg[1]); if (narg == 2) tap_flag = force->numeric(FLERR,arg[1]);
// reset cutoffs that have been explicitly set // reset cutoffs that have been explicitly set
@ -194,7 +195,7 @@ void PairCoulshield::settings(int narg, char **arg)
set coeffs for one or more type pairs set coeffs for one or more type pairs
------------------------------------------------------------------------- */ ------------------------------------------------------------------------- */
void PairCoulshield::coeff(int narg, char **arg) void PairCoulShield::coeff(int narg, char **arg)
{ {
if (narg < 3 || narg > 4) error->all(FLERR,"Incorrect args for pair coefficients"); if (narg < 3 || narg > 4) error->all(FLERR,"Incorrect args for pair coefficients");
if (!allocated) allocate(); if (!allocated) allocate();
@ -226,7 +227,7 @@ void PairCoulshield::coeff(int narg, char **arg)
init specific to this pair style init specific to this pair style
------------------------------------------------------------------------- */ ------------------------------------------------------------------------- */
void PairCoulshield::init_style() void PairCoulShield::init_style()
{ {
if (!atom->q_flag) if (!atom->q_flag)
error->all(FLERR,"Pair style coul/shield requires atom attribute q"); error->all(FLERR,"Pair style coul/shield requires atom attribute q");
@ -238,7 +239,7 @@ void PairCoulshield::init_style()
init for one type pair i,j and corresponding j,i init for one type pair i,j and corresponding j,i
------------------------------------------------------------------------- */ ------------------------------------------------------------------------- */
double PairCoulshield::init_one(int i, int j) double PairCoulShield::init_one(int i, int j)
{ {
if (setflag[i][j] == 0) { if (setflag[i][j] == 0) {
error->all(FLERR,"for pair style coul/shield, parameters need to be set explicitly for all pairs."); error->all(FLERR,"for pair style coul/shield, parameters need to be set explicitly for all pairs.");
@ -252,7 +253,7 @@ double PairCoulshield::init_one(int i, int j)
r = cut[i][j]; r = cut[i][j];
r3 = r*r*r; r3 = r*r*r;
rarg = 1.0/sigmae[i][j]; rarg = 1.0/sigmae[i][j];
th = r3 + pow(rarg,3.0); th = r3 + MathSpecial::cube(rarg);
epsr = 1.0/pow(th,0.333333333333333333); epsr = 1.0/pow(th,0.333333333333333333);
offset[i][j] = qqrd2e*q[i]*q[j]*epsr; offset[i][j] = qqrd2e*q[i]*q[j]*epsr;
} else offset[i][j] = 0.0; } else offset[i][j] = 0.0;
@ -269,7 +270,7 @@ double PairCoulshield::init_one(int i, int j)
proc 0 writes to restart file proc 0 writes to restart file
------------------------------------------------------------------------- */ ------------------------------------------------------------------------- */
void PairCoulshield::write_restart(FILE *fp) void PairCoulShield::write_restart(FILE *fp)
{ {
write_restart_settings(fp); write_restart_settings(fp);
@ -288,7 +289,7 @@ void PairCoulshield::write_restart(FILE *fp)
proc 0 reads from restart file, bcasts proc 0 reads from restart file, bcasts
------------------------------------------------------------------------- */ ------------------------------------------------------------------------- */
void PairCoulshield::read_restart(FILE *fp) void PairCoulShield::read_restart(FILE *fp)
{ {
read_restart_settings(fp); read_restart_settings(fp);
allocate(); allocate();
@ -312,7 +313,7 @@ void PairCoulshield::read_restart(FILE *fp)
proc 0 writes to restart file proc 0 writes to restart file
------------------------------------------------------------------------- */ ------------------------------------------------------------------------- */
void PairCoulshield::write_restart_settings(FILE *fp) void PairCoulShield::write_restart_settings(FILE *fp)
{ {
fwrite(&cut_global,sizeof(double),1,fp); fwrite(&cut_global,sizeof(double),1,fp);
fwrite(&offset_flag,sizeof(int),1,fp); fwrite(&offset_flag,sizeof(int),1,fp);
@ -323,7 +324,7 @@ void PairCoulshield::write_restart_settings(FILE *fp)
proc 0 reads from restart file, bcasts proc 0 reads from restart file, bcasts
------------------------------------------------------------------------- */ ------------------------------------------------------------------------- */
void PairCoulshield::read_restart_settings(FILE *fp) void PairCoulShield::read_restart_settings(FILE *fp)
{ {
if (comm->me == 0) { if (comm->me == 0) {
fread(&cut_global,sizeof(double),1,fp); fread(&cut_global,sizeof(double),1,fp);
@ -337,7 +338,7 @@ void PairCoulshield::read_restart_settings(FILE *fp)
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
double PairCoulshield::single(int i, int j, int itype, int jtype, double PairCoulShield::single(int i, int j, int itype, int jtype,
double rsq, double factor_coul, double factor_lj, double rsq, double factor_coul, double factor_lj,
double &fforce) double &fforce)
{ {
@ -349,13 +350,14 @@ double PairCoulshield::single(int i, int j, int itype, int jtype,
r = sqrt(rsq); r = sqrt(rsq);
r3 = rsq*r; r3 = rsq*r;
rarg = 1.0/sigmae[itype][jtype]; rarg = 1.0/sigmae[itype][jtype];
th = r3 + pow(rarg,3.0); th = r3 + MathSpecial::cube(rarg);
epsr = 1.0/pow(th,0.333333333333333333); epsr = 1.0/pow(th,0.333333333333333333);
depsdr = pow(epsr,4.0); depsdr = epsr*epsr;
depsdr *= depsdr;
Vc = qqrd2e*q[i]*q[j]*epsr; Vc = qqrd2e*q[i]*q[j]*epsr;
// turn on/off Tapper function // turn on/off taper function
if (Tapflag) { if (tap_flag) {
Tap = calc_Tap(r,sqrt(cutsq[itype][jtype])); Tap = calc_Tap(r,sqrt(cutsq[itype][jtype]));
dTap = calc_dTap(r,sqrt(cutsq[itype][jtype])); dTap = calc_dTap(r,sqrt(cutsq[itype][jtype]));
} else {Tap = 1.0; dTap = 0.0;} } else {Tap = 1.0; dTap = 0.0;}
@ -364,7 +366,7 @@ double PairCoulshield::single(int i, int j, int itype, int jtype,
fvc = forcecoul*Tap - Vc*dTap/r; fvc = forcecoul*Tap - Vc*dTap/r;
fforce = factor_coul*fvc; fforce = factor_coul*fvc;
if (Tapflag) phishieldec = factor_coul*Vc*Tap; if (tap_flag) phishieldec = factor_coul*Vc*Tap;
else phishieldec = Vc - offset[itype][jtype]; else phishieldec = Vc - offset[itype][jtype];
return factor_coul*phishieldec; return factor_coul*phishieldec;
} }

View File

@ -13,7 +13,7 @@
#ifdef PAIR_CLASS #ifdef PAIR_CLASS
PairStyle(coul/shield,PairCoulshield) PairStyle(coul/shield,PairCoulShield)
#else #else
@ -24,10 +24,10 @@ PairStyle(coul/shield,PairCoulshield)
namespace LAMMPS_NS { namespace LAMMPS_NS {
class PairCoulshield : public Pair { class PairCoulShield : public Pair {
public: public:
PairCoulshield(class LAMMPS *); PairCoulShield(class LAMMPS *);
virtual ~PairCoulshield(); virtual ~PairCoulShield();
virtual void compute(int, int); virtual void compute(int, int);
@ -47,7 +47,7 @@ class PairCoulshield : public Pair {
double **cut; double **cut;
double **sigmae, **offset; double **sigmae, **offset;
//double a_eps, b_eps, eps_s; //double a_eps, b_eps, eps_s;
int Tapflag; int tap_flag;
void allocate(); void allocate();

View File

@ -1,143 +1,143 @@
/* ---------------------------------------------------------------------- /* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under certain rights in this software. This software is distributed under
the GNU General Public License. the GNU General Public License.
See the README file in the top-level LAMMPS directory. See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */ ------------------------------------------------------------------------- */
#ifdef PAIR_CLASS #ifdef PAIR_CLASS
PairStyle(ILP/graphene/hBN,PairILP) PairStyle(ilp/graphene/hbn,PairILPGrapheneHBN)
#else #else
#ifndef LMP_PAIR_ILP_H #ifndef LMP_PAIR_ILP_GRAPHENE_HBN_H
#define LMP_PAIR_ILP_H #define LMP_PAIR_ILP_GRAPHENE_HBN_H
#include "pair.h" #include "pair.h"
#include "my_page.h" #include "my_page.h"
#include <math.h> #include <math.h>
namespace LAMMPS_NS { namespace LAMMPS_NS {
class PairILP : public Pair { class PairILPGrapheneHBN : public Pair {
public: public:
PairILP(class LAMMPS *); PairILPGrapheneHBN(class LAMMPS *);
virtual ~PairILP(); virtual ~PairILPGrapheneHBN();
virtual void compute(int, int); virtual void compute(int, int);
void settings(int, char **); void settings(int, char **);
void coeff(int, char **); void coeff(int, char **);
double init_one(int, int); double init_one(int, int);
void init_style(); void init_style();
void calc_normal(); void calc_normal();
int pack_forward_comm(int, int *, double *, int, int *); int pack_forward_comm(int, int *, double *, int, int *);
void unpack_forward_comm(int, int, double *); void unpack_forward_comm(int, int, double *);
double single(int, int, int, int, double, double, double, double &); double single(int, int, int, int, double, double, double, double &);
protected: protected:
int me; int me;
int maxlocal; // size of numneigh, firstneigh arrays int maxlocal; // size of numneigh, firstneigh arrays
int pgsize; // size of neighbor page int pgsize; // size of neighbor page
int oneatom; // max # of neighbors for one atom int oneatom; // max # of neighbors for one atom
MyPage<int> *ipage; // neighbor list pages MyPage<int> *ipage; // neighbor list pages
int *ILP_numneigh; // # of pair neighbors for each atom int *ILP_numneigh; // # of pair neighbors for each atom
int **ILP_firstneigh; // ptr to 1st neighbor of each atom int **ILP_firstneigh; // ptr to 1st neighbor of each atom
int tap_flag; // flag to turn on/off Tapper function int tap_flag; // flag to turn on/off taper function
struct Param { struct Param {
double z0,alpha,epsilon,C,delta,d,sR,reff,C6,S; double z0,alpha,epsilon,C,delta,d,sR,reff,C6,S;
double delta2inv,seff,lambda,rcut; double delta2inv,seff,lambda,rcut;
int ielement,jelement; int ielement,jelement;
}; };
Param *params; // parameter set for I-J interactions Param *params; // parameter set for I-J interactions
char **elements; // names of unique elements char **elements; // names of unique elements
int **elem2param; // mapping from element pairs to parameters int **elem2param; // mapping from element pairs to parameters
int *map; // mapping from atom types to elements int *map; // mapping from atom types to elements
int nelements; // # of unique elements int nelements; // # of unique elements
int nparams; // # of stored parameter sets int nparams; // # of stored parameter sets
int maxparam; // max # of parameter sets int maxparam; // max # of parameter sets
int nmax; // max # of atoms int nmax; // max # of atoms
double cut_global; double cut_global;
double cut_normal; double cut_normal;
double **cut; double **cut;
double **cutILPsq; // mapping the cutoff from element pairs to parameters double **cutILPsq; // mapping the cutoff from element pairs to parameters
double **offset; double **offset;
double **normal; double **normal;
double ***dnormdri; double ***dnormdri;
double ****dnormal; double ****dnormal;
void read_file( char * ); void read_file( char * );
void allocate(); void allocate();
void ILP_neigh(); void ILP_neigh();
/* ----Calculate the long-range cutoff term */ /* ----Calculate the long-range cutoff term */
inline double calc_Tap(double r_ij, double Rcut) { inline double calc_Tap(double r_ij, double Rcut) {
double Tap,r; double Tap,r;
double Tap_coeff[8] = {1.0,0.0,0.0,0.0,-35.0,84.0,-70.0,20.0}; double Tap_coeff[8] = {1.0,0.0,0.0,0.0,-35.0,84.0,-70.0,20.0};
r = r_ij/Rcut; r = r_ij/Rcut;
if(r >= 1.0) {Tap = 0.0;} if(r >= 1.0) {Tap = 0.0;}
else { else {
Tap = Tap_coeff[7] * r + Tap_coeff[6]; Tap = Tap_coeff[7] * r + Tap_coeff[6];
Tap = Tap * r + Tap_coeff[5]; Tap = Tap * r + Tap_coeff[5];
Tap = Tap * r + Tap_coeff[4]; Tap = Tap * r + Tap_coeff[4];
Tap = Tap * r + Tap_coeff[3]; Tap = Tap * r + Tap_coeff[3];
Tap = Tap * r + Tap_coeff[2]; Tap = Tap * r + Tap_coeff[2];
Tap = Tap * r + Tap_coeff[1]; Tap = Tap * r + Tap_coeff[1];
Tap = Tap * r + Tap_coeff[0]; Tap = Tap * r + Tap_coeff[0];
} }
return(Tap); return(Tap);
} }
/* ----Calculate the derivatives of long-range cutoff term */ /* ----Calculate the derivatives of long-range cutoff term */
inline double calc_dTap(double r_ij, double Rcut) { inline double calc_dTap(double r_ij, double Rcut) {
double dTap,r; double dTap,r;
double Tap_coeff[8] = {1.0,0.0,0.0,0.0,-35.0,84.0,-70.0,20.0}; double Tap_coeff[8] = {1.0,0.0,0.0,0.0,-35.0,84.0,-70.0,20.0};
r = r_ij/Rcut; r = r_ij/Rcut;
if(r >= 1.0) {dTap = 0.0;} if(r >= 1.0) {dTap = 0.0;}
else { else {
dTap = 7.0*Tap_coeff[7] * r + 6.0*Tap_coeff[6]; dTap = 7.0*Tap_coeff[7] * r + 6.0*Tap_coeff[6];
dTap = dTap * r + 5.0*Tap_coeff[5]; dTap = dTap * r + 5.0*Tap_coeff[5];
dTap = dTap * r + 4.0*Tap_coeff[4]; dTap = dTap * r + 4.0*Tap_coeff[4];
dTap = dTap * r + 3.0*Tap_coeff[3]; dTap = dTap * r + 3.0*Tap_coeff[3];
dTap = dTap * r + 2.0*Tap_coeff[2]; dTap = dTap * r + 2.0*Tap_coeff[2];
dTap = dTap * r + Tap_coeff[1]; dTap = dTap * r + Tap_coeff[1];
dTap = dTap/Rcut; dTap = dTap/Rcut;
} }
return(dTap); return(dTap);
} }
}; };
} }
#endif #endif
#endif #endif
/* ERROR/WARNING messages: /* ERROR/WARNING messages:
E: Illegal ... command E: Illegal ... command
Self-explanatory. Check the input script syntax and compare to the Self-explanatory. Check the input script syntax and compare to the
documentation for the command. You can use -echo screen as a documentation for the command. You can use -echo screen as a
command-line option when running LAMMPS to see the offending line. command-line option when running LAMMPS to see the offending line.
E: Incorrect args for pair coefficients E: Incorrect args for pair coefficients
Self-explanatory. Check the input script or data file. Self-explanatory. Check the input script or data file.
E: All pair coeffs are not set E: All pair coeffs are not set
All pair coefficients must be set in the data file or by the All pair coefficients must be set in the data file or by the
pair_coeff command before running a simulation. pair_coeff command before running a simulation.
*/ */

File diff suppressed because it is too large Load Diff

View File

@ -1,147 +1,147 @@
/* ---------------------------------------------------------------------- /* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under certain rights in this software. This software is distributed under
the GNU General Public License. the GNU General Public License.
See the README file in the top-level LAMMPS directory. See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */ ------------------------------------------------------------------------- */
#ifdef PAIR_CLASS #ifdef PAIR_CLASS
PairStyle(kolmogorov/crespi/full,PairKolmogorovCrespiFull) PairStyle(kolmogorov/crespi/full,PairKolmogorovCrespiFull)
#else #else
#ifndef LMP_PAIR_KolmogorovCrespi_FULL_H #ifndef LMP_PAIR_KolmogorovCrespi_FULL_H
#define LMP_PAIR_KolmogorovCrespi_FULL_H #define LMP_PAIR_KolmogorovCrespi_FULL_H
#include "pair.h" #include "pair.h"
#include "my_page.h" #include "my_page.h"
#include <math.h> #include <math.h>
namespace LAMMPS_NS { namespace LAMMPS_NS {
class PairKolmogorovCrespiFull : public Pair { class PairKolmogorovCrespiFull : public Pair {
public: public:
PairKolmogorovCrespiFull(class LAMMPS *); PairKolmogorovCrespiFull(class LAMMPS *);
virtual ~PairKolmogorovCrespiFull(); virtual ~PairKolmogorovCrespiFull();
virtual void compute(int, int); virtual void compute(int, int);
void settings(int, char **); void settings(int, char **);
void coeff(int, char **); void coeff(int, char **);
double init_one(int, int); double init_one(int, int);
void init_style(); void init_style();
void calc_normal(); void calc_normal();
int pack_forward_comm(int, int *, double *, int, int *); int pack_forward_comm(int, int *, double *, int, int *);
void unpack_forward_comm(int, int, double *); void unpack_forward_comm(int, int, double *);
double single(int, int, int, int, double, double, double, double &); double single(int, int, int, int, double, double, double, double &);
protected: protected:
int me; int me;
int maxlocal; // size of numneigh, firstneigh arrays int maxlocal; // size of numneigh, firstneigh arrays
int pgsize; // size of neighbor page int pgsize; // size of neighbor page
int oneatom; // max # of neighbors for one atom int oneatom; // max # of neighbors for one atom
MyPage<int> *ipage; // neighbor list pages MyPage<int> *ipage; // neighbor list pages
int *KC_numneigh; // # of pair neighbors for each atom int *KC_numneigh; // # of pair neighbors for each atom
int **KC_firstneigh; // ptr to 1st neighbor of each atom int **KC_firstneigh; // ptr to 1st neighbor of each atom
int tap_flag; // flag to turn on/off Tapper function int tap_flag; // flag to turn on/off taper function
struct Param { struct Param {
double z0,C0,C2,C4,C,delta,lambda,A,S; double z0,C0,C2,C4,C,delta,lambda,A,S;
double delta2inv,z06,rcut; double delta2inv,z06,rcut;
int ielement,jelement; int ielement,jelement;
}; };
Param *params; // parameter set for I-J interactions Param *params; // parameter set for I-J interactions
char **elements; // names of unique elements char **elements; // names of unique elements
int **elem2param; // mapping from element pairs to parameters int **elem2param; // mapping from element pairs to parameters
int *map; // mapping from atom types to elements int *map; // mapping from atom types to elements
int nelements; // # of unique elements int nelements; // # of unique elements
int nparams; // # of stored parameter sets int nparams; // # of stored parameter sets
int maxparam; // max # of parameter sets int maxparam; // max # of parameter sets
int nmax; // max # of atoms int nmax; // max # of atoms
double cut_global; double cut_global;
double cut_normal; double cut_normal;
double **cut; double **cut;
double **cutKCsq; double **cutKCsq;
double **offset; double **offset;
double **normal; double **normal;
double ***dnormdri; double ***dnormdri;
double ****dnormal; double ****dnormal;
void read_file( char * ); void read_file( char * );
void allocate(); void allocate();
void KC_neigh(); void KC_neigh();
/* ----Calculate the long-range cutoff term */ /* ----Calculate the long-range cutoff term */
inline double calc_Tap(double r_ij, double Rcut) { inline double calc_Tap(double r_ij, double Rcut) {
double Tap,r; double Tap,r;
double Tap_coeff[8] = {1.0,0.0,0.0,0.0,-35.0,84.0,-70.0,20.0}; double Tap_coeff[8] = {1.0,0.0,0.0,0.0,-35.0,84.0,-70.0,20.0};
r = r_ij/Rcut; r = r_ij/Rcut;
if(r >= 1.0) {Tap = 0.0;} if(r >= 1.0) {Tap = 0.0;}
else{ else{
Tap = Tap_coeff[7] * r + Tap_coeff[6]; Tap = Tap_coeff[7] * r + Tap_coeff[6];
Tap = Tap * r + Tap_coeff[5]; Tap = Tap * r + Tap_coeff[5];
Tap = Tap * r + Tap_coeff[4]; Tap = Tap * r + Tap_coeff[4];
Tap = Tap * r + Tap_coeff[3]; Tap = Tap * r + Tap_coeff[3];
Tap = Tap * r + Tap_coeff[2]; Tap = Tap * r + Tap_coeff[2];
Tap = Tap * r + Tap_coeff[1]; Tap = Tap * r + Tap_coeff[1];
Tap = Tap * r + Tap_coeff[0]; Tap = Tap * r + Tap_coeff[0];
} }
return(Tap); return(Tap);
} }
/* ----Calculate the derivatives of long-range cutoff term */ /* ----Calculate the derivatives of long-range cutoff term */
inline double calc_dTap(double r_ij, double Rcut) { inline double calc_dTap(double r_ij, double Rcut) {
double dTap,r; double dTap,r;
double Tap_coeff[8] = {1.0,0.0,0.0,0.0,-35.0,84.0,-70.0,20.0}; double Tap_coeff[8] = {1.0,0.0,0.0,0.0,-35.0,84.0,-70.0,20.0};
r = r_ij/Rcut; r = r_ij/Rcut;
if(r >= 1.0) {dTap = 0.0;} if(r >= 1.0) {dTap = 0.0;}
else { else {
dTap = 7.0*Tap_coeff[7] * r + 6.0*Tap_coeff[6]; dTap = 7.0*Tap_coeff[7] * r + 6.0*Tap_coeff[6];
dTap = dTap * r + 5.0*Tap_coeff[5]; dTap = dTap * r + 5.0*Tap_coeff[5];
dTap = dTap * r + 4.0*Tap_coeff[4]; dTap = dTap * r + 4.0*Tap_coeff[4];
dTap = dTap * r + 3.0*Tap_coeff[3]; dTap = dTap * r + 3.0*Tap_coeff[3];
dTap = dTap * r + 2.0*Tap_coeff[2]; dTap = dTap * r + 2.0*Tap_coeff[2];
dTap = dTap * r + Tap_coeff[1]; dTap = dTap * r + Tap_coeff[1];
dTap = dTap/Rcut; dTap = dTap/Rcut;
} }
return(dTap); return(dTap);
} }
}; };
} }
#endif #endif
#endif #endif
/* ERROR/WARNING messages: /* ERROR/WARNING messages:
E: Illegal ... command E: Illegal ... command
Self-explanatory. Check the input script syntax and compare to the Self-explanatory. Check the input script syntax and compare to the
documentation for the command. You can use -echo screen as a documentation for the command. You can use -echo screen as a
command-line option when running LAMMPS to see the offending line. command-line option when running LAMMPS to see the offending line.
E: Incorrect args for pair coefficients E: Incorrect args for pair coefficients
Self-explanatory. Check the input script or data file. Self-explanatory. Check the input script or data file.
E: All pair coeffs are not set E: All pair coeffs are not set
All pair coefficients must be set in the data file or by the All pair coefficients must be set in the data file or by the
pair_coeff command before running a simulation. pair_coeff command before running a simulation.
*/ */