Merge branch 'master' into spin-kokkos

This commit is contained in:
Axel Kohlmeyer
2021-04-16 17:08:38 -04:00
959 changed files with 35662 additions and 7361 deletions

View File

@ -0,0 +1,36 @@
This directory has two input scripts that illustrates how to use fix
charge_regulation in LAMMPS to perform coarse-grained molecular dynamics
(MD) simulations with incorporation of charge regulation effects. The
charge regulation is implemented via Monte Carlo (MC) sampling following
the reaction ensemble MC approach, producing a MC/MD hybrid tool for
modeling charge regulation in solvated systems.
The script `in.chreg-acid` sets up a simple weak acid electrolyte
(pH=7,pKa=6,pI=3). Four different types of MC moves are implemented:
acid protonation & de-protonation, and monovalent ion pair insertion and
deletion. Note here we have grouped all free monovalent ions into a
single type, a physically natural choice on the level of coarse-grained
primitive electrolyte models, which increases the calculation
performance but has no effects on thermodynamic observables. The
variables such as pH, pKa, pI, and lb at the top of the input script can
be adjusted to play with various simulation parameters. The cumulative
MC attempted moves and cumulative number of accepted moves, as well as,
current number of neutral and charged acid particles, neutral and
charged base particles (in this example always 0), and the current
number of free cations and anions in the system are printed in the
output.
The script `in.chreg-polymer` sets up a weak poly-electrolyte chain of
N=80 beads. Each bead is a weak acid with pKa=5 and solution has pH=7
and monovalent salt chemical potential pI=3. In this example, we choose
to treat salt ions, protons, and hydroxyl ions separately, which results
in 5 types of MC moves: acid [type 1] protonation & de-protonation (with
protons [type 4] insertion & deletion), acid [type 1] protonation &
de-protonation (with salt cation [type 2] insertion & deletion), water
self-ionization (insertion and deletion of proton [type4] and hydroxyl
ion [type 5] pair), insertion and deletion of monovalent salt pair [type
2 and type 3] , insertion and deletion of a proton [type4] and salt
anion [type 3]. The current number of neutral and charged acid
particles, the current number of free salt cations and anions, and the
current number of protons and hydroxyl ions are printed in the output.

View File

@ -0,0 +1,235 @@
LAMMPS data file generated by get_input.py
219 atoms
3 atom types
-2.5000000000000000e+01 2.5000000000000000e+01 xlo xhi
-2.5000000000000000e+01 2.5000000000000000e+01 ylo yhi
-2.5000000000000000e+01 2.5000000000000000e+01 zlo zhi
Masses
1 1
2 1
3 1
Atoms
1 1 0 2.5983275747497636 -8.368052973860795 20.001288664343484
2 1 -1 -18.182868728594865 -8.079792367885453 8.253737231981816
3 1 -1 -17.437350808966414 8.120411567445771 10.747650340639332
4 1 -1 6.502476583291578 -23.497326620756837 19.948223080086798
5 1 -1 -22.528179279677296 -18.783433570718127 -17.964657736688018
6 1 -1 -9.713496019164342 18.97235576760402 -19.495620818582825
7 1 -1 -12.831976006720659 0.12265736526942561 -21.679396938423718
8 1 -1 20.909063679212295 -2.16535062758771 0.46197866620165584
9 1 -1 23.86211981166997 24.024928465132284 10.534067202515907
10 1 -1 -0.5289298325031275 23.820222457999776 -2.657199543669442
11 1 -1 9.57021229491361 11.973871502198485 3.4206509716759186
12 1 -1 -10.201559985782705 7.557482594092384 12.07004973873643
13 1 -1 4.898458045226889 2.0169997859717945 -20.765285372762087
14 1 -1 -24.086606883730077 4.424991619615298 -4.204294764756856
15 1 -1 3.6837161829600795 -4.763233144818308 -12.75873457519811
16 1 -1 -12.217842496816345 -17.720229208905618 -13.556354139556914
17 1 -1 -21.456229140133704 -7.423996317612119 -6.94398044071275
18 1 -1 13.697298849253912 8.503639732052164 8.085487457359058
19 1 -1 -5.764222710061347 11.49890485049034 -5.1113880296575935
20 1 -1 3.9944161041544426 16.928204188257893 -14.875635895409372
21 1 -1 4.509525276444776 16.63590711792657 -22.21846494992397
22 1 -1 22.115374932704306 -18.97293932558108 -23.982486000144267
23 1 -1 14.169061011408473 -16.69837647199978 13.779039228068108
24 1 -1 17.186846147657228 8.827459489898189 23.055435051390333
25 1 -1 2.9822901981431045 -16.83687718528342 -21.278623587083484
26 1 -1 16.657554689423897 -1.6217275605348647 -11.315859420404218
27 1 -1 19.215533149393543 -15.512634977936068 7.2701088767584565
28 1 -1 -8.886744157248422 -24.09644410100167 4.013016013803799
29 1 -1 20.99918340066754 4.4716257356730225 0.3847245765737597
30 1 -1 1.3442294253060716 5.601341425720583 -14.918594492786674
31 1 -1 -6.962977050326831 20.470183675946515 -16.37885865567279
32 1 -1 -9.98531733187143 9.52233798117566 -24.979630708193724
33 1 -1 -17.327989778292306 5.761352103841766 5.720220488689204
34 1 -1 5.168359673466362 -23.698812306679418 2.6199762372169744
35 1 -1 18.978042448492154 6.41188742965139 6.31975357155018
36 1 -1 -16.38534911663758 -14.8262205163943 4.125239045887575
37 1 -1 7.974455406459249 -18.88332583451115 11.00721254217055
38 1 -1 13.779816416416402 1.8581999350851426 9.104219696003227
39 1 -1 -23.90949397031401 -3.346877828308571 -10.228782973473443
40 1 -1 21.61647622174447 8.443955423089903 -19.12066464239769
41 1 -1 -8.823979405515548 14.461154001848172 16.061704411241706
42 1 -1 -2.4406878944912513 12.5535360118296 20.606764200087852
43 1 -1 -18.459404356124697 15.260951448001258 21.187332685021346
44 1 -1 2.2354003384439878 -23.350013178190736 11.369307324043625
45 1 -1 15.595889705552018 -6.6075680254604805 5.434256329408505
46 1 -1 -17.528243443870238 4.109747707896265 -1.4167331089310942
47 1 -1 2.161977144405782 -16.511059804921263 -12.186191310598671
48 1 -1 -8.685671837367341 -7.0743613044263185 -1.1561844713769105
49 1 -1 15.62258718398045 -6.559293763708908 20.556775995508488
50 1 -1 -6.965207014475155 -14.348784897390543 -14.421447863144754
51 1 -1 -12.099361509567913 -24.62785640990423 -15.839126670614329
52 1 -1 6.673854222058246 7.83575773885061 -9.714128155619994
53 1 -1 -17.413453800948826 12.386754276446203 -16.882300786608994
54 1 -1 21.8966589175091 12.485943283688762 -14.553421680298634
55 1 -1 -8.37629917390651 -24.783875012947064 7.454467809536389
56 1 -1 14.081149297694104 -21.719204113108943 -17.447225564400064
57 1 -1 4.681992702049627 1.9719544892622558 -7.823736613205725
58 1 -1 4.353171917533494 15.86928389762705 24.669680272563014
59 1 -1 23.31502072066573 -4.685724298328946 2.459643890128799
60 1 -1 7.0470920520598455 23.016693234922386 -13.139471333592677
61 1 -1 11.725555941181668 -15.809323171320772 -1.6292879532275037
62 1 -1 -20.36388898925061 -12.084932320023162 -22.816700826388757
63 1 -1 -2.492146614764735 -0.7314052253623018 -15.89959178250266
64 1 -1 -22.45303825831233 -11.27996814407809 -9.553770912146142
65 1 -1 24.76771926037101 20.128947543233757 10.528974830883733
66 1 -1 11.326213670190818 -11.624187194192492 -9.687726413467862
67 1 -1 -5.712764220166093 15.778887306376163 -0.9263244618113831
68 1 -1 -15.073201136996362 -12.372916148178115 -5.461704510273556
69 1 -1 -5.82976670348781 -4.57812040989473 9.0443548565365
70 1 -1 -5.429195387856279 1.4542054472230177 -7.397291151203568
71 1 -1 -23.385555726942343 -11.924588975396505 3.8215294321466153
72 1 -1 -1.0694104826815725 2.999945633116507 3.67092922106918
73 1 -1 12.134312161994352 1.9747455475585376 -14.895893366599623
74 1 -1 21.30950120583112 18.97294626436546 -17.520867878211376
75 1 -1 -24.356703356157063 3.594879254976714 17.172993705171677
76 1 -1 12.634233603338409 24.373499564220822 4.561976273909789
77 1 -1 -10.740243207970495 19.345205140729554 -3.3368424800818097
78 1 -1 -3.027848793907552 10.604939843027267 7.493012332728249
79 1 -1 5.000539296336658 11.770088203844622 17.227492055930185
80 1 -1 1.1585200269400353 -24.45822157176123 -12.515688997756257
81 1 -1 1.9163088584430596 -14.064330279670672 11.302445490552905
82 1 -1 -20.857041355570576 21.292791787236673 17.397470691573346
83 1 -1 -24.50473305235651 -12.741459355708756 -1.9325218065560357
84 1 -1 2.658628688373309 -1.1131226252194608 7.491603553398086
85 1 -1 -18.515435126408363 24.20642384141299 14.466889392835121
86 1 -1 19.63928177206153 9.942655640416291 8.691463646789934
87 1 -1 -7.69626451160762 11.762517043363786 -7.457263991495665
88 1 -1 1.051431093064835 -11.460307039827766 16.90304637479744
89 1 -1 0.9157815447227939 23.656751182559688 -6.538587603918376
90 1 -1 23.330169435555234 -7.293893221439802 -10.739388379883973
91 1 -1 1.3454906653067376 0.3584300740797559 8.837879234629618
92 1 -1 -21.93056639286312 -10.890279576013356 -10.412914392053596
93 1 -1 21.9136101677979 -10.780221720642636 11.543925933359859
94 1 -1 1.213289938136601 -7.171863230861625 20.734527885288102
95 1 -1 23.102370131877777 21.949933206350458 0.29281565885028016
96 1 -1 -18.917780884063298 -0.03244735062602544 23.633906995676227
97 1 -1 7.583004866601307 10.74178675512821 -4.857297835527785
98 1 -1 -7.4910066746799835 -14.168364618485734 -6.426540836249767
99 1 -1 -20.672200987670426 -8.746789722660697 11.011389790610103
100 1 -1 -18.662115132221917 -21.356740361991612 -8.735991534410413
101 2 1 11.900973676882046 6.591531431964558 19.018193594877637
102 2 1 -23.433591822114983 -18.956429005519567 4.8373984358422994
103 2 1 -11.825475204099472 -3.8206287568445134 3.1167558949026173
104 2 1 -17.49780467176259 -23.115560141825554 9.614132296727426
105 2 1 10.88916113281772 4.512200980010334 18.685489050240854
106 2 1 -22.04662313800728 23.973268925992897 -23.417792740205652
107 2 1 -13.57041123540546 17.3687874050987 21.186270978357783
108 2 1 6.586851196789095 16.27860887432974 -3.638909639278946
109 2 1 8.191448685630277 6.828880619305412 -6.347576950950089
110 2 1 -15.723292856220288 -20.484673256634117 -15.14713811293425
111 2 1 18.58081219522701 19.060706710849452 -10.295676869062909
112 2 1 -21.09194001526127 -7.739334786748358 5.417635948058724
113 2 1 -14.10404878784055 -15.769737592448523 -18.881834262561505
114 2 1 -14.644589058195612 8.84169065013063 8.611654925486256
115 2 1 -11.719050253933538 -4.9700119000832 -0.9846728956163453
116 2 1 19.498247505274143 -10.418045613133986 -22.12098182226518
117 2 1 21.857683401772697 20.157098661061575 -13.652393197742995
118 2 1 -17.623414455798407 21.873813778550875 -6.533965802006303
119 2 1 7.231785003326529 -13.925962842972222 5.360080190636602
120 2 1 -7.509430039873415 19.13541714591672 -16.23545960168472
121 2 1 -4.048249209544995 13.126195473202351 -7.156541250053138
122 2 1 -20.26837137264583 21.46366988603839 15.603080527043964
123 2 1 -4.478253524569759 -3.1812369811955783 -18.52918159641348
124 2 1 21.541019047040052 13.514999235394065 -1.8086547561089752
125 2 1 -15.223319907923727 -5.958117989814905 -7.194967640819577
126 2 1 -20.87181173003304 -7.66780336209651 20.518235718821714
127 2 1 -3.7444846073700297 21.014628245718292 7.197818215477007
128 2 1 -5.904222844268787 7.656315546673127 -1.3911802017487425
129 2 1 -21.49072414090769 -23.123923448235523 10.49453669763092
130 2 1 24.90628307456096 7.081046671281136 -14.422530828641655
131 2 1 -12.173002002514222 -23.250366655717176 -5.145802772598103
132 2 1 -19.68809858318764 4.476541650697328 6.249229323733747
133 2 1 16.85550827580734 -0.8462194407221624 18.011901711631936
134 2 1 17.289399533444858 -11.99379336569853 11.875868193611936
135 2 1 19.532020913911126 -23.053375288330326 -4.9162076250112605
136 2 1 -12.432304028989998 5.029488375070969 7.535325299264009
137 2 1 14.934807008644 8.086694342170496 19.68691014849572
138 2 1 -7.088283921093918 -23.094109864922018 16.57088328184242
139 2 1 14.77413976080318 21.343550134324772 13.996489344579572
140 2 1 -14.606423208703657 -6.928316926567433 -22.717483260149475
141 2 1 -17.139771555632173 14.533410346451518 -21.83064865887975
142 2 1 4.261830086466784 15.518968841247663 -17.791505649414617
143 2 1 -9.814793042774223 -5.120956154726329 14.054454130549104
144 2 1 8.313311590434793 3.9666876022475606 -20.677101093823236
145 2 1 10.603190079756637 -2.62347089527481 1.6661989541795634
146 2 1 -17.763718339721695 1.2541370478041287 -21.55649971308305
147 2 1 -8.538066365356812 14.81814356892842 -4.478673557614034
148 2 1 -5.809558827384787 14.611789154829552 13.287687188309562
149 2 1 8.986830839040898 -17.43898584267833 -18.08640526127862
150 2 1 -13.315275244526854 8.890431200255954 -8.708179477452443
151 2 1 -0.5407152591412618 -23.67970550599055 -24.1586910560046
152 2 1 -19.79961109336906 -16.10906604558887 -5.879899717095562
153 2 1 -23.626316306846658 9.337407355717588 -9.640842288307239
154 2 1 -18.847256196659333 -16.303517291166603 -10.786416046984721
155 2 1 13.567770091716845 -24.4927974402177 8.896906985984664
156 2 1 13.652894892068794 -24.87567116574863 21.89026113439551
157 2 1 -8.575912713332162 9.92386172372207 5.029537530028822
158 2 1 20.69339436974964 1.129252448454178 0.3584458063532807
159 2 1 -0.9971941518705947 18.317397852358788 6.795424830570379
160 2 1 23.155704681402298 15.458725773368961 17.01599672991628
161 2 1 22.278634187244123 14.642946508468171 20.543957651530896
162 2 1 9.771629496835963 -21.696904301438853 -5.259678202922196
163 2 1 5.253009955872763 17.911287158418148 15.769047957152992
164 2 1 -20.759038961257414 5.59089552770853 -12.383953925685166
165 2 1 3.2163819108147145 -4.948608591009169 -17.85036103684716
166 2 1 20.637631925250837 9.109955226257064 6.177181979863878
167 2 1 5.306344093540837 12.647347581939556 23.229957406774105
168 2 1 -24.15187998806597 17.263903348029615 -17.141028077545826
169 2 1 -15.705280442832997 -15.655358704303895 -10.488762557871972
170 2 1 -6.601131108664461 -22.50322976595015 -5.672942609306119
171 2 1 22.869179482568555 13.369592422303498 -9.378437532422556
172 2 1 -23.151055417980903 -3.928919101213168 -11.117061489640207
173 2 1 1.3592343286386246 -18.552063924235036 -15.346172149331993
174 2 1 10.23567488314778 -18.14207926130103 -1.6884247085891886
175 2 1 12.595888032974493 -1.7416169207452157 -21.786811832485718
176 2 1 -0.14792438162408672 17.11748549051584 1.2788726677139053
177 2 1 24.349235298880274 -8.664350854740949 12.4309854455257
178 2 1 -18.827147816604253 -18.80258748867273 -1.6980553939283212
179 2 1 -9.048793002383698 -1.788614428205263 -11.841289777017172
180 2 1 -22.49667217853208 -22.112076711777533 10.01393503943838
181 2 1 -16.183333848138453 1.3098533508906556 0.8096413611556166
182 2 1 -4.007575369376703 -24.447854073342157 -19.683971619997376
183 2 1 8.79123015290173 -15.890906503248287 -23.45721570121758
184 2 1 -8.557898021171628 -21.985380426316674 22.626382729361595
185 2 1 7.143974673263372 16.57516065778192 0.5907315164854055
186 2 1 7.05280226857041 6.658154377550723 17.993436860997946
187 2 1 20.98391844656716 -3.7711929542825544 -22.37222924252256
188 2 1 -8.856382807041598 -16.421301042649826 -7.682473719905396
189 2 1 -14.381919492441797 -7.667674808763277 -10.178028203828621
190 2 1 -22.93472549116592 10.072854607637751 3.756868463885592
191 2 1 9.458987867260412 17.23200182595278 -0.03503381482496337
192 2 1 11.013603635791974 19.842184408029837 -5.83598462187852
193 2 1 23.28897987479008 2.835578651649044 -20.512845011389647
194 2 1 -18.86161127148128 8.956542530565656 14.193388541103026
195 2 1 13.688477473034126 -15.973205475346514 10.952445409682397
196 2 1 2.1058159557459497 2.740725960214597 -23.72037436968614
197 2 1 20.982351847235442 7.072739454450108 -24.07322254392252
198 2 1 5.962360707177609 -19.424513569281604 22.469955103109243
199 2 1 -17.13607356062674 20.038457022813326 12.94227215395123
200 2 1 11.592617137491743 22.283887092702138 2.339699650677858
201 2 1 -1.3864952037065237 19.199632510575505 -7.684210221911414
202 2 1 -22.44476570586083 -19.66385674506424 -8.981660607669522
203 2 1 0.36547911522815824 -7.628556098996082 16.326944822668068
204 2 1 -9.766164330974753 24.38435844399602 -14.352553497163
205 2 1 -0.6310792726759544 -5.625399375968325 13.665993163571486
206 2 1 2.6795300975636103 -0.37097710463575595 15.575183407667495
207 2 1 10.68508361399715 24.638181487800373 -17.538711281692827
208 2 1 18.30809729940504 18.39121662193474 18.285926328751984
209 2 1 -11.52561870836783 -11.871004571782223 12.890674390475048
210 3 -1 16.038097437687007 -0.8308290507120688 9.140710202344948
211 3 -1 -12.071581865552927 23.77532123232212 -6.250109721970887
212 3 -1 24.179073767023887 19.6390206210449 22.20321951706368
213 3 -1 22.899159789805424 8.918385700451317 -1.1269016129923664
214 3 -1 -10.48576153865241 5.691510884812594 21.955276995406933
215 3 -1 6.272776670877239 10.035821052072265 22.22030412319301
216 3 -1 14.689947575936934 -7.785907120217196 0.5033983092114553
217 3 -1 23.173937996535116 -21.041572031861037 -21.057283440516468
218 3 -1 -6.015120142466472 6.3962924962024985 21.58241945230285
219 3 -1 -0.77667042466472 0.3962848125024985 1.582473830285

View File

@ -0,0 +1,235 @@
LAMMPS data file generated by get_input.py
219 atoms
3 atom types
-180 180 xlo xhi
-180 180 ylo yhi
-180 180 zlo zhi
Masses
1 20
2 20
3 20
Atoms
1 1 0 18.70795854 -60.24998141 144.0092784
2 1 -1 -130.9166548 -58.17450505 59.42690807
3 1 -1 -125.5489258 58.46696329 77.38308245
4 1 -1 46.8178314 -169.1807517 143.6272062
5 1 -1 -162.2028908 -135.2407217 -129.3455357
6 1 -1 -69.93717134 136.6009615 -140.3684699
7 1 -1 -92.39022725 0.88313303 -156.091658
8 1 -1 150.5452585 -15.59052452 3.326246397
9 1 -1 171.8072626 172.9794849 75.84528386
10 1 -1 -3.808294794 171.5056017 -19.13183671
11 1 -1 68.90552852 86.21187482 24.628687
12 1 -1 -73.4512319 54.41387468 86.90435812
13 1 -1 35.26889793 14.52239846 -149.5100547
14 1 -1 -173.4235696 31.85993966 -30.27092231
15 1 -1 26.52275652 -34.29527864 -91.86288894
16 1 -1 -87.96846598 -127.5856503 -97.6057498
17 1 -1 -154.4848498 -53.45277349 -49.99665917
18 1 -1 98.62055171 61.22620607 58.21550969
19 1 -1 -41.50240351 82.79211492 -36.80199381
20 1 -1 28.75979595 121.8830702 -107.1045784
21 1 -1 32.46858199 119.7785312 -159.9729476
22 1 -1 159.2306995 -136.6051631 -172.6738992
23 1 -1 102.0172393 -120.2283106 99.20908244
24 1 -1 123.7452923 63.55770833 165.9991324
25 1 -1 21.47248943 -121.2255157 -153.2060898
26 1 -1 119.9343938 -11.67643844 -81.47418783
27 1 -1 138.3518387 -111.6909718 52.34478391
28 1 -1 -63.98455793 -173.4943975 28.8937153
29 1 -1 151.1941205 32.1957053 2.770016951
30 1 -1 9.678451862 40.32965827 -107.4138803
31 1 -1 -50.13343476 147.3853225 -117.9277823
32 1 -1 -71.89428479 68.56083346 -179.8533411
33 1 -1 -124.7615264 41.48173515 41.18558752
34 1 -1 37.21218965 -170.6314486 18.86382891
35 1 -1 136.6419056 46.16558949 45.50222572
36 1 -1 -117.9745136 -106.7487877 29.70172113
37 1 -1 57.41607893 -135.959946 79.2519303
38 1 -1 99.2146782 13.37903953 65.55038181
39 1 -1 -172.1483566 -24.09752036 -73.64723741
40 1 -1 155.6386288 60.79647905 -137.6687854
41 1 -1 -63.53265172 104.1203088 115.6442718
42 1 -1 -17.57295284 90.38545929 148.3687022
43 1 -1 -132.9077114 109.8788504 152.5487953
44 1 -1 16.09488244 -168.1200949 81.85901273
45 1 -1 112.2904059 -47.57448978 39.12664557
46 1 -1 -126.2033528 29.5901835 -10.20047838
47 1 -1 15.56623544 -118.8796306 -87.74057744
48 1 -1 -62.53683723 -50.93540139 -8.324528194
49 1 -1 112.4826277 -47.2269151 148.0087872
50 1 -1 -50.1494905 -103.3112513 -103.8344246
51 1 -1 -87.11540287 -177.3205662 -114.041712
52 1 -1 48.0517504 56.41745572 -69.94172272
53 1 -1 -125.3768674 89.18463079 -121.5525657
54 1 -1 157.6559442 89.89879164 -104.7846361
55 1 -1 -60.30935405 -178.4439001 53.67216823
56 1 -1 101.3842749 -156.3782696 -125.6200241
57 1 -1 33.71034745 14.19807232 -56.33090362
58 1 -1 31.34283781 114.2588441 177.621698
59 1 -1 167.8681492 -33.73721495 17.70943601
60 1 -1 50.73906277 165.7201913 -94.6041936
61 1 -1 84.42400278 -113.8271268 -11.73087326
62 1 -1 -146.6200007 -87.0115127 -164.2802459
63 1 -1 -17.94345563 -5.266117623 -114.4770608
64 1 -1 -161.6618755 -81.21577064 -68.78715057
65 1 -1 178.3275787 144.9284223 75.80861878
66 1 -1 81.54873843 -83.6941478 -69.75163018
67 1 -1 -41.13190239 113.6079886 -6.669536125
68 1 -1 -108.5270482 -89.08499627 -39.32427247
69 1 -1 -41.97432027 -32.96246695 65.11935497
70 1 -1 -39.09020679 10.47027922 -53.26049629
71 1 -1 -168.3760012 -85.85704062 27.51501191
72 1 -1 -7.699755475 21.59960856 26.43069039
73 1 -1 87.36704757 14.21816794 -107.2504322
74 1 -1 153.4284087 136.6052131 -126.1502487
75 1 -1 -175.3682642 25.88313064 123.6455547
76 1 -1 90.96648194 175.4891969 32.84622917
77 1 -1 -77.3297511 139.285477 -24.02526586
78 1 -1 -21.80051132 76.35556687 53.9496888
79 1 -1 36.00388293 84.74463507 124.0379428
80 1 -1 8.341344194 -176.0991953 -90.11296078
81 1 -1 13.79742378 -101.263178 81.37760753
82 1 -1 -150.1706978 153.3081009 125.261789
83 1 -1 -176.434078 -91.73850736 -13.91415701
84 1 -1 19.14212656 -8.014482902 53.93954558
85 1 -1 -133.3111329 174.2862517 104.1616036
86 1 -1 141.4028288 71.58712061 62.57853826
87 1 -1 -55.41310448 84.69012271 -53.69230074
88 1 -1 7.57030387 -82.51421069 121.7019339
89 1 -1 6.593627122 170.3286085 -47.07783075
90 1 -1 167.9772199 -52.51603119 -77.32359634
91 1 -1 9.68753279 2.580696533 63.63273049
92 1 -1 -157.900078 -78.41001295 -74.97298362
93 1 -1 157.7779932 -77.61759639 83.11626672
94 1 -1 8.735687555 -51.63741526 149.2886008
95 1 -1 166.3370649 158.0395191 2.108272744
96 1 -1 -136.2080224 -0.233620925 170.1641304
97 1 -1 54.59763504 77.34086464 -34.97254442
98 1 -1 -53.93524806 -102.0122253 -46.27109402
99 1 -1 -148.8398471 -62.976886 79.28200649
100 1 -1 -134.367229 -153.7685306 -62.89913905
101 2 1 85.68701047 47.45902631 136.9309939
102 2 1 -168.7218611 -136.4862888 34.82926874
103 2 1 -85.14342147 -27.50852705 22.44064244
104 2 1 -125.9841936 -166.432033 69.22175254
105 2 1 78.40196016 32.48784706 134.5355212
106 2 1 -158.7356866 172.6075363 -168.6081077
107 2 1 -97.70696089 125.0552693 152.541151
108 2 1 47.42532862 117.2059839 -26.2001494
109 2 1 58.97843054 49.16794046 -45.70255405
110 2 1 -113.2077086 -147.4896474 -109.0593944
111 2 1 133.7818478 137.2370883 -74.12887346
112 2 1 -151.8619681 -55.72321046 39.00697883
113 2 1 -101.5491513 -113.5421107 -135.9492067
114 2 1 -105.4410412 63.66017268 62.00391546
115 2 1 -84.37716183 -35.78408568 -7.089644848
116 2 1 140.387382 -75.00992841 -159.2710691
117 2 1 157.3753205 145.1311104 -98.29723102
118 2 1 -126.8885841 157.4914592 -47.04455377
119 2 1 52.06885202 -100.2669325 38.59257737
120 2 1 -54.06789629 137.7750035 -116.8953091
121 2 1 -29.14739431 94.50860741 -51.527097
122 2 1 -145.9322739 154.5384232 112.3421798
123 2 1 -32.24342538 -22.90490626 -133.4101075
124 2 1 155.0953371 97.30799449 -13.02231424
125 2 1 -109.6079033 -42.89844953 -51.80376701
126 2 1 -150.2770445 -55.20818421 147.7312972
127 2 1 -26.96028917 151.3053234 51.82429115
128 2 1 -42.51040448 55.12547194 -10.01649745
129 2 1 -154.7332138 -166.4922488 75.56066422
130 2 1 179.3252381 50.98353603 -103.842222
131 2 1 -87.64561442 -167.4026399 -37.04977996
132 2 1 -141.7543098 32.23109989 44.99445113
133 2 1 121.3596596 -6.092779973 129.6856923
134 2 1 124.4836766 -86.35531223 85.50625099
135 2 1 140.6305506 -165.9843021 -35.3966949
136 2 1 -89.51258901 36.2123163 54.25434215
137 2 1 107.5306105 58.22419926 141.7457531
138 2 1 -51.03564423 -166.277591 119.3103596
139 2 1 106.3738063 153.673561 100.7747233
140 2 1 -105.1662471 -49.88388187 -163.5658795
141 2 1 -123.4063552 104.6405545 -157.1806703
142 2 1 30.68517662 111.7365757 -128.0988407
143 2 1 -70.66650991 -36.87088431 101.1920697
144 2 1 59.85584345 28.56015074 -148.8751279
145 2 1 76.34296857 -18.88899045 11.99663247
146 2 1 -127.898772 9.029786744 -155.2067979
147 2 1 -61.47407783 106.6906337 -32.24644961
148 2 1 -41.82882356 105.2048819 95.67134776
149 2 1 64.70518204 -125.5606981 -130.2221179
150 2 1 -95.86998176 64.01110464 -62.69889224
151 2 1 -3.893149866 -170.4938796 -173.9425756
152 2 1 -142.5571999 -115.9852755 -42.33527796
153 2 1 -170.1094774 67.22933296 -69.41406448
154 2 1 -135.7002446 -117.3853245 -77.66219554
155 2 1 97.68794466 -176.3481416 64.0577303
156 2 1 98.30084322 -179.1048324 157.6098802
157 2 1 -61.74657154 71.45180441 36.21267022
158 2 1 148.9924395 8.130617629 2.580809806
159 2 1 -7.179797893 131.8852645 48.92705878
160 2 1 166.7210737 111.3028256 122.5151765
161 2 1 160.4061661 105.4292149 147.9164951
162 2 1 70.35573238 -156.217711 -37.86968306
163 2 1 37.82167168 128.9612675 113.5371453
164 2 1 -149.4650805 40.2544478 -89.16446826
165 2 1 23.15794976 -35.62998186 -128.5225995
166 2 1 148.5909499 65.59167763 44.47571026
167 2 1 38.20567747 91.06090259 167.2556933
168 2 1 -173.8935359 124.3001041 -123.4154022
169 2 1 -113.0780192 -112.7185827 -75.51909042
170 2 1 -47.52814398 -162.0232543 -40.84518679
171 2 1 164.6580923 96.26106544 -67.52475023
172 2 1 -166.687599 -28.28821753 -80.04284273
173 2 1 9.786487166 -133.5748603 -110.4924395
174 2 1 73.69685916 -130.6229707 -12.1566579
175 2 1 90.69039384 -12.53964183 -156.8650452
176 2 1 -1.065055548 123.2458955 9.207883208
177 2 1 175.3144942 -62.38332615 89.50309521
178 2 1 -135.5554643 -135.3786299 -12.22599884
179 2 1 -65.15130962 -12.87802388 -85.25728639
180 2 1 -161.9760397 -159.2069523 72.10033228
181 2 1 -116.5200037 9.430944126 5.8294178
182 2 1 -28.85454266 -176.0245493 -141.7245957
183 2 1 63.2968571 -114.4145268 -168.891953
184 2 1 -61.61686575 -158.2947391 162.9099557
185 2 1 51.43661765 119.3411567 4.253266919
186 2 1 50.78017633 47.93871152 129.5527454
187 2 1 151.0842128 -27.15258927 -161.0800505
188 2 1 -63.76595621 -118.2333675 -55.31381078
189 2 1 -103.5498203 -55.20725862 -73.28180307
190 2 1 -165.1300235 72.52455317 27.04945294
191 2 1 68.10471264 124.0704131 -0.252243467
192 2 1 79.29794618 142.8637277 -42.01908928
193 2 1 167.6806551 20.41616629 -147.6924841
194 2 1 -135.8036012 64.48710622 102.1923975
195 2 1 98.55703781 -115.0070794 78.85760695
196 2 1 15.16187488 19.73322691 -170.7866955
197 2 1 151.0729333 50.92372407 -173.3272023
198 2 1 42.92899709 -139.8564977 161.7836767
199 2 1 -123.3797296 144.2768906 93.18435951
200 2 1 83.46684339 160.4439871 16.84583748
201 2 1 -9.982765467 138.2373541 -55.3263136
202 2 1 -161.6023131 -141.5797686 -64.66795638
203 2 1 2.63144963 -54.92560391 117.5540027
204 2 1 -70.31638318 175.5673808 -103.3383852
205 2 1 -4.543770763 -40.50287551 98.39515078
206 2 1 19.2926167 -2.671035153 112.1413205
207 2 1 76.93260202 177.3949067 -126.2787212
208 2 1 131.8183006 132.4167597 131.6586696
209 2 1 -82.9844547 -85.47123292 92.81285561
210 3 -1 115.4743016 -5.981969165 65.81311346
211 3 -1 -86.91538943 171.1823129 -45.00079
212 3 -1 174.0893311 141.4009485 159.8631805
213 3 -1 164.8739505 64.21237704 -8.113691614
214 3 -1 -75.49748308 40.97887837 158.0779944
215 3 -1 45.16399203 72.25791157 159.9861897
216 3 -1 105.7676225 -56.05853127 3.624467826
217 3 -1 166.8523536 -151.4993186 -151.6124408
218 3 -1 -43.30886503 46.05330597 155.3934201
219 3 -1 -5.592027058 2.85325065 11.39381158

View File

@ -0,0 +1,264 @@
##A Weak PE Chain of N=80
160 atoms
79 bonds
5 atom types
1 bond types
-50 50 xlo xhi
-50 50 ylo yhi
-50 50 zlo zhi
Masses
1 1.0
2 1.0
3 1.0
4 1.0
5 1.0
Atoms
# atom_id molecule_id atom_type charge x y z
1 1 1 -1 0 0 -48.37753795169063
2 1 1 -1 0 0 -47.255075903381254
3 1 1 -1 0 0 -46.13261385507188
4 1 1 -1 0 0 -45.01015180676251
5 1 1 -1 0 0 -43.887689758453135
6 1 1 -1 0 0 -42.76522771014376
7 1 1 -1 0 0 -41.64276566183439
8 1 1 -1 0 0 -40.520303613525016
9 1 1 -1 0 0 -39.39784156521564
10 1 1 -1 0 0 -38.27537951690627
11 1 1 -1 0 0 -37.1529174685969
12 1 1 -1 0 0 -36.030455420287524
13 1 1 -1 0 0 -34.90799337197815
14 1 1 -1 0 0 -33.78553132366878
15 1 1 -1 0 0 -32.663069275359405
16 1 1 -1 0 0 -31.54060722705003
17 1 1 -1 0 0 -30.41814517874066
18 1 1 -1 0 0 -29.295683130431286
19 1 1 -1 0 0 -28.173221082121913
20 1 1 -1 0 0 -27.05075903381254
21 1 1 -1 0 0 -25.928296985503167
22 1 1 -1 0 0 -24.805834937193794
23 1 1 -1 0 0 -23.68337288888442
24 1 1 -1 0 0 -22.560910840575048
25 1 1 -1 0 0 -21.438448792265675
26 1 1 -1 0 0 -20.3159867439563
27 1 1 -1 0 0 -19.19352469564693
28 1 1 -1 0 0 -18.071062647337556
29 1 1 -1 0 0 -16.948600599028183
30 1 1 -1 0 0 -15.82613855071881
31 1 1 -1 0 0 -14.703676502409436
32 1 1 -1 0 0 -13.581214454100063
33 1 1 -1 0 0 -12.45875240579069
34 1 1 -1 0 0 -11.336290357481317
35 1 1 -1 0 0 -10.213828309171944
36 1 1 -1 0 0 -9.091366260862571
37 1 1 -1 0 0 -7.968904212553198
38 1 1 -1 0 0 -6.846442164243825
39 1 1 -1 0 0 -5.723980115934452
40 1 1 -1 0 0 -4.601518067625079
41 1 1 -1 0 0 -3.4790560193157063
42 1 1 -1 0 0 -2.3565939710063333
43 1 1 -1 0 0 -1.2341319226969603
44 1 1 -1 0 0 -0.11166987438758724
45 1 1 -1 0 0 1.0107921739217858
46 1 1 -1 0 0 2.133254222231159
47 1 1 -1 0 0 3.255716270540532
48 1 1 -1 0 0 4.378178318849905
49 1 1 -1 0 0 5.500640367159278
50 1 1 -1 0 0 6.623102415468651
51 1 1 -1 0 0 7.745564463778024
52 1 1 -1 0 0 8.868026512087397
53 1 1 -1 0 0 9.99048856039677
54 1 1 -1 0 0 11.112950608706143
55 1 1 -1 0 0 12.235412657015516
56 1 1 -1 0 0 13.357874705324889
57 1 1 -1 0 0 14.480336753634262
58 1 1 -1 0 0 15.602798801943635
59 1 1 -1 0 0 16.725260850253008
60 1 1 -1 0 0 17.84772289856238
61 1 1 -1 0 0 18.970184946871754
62 1 1 -1 0 0 20.092646995181127
63 1 1 -1 0 0 21.2151090434905
64 1 1 -1 0 0 22.337571091799873
65 1 1 -1 0 0 23.460033140109246
66 1 1 -1 0 0 24.58249518841862
67 1 1 -1 0 0 25.704957236727992
68 1 1 -1 0 0 26.827419285037365
69 1 1 -1 0 0 27.949881333346738
70 1 1 -1 0 0 29.07234338165611
71 1 1 -1 0 0 30.194805429965484
72 1 1 -1 0 0 31.317267478274857
73 1 1 -1 0 0 32.43972952658423
74 1 1 -1 0 0 33.5621915748936
75 1 1 -1 0 0 34.684653623202976
76 1 1 -1 0 0 35.80711567151235
77 1 1 -1 0 0 36.92957771982172
78 1 1 -1 0 0 38.052039768131095
79 1 1 -1 0 0 39.17450181644047
80 1 1 -1 0 0 40.29696386474984
81 0 2 1 -27.886422274724097 27.72001798427955 38.68169635811057
82 0 2 1 29.812255760623188 17.871838747003693 -29.094648426460257
83 0 2 1 -13.23881351410531 13.28123966828678 -24.422176415560116
84 0 2 1 4.9465650593939685 -37.7521903558826 -15.115417767729575
85 0 2 1 34.82527943387106 29.457664434004897 -25.565595338061254
86 0 2 1 46.35660570786446 -7.161776614070412 -20.2471250527001
87 0 2 1 39.20854546781531 34.96815569014278 13.893531822586723
88 0 2 1 -7.797240698180197 0.07861219105048889 48.686453603015224
89 0 2 1 43.92391845355516 -39.42362941705827 22.448930565867585
90 0 2 1 -40.371744364329984 -17.743039071967246 -15.08153047835009
91 0 2 1 -21.573165497710058 -0.5844447399891948 -45.73596994149077
92 0 2 1 -19.882394451769102 -7.392447895357577 30.733607063808876
93 0 2 1 -17.393031309514107 26.882975097407467 -47.64059480000892
94 0 2 1 25.652222561671735 1.0229206994719107 -14.959030208952043
95 0 2 1 26.075045766879313 19.902341017250052 46.70284805469666
96 0 2 1 39.91980369168496 0.753749460187592 -26.203575929573407
97 0 2 1 13.777613371273958 7.112171629839359 -33.5270487721399
98 0 2 1 18.944534687271826 20.090215089875286 -34.381335468790574
99 0 2 1 -23.801856387842435 -42.275962146864586 -8.322936238250279
100 0 2 1 -31.386991395893826 29.83894468611787 8.937114269513422
101 0 2 1 -41.07090001085809 49.59339931450579 6.666864232174753
102 0 2 1 -46.58911504232167 -32.46068937927039 19.40424197066872
103 0 2 1 -39.94659416571965 -36.28203465180086 5.841020764632312
104 0 2 1 -26.027467090120137 -41.05522015175137 -1.1145958296128313
105 0 2 1 37.09602855959457 23.76087951027276 45.09142423198867
106 0 2 1 -27.78138413517528 -48.97344929918942 45.91491289356401
107 0 2 1 4.468912883622387 -5.217782298407556 6.381420595433383
108 0 2 1 36.758686966564525 48.425582881586166 -25.909273336802997
109 0 2 1 -27.045102667146036 -19.713951008254117 4.339232870380627
110 0 2 1 -5.984280016624311 -49.45311479123866 36.35727783065221
111 0 2 1 27.833389147163018 -47.80144978082761 -47.71458334276804
112 0 2 1 -23.628507668044364 -30.353876765128685 36.174277933133254
113 0 2 1 -40.93360714431151 40.1336490864843 -27.035347797435495
114 0 2 1 6.3523980881104976 -28.636485436097082 -10.671354350535445
115 0 2 1 42.765716958607086 -32.85779663523676 -1.9682360265562124
116 0 2 1 -33.68069757415453 16.800769050458484 -6.273374390373085
117 0 2 1 13.909148568042937 4.921040289518388 12.111069913598996
118 0 2 1 6.728324076730296 -48.44092815223126 -35.92436883370601
119 0 2 1 -18.121173967321912 -15.76903395165283 2.2495451015454933
120 0 2 1 -11.75253233489407 -45.82569982175387 -12.477142440015896
121 0 2 1 1.9713864197144133 17.961034900064007 32.97992150691711
122 0 2 1 -3.993384770632943 -47.63120435620297 27.75490859098018
123 0 2 1 -0.32208279553454844 -47.30616152402566 -22.751109302380367
124 0 2 1 -0.135777029397957 23.88599790464609 -31.87440560354473
125 0 2 1 -6.123924906817393 -2.038519565120424 45.4809181974626
126 0 2 1 -29.622588299895046 42.40404115712096 6.640479709229595
127 0 2 1 -11.694512971272673 19.983258641775762 -38.152427411711145
128 0 2 1 -20.93721440637313 39.46397829322392 -45.52708262202337
129 0 2 1 34.13340147809369 36.14268504987945 -23.978137043267044
130 0 2 1 -37.422309952611485 29.181841318883087 27.55677757161692
131 0 2 1 30.11314373799594 18.721794400471353 1.5553303682670574
132 0 2 1 -7.3563467211571805 46.84253369205935 -39.84708490437832
133 0 2 1 -3.695927445484358 2.494403998274727 -7.634369981832755
134 0 2 1 44.09701173592077 17.717328437831043 31.54108326477207
135 0 2 1 48.070189931616795 10.601166369398662 -28.28574863896286
136 0 2 1 -7.044858382811761 -42.080663380241766 -1.4369925734636553
137 0 2 1 -12.485032488076918 23.87106169116919 6.178803347562642
138 0 2 1 -15.613232443702309 10.103630885941392 -20.447182948810916
139 0 2 1 28.610332347774147 37.08335835592116 -19.90280831362493
140 0 2 1 25.853920233242505 -27.768648181803655 24.971357611943475
141 0 2 1 9.256159541363296 -23.562096053197934 -4.722701100419371
142 0 2 1 39.96929397877305 -11.88228547846326 -28.70638149104603
143 0 2 1 -37.98545134633291 -23.50528193202669 -10.939982626098441
144 0 2 1 25.40017763114089 -47.49220127581256 15.1783064865064
145 0 2 1 28.073596076651768 3.6631266774864386 31.54355751177208
146 0 2 1 -19.596457173068703 46.79824882013442 -12.302655772327597
147 0 2 1 -36.46192411958321 -2.785830672302666 -25.1901381125736
148 0 2 1 -27.377389198969894 11.295792272951147 39.32842550184691
149 0 2 1 32.24967019136358 -20.517755791016402 31.20590722085157
150 0 2 1 47.70698618147787 9.75462874031868 -28.267447889542563
151 0 2 1 17.157803106328345 -27.48141290657965 7.7670687016760525
152 0 2 1 15.089833959419678 5.342811012118396 27.35336620165029
153 0 2 1 9.836963929211372 -11.047378229392443 -20.960811370690678
154 0 2 1 44.66600586278604 14.949733274456321 -29.328965994323575
155 0 2 1 -21.006260382140685 8.492712712433658 -46.31580169190271
156 0 2 1 -29.970979487850748 -36.46250489415931 26.914372830947457
157 0 2 1 -1.0821372755756329 -8.453379951300242 -19.95665062432509
158 0 2 1 -24.033653425909772 -39.51330620205049 20.067656167683793
159 0 2 1 27.747287624384626 -21.904990435351312 -10.819345241055956
160 0 2 1 -40.86737066410612 -25.609300376714796 -21.128139356809783
Bonds
# bond_id bond_type atom1_id atom2_id
1 1 1 2
2 1 2 3
3 1 3 4
4 1 4 5
5 1 5 6
6 1 6 7
7 1 7 8
8 1 8 9
9 1 9 10
10 1 10 11
11 1 11 12
12 1 12 13
13 1 13 14
14 1 14 15
15 1 15 16
16 1 16 17
17 1 17 18
18 1 18 19
19 1 19 20
20 1 20 21
21 1 21 22
22 1 22 23
23 1 23 24
24 1 24 25
25 1 25 26
26 1 26 27
27 1 27 28
28 1 28 29
29 1 29 30
30 1 30 31
31 1 31 32
32 1 32 33
33 1 33 34
34 1 34 35
35 1 35 36
36 1 36 37
37 1 37 38
38 1 38 39
39 1 39 40
40 1 40 41
41 1 41 42
42 1 42 43
43 1 43 44
44 1 44 45
45 1 45 46
46 1 46 47
47 1 47 48
48 1 48 49
49 1 49 50
50 1 50 51
51 1 51 52
52 1 52 53
53 1 53 54
54 1 54 55
55 1 55 56
56 1 56 57
57 1 57 58
58 1 58 59
59 1 59 60
60 1 60 61
61 1 61 62
62 1 62 63
63 1 63 64
64 1 64 65
65 1 65 66
66 1 66 67
67 1 67 68
68 1 68 69
69 1 69 70
70 1 70 71
71 1 71 72
72 1 72 73
73 1 73 74
74 1 74 75
75 1 75 76
76 1 76 77
77 1 77 78
78 1 78 79
79 1 79 80

View File

@ -0,0 +1,36 @@
# Charge regulation lammps for simple weak electrolyte
units lj
atom_style charge
neighbor 3.0 bin
read_data data.chreg-acid
variable cut_long equal 12.5
variable nevery equal 100
variable nmc equal 100
variable pH equal 7.0
variable pKa equal 6.0
variable pIm equal 3.0
variable pIp equal 3.0
variable cut_lj equal 2^(1.0/6.0)
variable lunit_nm equal 0.72 # in the units of nm
velocity all create 1.0 8008 loop geom
pair_style lj/cut/coul/long ${cut_lj} ${cut_long}
pair_coeff * * 1.0 1.0
kspace_style ewald 1.0e-3
pair_modify shift yes
######### VERLET INTEGRATION WITH LANGEVIN THERMOSTAT ###########
fix fnve all nve
compute dtemp all temp
compute_modify dtemp dynamic yes
fix fT all langevin 1.0 1.0 1.0 123
fix_modify fT temp dtemp
fix chareg all charge/regulation 2 3 acid_type 1 pH ${pH} pKa ${pKa} pIp ${pIp} pIm ${pIm} lunit_nm ${lunit_nm} nevery ${nevery} nmc ${nmc} seed 2345 tempfixid fT
thermo 100
thermo_style custom step pe c_dtemp f_chareg[1] f_chareg[2] f_chareg[3] f_chareg[4] f_chareg[5] f_chareg[6] f_chareg[7] f_chareg[8]
timestep 0.005
run 2000

View File

@ -0,0 +1,44 @@
# Charge regulation lammps for simple weak electrolyte
units real
atom_style charge
neighbor 10.0 bin
read_data data.chreg-acid-real
#real units
variable sigma equal 7.2 # particle diameter 0.72 nm
variable temperature equal 298 # temperature 298 K
variable kb index 0.0019872067 # kB in Kcal/mol/K
variable epsilon equal ${kb}*${temperature}
variable tunit equal 2000 # time unit is 2000 fs
variable timestep equal 0.005*${tunit}
variable cut_long equal 12.5*${sigma}
variable nevery equal 100
variable nmc equal 100
variable pH equal 7.0
variable pKa equal 6.0
variable pIm equal 3.0
variable pIp equal 3.0
variable cut_lj equal 2^(1.0/6.0)*${sigma}
velocity all create ${temperature} 8008 loop geom
pair_style lj/cut/coul/long ${cut_lj} ${cut_long}
pair_coeff * * ${epsilon} ${sigma}
kspace_style pppm 1.0e-3
dielectric 78
pair_modify shift yes
######### VERLET INTEGRATION WITH LANGEVIN THERMOSTAT ###########
fix fnve all nve
compute dtemp all temp
compute_modify dtemp dynamic yes
fix fT all langevin $(v_temperature) $(v_temperature) $(v_tunit) 123
fix_modify fT temp dtemp
fix chareg all charge/regulation 2 3 acid_type 1 pH ${pH} pKa ${pKa} pIp ${pIp} pIm ${pIm} lunit_nm 0.1 nevery ${nevery} nmc ${nmc} seed 2345 tempfixid fT
thermo 100
thermo_style custom step pe c_dtemp f_chareg[1] f_chareg[2] f_chareg[3] f_chareg[4] f_chareg[5] f_chareg[6] f_chareg[7] f_chareg[8]
timestep ${timestep}
run 2000

View File

@ -0,0 +1,33 @@
# Charge regulation lammps for a polymer chain
units lj
atom_style full
neighbor 3.0 bin
read_data data.chreg-polymer
bond_style harmonic
bond_coeff 1 100 1.122462 # K R0
velocity all create 1.0 8008 loop geom
pair_style lj/cut/coul/long 1.122462 20
pair_coeff * * 1.0 1.0 1.122462 # charges
kspace_style pppm 1.0e-3
pair_modify shift yes
dielectric 1.0
######### VERLET INTEGRATION WITH LANGEVIN THERMOSTAT ###########
fix fnve all nve
compute dtemp all temp
compute_modify dtemp dynamic yes
fix fT all langevin 1.0 1.0 1.0 123
fix_modify fT temp dtemp
fix chareg1 all charge/regulation 2 3 acid_type 1 pH 7.0 pKa 6.5 pIp 3.0 pIm 3.0 temp 1.0 nmc 40 seed 2345
fix chareg2 all charge/regulation 4 5 acid_type 1 pH 7.0 pKa 6.5 pIp 7.0 pIm 7.0 temp 1.0 nmc 40 seed 2345
fix chareg3 all charge/regulation 4 3 pIp 7.0 pIm 3.0 temp 1.0 nmc 20 seed 2345
thermo 100
# print: step, potential energy, temperature, neutral acids, charged acids, salt cations, salt anions, H+ ions, OH- ions
thermo_style custom step pe c_dtemp f_chareg1[3] f_chareg1[4] f_chareg1[7] f_chareg1[8] f_chareg2[7] f_chareg2[8]
timestep 0.005
run 2000

View File

@ -0,0 +1,125 @@
LAMMPS (10 Feb 2021)
using 1 OpenMP thread(s) per MPI task
# Charge regulation lammps for simple weak electrolyte
units lj
atom_style charge
neighbor 3.0 bin
read_data data.chreg-acid
Reading data file ...
orthogonal box = (-25.000000 -25.000000 -25.000000) to (25.000000 25.000000 25.000000)
1 by 1 by 1 MPI processor grid
reading atoms ...
219 atoms
read_data CPU = 0.003 seconds
variable cut_long equal 12.5
variable nevery equal 100
variable nmc equal 100
variable pH equal 7.0
variable pKa equal 6.0
variable pIm equal 3.0
variable pIp equal 3.0
variable cut_lj equal 2^(1.0/6.0)
variable lunit_nm equal 0.72 # in the units of nm
velocity all create 1.0 8008 loop geom
pair_style lj/cut/coul/long ${cut_lj} ${cut_long}
pair_style lj/cut/coul/long 1.12246204830937 ${cut_long}
pair_style lj/cut/coul/long 1.12246204830937 12.5
pair_coeff * * 1.0 1.0
kspace_style ewald 1.0e-3
pair_modify shift yes
######### VERLET INTEGRATION WITH LANGEVIN THERMOSTAT ###########
fix fnve all nve
compute dtemp all temp
compute_modify dtemp dynamic yes
fix fT all langevin 1.0 1.0 1.0 123
fix_modify fT temp dtemp
fix chareg all charge/regulation 2 3 acid_type 1 pH ${pH} pKa ${pKa} pIp ${pIp} pIm ${pIm} lunit_nm ${lunit_nm} nevery ${nevery} nmc ${nmc} seed 2345 tempfixid fT
fix chareg all charge/regulation 2 3 acid_type 1 pH 7 pKa ${pKa} pIp ${pIp} pIm ${pIm} lunit_nm ${lunit_nm} nevery ${nevery} nmc ${nmc} seed 2345 tempfixid fT
fix chareg all charge/regulation 2 3 acid_type 1 pH 7 pKa 6 pIp ${pIp} pIm ${pIm} lunit_nm ${lunit_nm} nevery ${nevery} nmc ${nmc} seed 2345 tempfixid fT
fix chareg all charge/regulation 2 3 acid_type 1 pH 7 pKa 6 pIp 3 pIm ${pIm} lunit_nm ${lunit_nm} nevery ${nevery} nmc ${nmc} seed 2345 tempfixid fT
fix chareg all charge/regulation 2 3 acid_type 1 pH 7 pKa 6 pIp 3 pIm 3 lunit_nm ${lunit_nm} nevery ${nevery} nmc ${nmc} seed 2345 tempfixid fT
fix chareg all charge/regulation 2 3 acid_type 1 pH 7 pKa 6 pIp 3 pIm 3 lunit_nm 0.72 nevery ${nevery} nmc ${nmc} seed 2345 tempfixid fT
fix chareg all charge/regulation 2 3 acid_type 1 pH 7 pKa 6 pIp 3 pIm 3 lunit_nm 0.72 nevery 100 nmc ${nmc} seed 2345 tempfixid fT
fix chareg all charge/regulation 2 3 acid_type 1 pH 7 pKa 6 pIp 3 pIm 3 lunit_nm 0.72 nevery 100 nmc 100 seed 2345 tempfixid fT
thermo 100
thermo_style custom step pe c_dtemp f_chareg[1] f_chareg[2] f_chareg[3] f_chareg[4] f_chareg[5] f_chareg[6] f_chareg[7] f_chareg[8]
timestep 0.005
run 2000
Ewald initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:339)
G vector (1/distance) = 0.14221027
estimated absolute RMS force accuracy = 0.0010128126
estimated relative force accuracy = 0.0010128126
KSpace vectors: actual max1d max3d = 257 5 665
kxmax kymax kzmax = 5 5 5
0 atoms in group FixChargeRegulation:exclusion_group:chareg
WARNING: Neighbor exclusions used with KSpace solver may give inconsistent Coulombic energies (src/neighbor.cpp:486)
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 15.5
ghost atom cutoff = 15.5
binsize = 7.75, bins = 7 7 7
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 11.91 | 11.91 | 11.91 Mbytes
Step PotEng c_dtemp f_chareg[1] f_chareg[2] f_chareg[3] f_chareg[4] f_chareg[5] f_chareg[6] f_chareg[7] f_chareg[8]
0 -0.049662059 1 0 0 1 99 0 0 109 10
100 -0.053672881 0.99159291 100 71 16 84 0 0 92 8
200 -0.053383027 0.90935145 200 156 26 74 0 0 85 11
300 -0.040471335 0.97937429 300 240 21 79 0 0 87 8
400 -0.036188123 1.0837424 400 319 14 86 0 0 92 6
500 -0.057294925 1.0507526 500 407 10 90 0 0 98 8
600 -0.056009748 1.0669354 600 487 15 85 0 0 92 7
700 -0.069686562 0.99202496 700 567 14 86 0 0 96 10
800 -0.054695624 1.0592933 800 647 25 75 0 0 82 7
900 -0.058693653 0.97870458 900 728 27 73 0 0 83 10
1000 -0.062352957 1.0008923 1000 805 24 76 0 0 84 8
1100 -0.065011926 0.91691048 1100 886 22 78 0 0 87 9
1200 -0.080463686 0.98879304 1200 963 23 77 0 0 88 11
1300 -0.062146141 1.0566033 1300 1047 21 79 0 0 88 9
1400 -0.046980246 1.0847512 1400 1129 17 83 0 0 94 11
1500 -0.042935292 1.0075805 1500 1203 24 76 0 0 86 10
1600 -0.056075891 0.94173489 1600 1277 23 77 0 0 90 13
1700 -0.042279161 1.1126317 1700 1355 28 72 0 0 82 10
1800 -0.036842528 1.0255327 1800 1436 24 76 0 0 83 7
1900 -0.038816022 0.93883373 1900 1511 23 77 0 0 86 9
2000 -0.047008287 0.98904085 2000 1592 26 74 0 0 81 7
Loop time of 11.6365 on 1 procs for 2000 steps with 188 atoms
Performance: 74249.079 tau/day, 171.873 timesteps/s
99.8% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.24337 | 0.24337 | 0.24337 | 0.0 | 2.09
Kspace | 4.6009 | 4.6009 | 4.6009 | 0.0 | 39.54
Neigh | 0.023451 | 0.023451 | 0.023451 | 0.0 | 0.20
Comm | 0.027729 | 0.027729 | 0.027729 | 0.0 | 0.24
Output | 0.0007813 | 0.0007813 | 0.0007813 | 0.0 | 0.01
Modify | 6.7345 | 6.7345 | 6.7345 | 0.0 | 57.87
Other | | 0.005713 | | | 0.05
Nlocal: 188.000 ave 188 max 188 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 597.000 ave 597 max 597 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 2196.00 ave 2196 max 2196 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 2196
Ave neighs/atom = 11.680851
Neighbor list builds = 2059
Dangerous builds = 0
Total wall time: 0:00:11

View File

@ -0,0 +1,125 @@
LAMMPS (10 Feb 2021)
using 1 OpenMP thread(s) per MPI task
# Charge regulation lammps for simple weak electrolyte
units lj
atom_style charge
neighbor 3.0 bin
read_data data.chreg-acid
Reading data file ...
orthogonal box = (-25.000000 -25.000000 -25.000000) to (25.000000 25.000000 25.000000)
1 by 2 by 2 MPI processor grid
reading atoms ...
219 atoms
read_data CPU = 0.003 seconds
variable cut_long equal 12.5
variable nevery equal 100
variable nmc equal 100
variable pH equal 7.0
variable pKa equal 6.0
variable pIm equal 3.0
variable pIp equal 3.0
variable cut_lj equal 2^(1.0/6.0)
variable lunit_nm equal 0.72 # in the units of nm
velocity all create 1.0 8008 loop geom
pair_style lj/cut/coul/long ${cut_lj} ${cut_long}
pair_style lj/cut/coul/long 1.12246204830937 ${cut_long}
pair_style lj/cut/coul/long 1.12246204830937 12.5
pair_coeff * * 1.0 1.0
kspace_style ewald 1.0e-3
pair_modify shift yes
######### VERLET INTEGRATION WITH LANGEVIN THERMOSTAT ###########
fix fnve all nve
compute dtemp all temp
compute_modify dtemp dynamic yes
fix fT all langevin 1.0 1.0 1.0 123
fix_modify fT temp dtemp
fix chareg all charge/regulation 2 3 acid_type 1 pH ${pH} pKa ${pKa} pIp ${pIp} pIm ${pIm} lunit_nm ${lunit_nm} nevery ${nevery} nmc ${nmc} seed 2345 tempfixid fT
fix chareg all charge/regulation 2 3 acid_type 1 pH 7 pKa ${pKa} pIp ${pIp} pIm ${pIm} lunit_nm ${lunit_nm} nevery ${nevery} nmc ${nmc} seed 2345 tempfixid fT
fix chareg all charge/regulation 2 3 acid_type 1 pH 7 pKa 6 pIp ${pIp} pIm ${pIm} lunit_nm ${lunit_nm} nevery ${nevery} nmc ${nmc} seed 2345 tempfixid fT
fix chareg all charge/regulation 2 3 acid_type 1 pH 7 pKa 6 pIp 3 pIm ${pIm} lunit_nm ${lunit_nm} nevery ${nevery} nmc ${nmc} seed 2345 tempfixid fT
fix chareg all charge/regulation 2 3 acid_type 1 pH 7 pKa 6 pIp 3 pIm 3 lunit_nm ${lunit_nm} nevery ${nevery} nmc ${nmc} seed 2345 tempfixid fT
fix chareg all charge/regulation 2 3 acid_type 1 pH 7 pKa 6 pIp 3 pIm 3 lunit_nm 0.72 nevery ${nevery} nmc ${nmc} seed 2345 tempfixid fT
fix chareg all charge/regulation 2 3 acid_type 1 pH 7 pKa 6 pIp 3 pIm 3 lunit_nm 0.72 nevery 100 nmc ${nmc} seed 2345 tempfixid fT
fix chareg all charge/regulation 2 3 acid_type 1 pH 7 pKa 6 pIp 3 pIm 3 lunit_nm 0.72 nevery 100 nmc 100 seed 2345 tempfixid fT
thermo 100
thermo_style custom step pe c_dtemp f_chareg[1] f_chareg[2] f_chareg[3] f_chareg[4] f_chareg[5] f_chareg[6] f_chareg[7] f_chareg[8]
timestep 0.005
run 2000
Ewald initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:339)
G vector (1/distance) = 0.14221027
estimated absolute RMS force accuracy = 0.0010128126
estimated relative force accuracy = 0.0010128126
KSpace vectors: actual max1d max3d = 257 5 665
kxmax kymax kzmax = 5 5 5
0 atoms in group FixChargeRegulation:exclusion_group:chareg
WARNING: Neighbor exclusions used with KSpace solver may give inconsistent Coulombic energies (src/neighbor.cpp:486)
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 15.5
ghost atom cutoff = 15.5
binsize = 7.75, bins = 7 7 7
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 11.89 | 11.89 | 11.89 Mbytes
Step PotEng c_dtemp f_chareg[1] f_chareg[2] f_chareg[3] f_chareg[4] f_chareg[5] f_chareg[6] f_chareg[7] f_chareg[8]
0 -0.049662059 1 0 0 1 99 0 0 109 10
100 -0.06196414 1.0156327 100 72 15 85 0 0 93 8
200 -0.053901683 0.95128403 200 160 24 76 0 0 87 11
300 -0.043852423 0.98035058 300 246 22 78 0 0 85 7
400 -0.048370798 1.0909844 400 324 16 84 0 0 91 7
500 -0.042546472 1.026849 500 410 13 87 0 0 95 8
600 -0.06133022 0.97805065 600 494 14 86 0 0 93 7
700 -0.053815853 1.0641005 700 572 17 83 0 0 91 8
800 -0.059974814 1.0192348 800 650 23 77 0 0 83 6
900 -0.051808132 1.0773288 900 728 25 75 0 0 85 10
1000 -0.050390995 1.0236954 1000 804 28 72 0 0 81 9
1100 -0.069766444 1.030965 1100 890 25 75 0 0 85 10
1200 -0.074580231 1.0490058 1200 963 21 79 0 0 88 9
1300 -0.060169443 0.93456607 1300 1043 22 78 0 0 86 8
1400 -0.05120764 1.0374062 1400 1127 19 81 0 0 92 11
1500 -0.027644416 0.99804782 1500 1204 24 76 0 0 85 9
1600 -0.038599195 0.99015524 1600 1283 22 78 0 0 90 12
1700 -0.050222686 1.1444379 1700 1365 27 73 0 0 84 11
1800 -0.049338003 1.1188048 1800 1449 22 78 0 0 84 6
1900 -0.04533154 0.99894341 1900 1527 22 78 0 0 86 8
2000 -0.058837311 0.95302017 2000 1608 26 74 0 0 81 7
Loop time of 3.98119 on 4 procs for 2000 steps with 188 atoms
Performance: 217020.495 tau/day, 502.362 timesteps/s
96.2% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.050626 | 0.061127 | 0.071318 | 3.4 | 1.54
Kspace | 1.1987 | 1.2504 | 1.288 | 3.1 | 31.41
Neigh | 0.0056982 | 0.0063858 | 0.0069821 | 0.7 | 0.16
Comm | 0.068302 | 0.11638 | 0.17922 | 12.8 | 2.92
Output | 0.00055408 | 0.00092399 | 0.0020106 | 0.0 | 0.02
Modify | 2.5399 | 2.5406 | 2.5417 | 0.0 | 63.81
Other | | 0.005394 | | | 0.14
Nlocal: 47.0000 ave 55 max 42 min
Histogram: 1 0 1 1 0 0 0 0 0 1
Nghost: 328.250 ave 335 max 317 min
Histogram: 1 0 0 0 0 1 0 0 0 2
Neighs: 547.000 ave 659 max 466 min
Histogram: 2 0 0 0 0 0 1 0 0 1
Total # of neighbors = 2188
Ave neighs/atom = 11.638298
Neighbor list builds = 2057
Dangerous builds = 0
Total wall time: 0:00:04

View File

@ -0,0 +1,131 @@
LAMMPS (10 Feb 2021)
using 1 OpenMP thread(s) per MPI task
# Charge regulation lammps for a polymer chain
units lj
atom_style full
neighbor 3.0 bin
read_data data.chreg-polymer
Reading data file ...
orthogonal box = (-50.000000 -50.000000 -50.000000) to (50.000000 50.000000 50.000000)
1 by 1 by 1 MPI processor grid
reading atoms ...
160 atoms
scanning bonds ...
1 = max bonds/atom
reading bonds ...
79 bonds
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
2 = max # of 1-2 neighbors
2 = max # of 1-3 neighbors
4 = max # of 1-4 neighbors
6 = max # of special neighbors
special bonds CPU = 0.001 seconds
read_data CPU = 0.009 seconds
bond_style harmonic
bond_coeff 1 100 1.122462 # K R0
velocity all create 1.0 8008 loop geom
pair_style lj/cut/coul/long 1.122462 20
pair_coeff * * 1.0 1.0 1.122462 # charges
kspace_style pppm 1.0e-3
pair_modify shift yes
dielectric 1.0
######### VERLET INTEGRATION WITH LANGEVIN THERMOSTAT ###########
fix fnve all nve
compute dtemp all temp
compute_modify dtemp dynamic yes
fix fT all langevin 1.0 1.0 1.0 123
fix_modify fT temp dtemp
fix chareg1 all charge/regulation 2 3 acid_type 1 pH 7.0 pKa 6.5 pIp 3.0 pIm 3.0 temp 1.0 nmc 40 seed 2345
fix chareg2 all charge/regulation 4 5 acid_type 1 pH 7.0 pKa 6.5 pIp 7.0 pIm 7.0 temp 1.0 nmc 40 seed 2345
fix chareg3 all charge/regulation 4 3 pIp 7.0 pIm 3.0 temp 1.0 nmc 20 seed 2345
thermo 100
# print: step, potential energy, temperature, neutral acids, charged acids, salt cations, salt anions, H+ ions, OH- ions
thermo_style custom step pe c_dtemp f_chareg1[3] f_chareg1[4] f_chareg1[7] f_chareg1[8] f_chareg2[7] f_chareg2[8]
timestep 0.005
run 2000
PPPM initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:339)
G vector (1/distance) = 0.077106934
grid = 8 8 8
stencil order = 5
estimated absolute RMS force accuracy = 0.00074388331
estimated relative force accuracy = 0.00074388331
using double precision FFTW3
3d grid and FFT values/proc = 2197 512
0 atoms in group FixChargeRegulation:exclusion_group:chareg1
0 atoms in group FixChargeRegulation:exclusion_group:chareg2
0 atoms in group FixChargeRegulation:exclusion_group:chareg3
WARNING: Neighbor exclusions used with KSpace solver may give inconsistent Coulombic energies (src/neighbor.cpp:486)
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 23
ghost atom cutoff = 23
binsize = 11.5, bins = 9 9 9
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 6.962 | 6.962 | 6.962 Mbytes
Step PotEng c_dtemp f_chareg1[3] f_chareg1[4] f_chareg1[7] f_chareg1[8] f_chareg2[7] f_chareg2[8]
0 0.50528297 1 0 80 80 0 0 0
100 0.61185377 0.95892928 13 67 74 7 0 0
200 0.54355177 1.1282424 19 61 76 15 0 0
300 0.4519957 1.0764688 20 60 85 26 1 0
400 0.41479389 0.99212685 24 56 92 36 0 0
500 0.37382446 0.99776674 28 52 98 46 0 0
600 0.34785337 1.1115081 28 52 109 57 0 0
700 0.34637618 1.0332262 28 52 120 68 0 0
800 0.21020932 1.1264036 29 51 125 74 0 0
900 0.21246108 1.1168609 30 50 131 81 0 0
1000 0.20997475 1.1201478 32 48 132 84 0 0
1100 0.1984165 1.0209092 31 49 144 95 0 0
1200 0.2061932 0.95880059 35 45 151 106 0 0
1300 0.17220376 0.980077 36 44 156 112 0 0
1400 0.15671143 0.93535342 37 43 161 118 0 0
1500 0.16174665 0.9495928 36 44 168 124 0 0
1600 0.11062965 0.94072924 40 40 164 124 0 0
1700 0.13002563 0.95010828 38 42 167 125 0 0
1800 0.14527814 0.93555342 37 43 172 129 0 0
1900 0.17627465 0.96682495 32 48 176 128 0 0
2000 0.16497265 0.95226954 33 47 180 133 0 0
Loop time of 7.45499 on 1 procs for 2000 steps with 393 atoms
Performance: 115895.577 tau/day, 268.277 timesteps/s
99.6% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.45607 | 0.45607 | 0.45607 | 0.0 | 6.12
Bond | 0.0062385 | 0.0062385 | 0.0062385 | 0.0 | 0.08
Kspace | 2.3257 | 2.3257 | 2.3257 | 0.0 | 31.20
Neigh | 0.067103 | 0.067103 | 0.067103 | 0.0 | 0.90
Comm | 0.02577 | 0.02577 | 0.02577 | 0.0 | 0.35
Output | 0.00087047 | 0.00087047 | 0.00087047 | 0.0 | 0.01
Modify | 4.5664 | 4.5664 | 4.5664 | 0.0 | 61.25
Other | | 0.006848 | | | 0.09
Nlocal: 393.000 ave 393 max 393 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 749.000 ave 749 max 749 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 5359.00 ave 5359 max 5359 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 5359
Ave neighs/atom = 13.636132
Ave special neighs/atom = 1.1908397
Neighbor list builds = 1489
Dangerous builds = 0
Total wall time: 0:00:07

View File

@ -0,0 +1,131 @@
LAMMPS (10 Feb 2021)
using 1 OpenMP thread(s) per MPI task
# Charge regulation lammps for a polymer chain
units lj
atom_style full
neighbor 3.0 bin
read_data data.chreg-polymer
Reading data file ...
orthogonal box = (-50.000000 -50.000000 -50.000000) to (50.000000 50.000000 50.000000)
1 by 2 by 2 MPI processor grid
reading atoms ...
160 atoms
scanning bonds ...
1 = max bonds/atom
reading bonds ...
79 bonds
Finding 1-2 1-3 1-4 neighbors ...
special bond factors lj: 0 0 0
special bond factors coul: 0 0 0
2 = max # of 1-2 neighbors
2 = max # of 1-3 neighbors
4 = max # of 1-4 neighbors
6 = max # of special neighbors
special bonds CPU = 0.001 seconds
read_data CPU = 0.016 seconds
bond_style harmonic
bond_coeff 1 100 1.122462 # K R0
velocity all create 1.0 8008 loop geom
pair_style lj/cut/coul/long 1.122462 20
pair_coeff * * 1.0 1.0 1.122462 # charges
kspace_style pppm 1.0e-3
pair_modify shift yes
dielectric 1.0
######### VERLET INTEGRATION WITH LANGEVIN THERMOSTAT ###########
fix fnve all nve
compute dtemp all temp
compute_modify dtemp dynamic yes
fix fT all langevin 1.0 1.0 1.0 123
fix_modify fT temp dtemp
fix chareg1 all charge/regulation 2 3 acid_type 1 pH 7.0 pKa 6.5 pIp 3.0 pIm 3.0 temp 1.0 nmc 40 seed 2345
fix chareg2 all charge/regulation 4 5 acid_type 1 pH 7.0 pKa 6.5 pIp 7.0 pIm 7.0 temp 1.0 nmc 40 seed 2345
fix chareg3 all charge/regulation 4 3 pIp 7.0 pIm 3.0 temp 1.0 nmc 20 seed 2345
thermo 100
# print: step, potential energy, temperature, neutral acids, charged acids, salt cations, salt anions, H+ ions, OH- ions
thermo_style custom step pe c_dtemp f_chareg1[3] f_chareg1[4] f_chareg1[7] f_chareg1[8] f_chareg2[7] f_chareg2[8]
timestep 0.005
run 2000
PPPM initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:339)
G vector (1/distance) = 0.077106934
grid = 8 8 8
stencil order = 5
estimated absolute RMS force accuracy = 0.00074388331
estimated relative force accuracy = 0.00074388331
using double precision FFTW3
3d grid and FFT values/proc = 1053 128
0 atoms in group FixChargeRegulation:exclusion_group:chareg1
0 atoms in group FixChargeRegulation:exclusion_group:chareg2
0 atoms in group FixChargeRegulation:exclusion_group:chareg3
WARNING: Neighbor exclusions used with KSpace solver may give inconsistent Coulombic energies (src/neighbor.cpp:486)
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 23
ghost atom cutoff = 23
binsize = 11.5, bins = 9 9 9
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 6.878 | 6.935 | 6.992 Mbytes
Step PotEng c_dtemp f_chareg1[3] f_chareg1[4] f_chareg1[7] f_chareg1[8] f_chareg2[7] f_chareg2[8]
0 0.50528297 1 0 80 80 0 0 0
100 0.60223729 0.89547569 13 67 75 8 0 0
200 0.65253636 0.87662399 18 62 78 16 0 0
300 0.51550501 1.0542131 22 58 84 27 1 0
400 0.43566766 0.94557633 26 54 90 36 0 0
500 0.36269507 1.0386276 31 49 94 45 0 0
600 0.32430641 0.99903033 27 53 111 58 0 0
700 0.30255299 0.91225991 28 52 121 69 0 0
800 0.27189951 0.9747089 28 52 127 75 0 0
900 0.25495247 1.0747821 28 52 135 83 0 0
1000 0.25950416 0.95256449 32 48 134 86 0 0
1100 0.22561248 1.0102255 32 48 147 99 0 0
1200 0.1734754 0.99475154 33 47 157 110 0 0
1300 0.20081084 0.99873599 36 44 160 116 0 0
1400 0.14240417 0.99442152 36 44 164 121 1 0
1500 0.15314186 0.94559876 39 41 167 126 0 0
1600 0.13574107 1.0484195 43 37 164 127 0 0
1700 0.14477789 1.0105172 42 38 166 128 0 0
1800 0.13493107 1.0349667 41 39 171 132 0 0
1900 0.14849779 0.9994329 33 47 178 131 0 0
2000 0.14485171 0.99739608 34 46 183 137 0 0
Loop time of 3.18871 on 4 procs for 2000 steps with 400 atoms
Performance: 270955.695 tau/day, 627.212 timesteps/s
94.5% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.086456 | 0.11738 | 0.18562 | 11.8 | 3.68
Bond | 0.00099182 | 0.0018544 | 0.0030079 | 1.8 | 0.06
Kspace | 0.77406 | 0.79354 | 0.80895 | 1.5 | 24.89
Neigh | 0.017894 | 0.017948 | 0.018002 | 0.0 | 0.56
Comm | 0.029044 | 0.07885 | 0.11432 | 11.3 | 2.47
Output | 0.00054932 | 0.0009656 | 0.0021319 | 0.0 | 0.03
Modify | 2.1676 | 2.1706 | 2.1733 | 0.2 | 68.07
Other | | 0.007591 | | | 0.24
Nlocal: 100.000 ave 110 max 89 min
Histogram: 1 1 0 0 0 0 0 0 0 2
Nghost: 415.000 ave 418 max 411 min
Histogram: 1 0 1 0 0 0 0 0 0 2
Neighs: 1360.75 ave 1872 max 1018 min
Histogram: 1 1 0 0 1 0 0 0 0 1
Total # of neighbors = 5443
Ave neighs/atom = 13.607500
Ave special neighs/atom = 1.1700000
Neighbor list builds = 1492
Dangerous builds = 0
Total wall time: 0:00:03

View File

@ -0,0 +1,145 @@
LAMMPS (10 Feb 2021)
# Charge regulation lammps for simple weak electrolyte
units real
atom_style charge
neighbor 10.0 bin
read_data data.chreg-acid-real
Reading data file ...
orthogonal box = (-180.00000 -180.00000 -180.00000) to (180.00000 180.00000 180.00000)
1 by 1 by 1 MPI processor grid
reading atoms ...
219 atoms
read_data CPU = 0.002 seconds
#real units
variable sigma equal 7.2 # particle diameter 0.72 nm
variable temperature equal 298 # temperature 298 K
variable kb index 0.0019872067 # kB in Kcal/mol/K
variable epsilon equal ${kb}*${temperature}
variable epsilon equal 0.0019872067*${temperature}
variable epsilon equal 0.0019872067*298
variable tunit equal 2000 # time unit is 2000 fs
variable timestep equal 0.005*${tunit}
variable timestep equal 0.005*2000
variable cut_long equal 12.5*${sigma}
variable cut_long equal 12.5*7.2
variable nevery equal 100
variable nmc equal 100
variable pH equal 7.0
variable pKa equal 6.0
variable pIm equal 3.0
variable pIp equal 3.0
variable cut_lj equal 2^(1.0/6.0)*${sigma}
variable cut_lj equal 2^(1.0/6.0)*7.2
velocity all create ${temperature} 8008 loop geom
velocity all create 298 8008 loop geom
pair_style lj/cut/coul/long ${cut_lj} ${cut_long}
pair_style lj/cut/coul/long 8.08172674782749 ${cut_long}
pair_style lj/cut/coul/long 8.08172674782749 90
pair_coeff * * ${epsilon} ${sigma}
pair_coeff * * 0.5921875966 ${sigma}
pair_coeff * * 0.5921875966 7.2
kspace_style pppm 1.0e-3
dielectric 78
pair_modify shift yes
######### VERLET INTEGRATION WITH LANGEVIN THERMOSTAT ###########
fix fnve all nve
compute dtemp all temp
compute_modify dtemp dynamic yes
fix fT all langevin $(v_temperature) $(v_temperature) $(v_tunit) 123
fix fT all langevin 298 $(v_temperature) $(v_tunit) 123
fix fT all langevin 298 298 $(v_tunit) 123
fix fT all langevin 298 298 2000 123
fix_modify fT temp dtemp
fix chareg all charge/regulation 2 3 acid_type 1 pH ${pH} pKa ${pKa} pIp ${pIp} pIm ${pIm} lunit_nm 0.1 nevery ${nevery} nmc ${nmc} seed 2345 tempfixid fT
fix chareg all charge/regulation 2 3 acid_type 1 pH 7 pKa ${pKa} pIp ${pIp} pIm ${pIm} lunit_nm 0.1 nevery ${nevery} nmc ${nmc} seed 2345 tempfixid fT
fix chareg all charge/regulation 2 3 acid_type 1 pH 7 pKa 6 pIp ${pIp} pIm ${pIm} lunit_nm 0.1 nevery ${nevery} nmc ${nmc} seed 2345 tempfixid fT
fix chareg all charge/regulation 2 3 acid_type 1 pH 7 pKa 6 pIp 3 pIm ${pIm} lunit_nm 0.1 nevery ${nevery} nmc ${nmc} seed 2345 tempfixid fT
fix chareg all charge/regulation 2 3 acid_type 1 pH 7 pKa 6 pIp 3 pIm 3 lunit_nm 0.1 nevery ${nevery} nmc ${nmc} seed 2345 tempfixid fT
fix chareg all charge/regulation 2 3 acid_type 1 pH 7 pKa 6 pIp 3 pIm 3 lunit_nm 0.1 nevery 100 nmc ${nmc} seed 2345 tempfixid fT
fix chareg all charge/regulation 2 3 acid_type 1 pH 7 pKa 6 pIp 3 pIm 3 lunit_nm 0.1 nevery 100 nmc 100 seed 2345 tempfixid fT
thermo 100
thermo_style custom step pe c_dtemp f_chareg[1] f_chareg[2] f_chareg[3] f_chareg[4] f_chareg[5] f_chareg[6] f_chareg[7] f_chareg[8]
timestep ${timestep}
timestep 10
run 2000
PPPM initialization ...
using 12-bit tables for long-range coulomb (../kspace.cpp:339)
G vector (1/distance) = 0.019408615
grid = 8 8 8
stencil order = 5
estimated absolute RMS force accuracy = 0.00012527706
estimated relative force accuracy = 3.7726815e-07
using double precision KISS FFT
3d grid and FFT values/proc = 2197 512
0 atoms in group FixChargeRegulation:exclusion_group:chareg
WARNING: Neighbor exclusions used with KSpace solver may give inconsistent Coulombic energies (../neighbor.cpp:486)
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 100
ghost atom cutoff = 100
binsize = 50, bins = 8 8 8
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 3.708 | 3.708 | 3.708 Mbytes
Step PotEng c_dtemp f_chareg[1] f_chareg[2] f_chareg[3] f_chareg[4] f_chareg[5] f_chareg[6] f_chareg[7] f_chareg[8]
0 -6.4798431 298 0 0 1 99 0 0 109 10
100 -6.9219668 306.44177 100 77 15 85 0 0 94 9
200 -6.8175255 306.64254 200 164 23 77 0 0 87 10
300 -5.2482381 331.67831 300 248 21 79 0 0 85 6
400 -7.4531538 285.3495 400 326 17 83 0 0 89 6
500 -6.9662528 286.2123 500 408 14 86 0 0 95 9
600 -6.528214 291.41762 600 492 14 86 0 0 95 9
700 -6.290871 271.50948 700 567 14 86 0 0 96 10
800 -6.4944741 300.66261 800 650 23 77 0 0 83 6
900 -8.0414672 305.6179 900 731 25 75 0 0 84 9
1000 -8.5694583 298.73349 1000 810 25 75 0 0 83 8
1100 -8.6677368 269.67435 1100 894 22 78 0 0 87 9
1200 -8.2246183 284.14886 1200 969 22 78 0 0 88 10
1300 -7.7674621 320.04838 1300 1040 23 77 0 0 85 8
1400 -9.5186335 303.48091 1400 1124 18 82 0 0 93 11
1500 -5.8437493 271.40712 1500 1204 25 75 0 0 83 8
1600 -5.9149181 268.24708 1600 1285 23 77 0 0 90 13
1700 -6.5047738 303.79732 1700 1369 27 73 0 0 84 11
1800 -7.3010139 308.98213 1800 1450 22 78 0 0 83 5
1900 -6.3505397 306.94357 1900 1527 22 78 0 0 86 8
2000 -5.7144173 287.06184 2000 1605 27 73 0 0 80 7
Loop time of 1.17189 on 1 procs for 2000 steps with 187 atoms
Performance: 1474.535 ns/day, 0.016 hours/ns, 1706.638 timesteps/s
99.6% CPU use with 1 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.035807 | 0.035807 | 0.035807 | 0.0 | 3.06
Kspace | 0.37689 | 0.37689 | 0.37689 | 0.0 | 32.16
Neigh | 0.008694 | 0.008694 | 0.008694 | 0.0 | 0.74
Comm | 0.004793 | 0.004793 | 0.004793 | 0.0 | 0.41
Output | 0.000746 | 0.000746 | 0.000746 | 0.0 | 0.06
Modify | 0.74292 | 0.74292 | 0.74292 | 0.0 | 63.39
Other | | 0.00205 | | | 0.17
Nlocal: 187.000 ave 187 max 187 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 437.000 ave 437 max 437 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 1500.00 ave 1500 max 1500 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 1500
Ave neighs/atom = 8.0213904
Neighbor list builds = 2080
Dangerous builds = 0
Total wall time: 0:00:01

View File

@ -0,0 +1,145 @@
LAMMPS (10 Feb 2021)
# Charge regulation lammps for simple weak electrolyte
units real
atom_style charge
neighbor 10.0 bin
read_data data.chreg-acid-real
Reading data file ...
orthogonal box = (-180.00000 -180.00000 -180.00000) to (180.00000 180.00000 180.00000)
1 by 2 by 2 MPI processor grid
reading atoms ...
219 atoms
read_data CPU = 0.002 seconds
#real units
variable sigma equal 7.2 # particle diameter 0.72 nm
variable temperature equal 298 # temperature 298 K
variable kb index 0.0019872067 # kB in Kcal/mol/K
variable epsilon equal ${kb}*${temperature}
variable epsilon equal 0.0019872067*${temperature}
variable epsilon equal 0.0019872067*298
variable tunit equal 2000 # time unit is 2000 fs
variable timestep equal 0.005*${tunit}
variable timestep equal 0.005*2000
variable cut_long equal 12.5*${sigma}
variable cut_long equal 12.5*7.2
variable nevery equal 100
variable nmc equal 100
variable pH equal 7.0
variable pKa equal 6.0
variable pIm equal 3.0
variable pIp equal 3.0
variable cut_lj equal 2^(1.0/6.0)*${sigma}
variable cut_lj equal 2^(1.0/6.0)*7.2
velocity all create ${temperature} 8008 loop geom
velocity all create 298 8008 loop geom
pair_style lj/cut/coul/long ${cut_lj} ${cut_long}
pair_style lj/cut/coul/long 8.08172674782749 ${cut_long}
pair_style lj/cut/coul/long 8.08172674782749 90
pair_coeff * * ${epsilon} ${sigma}
pair_coeff * * 0.5921875966 ${sigma}
pair_coeff * * 0.5921875966 7.2
kspace_style pppm 1.0e-3
dielectric 78
pair_modify shift yes
######### VERLET INTEGRATION WITH LANGEVIN THERMOSTAT ###########
fix fnve all nve
compute dtemp all temp
compute_modify dtemp dynamic yes
fix fT all langevin $(v_temperature) $(v_temperature) $(v_tunit) 123
fix fT all langevin 298 $(v_temperature) $(v_tunit) 123
fix fT all langevin 298 298 $(v_tunit) 123
fix fT all langevin 298 298 2000 123
fix_modify fT temp dtemp
fix chareg all charge/regulation 2 3 acid_type 1 pH ${pH} pKa ${pKa} pIp ${pIp} pIm ${pIm} lunit_nm 0.1 nevery ${nevery} nmc ${nmc} seed 2345 tempfixid fT
fix chareg all charge/regulation 2 3 acid_type 1 pH 7 pKa ${pKa} pIp ${pIp} pIm ${pIm} lunit_nm 0.1 nevery ${nevery} nmc ${nmc} seed 2345 tempfixid fT
fix chareg all charge/regulation 2 3 acid_type 1 pH 7 pKa 6 pIp ${pIp} pIm ${pIm} lunit_nm 0.1 nevery ${nevery} nmc ${nmc} seed 2345 tempfixid fT
fix chareg all charge/regulation 2 3 acid_type 1 pH 7 pKa 6 pIp 3 pIm ${pIm} lunit_nm 0.1 nevery ${nevery} nmc ${nmc} seed 2345 tempfixid fT
fix chareg all charge/regulation 2 3 acid_type 1 pH 7 pKa 6 pIp 3 pIm 3 lunit_nm 0.1 nevery ${nevery} nmc ${nmc} seed 2345 tempfixid fT
fix chareg all charge/regulation 2 3 acid_type 1 pH 7 pKa 6 pIp 3 pIm 3 lunit_nm 0.1 nevery 100 nmc ${nmc} seed 2345 tempfixid fT
fix chareg all charge/regulation 2 3 acid_type 1 pH 7 pKa 6 pIp 3 pIm 3 lunit_nm 0.1 nevery 100 nmc 100 seed 2345 tempfixid fT
thermo 100
thermo_style custom step pe c_dtemp f_chareg[1] f_chareg[2] f_chareg[3] f_chareg[4] f_chareg[5] f_chareg[6] f_chareg[7] f_chareg[8]
timestep ${timestep}
timestep 10
run 2000
PPPM initialization ...
using 12-bit tables for long-range coulomb (../kspace.cpp:339)
G vector (1/distance) = 0.019408615
grid = 8 8 8
stencil order = 5
estimated absolute RMS force accuracy = 0.00012527706
estimated relative force accuracy = 3.7726815e-07
using double precision KISS FFT
3d grid and FFT values/proc = 1053 128
0 atoms in group FixChargeRegulation:exclusion_group:chareg
WARNING: Neighbor exclusions used with KSpace solver may give inconsistent Coulombic energies (../neighbor.cpp:486)
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 100
ghost atom cutoff = 100
binsize = 50, bins = 8 8 8
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 3.624 | 3.624 | 3.624 Mbytes
Step PotEng c_dtemp f_chareg[1] f_chareg[2] f_chareg[3] f_chareg[4] f_chareg[5] f_chareg[6] f_chareg[7] f_chareg[8]
0 -6.4798431 298 0 0 1 99 0 0 109 10
100 -7.6327126 304.68909 100 73 15 85 0 0 94 9
200 -6.1699041 272.19597 200 156 24 76 0 0 87 11
300 -7.7876571 288.90801 300 240 20 80 0 0 87 7
400 -6.3239918 274.65708 400 315 16 84 0 0 90 6
500 -5.3978659 257.49208 500 398 15 85 0 0 93 8
600 -5.6433949 322.52048 600 477 18 82 0 0 90 8
700 -6.5351367 269.20244 700 558 18 82 0 0 91 9
800 -6.2093085 315.21326 800 638 24 76 0 0 83 7
900 -7.0795998 311.93228 900 719 28 72 0 0 82 10
1000 -6.4668438 281.72674 1000 796 27 73 0 0 81 8
1100 -6.2377994 318.48594 1100 875 25 75 0 0 84 9
1200 -6.6305072 304.9091 1200 950 23 77 0 0 87 10
1300 -5.9624552 286.05027 1300 1029 22 78 0 0 86 8
1400 -4.4695814 261.81053 1400 1111 20 80 0 0 90 10
1500 -5.6928652 293.72403 1500 1191 24 76 0 0 86 10
1600 -6.8715413 290.47065 1600 1275 22 78 0 0 90 12
1700 -6.5067505 292.74735 1700 1356 25 75 0 0 85 10
1800 -5.3902702 307.79012 1800 1434 22 78 0 0 83 5
1900 -5.1407153 318.48918 1900 1510 21 79 0 0 87 8
2000 -4.9514719 281.87771 2000 1589 25 75 0 0 82 7
Loop time of 0.562889 on 4 procs for 2000 steps with 189 atoms
Performance: 3069.876 ns/day, 0.008 hours/ns, 3553.097 timesteps/s
99.6% CPU use with 4 MPI tasks x no OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.008399 | 0.010383 | 0.011765 | 1.2 | 1.84
Kspace | 0.17501 | 0.17543 | 0.1757 | 0.1 | 31.17
Neigh | 0.001833 | 0.0021325 | 0.002293 | 0.4 | 0.38
Comm | 0.023099 | 0.024255 | 0.026645 | 0.9 | 4.31
Output | 0.000465 | 0.000546 | 0.000783 | 0.0 | 0.10
Modify | 0.3464 | 0.34669 | 0.34698 | 0.0 | 61.59
Other | | 0.003452 | | | 0.61
Nlocal: 47.2500 ave 57 max 41 min
Histogram: 1 1 0 1 0 0 0 0 0 1
Nghost: 285.750 ave 303 max 263 min
Histogram: 1 0 0 0 1 0 0 0 1 1
Neighs: 403.500 ave 548 max 324 min
Histogram: 2 0 0 1 0 0 0 0 0 1
Total # of neighbors = 1614
Ave neighs/atom = 8.5396825
Neighbor list builds = 2081
Dangerous builds = 0
Total wall time: 0:00:00

View File

@ -0,0 +1 @@
../../../potentials/Cu-PBE-core-rep.ace

View File

@ -0,0 +1,38 @@
# simple test of fcc Cu with ACE product
units metal
atom_style atomic
neighbor 0.3 bin
neigh_modify every 2 delay 10 check yes
variable a equal 3.597
lattice fcc $a
region box block 0 4 0 4 0 4
create_box 1 box
create_atoms 1 box
mass 1 26.98
group Al type 1
pair_style pace product
pair_coeff * * Cu-PBE-core-rep.ace Cu
velocity all create 300 8728 loop geom
timestep 0.0005
fix 1 all nve
compute eatom all pe/atom
compute energy all reduce sum c_eatom
variable delenergy equal c_energy-pe
compute satom all stress/atom NULL
compute str all reduce sum c_satom[1] c_satom[2] c_satom[3]
variable delpress equal -(c_str[1]+c_str[2]+c_str[3])/(3*vol)-press
thermo 10
thermo_style custom step temp epair etotal press v_delenergy v_delpress
run 100

View File

@ -0,0 +1,38 @@
# simple test of fcc Cu with ACE recursive
units metal
atom_style atomic
neighbor 0.3 bin
neigh_modify every 2 delay 10 check yes
variable a equal 3.597
lattice fcc $a
region box block 0 4 0 4 0 4
create_box 1 box
create_atoms 1 box
mass 1 26.98
group Al type 1
pair_style pace recursive
pair_coeff * * Cu-PBE-core-rep.ace Cu
velocity all create 300 8728 loop geom
timestep 0.0005
fix 1 all nve
compute eatom all pe/atom
compute energy all reduce sum c_eatom
variable delenergy equal c_energy-pe
compute satom all stress/atom NULL
compute str all reduce sum c_satom[1] c_satom[2] c_satom[3]
variable delpress equal -(c_str[1]+c_str[2]+c_str[3])/(3*vol)-press
thermo 10
thermo_style custom step temp epair etotal press v_delenergy v_delpress
run 100

View File

@ -0,0 +1,108 @@
LAMMPS (24 Dec 2020)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:94)
using 1 OpenMP thread(s) per MPI task
# simple test of fcc Cu with ACE product
units metal
atom_style atomic
neighbor 0.3 bin
neigh_modify every 2 delay 10 check yes
variable a equal 3.597
lattice fcc $a
lattice fcc 3.597
Lattice spacing in x,y,z = 3.5970000 3.5970000 3.5970000
region box block 0 4 0 4 0 4
create_box 1 box
Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (14.388000 14.388000 14.388000)
1 by 1 by 1 MPI processor grid
create_atoms 1 box
Created 256 atoms
create_atoms CPU = 0.000 seconds
mass 1 26.98
group Al type 1
256 atoms in group Al
pair_style pace product
ACE version: 2021.2.3
Product evaluator is used
pair_coeff * * Cu-PBE-core-rep.ace Cu
Loading Cu-PBE-core-rep.ace
Total number of basis functions
Cu: 16 (r=1) 726 (r>1)
Mapping LAMMPS atom type #1(Cu) -> ACE species type #0
velocity all create 300 8728 loop geom
timestep 0.0005
fix 1 all nve
compute eatom all pe/atom
compute energy all reduce sum c_eatom
variable delenergy equal c_energy-pe
compute satom all stress/atom NULL
compute str all reduce sum c_satom[1] c_satom[2] c_satom[3]
variable delpress equal -(c_str[1]+c_str[2]+c_str[3])/(3*vol)-press
thermo 10
thermo_style custom step temp epair etotal press v_delenergy v_delpress
run 100
Neighbor list info ...
update every 2 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 7.7
ghost atom cutoff = 7.7
binsize = 3.85, bins = 4 4 4
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair pace, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 4.036 | 4.036 | 4.036 Mbytes
Step Temp E_pair TotEng Press v_delenergy v_delpress
0 300 -945.9873 -936.0989 45359.818 0 2.1827873e-11
10 280.68558 -945.35055 -936.09878 46326.919 0 2.910383e-11
20 228.73618 -943.63789 -936.09844 48903.598 0 -2.910383e-11
30 160.53661 -941.38948 -936.09798 52222.083 0 -2.910383e-11
40 97.732944 -939.31899 -936.09758 55176.875 0 2.1827873e-11
50 59.165961 -938.04759 -936.0974 56850.103 0 2.910383e-11
60 53.124678 -937.84857 -936.09751 56878.948 0 0
70 74.623347 -938.5575 -936.09782 55565.237 0 4.3655746e-11
80 109.4762 -939.70663 -936.09815 53665.652 0 2.910383e-11
90 142.02657 -940.77975 -936.09837 52001.1 0 0
100 161.73598 -941.42945 -936.09842 51114.997 0 1.4551915e-11
Loop time of 11.4718 on 1 procs for 100 steps with 256 atoms
Performance: 0.377 ns/day, 63.732 hours/ns, 8.717 timesteps/s
99.3% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 11.468 | 11.468 | 11.468 | 0.0 | 99.96
Neigh | 0.001181 | 0.001181 | 0.001181 | 0.0 | 0.01
Comm | 0.001207 | 0.001207 | 0.001207 | 0.0 | 0.01
Output | 0.000876 | 0.000876 | 0.000876 | 0.0 | 0.01
Modify | 0.000455 | 0.000455 | 0.000455 | 0.0 | 0.00
Other | | 0.000397 | | | 0.00
Nlocal: 256.000 ave 256 max 256 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 2201.00 ave 2201 max 2201 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 0.00000 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 43118.0 ave 43118 max 43118 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 43118
Ave neighs/atom = 168.42969
Neighbor list builds = 1
Dangerous builds = 0
Total wall time: 0:00:11

View File

@ -0,0 +1,108 @@
LAMMPS (24 Dec 2020)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:94)
using 1 OpenMP thread(s) per MPI task
# simple test of fcc Cu with ACE product
units metal
atom_style atomic
neighbor 0.3 bin
neigh_modify every 2 delay 10 check yes
variable a equal 3.597
lattice fcc $a
lattice fcc 3.597
Lattice spacing in x,y,z = 3.5970000 3.5970000 3.5970000
region box block 0 4 0 4 0 4
create_box 1 box
Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (14.388000 14.388000 14.388000)
1 by 2 by 2 MPI processor grid
create_atoms 1 box
Created 256 atoms
create_atoms CPU = 0.000 seconds
mass 1 26.98
group Al type 1
256 atoms in group Al
pair_style pace product
ACE version: 2021.2.3
Product evaluator is used
pair_coeff * * Cu-PBE-core-rep.ace Cu
Loading Cu-PBE-core-rep.ace
Total number of basis functions
Cu: 16 (r=1) 726 (r>1)
Mapping LAMMPS atom type #1(Cu) -> ACE species type #0
velocity all create 300 8728 loop geom
timestep 0.0005
fix 1 all nve
compute eatom all pe/atom
compute energy all reduce sum c_eatom
variable delenergy equal c_energy-pe
compute satom all stress/atom NULL
compute str all reduce sum c_satom[1] c_satom[2] c_satom[3]
variable delpress equal -(c_str[1]+c_str[2]+c_str[3])/(3*vol)-press
thermo 10
thermo_style custom step temp epair etotal press v_delenergy v_delpress
run 100
Neighbor list info ...
update every 2 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 7.7
ghost atom cutoff = 7.7
binsize = 3.85, bins = 4 4 4
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair pace, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 4.005 | 4.005 | 4.005 Mbytes
Step Temp E_pair TotEng Press v_delenergy v_delpress
0 300 -945.9873 -936.0989 45359.818 0 -1.4551915e-11
10 280.68558 -945.35055 -936.09878 46326.919 0 2.910383e-11
20 228.73618 -943.63789 -936.09844 48903.598 0 0
30 160.53661 -941.38948 -936.09798 52222.083 0 -2.910383e-11
40 97.732944 -939.31899 -936.09758 55176.875 0 2.1827873e-11
50 59.165961 -938.04759 -936.0974 56850.103 0 -1.4551915e-11
60 53.124678 -937.84857 -936.09751 56878.948 0 7.2759576e-12
70 74.623347 -938.5575 -936.09782 55565.237 0 0
80 109.4762 -939.70663 -936.09815 53665.652 0 2.1827873e-11
90 142.02657 -940.77975 -936.09837 52001.1 0 -1.4551915e-11
100 161.73598 -941.42945 -936.09842 51114.997 0 1.4551915e-11
Loop time of 3.54317 on 4 procs for 100 steps with 256 atoms
Performance: 1.219 ns/day, 19.684 hours/ns, 28.223 timesteps/s
98.7% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 3.1375 | 3.3058 | 3.469 | 6.5 | 93.30
Neigh | 0.000284 | 0.00031975 | 0.000352 | 0.0 | 0.01
Comm | 0.071607 | 0.23492 | 0.40336 | 24.6 | 6.63
Output | 0.001189 | 0.0012315 | 0.001347 | 0.2 | 0.03
Modify | 0.000311 | 0.00032725 | 0.000351 | 0.0 | 0.01
Other | | 0.0005298 | | | 0.01
Nlocal: 64.0000 ave 71 max 57 min
Histogram: 1 0 0 0 1 1 0 0 0 1
Nghost: 1373.00 ave 1380 max 1366 min
Histogram: 1 0 0 0 1 1 0 0 0 1
Neighs: 0.00000 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
FullNghs: 10779.5 ave 11978 max 9604 min
Histogram: 1 0 0 0 1 1 0 0 0 1
Total # of neighbors = 43118
Ave neighs/atom = 168.42969
Neighbor list builds = 1
Dangerous builds = 0
Total wall time: 0:00:03

View File

@ -0,0 +1,108 @@
LAMMPS (24 Dec 2020)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:94)
using 1 OpenMP thread(s) per MPI task
# simple test of fcc Cu with ACE recursive
units metal
atom_style atomic
neighbor 0.3 bin
neigh_modify every 2 delay 10 check yes
variable a equal 3.597
lattice fcc $a
lattice fcc 3.597
Lattice spacing in x,y,z = 3.5970000 3.5970000 3.5970000
region box block 0 4 0 4 0 4
create_box 1 box
Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (14.388000 14.388000 14.388000)
1 by 1 by 1 MPI processor grid
create_atoms 1 box
Created 256 atoms
create_atoms CPU = 0.000 seconds
mass 1 26.98
group Al type 1
256 atoms in group Al
pair_style pace recursive
ACE version: 2021.2.3
Recursive evaluator is used
pair_coeff * * Cu-PBE-core-rep.ace Cu
Loading Cu-PBE-core-rep.ace
Total number of basis functions
Cu: 16 (r=1) 726 (r>1)
Mapping LAMMPS atom type #1(Cu) -> ACE species type #0
velocity all create 300 8728 loop geom
timestep 0.0005
fix 1 all nve
compute eatom all pe/atom
compute energy all reduce sum c_eatom
variable delenergy equal c_energy-pe
compute satom all stress/atom NULL
compute str all reduce sum c_satom[1] c_satom[2] c_satom[3]
variable delpress equal -(c_str[1]+c_str[2]+c_str[3])/(3*vol)-press
thermo 10
thermo_style custom step temp epair etotal press v_delenergy v_delpress
run 100
Neighbor list info ...
update every 2 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 7.7
ghost atom cutoff = 7.7
binsize = 3.85, bins = 4 4 4
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair pace, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 4.036 | 4.036 | 4.036 Mbytes
Step Temp E_pair TotEng Press v_delenergy v_delpress
0 300 -945.9873 -936.0989 45359.818 0 0
10 280.68558 -945.35055 -936.09878 46326.919 0 5.8207661e-11
20 228.73618 -943.63789 -936.09844 48903.598 0 1.4551915e-11
30 160.53661 -941.38948 -936.09798 52222.083 0 7.2759576e-11
40 97.732944 -939.31899 -936.09758 55176.875 0 -5.8207661e-11
50 59.165961 -938.04759 -936.0974 56850.103 0 0
60 53.124678 -937.84857 -936.09751 56878.948 0 8.7311491e-11
70 74.623347 -938.5575 -936.09782 55565.237 0 -1.4551915e-11
80 109.4762 -939.70663 -936.09815 53665.652 0 2.1827873e-11
90 142.02657 -940.77975 -936.09837 52001.1 0 2.910383e-11
100 161.73598 -941.42945 -936.09842 51114.997 0 0
Loop time of 9.31437 on 1 procs for 100 steps with 256 atoms
Performance: 0.464 ns/day, 51.746 hours/ns, 10.736 timesteps/s
99.4% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 9.3103 | 9.3103 | 9.3103 | 0.0 | 99.96
Neigh | 0.001214 | 0.001214 | 0.001214 | 0.0 | 0.01
Comm | 0.001176 | 0.001176 | 0.001176 | 0.0 | 0.01
Output | 0.000827 | 0.000827 | 0.000827 | 0.0 | 0.01
Modify | 0.000479 | 0.000479 | 0.000479 | 0.0 | 0.01
Other | | 0.000363 | | | 0.00
Nlocal: 256.000 ave 256 max 256 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 2201.00 ave 2201 max 2201 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 0.00000 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 43118.0 ave 43118 max 43118 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 43118
Ave neighs/atom = 168.42969
Neighbor list builds = 1
Dangerous builds = 0
Total wall time: 0:00:09

View File

@ -0,0 +1,108 @@
LAMMPS (24 Dec 2020)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:94)
using 1 OpenMP thread(s) per MPI task
# simple test of fcc Cu with ACE recursive
units metal
atom_style atomic
neighbor 0.3 bin
neigh_modify every 2 delay 10 check yes
variable a equal 3.597
lattice fcc $a
lattice fcc 3.597
Lattice spacing in x,y,z = 3.5970000 3.5970000 3.5970000
region box block 0 4 0 4 0 4
create_box 1 box
Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (14.388000 14.388000 14.388000)
1 by 2 by 2 MPI processor grid
create_atoms 1 box
Created 256 atoms
create_atoms CPU = 0.000 seconds
mass 1 26.98
group Al type 1
256 atoms in group Al
pair_style pace recursive
ACE version: 2021.2.3
Recursive evaluator is used
pair_coeff * * Cu-PBE-core-rep.ace Cu
Loading Cu-PBE-core-rep.ace
Total number of basis functions
Cu: 16 (r=1) 726 (r>1)
Mapping LAMMPS atom type #1(Cu) -> ACE species type #0
velocity all create 300 8728 loop geom
timestep 0.0005
fix 1 all nve
compute eatom all pe/atom
compute energy all reduce sum c_eatom
variable delenergy equal c_energy-pe
compute satom all stress/atom NULL
compute str all reduce sum c_satom[1] c_satom[2] c_satom[3]
variable delpress equal -(c_str[1]+c_str[2]+c_str[3])/(3*vol)-press
thermo 10
thermo_style custom step temp epair etotal press v_delenergy v_delpress
run 100
Neighbor list info ...
update every 2 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 7.7
ghost atom cutoff = 7.7
binsize = 3.85, bins = 4 4 4
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair pace, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 4.005 | 4.005 | 4.005 Mbytes
Step Temp E_pair TotEng Press v_delenergy v_delpress
0 300 -945.9873 -936.0989 45359.818 0 -5.0931703e-11
10 280.68558 -945.35055 -936.09878 46326.919 0 1.4551915e-11
20 228.73618 -943.63789 -936.09844 48903.598 0 0
30 160.53661 -941.38948 -936.09798 52222.083 0 -2.910383e-11
40 97.732944 -939.31899 -936.09758 55176.875 0 0
50 59.165961 -938.04759 -936.0974 56850.103 0 -2.910383e-11
60 53.124678 -937.84857 -936.09751 56878.948 0 1.4551915e-11
70 74.623347 -938.5575 -936.09782 55565.237 0 3.6379788e-11
80 109.4762 -939.70663 -936.09815 53665.652 0 -7.2759576e-12
90 142.02657 -940.77975 -936.09837 52001.1 0 -2.910383e-11
100 161.73598 -941.42945 -936.09842 51114.997 0 7.2759576e-12
Loop time of 2.91339 on 4 procs for 100 steps with 256 atoms
Performance: 1.483 ns/day, 16.185 hours/ns, 34.324 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 | 2.5753 | 2.723 | 2.8656 | 6.3 | 93.46
Neigh | 0.000308 | 0.000365 | 0.00046 | 0.0 | 0.01
Comm | 0.045106 | 0.18792 | 0.33552 | 24.1 | 6.45
Output | 0.001213 | 0.001259 | 0.001388 | 0.2 | 0.04
Modify | 0.000304 | 0.00033 | 0.00037 | 0.0 | 0.01
Other | | 0.0005595 | | | 0.02
Nlocal: 64.0000 ave 71 max 57 min
Histogram: 1 0 0 0 1 1 0 0 0 1
Nghost: 1373.00 ave 1380 max 1366 min
Histogram: 1 0 0 0 1 1 0 0 0 1
Neighs: 0.00000 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
FullNghs: 10779.5 ave 11978 max 9604 min
Histogram: 1 0 0 0 1 1 0 0 0 1
Total # of neighbors = 43118
Ave neighs/atom = 168.42969
Neighbor list builds = 1
Dangerous builds = 0
Total wall time: 0:00:03

View File

@ -0,0 +1,56 @@
# sample surface deposition script for molecules
units lj
atom_style bond
boundary p p f
lattice fcc 1.0
region box block 0 5 0 5 0 10
create_box 3 box bond/types 1 extra/bond/per/atom 1
region substrate block INF INF INF INF INF 3
create_atoms 1 region substrate
pair_style lj/cut 2.5
pair_coeff * * 1.0 1.0
pair_coeff 1 2 1.0 1.0 5.0
mass * 1.0
bond_style harmonic
bond_coeff 1 5.0 1.0
neigh_modify delay 0
molecule dimer molecule.dimer
region slab block 0 5 0 5 8 9
group addatoms empty
region mobile block 0 5 0 5 2 INF
group mobile region mobile
compute add addatoms temp
compute_modify add dynamic/dof yes extra/dof 0
fix 1 addatoms rigid/nve/small molecule mol dimer
fix 2 mobile langevin 0.1 0.1 0.1 587283
fix 3 mobile nve
fix 4 addatoms deposit 100 0 100 12345 region slab near 1.0 &
mol dimer vz -1.0 -1.0 rigid 1
fix 5 addatoms wall/reflect zhi EDGE
thermo_style custom step atoms temp epair etotal press
thermo 100
thermo_modify temp add lost/bond ignore lost warn
#dump 1 all atom 50 dump.deposit.atom
#dump 2 all image 50 image.*.jpg type type &
# axes yes 0.8 0.02 view 80 -30
#dump_modify 2 pad 5
#dump 3 all movie 50 tmp.mpg type type &
# axes yes 0.8 0.02 view 80 -30
#dump_modify 3 pad 5
run 10000

View File

@ -0,0 +1,56 @@
# sample surface deposition script for molecules
units lj
atom_style bond
boundary p p f
lattice fcc 1.0
region box block 0 5 0 5 0 10
create_box 3 box bond/types 1 extra/bond/per/atom 1
region substrate block INF INF INF INF INF 3
create_atoms 1 region substrate
pair_style lj/cut 2.5
pair_coeff * * 1.0 1.0
pair_coeff 1 2 1.0 1.0 5.0
mass * 1.0
bond_style harmonic
bond_coeff 1 5.0 1.0
neigh_modify delay 0
molecule dimer molecule.dimer
region slab block 0 5 0 5 8 9
group addatoms empty
region mobile block 0 5 0 5 2 INF
group mobile region mobile
compute add addatoms temp
compute_modify add dynamic/dof yes extra/dof 0
fix 1 addatoms rigid/nvt/small molecule temp 0.1 0.1 0.1 mol dimer
fix 2 mobile langevin 0.1 0.1 0.1 587283
fix 3 mobile nve
fix 4 addatoms deposit 100 0 100 12345 region slab near 1.0 &
mol dimer vz -1.0 -1.0 rigid 1
fix 5 addatoms wall/reflect zhi EDGE
thermo_style custom step atoms temp epair etotal press
thermo 100
thermo_modify temp add lost/bond ignore lost warn
#dump 1 all atom 50 dump.deposit.atom
#dump 2 all image 50 image.*.jpg type type &
# axes yes 0.8 0.02 view 80 -30
#dump_modify 2 pad 5
#dump 3 all movie 50 tmp.mpg type type &
# axes yes 0.8 0.02 view 80 -30
#dump_modify 3 pad 5
run 10000

View File

@ -0,0 +1,56 @@
# sample surface deposition script for molecules
units lj
atom_style bond
boundary p p f
lattice fcc 1.0
region box block 0 5 0 5 0 10
create_box 3 box bond/types 1 extra/bond/per/atom 1
region substrate block INF INF INF INF INF 3
create_atoms 1 region substrate
pair_style lj/cut 2.5
pair_coeff * * 1.0 1.0
pair_coeff 1 2 1.0 1.0 5.0
mass * 1.0
bond_style harmonic
bond_coeff 1 5.0 1.0
neigh_modify delay 0
molecule dimer molecule.dimer
region slab block 0 5 0 5 8 9
group addatoms empty
region mobile block 0 5 0 5 2 INF
group mobile region mobile
compute add addatoms temp
compute_modify add dynamic/dof yes extra/dof 0
fix 1 addatoms rigid/small molecule mol dimer
fix 2 mobile langevin 0.1 0.1 0.1 587283
fix 3 mobile nve
fix 4 addatoms deposit 100 0 100 12345 region slab near 1.0 &
mol dimer vz -1.0 -1.0 rigid 1
fix 5 addatoms wall/reflect zhi EDGE
thermo_style custom step atoms temp epair etotal press
thermo 100
thermo_modify temp add lost/bond ignore lost warn
#dump 1 all atom 50 dump.deposit.atom
#dump 2 all image 50 image.*.jpg type type &
# axes yes 0.8 0.02 view 80 -30
#dump_modify 2 pad 5
#dump 3 all movie 50 tmp.mpg type type &
# axes yes 0.8 0.02 view 80 -30
#dump_modify 3 pad 5
run 10000

View File

@ -21,11 +21,11 @@ bond_coeff 1 5.0 1.0
neigh_modify delay 0
group addatoms type 2
group addatoms empty
region mobile block 0 5 0 5 2 INF
group mobile region mobile
compute add addatoms temp
compute add addatoms temp
compute_modify add dynamic/dof yes extra/dof 0
fix 1 addatoms nve

View File

@ -0,0 +1,218 @@
LAMMPS (10 Mar 2021)
using 1 OpenMP thread(s) per MPI task
# sample surface deposition script for molecules
units lj
atom_style bond
boundary p p f
lattice fcc 1.0
Lattice spacing in x,y,z = 1.5874011 1.5874011 1.5874011
region box block 0 5 0 5 0 10
create_box 3 box bond/types 1 extra/bond/per/atom 1
Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (7.9370053 7.9370053 15.874011)
1 by 1 by 1 MPI processor grid
region substrate block INF INF INF INF INF 3
create_atoms 1 region substrate
Created 350 atoms
create_atoms CPU = 0.001 seconds
pair_style lj/cut 2.5
pair_coeff * * 1.0 1.0
pair_coeff 1 2 1.0 1.0 5.0
mass * 1.0
bond_style harmonic
bond_coeff 1 5.0 1.0
neigh_modify delay 0
molecule dimer molecule.dimer
Read molecule template dimer:
1 molecules
2 atoms with max type 3
1 bonds with max type 1
0 angles with max type 0
0 dihedrals with max type 0
0 impropers with max type 0
region slab block 0 5 0 5 8 9
group addatoms empty
0 atoms in group addatoms
region mobile block 0 5 0 5 2 INF
group mobile region mobile
150 atoms in group mobile
compute add addatoms temp
compute_modify add dynamic/dof yes extra/dof 0
fix 1 addatoms rigid/nve/small molecule mol dimer
create bodies CPU = 0.000 seconds
0 rigid bodies with 0 atoms
1.0000000 = max distance from body owner to body atom
fix 2 mobile langevin 0.1 0.1 0.1 587283
fix 3 mobile nve
fix 4 addatoms deposit 100 0 100 12345 region slab near 1.0 mol dimer vz -1.0 -1.0 rigid 1
fix 5 addatoms wall/reflect zhi EDGE
thermo_style custom step atoms temp epair etotal press
thermo 100
thermo_modify temp add lost/bond ignore lost warn
WARNING: Temperature for thermo pressure is not for group all (src/thermo.cpp:468)
#dump 1 all atom 50 dump.deposit.atom
#dump 2 all image 50 image.*.jpg type type # axes yes 0.8 0.02 view 80 -30
#dump_modify 2 pad 5
#dump 3 all movie 50 tmp.mpg type type # axes yes 0.8 0.02 view 80 -30
#dump_modify 3 pad 5
run 10000
WARNING: Should not allow rigid bodies to bounce off relecting walls (src/fix_wall_reflect.cpp:182)
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 5.3
ghost atom cutoff = 5.3
binsize = 2.65, bins = 3 3 6
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 5.929 | 5.929 | 5.929 Mbytes
Step Atoms Temp E_pair TotEng Press
0 350 0 -6.9215833 -6.9215833 -1.0052629
100 352 1.0079368 -6.8875167 -6.8803581 -0.73353914
200 354 1.0081552 -6.8594643 -6.8452248 -0.70421276
300 356 1.0085803 -6.8171524 -6.7959042 -0.6917826
400 358 1.0099188 -6.7852701 -6.7570601 -0.70371699
500 360 1.0140221 -6.7493429 -6.7141338 -0.68415307
600 362 1.026148 -6.7105231 -6.6680032 -0.68314418
700 364 1.0683344 -6.6725162 -6.621154 -0.65747369
800 366 1.0958953 -6.6412275 -6.5813425 -0.68789615
900 368 1.1250034 -6.6101882 -6.541404 -0.66674346
1000 370 1.2326365 -6.5993719 -6.5160856 -0.69688655
1100 372 1.1397444 -6.5912865 -6.5070312 -0.6333041
1200 374 1.0514447 -6.5905753 -6.5062348 -0.71020272
1300 376 1.0033284 -6.5747792 -6.4880554 -0.65459641
1400 378 0.82996548 -6.5681806 -6.4913319 -0.60438595
1500 380 0.90239071 -6.5752982 -6.4862465 -0.66528503
1600 382 0.86403681 -6.5692212 -6.4787461 -0.65027922
1700 384 0.64748046 -6.5644242 -6.4927629 -0.63046709
1800 386 0.74288742 -6.5515741 -6.4649681 -0.67770665
1900 388 0.72584537 -6.5565195 -6.4676596 -0.66175025
2000 390 0.73351281 -6.5631154 -6.4690753 -0.64686647
2100 392 0.76490681 -6.5573734 -6.4549305 -0.68861526
2200 394 0.65926638 -6.5511574 -6.4591279 -0.71726284
2300 396 0.70267414 -6.5728555 -6.4708258 -0.64360436
2400 398 0.60523691 -6.5845973 -6.4933555 -0.63956839
2500 400 0.5103586 -6.5812006 -6.5014571 -0.68698448
2600 402 0.52401744 -6.6003358 -6.5156066 -0.68987222
2700 404 0.46421291 -6.5662747 -6.4887143 -0.72872856
2800 406 0.48254258 -6.5724266 -6.4892296 -0.75447872
2900 408 0.53073083 -6.5809842 -6.4866754 -0.67592283
3000 410 0.55314547 -6.5922077 -6.4910226 -0.74646953
3100 412 0.47150308 -6.5907273 -6.5020344 -0.64994935
3200 414 0.43047803 -6.5836315 -6.5004473 -0.79764713
3300 416 0.46289353 -6.5739439 -6.4821441 -0.76441674
3400 418 0.59724106 -6.5980575 -6.4766089 -0.73735626
3500 420 0.43571285 -6.5955972 -6.5048237 -0.64145941
3600 422 0.42461639 -6.6060271 -6.5154691 -0.70124484
3700 424 0.44323254 -6.6059723 -6.5092766 -0.74498147
3800 426 0.4037907 -6.592043 -6.5019958 -0.72171799
3900 428 0.41668443 -6.5975302 -6.5026079 -0.68327878
4000 430 0.44895183 -6.5958671 -6.4914597 -0.73939433
4100 432 0.39798052 -6.5952115 -6.5007833 -0.74871822
4200 434 0.45156734 -6.6237274 -6.5144772 -0.75111778
4300 436 0.48297356 -6.6395283 -6.5204465 -0.76105913
4400 438 0.43595234 -6.6347133 -6.5252276 -0.72858275
4500 440 0.44683726 -6.6385398 -6.5242916 -0.74280051
4600 442 0.47875512 -6.6419903 -6.5174274 -0.75579572
4700 444 0.43972605 -6.6406078 -6.5242388 -0.72196509
4800 446 0.43572615 -6.6495404 -6.5323047 -0.7135049
4900 448 0.38063437 -6.6432385 -6.5391588 -0.77087429
5000 450 0.4239223 -6.6617795 -6.5440233 -0.784531
5100 452 0.37201988 -6.6581813 -6.5532421 -0.74611403
5200 454 0.41765777 -6.6661321 -6.5465385 -0.75422239
5300 456 0.38015287 -6.6606624 -6.5502013 -0.78866702
5400 458 0.40549607 -6.6807118 -6.5611878 -0.78932883
5500 460 0.34444407 -6.6720564 -6.5690976 -0.77859171
5600 462 0.36572308 -6.6730078 -6.5621827 -0.85672419
5700 464 0.40055073 -6.6976989 -6.574685 -0.74251563
5800 466 0.36037213 -6.7022014 -6.5900685 -0.66239625
5900 468 0.32810921 -6.6952135 -6.591803 -0.83981757
6000 470 0.35110886 -6.6986862 -6.5866302 -0.82474047
6100 472 0.29965884 -6.6839503 -6.5871326 -0.7864913
6200 474 0.32402637 -6.6902745 -6.5843165 -0.74531083
6300 476 0.35042653 -6.6990084 -6.5830585 -0.74839967
6400 478 0.32695511 -6.6909459 -6.5815048 -0.76549489
6500 480 0.35209088 -6.6902987 -6.5711013 -0.71281516
6600 482 0.354106 -6.6890268 -6.567808 -0.81897158
6700 484 0.3504816 -6.681739 -6.5604463 -0.811609
6800 486 0.37396733 -6.7018369 -6.5710253 -0.80383296
6900 488 0.36435774 -6.7010114 -6.5722169 -0.72063651
7000 490 0.35631012 -6.7089806 -6.581727 -0.74152078
7100 492 0.37646659 -6.719154 -6.5833352 -0.77739001
7200 494 0.36546269 -6.7223269 -6.5891623 -0.8288767
7300 496 0.37688206 -6.7457243 -6.607053 -0.80062121
7400 498 0.30331409 -6.7284953 -6.6158184 -0.79894584
7500 500 0.30382936 -6.7333804 -6.6194444 -0.86924602
7600 502 0.30163143 -6.7294737 -6.6153104 -0.7689497
7700 504 0.30281215 -6.7233976 -6.6077402 -0.8557548
7800 506 0.33378009 -6.7244958 -6.5958651 -0.82584084
7900 508 0.31843128 -6.7250998 -6.6013002 -0.82424684
8000 510 0.35912946 -6.7399052 -6.5990701 -0.81879575
8100 512 0.31405017 -6.733487 -6.6092777 -0.72940457
8200 514 0.30475 -6.7271485 -6.6056043 -0.87958287
8300 516 0.30717434 -6.7277574 -6.6042329 -0.81700937
8400 518 0.33032462 -6.7382165 -6.6043011 -0.75436496
8500 520 0.32218568 -6.7351971 -6.6035347 -0.77661738
8600 522 0.30922651 -6.7275431 -6.6001797 -0.85334327
8700 524 0.30728021 -6.7237477 -6.5962029 -0.94977016
8800 526 0.31061903 -6.7181672 -6.5882505 -0.86132456
8900 528 0.33543344 -6.728929 -6.5875768 -0.87545919
9000 530 0.31887735 -6.7265066 -6.5911341 -0.76892061
9100 532 0.31888326 -6.7216274 -6.5852629 -0.83190298
9200 534 0.33310892 -6.7111349 -6.567661 -0.94282671
9300 536 0.34737171 -6.722515 -6.5718361 -0.95235602
9400 538 0.32752858 -6.7246204 -6.5815549 -0.86227131
9500 540 0.30665764 -6.7225391 -6.5876665 -0.87144326
9600 542 0.32747382 -6.7149245 -6.5699176 -0.86863105
9700 544 0.32463079 -6.7205757 -6.5758643 -0.85393932
9800 546 0.31517825 -6.7178961 -6.5764699 -0.81017759
9900 548 0.33649933 -6.7380644 -6.5860871 -0.80769312
10000 550 0.37394555 -6.7612874 -6.5913121 -0.82102213
Loop time of 16.7275 on 1 procs for 10000 steps with 550 atoms
Performance: 258256.688 tau/day, 597.816 timesteps/s
99.9% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 9.2508 | 9.2508 | 9.2508 | 0.0 | 55.30
Bond | 0.021603 | 0.021603 | 0.021603 | 0.0 | 0.13
Neigh | 4.5325 | 4.5325 | 4.5325 | 0.0 | 27.10
Comm | 0.62777 | 0.62777 | 0.62777 | 0.0 | 3.75
Output | 0.006916 | 0.006916 | 0.006916 | 0.0 | 0.04
Modify | 2.218 | 2.218 | 2.218 | 0.0 | 13.26
Other | | 0.07002 | | | 0.42
Nlocal: 550.000 ave 550 max 550 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 2344.00 ave 2344 max 2344 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 36607.0 ave 36607 max 36607 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 36607
Ave neighs/atom = 66.558182
Ave special neighs/atom = 0.36363636
Neighbor list builds = 847
Dangerous builds = 0
Total wall time: 0:00:16

View File

@ -0,0 +1,218 @@
LAMMPS (10 Mar 2021)
using 1 OpenMP thread(s) per MPI task
# sample surface deposition script for molecules
units lj
atom_style bond
boundary p p f
lattice fcc 1.0
Lattice spacing in x,y,z = 1.5874011 1.5874011 1.5874011
region box block 0 5 0 5 0 10
create_box 3 box bond/types 1 extra/bond/per/atom 1
Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (7.9370053 7.9370053 15.874011)
1 by 1 by 4 MPI processor grid
region substrate block INF INF INF INF INF 3
create_atoms 1 region substrate
Created 350 atoms
create_atoms CPU = 0.002 seconds
pair_style lj/cut 2.5
pair_coeff * * 1.0 1.0
pair_coeff 1 2 1.0 1.0 5.0
mass * 1.0
bond_style harmonic
bond_coeff 1 5.0 1.0
neigh_modify delay 0
molecule dimer molecule.dimer
Read molecule template dimer:
1 molecules
2 atoms with max type 3
1 bonds with max type 1
0 angles with max type 0
0 dihedrals with max type 0
0 impropers with max type 0
region slab block 0 5 0 5 8 9
group addatoms empty
0 atoms in group addatoms
region mobile block 0 5 0 5 2 INF
group mobile region mobile
150 atoms in group mobile
compute add addatoms temp
compute_modify add dynamic/dof yes extra/dof 0
fix 1 addatoms rigid/nve/small molecule mol dimer
create bodies CPU = 0.000 seconds
0 rigid bodies with 0 atoms
1.0000000 = max distance from body owner to body atom
fix 2 mobile langevin 0.1 0.1 0.1 587283
fix 3 mobile nve
fix 4 addatoms deposit 100 0 100 12345 region slab near 1.0 mol dimer vz -1.0 -1.0 rigid 1
fix 5 addatoms wall/reflect zhi EDGE
thermo_style custom step atoms temp epair etotal press
thermo 100
thermo_modify temp add lost/bond ignore lost warn
WARNING: Temperature for thermo pressure is not for group all (src/thermo.cpp:468)
#dump 1 all atom 50 dump.deposit.atom
#dump 2 all image 50 image.*.jpg type type # axes yes 0.8 0.02 view 80 -30
#dump_modify 2 pad 5
#dump 3 all movie 50 tmp.mpg type type # axes yes 0.8 0.02 view 80 -30
#dump_modify 3 pad 5
run 10000
WARNING: Should not allow rigid bodies to bounce off relecting walls (src/fix_wall_reflect.cpp:182)
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 5.3
ghost atom cutoff = 5.3
binsize = 2.65, bins = 3 3 6
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 5.255 | 5.852 | 6.302 Mbytes
Step Atoms Temp E_pair TotEng Press
0 350 0 -6.9215833 -6.9215833 -1.0052629
100 352 1.0079368 -6.8946578 -6.8874992 -0.73775337
200 354 1.0081552 -6.8645575 -6.850318 -0.69629729
300 356 1.0085803 -6.821677 -6.8004288 -0.69532657
400 358 1.0099188 -6.7837923 -6.7555822 -0.68879568
500 360 1.0140221 -6.7446709 -6.7094618 -0.72991641
600 362 1.026146 -6.7129201 -6.6704003 -0.67063836
700 364 1.0683193 -6.6776523 -6.6262908 -0.65572472
800 366 1.0958894 -6.6402029 -6.5803182 -0.66307282
900 368 1.1231769 -6.6050912 -6.5364187 -0.64076928
1000 370 1.1976289 -6.5942508 -6.51333 -0.69249047
1100 372 1.05061 -6.5772306 -6.4995645 -0.6307289
1200 374 0.93723829 -6.5732962 -6.4981166 -0.64963821
1300 376 0.93899122 -6.5578418 -6.476679 -0.65096688
1400 378 0.87050694 -6.546852 -6.4662495 -0.67613401
1500 380 0.84462904 -6.5400883 -6.4567368 -0.64376986
1600 382 0.92417795 -6.5611292 -6.4643567 -0.62092779
1700 384 0.67296541 -6.5589985 -6.4845167 -0.6779111
1800 386 0.87159158 -6.5655058 -6.4638954 -0.6582786
1900 388 0.67504975 -6.5772537 -6.4946123 -0.665098
2000 390 0.65034978 -6.5717854 -6.4884072 -0.73162072
2100 392 0.63389859 -6.5652907 -6.4803935 -0.64937411
2200 394 0.6265637 -6.5582412 -6.4707767 -0.70819854
2300 396 0.85352983 -6.5750751 -6.4511408 -0.69995918
2400 398 0.69792348 -6.5938659 -6.4886513 -0.63755214
2500 400 0.45320495 -6.595022 -6.5242087 -0.70462183
2600 402 0.46824374 -6.5697613 -6.4940502 -0.75497893
2700 404 0.46605975 -6.5599272 -6.4820583 -0.66778506
2800 406 0.50637604 -6.5700492 -6.482743 -0.63812082
2900 408 0.55335921 -6.5873352 -6.4890054 -0.62891652
3000 410 0.51731142 -6.5890566 -6.4944264 -0.64305355
3100 412 0.59439734 -6.6003127 -6.4885025 -0.67140541
3200 414 0.53413632 -6.595564 -6.4923492 -0.76242248
3300 416 0.49221593 -6.5990831 -6.5014681 -0.71330819
3400 418 0.55006126 -6.6015725 -6.4897179 -0.72044309
3500 420 0.49065348 -6.6329864 -6.5307669 -0.65775397
3600 422 0.41907335 -6.6219753 -6.5325995 -0.75936391
3700 424 0.38720116 -6.6153349 -6.5308629 -0.74166397
3800 426 0.40625994 -6.6150209 -6.5244231 -0.7595111
3900 428 0.40460547 -6.6122642 -6.5200936 -0.70484465
4000 430 0.45014991 -6.6254404 -6.5207544 -0.70069933
4100 432 0.44820466 -6.640222 -6.5338771 -0.805972
4200 434 0.39767521 -6.6450316 -6.5488199 -0.72841414
4300 436 0.4155331 -6.6547917 -6.5523381 -0.6894484
4400 438 0.43034353 -6.6615074 -6.5534303 -0.74026062
4500 440 0.38062977 -6.6541618 -6.5568417 -0.85911194
4600 442 0.39357419 -6.6522517 -6.5498512 -0.66232114
4700 444 0.40296801 -6.6647029 -6.5580616 -0.67307577
4800 446 0.38194993 -6.6510248 -6.548258 -0.77887746
4900 448 0.40739835 -6.6601751 -6.5487771 -0.84146416
5000 450 0.38392807 -6.6560665 -6.5494198 -0.77343399
5100 452 0.35209286 -6.6481476 -6.5488294 -0.68065755
5200 454 0.41355143 -6.6615988 -6.543181 -0.81611092
5300 456 0.42200484 -6.6627494 -6.5401273 -0.7774134
5400 458 0.37764326 -6.661431 -6.550117 -0.72187808
5500 460 0.41857405 -6.6674232 -6.542306 -0.74929745
5600 462 0.41682611 -6.6710961 -6.5447852 -0.7557454
5700 464 0.44396148 -6.6924346 -6.5560887 -0.78018312
5800 466 0.37058077 -6.6865013 -6.5711919 -0.74146125
5900 468 0.346812 -6.681215 -6.57191 -0.81184233
6000 470 0.34919462 -6.6827931 -6.571348 -0.87330821
6100 472 0.39360936 -6.6933359 -6.5661634 -0.79237598
6200 474 0.33270778 -6.6847095 -6.5759127 -0.77978526
6300 476 0.35973804 -6.6951254 -6.5760944 -0.80340174
6400 478 0.38124318 -6.7045984 -6.5769857 -0.81628407
6500 480 0.41188302 -6.7133356 -6.573896 -0.7940289
6600 482 0.36998039 -6.7079555 -6.5813025 -0.75055442
6700 484 0.37615026 -6.722917 -6.592741 -0.76534055
6800 486 0.3466597 -6.7188712 -6.5976116 -0.77986211
6900 488 0.32902492 -6.7247054 -6.6084005 -0.75702458
7000 490 0.31856427 -6.7167709 -6.6029979 -0.76014555
7100 492 0.30233891 -6.7144406 -6.6053651 -0.96246708
7200 494 0.32557309 -6.7315347 -6.6129049 -0.8122153
7300 496 0.29919611 -6.7186327 -6.6085455 -0.71917931
7400 498 0.29778169 -6.7259455 -6.6153238 -0.88199391
7500 500 0.35535305 -6.7419073 -6.6086499 -0.90344083
7600 502 0.31979187 -6.7326802 -6.6116434 -0.78324572
7700 504 0.30821359 -6.72895 -6.6112295 -0.81363335
7800 506 0.31374993 -6.7255461 -6.6046346 -0.89904197
7900 508 0.29072338 -6.7177355 -6.6047082 -0.81423073
8000 510 0.30557494 -6.7208283 -6.600995 -0.85853575
8100 512 0.30521237 -6.726874 -6.6061601 -0.75361257
8200 514 0.29622226 -6.7152225 -6.5970794 -0.85766132
8300 516 0.28337698 -6.7023552 -6.5884003 -0.8985415
8400 518 0.32860902 -6.7211074 -6.5878875 -0.89758921
8500 520 0.35483743 -6.7406183 -6.5956126 -0.77602077
8600 522 0.32928486 -6.7326607 -6.5970358 -0.75070137
8700 524 0.36008106 -6.7474714 -6.5980103 -0.87093836
8800 526 0.36082301 -6.743579 -6.5926644 -0.90132107
8900 528 0.35010285 -6.7501553 -6.6026214 -0.85238959
9000 530 0.31513985 -6.7411795 -6.6073937 -0.75884529
9100 532 0.30895083 -6.7421063 -6.6099891 -0.74482692
9200 534 0.33631849 -6.751265 -6.6064087 -0.95632911
9300 536 0.33306096 -6.759187 -6.6147156 -0.76275935
9400 538 0.34582537 -6.7706766 -6.619619 -0.72251598
9500 540 0.32003146 -6.772057 -6.6313024 -0.88195851
9600 542 0.32439637 -6.7743569 -6.6307127 -0.90233104
9700 544 0.33988235 -6.7763721 -6.624862 -0.85185581
9800 546 0.32877587 -6.7744977 -6.62697 -0.8550905
9900 548 0.29570051 -6.7623752 -6.6288243 -1.0371157
10000 550 0.33675914 -6.7757315 -6.6226591 -1.0082157
Loop time of 16.2553 on 4 procs for 10000 steps with 550 atoms
Performance: 265759.101 tau/day, 615.183 timesteps/s
97.0% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.0034051 | 2.6646 | 8.0317 | 200.7 | 16.39
Bond | 0.0022626 | 0.0072971 | 0.019437 | 8.3 | 0.04
Neigh | 0.018657 | 1.218 | 3.7621 | 137.5 | 7.49
Comm | 1.1497 | 6.7957 | 12.192 | 164.2 | 41.81
Output | 0.010692 | 0.01431 | 0.019901 | 3.2 | 0.09
Modify | 3.1502 | 5.3779 | 11.342 | 149.0 | 33.08
Other | | 0.1775 | | | 1.09
Nlocal: 137.500 ave 299 max 2 min
Histogram: 2 0 0 0 0 0 0 1 0 1
Nghost: 1903.75 ave 2686 max 529 min
Histogram: 1 0 0 0 0 0 1 0 0 2
Neighs: 9209.75 ave 23206 max 0 min
Histogram: 2 0 0 0 0 1 0 0 0 1
Total # of neighbors = 36839
Ave neighs/atom = 66.980000
Ave special neighs/atom = 0.36363636
Neighbor list builds = 829
Dangerous builds = 0
Total wall time: 0:00:16

View File

@ -0,0 +1,218 @@
LAMMPS (10 Mar 2021)
using 1 OpenMP thread(s) per MPI task
# sample surface deposition script for molecules
units lj
atom_style bond
boundary p p f
lattice fcc 1.0
Lattice spacing in x,y,z = 1.5874011 1.5874011 1.5874011
region box block 0 5 0 5 0 10
create_box 3 box bond/types 1 extra/bond/per/atom 1
Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (7.9370053 7.9370053 15.874011)
1 by 1 by 1 MPI processor grid
region substrate block INF INF INF INF INF 3
create_atoms 1 region substrate
Created 350 atoms
create_atoms CPU = 0.001 seconds
pair_style lj/cut 2.5
pair_coeff * * 1.0 1.0
pair_coeff 1 2 1.0 1.0 5.0
mass * 1.0
bond_style harmonic
bond_coeff 1 5.0 1.0
neigh_modify delay 0
molecule dimer molecule.dimer
Read molecule template dimer:
1 molecules
2 atoms with max type 3
1 bonds with max type 1
0 angles with max type 0
0 dihedrals with max type 0
0 impropers with max type 0
region slab block 0 5 0 5 8 9
group addatoms empty
0 atoms in group addatoms
region mobile block 0 5 0 5 2 INF
group mobile region mobile
150 atoms in group mobile
compute add addatoms temp
compute_modify add dynamic/dof yes extra/dof 0
fix 1 addatoms rigid/nvt/small molecule temp 0.1 0.1 0.1 mol dimer
create bodies CPU = 0.000 seconds
0 rigid bodies with 0 atoms
1.0000000 = max distance from body owner to body atom
fix 2 mobile langevin 0.1 0.1 0.1 587283
fix 3 mobile nve
fix 4 addatoms deposit 100 0 100 12345 region slab near 1.0 mol dimer vz -1.0 -1.0 rigid 1
fix 5 addatoms wall/reflect zhi EDGE
thermo_style custom step atoms temp epair etotal press
thermo 100
thermo_modify temp add lost/bond ignore lost warn
WARNING: Temperature for thermo pressure is not for group all (src/thermo.cpp:468)
#dump 1 all atom 50 dump.deposit.atom
#dump 2 all image 50 image.*.jpg type type # axes yes 0.8 0.02 view 80 -30
#dump_modify 2 pad 5
#dump 3 all movie 50 tmp.mpg type type # axes yes 0.8 0.02 view 80 -30
#dump_modify 3 pad 5
run 10000
WARNING: Should not allow rigid bodies to bounce off relecting walls (src/fix_wall_reflect.cpp:182)
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 5.3
ghost atom cutoff = 5.3
binsize = 2.65, bins = 3 3 6
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 5.929 | 5.929 | 5.929 Mbytes
Step Atoms Temp E_pair TotEng Press
0 350 0 -6.9215833 -6.9215833 -1.0052629
100 352 1.0079368 -6.8875167 -6.8803581 -0.73353914
200 354 1.0081552 -6.8594643 -6.8452248 -0.70421276
300 356 1.0085803 -6.8171524 -6.7959042 -0.6917826
400 358 1.0099188 -6.7852701 -6.7570601 -0.70371699
500 360 1.0140221 -6.7493429 -6.7141338 -0.68415307
600 362 1.026148 -6.7105231 -6.6680032 -0.68314418
700 364 1.0683344 -6.6725162 -6.621154 -0.65747369
800 366 1.0958953 -6.6412275 -6.5813425 -0.68789615
900 368 1.1250034 -6.6101882 -6.541404 -0.66674346
1000 370 1.2326365 -6.5993719 -6.5160856 -0.69688655
1100 372 1.1397444 -6.5912865 -6.5070312 -0.6333041
1200 374 1.0514447 -6.5905753 -6.5062348 -0.71020272
1300 376 1.0033284 -6.5747792 -6.4880554 -0.65459641
1400 378 0.82996548 -6.5681806 -6.4913319 -0.60438595
1500 380 0.90239071 -6.5752982 -6.4862465 -0.66528503
1600 382 0.86403681 -6.5692212 -6.4787461 -0.65027922
1700 384 0.64748046 -6.5644242 -6.4927629 -0.63046709
1800 386 0.74288742 -6.5515741 -6.4649681 -0.67770665
1900 388 0.72584537 -6.5565195 -6.4676596 -0.66175025
2000 390 0.73351281 -6.5631154 -6.4690753 -0.64686647
2100 392 0.76490681 -6.5573734 -6.4549305 -0.68861526
2200 394 0.65926638 -6.5511574 -6.4591279 -0.71726284
2300 396 0.70267414 -6.5728555 -6.4708258 -0.64360436
2400 398 0.60523691 -6.5845973 -6.4933555 -0.63956839
2500 400 0.5103586 -6.5812006 -6.5014571 -0.68698448
2600 402 0.52401744 -6.6003358 -6.5156066 -0.68987222
2700 404 0.46421291 -6.5662747 -6.4887143 -0.72872856
2800 406 0.48254258 -6.5724266 -6.4892296 -0.75447872
2900 408 0.53073083 -6.5809842 -6.4866754 -0.67592283
3000 410 0.55314547 -6.5922077 -6.4910226 -0.74646953
3100 412 0.47150308 -6.5907273 -6.5020344 -0.64994935
3200 414 0.43047803 -6.5836315 -6.5004473 -0.79764713
3300 416 0.46289353 -6.5739439 -6.4821441 -0.76441674
3400 418 0.59724106 -6.5980575 -6.4766089 -0.73735626
3500 420 0.43571285 -6.5955972 -6.5048237 -0.64145941
3600 422 0.42461639 -6.6060271 -6.5154691 -0.70124484
3700 424 0.44323254 -6.6059723 -6.5092766 -0.74498147
3800 426 0.4037907 -6.592043 -6.5019958 -0.72171799
3900 428 0.41668443 -6.5975302 -6.5026079 -0.68327878
4000 430 0.44895183 -6.5958671 -6.4914597 -0.73939433
4100 432 0.39798052 -6.5952115 -6.5007833 -0.74871822
4200 434 0.45156734 -6.6237274 -6.5144772 -0.75111778
4300 436 0.48297356 -6.6395283 -6.5204465 -0.76105913
4400 438 0.43595234 -6.6347133 -6.5252276 -0.72858275
4500 440 0.44683726 -6.6385398 -6.5242916 -0.74280051
4600 442 0.47875512 -6.6419903 -6.5174274 -0.75579572
4700 444 0.43972605 -6.6406078 -6.5242388 -0.72196509
4800 446 0.43572615 -6.6495404 -6.5323047 -0.7135049
4900 448 0.38063437 -6.6432385 -6.5391588 -0.77087429
5000 450 0.4239223 -6.6617795 -6.5440233 -0.784531
5100 452 0.37201988 -6.6581813 -6.5532421 -0.74611403
5200 454 0.41765777 -6.6661321 -6.5465385 -0.75422239
5300 456 0.38015287 -6.6606624 -6.5502013 -0.78866702
5400 458 0.40549607 -6.6807118 -6.5611878 -0.78932883
5500 460 0.34444407 -6.6720564 -6.5690976 -0.77859171
5600 462 0.36572308 -6.6730078 -6.5621827 -0.85672419
5700 464 0.40055073 -6.6976989 -6.574685 -0.74251563
5800 466 0.36037213 -6.7022014 -6.5900685 -0.66239625
5900 468 0.32810921 -6.6952135 -6.591803 -0.83981757
6000 470 0.35110886 -6.6986862 -6.5866302 -0.82474047
6100 472 0.29965884 -6.6839503 -6.5871326 -0.7864913
6200 474 0.32402637 -6.6902745 -6.5843165 -0.74531083
6300 476 0.35042653 -6.6990084 -6.5830585 -0.74839967
6400 478 0.32695511 -6.6909459 -6.5815048 -0.76549489
6500 480 0.35209088 -6.6902987 -6.5711013 -0.71281516
6600 482 0.354106 -6.6890268 -6.567808 -0.81897158
6700 484 0.3504816 -6.681739 -6.5604463 -0.811609
6800 486 0.37396733 -6.7018369 -6.5710253 -0.80383296
6900 488 0.36435774 -6.7010114 -6.5722169 -0.72063651
7000 490 0.35631012 -6.7089806 -6.581727 -0.74152078
7100 492 0.37646659 -6.719154 -6.5833352 -0.77739001
7200 494 0.36546269 -6.7223269 -6.5891623 -0.8288767
7300 496 0.37688206 -6.7457243 -6.607053 -0.80062121
7400 498 0.30331409 -6.7284953 -6.6158184 -0.79894584
7500 500 0.30382936 -6.7333804 -6.6194444 -0.86924602
7600 502 0.30163143 -6.7294737 -6.6153104 -0.7689497
7700 504 0.30281215 -6.7233976 -6.6077402 -0.8557548
7800 506 0.33378009 -6.7244958 -6.5958651 -0.82584084
7900 508 0.31843128 -6.7250998 -6.6013002 -0.82424684
8000 510 0.35912946 -6.7399052 -6.5990701 -0.81879575
8100 512 0.31405017 -6.733487 -6.6092777 -0.72940457
8200 514 0.30475 -6.7271485 -6.6056043 -0.87958287
8300 516 0.30717434 -6.7277574 -6.6042329 -0.81700937
8400 518 0.33032462 -6.7382165 -6.6043011 -0.75436496
8500 520 0.32218568 -6.7351971 -6.6035347 -0.77661738
8600 522 0.30922651 -6.7275431 -6.6001797 -0.85334327
8700 524 0.30728021 -6.7237477 -6.5962029 -0.94977016
8800 526 0.31061903 -6.7181672 -6.5882505 -0.86132456
8900 528 0.33543344 -6.728929 -6.5875768 -0.87545919
9000 530 0.31887735 -6.7265066 -6.5911341 -0.76892061
9100 532 0.31888326 -6.7216274 -6.5852629 -0.83190298
9200 534 0.33310892 -6.7111349 -6.567661 -0.94282671
9300 536 0.34737171 -6.722515 -6.5718361 -0.95235602
9400 538 0.32752858 -6.7246204 -6.5815549 -0.86227131
9500 540 0.30665764 -6.7225391 -6.5876665 -0.87144326
9600 542 0.32747382 -6.7149245 -6.5699176 -0.86863105
9700 544 0.32463079 -6.7205757 -6.5758643 -0.85393932
9800 546 0.31517825 -6.7178961 -6.5764699 -0.81017759
9900 548 0.33649933 -6.7380644 -6.5860871 -0.80769312
10000 550 0.37394555 -6.7612874 -6.5913121 -0.82102213
Loop time of 16.6615 on 1 procs for 10000 steps with 550 atoms
Performance: 259279.806 tau/day, 600.185 timesteps/s
99.9% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 9.2639 | 9.2639 | 9.2639 | 0.0 | 55.60
Bond | 0.021559 | 0.021559 | 0.021559 | 0.0 | 0.13
Neigh | 4.544 | 4.544 | 4.544 | 0.0 | 27.27
Comm | 0.62792 | 0.62792 | 0.62792 | 0.0 | 3.77
Output | 0.0069666 | 0.0069666 | 0.0069666 | 0.0 | 0.04
Modify | 2.1282 | 2.1282 | 2.1282 | 0.0 | 12.77
Other | | 0.06897 | | | 0.41
Nlocal: 550.000 ave 550 max 550 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 2344.00 ave 2344 max 2344 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 36607.0 ave 36607 max 36607 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 36607
Ave neighs/atom = 66.558182
Ave special neighs/atom = 0.36363636
Neighbor list builds = 847
Dangerous builds = 0
Total wall time: 0:00:16

View File

@ -0,0 +1,218 @@
LAMMPS (10 Mar 2021)
using 1 OpenMP thread(s) per MPI task
# sample surface deposition script for molecules
units lj
atom_style bond
boundary p p f
lattice fcc 1.0
Lattice spacing in x,y,z = 1.5874011 1.5874011 1.5874011
region box block 0 5 0 5 0 10
create_box 3 box bond/types 1 extra/bond/per/atom 1
Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (7.9370053 7.9370053 15.874011)
1 by 1 by 4 MPI processor grid
region substrate block INF INF INF INF INF 3
create_atoms 1 region substrate
Created 350 atoms
create_atoms CPU = 0.002 seconds
pair_style lj/cut 2.5
pair_coeff * * 1.0 1.0
pair_coeff 1 2 1.0 1.0 5.0
mass * 1.0
bond_style harmonic
bond_coeff 1 5.0 1.0
neigh_modify delay 0
molecule dimer molecule.dimer
Read molecule template dimer:
1 molecules
2 atoms with max type 3
1 bonds with max type 1
0 angles with max type 0
0 dihedrals with max type 0
0 impropers with max type 0
region slab block 0 5 0 5 8 9
group addatoms empty
0 atoms in group addatoms
region mobile block 0 5 0 5 2 INF
group mobile region mobile
150 atoms in group mobile
compute add addatoms temp
compute_modify add dynamic/dof yes extra/dof 0
fix 1 addatoms rigid/nvt/small molecule temp 0.1 0.1 0.1 mol dimer
create bodies CPU = 0.000 seconds
0 rigid bodies with 0 atoms
1.0000000 = max distance from body owner to body atom
fix 2 mobile langevin 0.1 0.1 0.1 587283
fix 3 mobile nve
fix 4 addatoms deposit 100 0 100 12345 region slab near 1.0 mol dimer vz -1.0 -1.0 rigid 1
fix 5 addatoms wall/reflect zhi EDGE
thermo_style custom step atoms temp epair etotal press
thermo 100
thermo_modify temp add lost/bond ignore lost warn
WARNING: Temperature for thermo pressure is not for group all (src/thermo.cpp:468)
#dump 1 all atom 50 dump.deposit.atom
#dump 2 all image 50 image.*.jpg type type # axes yes 0.8 0.02 view 80 -30
#dump_modify 2 pad 5
#dump 3 all movie 50 tmp.mpg type type # axes yes 0.8 0.02 view 80 -30
#dump_modify 3 pad 5
run 10000
WARNING: Should not allow rigid bodies to bounce off relecting walls (src/fix_wall_reflect.cpp:182)
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 5.3
ghost atom cutoff = 5.3
binsize = 2.65, bins = 3 3 6
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 5.255 | 5.852 | 6.302 Mbytes
Step Atoms Temp E_pair TotEng Press
0 350 0 -6.9215833 -6.9215833 -1.0052629
100 352 1.0079368 -6.8946578 -6.8874992 -0.73775337
200 354 1.0081552 -6.8645575 -6.850318 -0.69629729
300 356 1.0085803 -6.821677 -6.8004288 -0.69532657
400 358 1.0099188 -6.7837923 -6.7555822 -0.68879568
500 360 1.0140221 -6.7446709 -6.7094618 -0.72991641
600 362 1.026146 -6.7129201 -6.6704003 -0.67063836
700 364 1.0683193 -6.6776523 -6.6262908 -0.65572472
800 366 1.0958894 -6.6402029 -6.5803182 -0.66307282
900 368 1.1231769 -6.6050912 -6.5364187 -0.64076928
1000 370 1.1976289 -6.5942508 -6.51333 -0.69249047
1100 372 1.05061 -6.5772306 -6.4995645 -0.6307289
1200 374 0.93723829 -6.5732962 -6.4981166 -0.64963821
1300 376 0.93899122 -6.5578418 -6.476679 -0.65096688
1400 378 0.87050694 -6.546852 -6.4662495 -0.67613401
1500 380 0.84462904 -6.5400883 -6.4567368 -0.64376986
1600 382 0.92417795 -6.5611292 -6.4643567 -0.62092779
1700 384 0.67296541 -6.5589985 -6.4845167 -0.6779111
1800 386 0.87159158 -6.5655058 -6.4638954 -0.6582786
1900 388 0.67504975 -6.5772537 -6.4946123 -0.665098
2000 390 0.65034978 -6.5717854 -6.4884072 -0.73162072
2100 392 0.63389859 -6.5652907 -6.4803935 -0.64937411
2200 394 0.6265637 -6.5582412 -6.4707767 -0.70819854
2300 396 0.85352983 -6.5750751 -6.4511408 -0.69995918
2400 398 0.69792348 -6.5938659 -6.4886513 -0.63755214
2500 400 0.45320495 -6.595022 -6.5242087 -0.70462183
2600 402 0.46824374 -6.5697613 -6.4940502 -0.75497893
2700 404 0.46605975 -6.5599272 -6.4820583 -0.66778506
2800 406 0.50637604 -6.5700492 -6.482743 -0.63812082
2900 408 0.55335921 -6.5873352 -6.4890054 -0.62891652
3000 410 0.51731142 -6.5890566 -6.4944264 -0.64305355
3100 412 0.59439734 -6.6003127 -6.4885025 -0.67140541
3200 414 0.53413632 -6.595564 -6.4923492 -0.76242248
3300 416 0.49221593 -6.5990831 -6.5014681 -0.71330819
3400 418 0.55006126 -6.6015725 -6.4897179 -0.72044309
3500 420 0.49065348 -6.6329864 -6.5307669 -0.65775397
3600 422 0.41907335 -6.6219753 -6.5325995 -0.75936391
3700 424 0.38720116 -6.6153349 -6.5308629 -0.74166397
3800 426 0.40625994 -6.6150209 -6.5244231 -0.7595111
3900 428 0.40460547 -6.6122642 -6.5200936 -0.70484465
4000 430 0.45014991 -6.6254404 -6.5207544 -0.70069933
4100 432 0.44820466 -6.640222 -6.5338771 -0.805972
4200 434 0.39767521 -6.6450316 -6.5488199 -0.72841414
4300 436 0.4155331 -6.6547917 -6.5523381 -0.6894484
4400 438 0.43034353 -6.6615074 -6.5534303 -0.74026062
4500 440 0.38062977 -6.6541618 -6.5568417 -0.85911194
4600 442 0.39357419 -6.6522517 -6.5498512 -0.66232114
4700 444 0.40296801 -6.6647029 -6.5580616 -0.67307577
4800 446 0.38194993 -6.6510248 -6.548258 -0.77887746
4900 448 0.40739835 -6.6601751 -6.5487771 -0.84146416
5000 450 0.38392807 -6.6560665 -6.5494198 -0.77343399
5100 452 0.35209286 -6.6481476 -6.5488294 -0.68065755
5200 454 0.41355143 -6.6615988 -6.543181 -0.81611092
5300 456 0.42200484 -6.6627494 -6.5401273 -0.7774134
5400 458 0.37764326 -6.661431 -6.550117 -0.72187808
5500 460 0.41857405 -6.6674232 -6.542306 -0.74929745
5600 462 0.41682611 -6.6710961 -6.5447852 -0.7557454
5700 464 0.44396148 -6.6924346 -6.5560887 -0.78018312
5800 466 0.37058077 -6.6865013 -6.5711919 -0.74146125
5900 468 0.346812 -6.681215 -6.57191 -0.81184233
6000 470 0.34919462 -6.6827931 -6.571348 -0.87330821
6100 472 0.39360936 -6.6933359 -6.5661634 -0.79237598
6200 474 0.33270778 -6.6847095 -6.5759127 -0.77978526
6300 476 0.35973804 -6.6951254 -6.5760944 -0.80340174
6400 478 0.38124318 -6.7045984 -6.5769857 -0.81628407
6500 480 0.41188302 -6.7133356 -6.573896 -0.7940289
6600 482 0.36998039 -6.7079555 -6.5813025 -0.75055442
6700 484 0.37615026 -6.722917 -6.592741 -0.76534055
6800 486 0.3466597 -6.7188712 -6.5976116 -0.77986211
6900 488 0.32902492 -6.7247054 -6.6084005 -0.75702458
7000 490 0.31856427 -6.7167709 -6.6029979 -0.76014555
7100 492 0.30233891 -6.7144406 -6.6053651 -0.96246708
7200 494 0.32557309 -6.7315347 -6.6129049 -0.8122153
7300 496 0.29919611 -6.7186327 -6.6085455 -0.71917931
7400 498 0.29778169 -6.7259455 -6.6153238 -0.88199391
7500 500 0.35535305 -6.7419073 -6.6086499 -0.90344083
7600 502 0.31979187 -6.7326802 -6.6116434 -0.78324572
7700 504 0.30821359 -6.72895 -6.6112295 -0.81363335
7800 506 0.31374993 -6.7255461 -6.6046346 -0.89904197
7900 508 0.29072338 -6.7177355 -6.6047082 -0.81423073
8000 510 0.30557494 -6.7208283 -6.600995 -0.85853575
8100 512 0.30521237 -6.726874 -6.6061601 -0.75361257
8200 514 0.29622226 -6.7152225 -6.5970794 -0.85766132
8300 516 0.28337698 -6.7023552 -6.5884003 -0.8985415
8400 518 0.32860902 -6.7211074 -6.5878875 -0.89758921
8500 520 0.35483743 -6.7406183 -6.5956126 -0.77602077
8600 522 0.32928486 -6.7326607 -6.5970358 -0.75070137
8700 524 0.36008106 -6.7474714 -6.5980103 -0.87093836
8800 526 0.36082301 -6.743579 -6.5926644 -0.90132107
8900 528 0.35010285 -6.7501553 -6.6026214 -0.85238959
9000 530 0.31513985 -6.7411795 -6.6073937 -0.75884529
9100 532 0.30895083 -6.7421063 -6.6099891 -0.74482692
9200 534 0.33631849 -6.751265 -6.6064087 -0.95632911
9300 536 0.33306096 -6.759187 -6.6147156 -0.76275935
9400 538 0.34582537 -6.7706766 -6.619619 -0.72251598
9500 540 0.32003146 -6.772057 -6.6313024 -0.88195851
9600 542 0.32439637 -6.7743569 -6.6307127 -0.90233104
9700 544 0.33988235 -6.7763721 -6.624862 -0.85185581
9800 546 0.32877587 -6.7744977 -6.62697 -0.8550905
9900 548 0.29570051 -6.7623752 -6.6288243 -1.0371157
10000 550 0.33675914 -6.7757315 -6.6226591 -1.0082157
Loop time of 16.1559 on 4 procs for 10000 steps with 550 atoms
Performance: 267395.139 tau/day, 618.970 timesteps/s
96.1% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.0035574 | 2.5467 | 7.5373 | 192.6 | 15.76
Bond | 0.0022929 | 0.0073138 | 0.019471 | 8.3 | 0.05
Neigh | 0.018645 | 1.2357 | 3.8167 | 138.4 | 7.65
Comm | 1.1946 | 6.6335 | 11.87 | 158.8 | 41.06
Output | 0.010714 | 0.014391 | 0.020006 | 3.2 | 0.09
Modify | 3.4474 | 5.6081 | 11.47 | 143.2 | 34.71
Other | | 0.1102 | | | 0.68
Nlocal: 137.500 ave 299 max 2 min
Histogram: 2 0 0 0 0 0 0 1 0 1
Nghost: 1903.75 ave 2686 max 529 min
Histogram: 1 0 0 0 0 0 1 0 0 2
Neighs: 9209.75 ave 23206 max 0 min
Histogram: 2 0 0 0 0 1 0 0 0 1
Total # of neighbors = 36839
Ave neighs/atom = 66.980000
Ave special neighs/atom = 0.36363636
Neighbor list builds = 829
Dangerous builds = 0
Total wall time: 0:00:16

View File

@ -0,0 +1,218 @@
LAMMPS (10 Mar 2021)
using 1 OpenMP thread(s) per MPI task
# sample surface deposition script for molecules
units lj
atom_style bond
boundary p p f
lattice fcc 1.0
Lattice spacing in x,y,z = 1.5874011 1.5874011 1.5874011
region box block 0 5 0 5 0 10
create_box 3 box bond/types 1 extra/bond/per/atom 1
Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (7.9370053 7.9370053 15.874011)
1 by 1 by 1 MPI processor grid
region substrate block INF INF INF INF INF 3
create_atoms 1 region substrate
Created 350 atoms
create_atoms CPU = 0.001 seconds
pair_style lj/cut 2.5
pair_coeff * * 1.0 1.0
pair_coeff 1 2 1.0 1.0 5.0
mass * 1.0
bond_style harmonic
bond_coeff 1 5.0 1.0
neigh_modify delay 0
molecule dimer molecule.dimer
Read molecule template dimer:
1 molecules
2 atoms with max type 3
1 bonds with max type 1
0 angles with max type 0
0 dihedrals with max type 0
0 impropers with max type 0
region slab block 0 5 0 5 8 9
group addatoms empty
0 atoms in group addatoms
region mobile block 0 5 0 5 2 INF
group mobile region mobile
150 atoms in group mobile
compute add addatoms temp
compute_modify add dynamic/dof yes extra/dof 0
fix 1 addatoms rigid/small molecule mol dimer
create bodies CPU = 0.000 seconds
0 rigid bodies with 0 atoms
1.0000000 = max distance from body owner to body atom
fix 2 mobile langevin 0.1 0.1 0.1 587283
fix 3 mobile nve
fix 4 addatoms deposit 100 0 100 12345 region slab near 1.0 mol dimer vz -1.0 -1.0 rigid 1
fix 5 addatoms wall/reflect zhi EDGE
thermo_style custom step atoms temp epair etotal press
thermo 100
thermo_modify temp add lost/bond ignore lost warn
WARNING: Temperature for thermo pressure is not for group all (src/thermo.cpp:468)
#dump 1 all atom 50 dump.deposit.atom
#dump 2 all image 50 image.*.jpg type type # axes yes 0.8 0.02 view 80 -30
#dump_modify 2 pad 5
#dump 3 all movie 50 tmp.mpg type type # axes yes 0.8 0.02 view 80 -30
#dump_modify 3 pad 5
run 10000
WARNING: Should not allow rigid bodies to bounce off relecting walls (src/fix_wall_reflect.cpp:182)
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 5.3
ghost atom cutoff = 5.3
binsize = 2.65, bins = 3 3 6
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 5.929 | 5.929 | 5.929 Mbytes
Step Atoms Temp E_pair TotEng Press
0 350 0 -6.9215833 -6.9215833 -1.0052629
100 352 1.0079368 -6.8875167 -6.8803581 -0.73353914
200 354 1.0081552 -6.8594643 -6.8452248 -0.70421276
300 356 1.0085803 -6.8171524 -6.7959042 -0.6917826
400 358 1.0099188 -6.7852701 -6.7570601 -0.70371699
500 360 1.0140221 -6.7493429 -6.7141338 -0.68415307
600 362 1.026148 -6.7105231 -6.6680032 -0.68314418
700 364 1.0683344 -6.6725162 -6.621154 -0.65747369
800 366 1.0958952 -6.6412275 -6.5813425 -0.68789614
900 368 1.1250033 -6.6101882 -6.541404 -0.66674346
1000 370 1.2326373 -6.5993719 -6.5160856 -0.6968868
1100 372 1.1397426 -6.5912861 -6.5070309 -0.63330356
1200 374 1.0514292 -6.5905747 -6.5062354 -0.71020362
1300 376 1.003296 -6.5747765 -6.4880555 -0.65459732
1400 378 0.82999289 -6.5681797 -6.4913285 -0.60438126
1500 380 0.90239175 -6.575298 -6.4862461 -0.66528725
1600 382 0.86399799 -6.5692206 -6.4787496 -0.65027781
1700 384 0.64747231 -6.5644237 -6.4927634 -0.6304614
1800 386 0.74288971 -6.5515735 -6.4649672 -0.67772325
1900 388 0.7257202 -6.5565091 -6.4676644 -0.66173549
2000 390 0.73381036 -6.5631515 -6.4690733 -0.64685916
2100 392 0.76476562 -6.5574124 -6.4549885 -0.68866192
2200 394 0.65932468 -6.5511557 -6.459118 -0.71728829
2300 396 0.70269509 -6.5728146 -6.4707819 -0.64362081
2400 398 0.60528919 -6.5845991 -6.4933494 -0.63956327
2500 400 0.51025744 -6.5812452 -6.5015175 -0.68706961
2600 402 0.5245131 -6.6003894 -6.5155801 -0.68972215
2700 404 0.46330251 -6.5659175 -6.4885092 -0.72870942
2800 406 0.48039778 -6.5715192 -6.488692 -0.753758
2900 408 0.53698616 -6.5813154 -6.4858951 -0.67117541
3000 410 0.50231419 -6.5886963 -6.4968096 -0.71905351
3100 412 0.49420225 -6.596733 -6.5037702 -0.65947518
3200 414 0.42703699 -6.5879338 -6.5054146 -0.80033546
3300 416 0.44306009 -6.580249 -6.4923825 -0.76503083
3400 418 0.55620672 -6.5923388 -6.4792346 -0.69367877
3500 420 0.39815033 -6.5911154 -6.5081674 -0.65569211
3600 422 0.44197847 -6.6026382 -6.5083774 -0.73299102
3700 424 0.45049389 -6.6060616 -6.5077817 -0.7552914
3800 426 0.43047295 -6.6079275 -6.51193 -0.71501328
3900 428 0.43779129 -6.6099306 -6.5102001 -0.71539515
4000 430 0.41113503 -6.6123009 -6.5166881 -0.74177096
4100 432 0.32800011 -6.5983566 -6.5205325 -0.71688103
4200 434 0.39168203 -6.6110342 -6.5162724 -0.78927697
4300 436 0.48151013 -6.6183315 -6.4996106 -0.70523035
4400 438 0.45391027 -6.6331732 -6.5191775 -0.7270855
4500 440 0.349126 -6.6091657 -6.5199006 -0.76974115
4600 442 0.43375023 -6.6219188 -6.5090653 -0.74576212
4700 444 0.40071749 -6.6184164 -6.5123707 -0.71919052
4800 446 0.414292 -6.6298132 -6.5183445 -0.76237313
4900 448 0.44210681 -6.6364174 -6.5155288 -0.78753121
5000 450 0.36101771 -6.6232703 -6.5229876 -0.73927083
5100 452 0.41481171 -6.6442404 -6.5272305 -0.76316209
5200 454 0.40283527 -6.6512252 -6.5358759 -0.79645689
5300 456 0.3642061 -6.6530346 -6.5472072 -0.77458364
5400 458 0.38449826 -6.6514864 -6.5381518 -0.73083784
5500 460 0.42559408 -6.6769326 -6.5497169 -0.78932279
5600 462 0.38905756 -6.6698705 -6.5519743 -0.77118812
5700 464 0.38354955 -6.6706904 -6.5528977 -0.75067129
5800 466 0.36760943 -6.6942519 -6.5798669 -0.685487
5900 468 0.30783118 -6.6838159 -6.5867965 -0.79233808
6000 470 0.33145368 -6.6733504 -6.5675673 -0.84390449
6100 472 0.39252324 -6.6912189 -6.5643973 -0.83342022
6200 474 0.32342144 -6.6906083 -6.5848481 -0.71262158
6300 476 0.34445238 -6.7008453 -6.5868721 -0.76650756
6400 478 0.38152782 -6.7017838 -6.5740758 -0.77113022
6500 480 0.37540166 -6.7119996 -6.5849105 -0.79907635
6600 482 0.3579419 -6.7034721 -6.5809401 -0.8141269
6700 484 0.33538235 -6.6916682 -6.575601 -0.83265486
6800 486 0.34081871 -6.6931924 -6.573976 -0.80582583
6900 488 0.3555283 -6.6939997 -6.5683263 -0.74771423
7000 490 0.3543769 -6.7093364 -6.5827732 -0.77643516
7100 492 0.31263107 -6.698361 -6.5855723 -0.73108333
7200 494 0.32107 -6.6959056 -6.5789166 -0.7575478
7300 496 0.32908165 -6.7137605 -6.592677 -0.86538023
7400 498 0.32539571 -6.7030353 -6.5821554 -0.79337428
7500 500 0.33902577 -6.7078178 -6.5806832 -0.85408988
7600 502 0.35530921 -6.707507 -6.5730274 -0.79914613
7700 504 0.32391812 -6.6978823 -6.5741635 -0.78603595
7800 506 0.36390015 -6.7151325 -6.5748943 -0.83164222
7900 508 0.3372561 -6.7086718 -6.5775535 -0.7949992
8000 510 0.36612946 -6.7225238 -6.5789437 -0.80322866
8100 512 0.34622305 -6.7229825 -6.5860486 -0.70478659
8200 514 0.3212233 -6.7202524 -6.5921381 -0.91836713
8300 516 0.3402461 -6.721488 -6.5846642 -0.88273592
8400 518 0.34070258 -6.7268378 -6.5887152 -0.76057264
8500 520 0.36267747 -6.744602 -6.5963924 -0.81051317
8600 522 0.3439948 -6.7376267 -6.595943 -0.84600203
8700 524 0.30960289 -6.7276471 -6.5991382 -0.90965986
8800 526 0.28868972 -6.7159628 -6.595218 -0.876093
8900 528 0.31020216 -6.7162903 -6.5855707 -0.83193125
9000 530 0.31836275 -6.7171479 -6.5819939 -0.82093897
9100 532 0.32543293 -6.724167 -6.5850016 -0.7690143
9200 534 0.32644265 -6.7139575 -6.5733549 -0.86903096
9300 536 0.33050759 -6.7254715 -6.5821077 -0.94504522
9400 538 0.30372582 -6.7139931 -6.5813247 -0.91128612
9500 540 0.32943659 -6.7206223 -6.5757312 -0.87818439
9600 542 0.30911968 -6.708091 -6.5712114 -0.79092372
9700 544 0.33909826 -6.7222948 -6.5711342 -0.80266151
9800 546 0.29015141 -6.7086869 -6.5784908 -0.87763769
9900 548 0.33838474 -6.7384955 -6.5856667 -0.85630604
10000 550 0.30213198 -6.7338924 -6.5965597 -0.75738882
Loop time of 17.2852 on 1 procs for 10000 steps with 550 atoms
Performance: 249924.414 tau/day, 578.529 timesteps/s
99.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 | 9.637 | 9.637 | 9.637 | 0.0 | 55.75
Bond | 0.025444 | 0.025444 | 0.025444 | 0.0 | 0.15
Neigh | 4.6852 | 4.6852 | 4.6852 | 0.0 | 27.11
Comm | 0.65556 | 0.65556 | 0.65556 | 0.0 | 3.79
Output | 0.0099883 | 0.0099883 | 0.0099883 | 0.0 | 0.06
Modify | 2.1895 | 2.1895 | 2.1895 | 0.0 | 12.67
Other | | 0.08248 | | | 0.48
Nlocal: 550.000 ave 550 max 550 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 2367.00 ave 2367 max 2367 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 36781.0 ave 36781 max 36781 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 36781
Ave neighs/atom = 66.874545
Ave special neighs/atom = 0.36363636
Neighbor list builds = 840
Dangerous builds = 0
Total wall time: 0:00:17

View File

@ -0,0 +1,218 @@
LAMMPS (10 Mar 2021)
using 1 OpenMP thread(s) per MPI task
# sample surface deposition script for molecules
units lj
atom_style bond
boundary p p f
lattice fcc 1.0
Lattice spacing in x,y,z = 1.5874011 1.5874011 1.5874011
region box block 0 5 0 5 0 10
create_box 3 box bond/types 1 extra/bond/per/atom 1
Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (7.9370053 7.9370053 15.874011)
1 by 1 by 4 MPI processor grid
region substrate block INF INF INF INF INF 3
create_atoms 1 region substrate
Created 350 atoms
create_atoms CPU = 0.139 seconds
pair_style lj/cut 2.5
pair_coeff * * 1.0 1.0
pair_coeff 1 2 1.0 1.0 5.0
mass * 1.0
bond_style harmonic
bond_coeff 1 5.0 1.0
neigh_modify delay 0
molecule dimer molecule.dimer
Read molecule template dimer:
1 molecules
2 atoms with max type 3
1 bonds with max type 1
0 angles with max type 0
0 dihedrals with max type 0
0 impropers with max type 0
region slab block 0 5 0 5 8 9
group addatoms empty
0 atoms in group addatoms
region mobile block 0 5 0 5 2 INF
group mobile region mobile
150 atoms in group mobile
compute add addatoms temp
compute_modify add dynamic/dof yes extra/dof 0
fix 1 addatoms rigid/small molecule mol dimer
create bodies CPU = 0.006 seconds
0 rigid bodies with 0 atoms
1.0000000 = max distance from body owner to body atom
fix 2 mobile langevin 0.1 0.1 0.1 587283
fix 3 mobile nve
fix 4 addatoms deposit 100 0 100 12345 region slab near 1.0 mol dimer vz -1.0 -1.0 rigid 1
fix 5 addatoms wall/reflect zhi EDGE
thermo_style custom step atoms temp epair etotal press
thermo 100
thermo_modify temp add lost/bond ignore lost warn
WARNING: Temperature for thermo pressure is not for group all (src/thermo.cpp:468)
#dump 1 all atom 50 dump.deposit.atom
#dump 2 all image 50 image.*.jpg type type # axes yes 0.8 0.02 view 80 -30
#dump_modify 2 pad 5
#dump 3 all movie 50 tmp.mpg type type # axes yes 0.8 0.02 view 80 -30
#dump_modify 3 pad 5
run 10000
WARNING: Should not allow rigid bodies to bounce off relecting walls (src/fix_wall_reflect.cpp:182)
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 5.3
ghost atom cutoff = 5.3
binsize = 2.65, bins = 3 3 6
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 5.255 | 5.852 | 6.302 Mbytes
Step Atoms Temp E_pair TotEng Press
0 350 0 -6.9215833 -6.9215833 -1.0052629
100 352 1.0079368 -6.8946578 -6.8874992 -0.73775337
200 354 1.0081552 -6.8645575 -6.850318 -0.69629729
300 356 1.0085803 -6.821677 -6.8004288 -0.69532657
400 358 1.0099188 -6.7837923 -6.7555822 -0.68879568
500 360 1.0140221 -6.7446709 -6.7094618 -0.72991641
600 362 1.026146 -6.7129201 -6.6704003 -0.67063836
700 364 1.0683193 -6.6776523 -6.6262908 -0.65572472
800 366 1.0958893 -6.6402029 -6.5803182 -0.66307281
900 368 1.1231768 -6.6050912 -6.5364187 -0.64076928
1000 370 1.1976283 -6.5942507 -6.5133299 -0.69249019
1100 372 1.0506263 -6.5772313 -6.499564 -0.63072939
1200 374 0.93724351 -6.5732957 -6.4981157 -0.64963897
1300 376 0.93899686 -6.5578406 -6.4766773 -0.65096289
1400 378 0.8704974 -6.5468498 -6.4662482 -0.67613931
1500 380 0.84490693 -6.5401094 -6.4567304 -0.64385968
1600 382 0.9243154 -6.5611604 -6.4643734 -0.62096869
1700 384 0.67202953 -6.5590557 -6.4846775 -0.67807465
1800 386 0.8712464 -6.5654953 -6.4639251 -0.65860236
1900 388 0.70011668 -6.5808612 -6.495151 -0.65146463
2000 390 0.64019295 -6.5652168 -6.4831408 -0.70291888
2100 392 0.67578277 -6.5596196 -6.469113 -0.63315981
2200 394 0.60785287 -6.558941 -6.4740885 -0.7133822
2300 396 0.8155086 -6.5756022 -6.4571887 -0.69176417
2400 398 0.69028748 -6.5875474 -6.483484 -0.63743938
2500 400 0.5013913 -6.5871851 -6.5088427 -0.65872179
2600 402 0.51268385 -6.5782356 -6.495339 -0.74289067
2700 404 0.57745388 -6.5815718 -6.4850912 -0.67922914
2800 406 0.47317895 -6.5974978 -6.5159152 -0.64657562
2900 408 0.50593124 -6.6019054 -6.5120034 -0.64211427
3000 410 0.44423233 -6.5956684 -6.5144064 -0.66526127
3100 412 0.40808865 -6.5949863 -6.5182221 -0.62722445
3200 414 0.40692632 -6.5866689 -6.5080358 -0.76440608
3300 416 0.43908529 -6.5851721 -6.4980939 -0.69345883
3400 418 0.53825907 -6.5880076 -6.478553 -0.69726204
3500 420 0.46363057 -6.6135193 -6.5169296 -0.58015901
3600 422 0.39262699 -6.621857 -6.5381213 -0.74921264
3700 424 0.42679205 -6.6146579 -6.5215488 -0.69040431
3800 426 0.38997492 -6.6139725 -6.5270063 -0.78237667
3900 428 0.5222531 -6.6403886 -6.5214174 -0.78298122
4000 430 0.47841128 -6.6502681 -6.5390097 -0.68125967
4100 432 0.44609186 -6.6610827 -6.5552392 -0.81157037
4200 434 0.4591431 -6.6858064 -6.5747234 -0.79000753
4300 436 0.40690573 -6.6800195 -6.579693 -0.6781696
4400 438 0.43023944 -6.6849804 -6.5769294 -0.7620548
4500 440 0.40889421 -6.6783124 -6.5737656 -0.8577593
4600 442 0.41452051 -6.6968565 -6.5890061 -0.70427746
4700 444 0.36740394 -6.6920933 -6.5948636 -0.69303162
4800 446 0.40112316 -6.6869413 -6.5790158 -0.84792822
4900 448 0.42437165 -6.6789835 -6.5629444 -0.82278531
5000 450 0.41822898 -6.6770254 -6.5608507 -0.72224472
5100 452 0.38445688 -6.6738997 -6.5654522 -0.7022418
5200 454 0.39998238 -6.6670536 -6.5525212 -0.73639959
5300 456 0.39471029 -6.6728592 -6.5581681 -0.70419927
5400 458 0.35817807 -6.6702423 -6.5646658 -0.81657219
5500 460 0.37151428 -6.6690855 -6.558035 -0.78076653
5600 462 0.32642513 -6.6622352 -6.5633185 -0.69118644
5700 464 0.43665879 -6.6811227 -6.5470195 -0.77500043
5800 466 0.40704721 -6.6858874 -6.5592311 -0.72683597
5900 468 0.3861903 -6.6896953 -6.5679794 -0.78001958
6000 470 0.34073346 -6.6833717 -6.574627 -0.78170837
6100 472 0.39953874 -6.7083668 -6.5792785 -0.81791744
6200 474 0.36685189 -6.7114648 -6.5915027 -0.80545451
6300 476 0.35851799 -6.7261023 -6.607475 -0.77350495
6400 478 0.41771823 -6.7427425 -6.6029205 -0.85319003
6500 480 0.36519478 -6.732662 -6.6090284 -0.78712805
6600 482 0.30669571 -6.7269784 -6.6219892 -0.76698134
6700 484 0.3384344 -6.7261448 -6.6090213 -0.79935239
6800 486 0.36420902 -6.7320259 -6.6046277 -0.84650552
6900 488 0.40181215 -6.7490619 -6.6070279 -0.75753238
7000 490 0.30536068 -6.7398924 -6.6308351 -0.73210162
7100 492 0.28813004 -6.7257287 -6.6217794 -0.92178435
7200 494 0.30956277 -6.7342688 -6.6214727 -0.77532949
7300 496 0.36625115 -6.7528159 -6.6180561 -0.76247835
7400 498 0.30935271 -6.7401433 -6.6252231 -0.82809158
7500 500 0.33222282 -6.7410421 -6.6164585 -0.81948236
7600 502 0.33318693 -6.7488106 -6.622704 -0.82395904
7700 504 0.34570598 -6.7547394 -6.6226989 -0.85644369
7800 506 0.34587242 -6.7446006 -6.6113099 -0.82476511
7900 508 0.2969166 -6.7305429 -6.6151078 -0.8210214
8000 510 0.32355758 -6.7437629 -6.6168776 -0.81719054
8100 512 0.33784479 -6.7545537 -6.6209335 -0.78082067
8200 514 0.32351289 -6.7525032 -6.6234757 -0.87093587
8300 516 0.31900134 -6.7550972 -6.6268166 -0.79928704
8400 518 0.3338521 -6.7588757 -6.6235302 -0.81699503
8500 520 0.33115184 -6.7614854 -6.6261589 -0.79958489
8600 522 0.29478929 -6.7490188 -6.6276018 -0.81954456
8700 524 0.267993 -6.7467764 -6.6355389 -0.76642994
8800 526 0.28792085 -6.7527118 -6.6322887 -0.86911619
8900 528 0.32430992 -6.75901 -6.6223453 -0.87087898
9000 530 0.33151321 -6.7534845 -6.6127478 -0.79309499
9100 532 0.32760982 -6.7599992 -6.6199028 -0.7506309
9200 534 0.32579101 -6.7671489 -6.6268269 -0.94238755
9300 536 0.35144354 -6.7782581 -6.625813 -0.77952234
9400 538 0.33689976 -6.7804455 -6.6332867 -0.75768501
9500 540 0.3052486 -6.7745436 -6.6402908 -0.89621525
9600 542 0.30617581 -6.7648172 -6.6292412 -0.90623541
9700 544 0.30097715 -6.7714379 -6.6372707 -0.85534149
9800 546 0.31297479 -6.7814978 -6.6410604 -0.88651064
9900 548 0.31832347 -6.790661 -6.6468926 -1.006
10000 550 0.29239559 -6.7823137 -6.6494066 -1.0337518
Loop time of 34.7661 on 4 procs for 10000 steps with 550 atoms
Performance: 124259.065 tau/day, 287.637 timesteps/s
73.4% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.0076709 | 3.1286 | 9.1834 | 211.7 | 9.00
Bond | 0.0040276 | 0.010416 | 0.022169 | 7.0 | 0.03
Neigh | 0.052413 | 1.5948 | 4.885 | 155.3 | 4.59
Comm | 4.9736 | 12.242 | 20.073 | 166.2 | 35.21
Output | 0.053549 | 0.10104 | 0.21642 | 21.0 | 0.29
Modify | 13.435 | 16.191 | 23.851 | 110.0 | 46.57
Other | | 1.499 | | | 4.31
Nlocal: 137.500 ave 299 max 2 min
Histogram: 2 0 0 0 0 0 0 1 0 1
Nghost: 1898.75 ave 2679 max 524 min
Histogram: 1 0 0 0 0 0 1 0 0 2
Neighs: 9204.00 ave 23014 max 0 min
Histogram: 2 0 0 0 0 1 0 0 0 1
Total # of neighbors = 36816
Ave neighs/atom = 66.938182
Ave special neighs/atom = 0.36363636
Neighbor list builds = 832
Dangerous builds = 0
Total wall time: 0:00:34

View File

@ -1,4 +1,4 @@
# GCMC for CO2 molecular fluid, rigid/small/nvt dynamics
# GCMC for CO2 molecular fluid, rigid/small dynamics
# Rigid CO2 TraPPE model
# [Potoff and J.I. Siepmann, Vapor-liquid equilibria of
# mixtures containing alkanes, carbon dioxide and
@ -7,7 +7,7 @@
# variables available on command line
variable mu index -8.1
variable disp index 0.5
variable disp index 0.5
variable temp index 338.0
variable lbox index 10.0
variable spacing index 5.0
@ -17,7 +17,7 @@ variable spacing index 5.0
units real
atom_style full
boundary p p p
pair_style lj/cut/coul/long 14
pair_style lj/cut/coul/long 14
pair_modify mix arithmetic tail yes
kspace_style ewald 0.0001
bond_style harmonic
@ -25,7 +25,7 @@ angle_style harmonic
# box, start molecules on simple cubic lattice
lattice sc ${spacing}
lattice sc ${spacing}
region box block 0 ${lbox} 0 ${lbox} 0 ${lbox} units box
create_box 2 box &
bond/types 1 &
@ -34,56 +34,56 @@ create_box 2 box &
extra/angle/per/atom 1 &
extra/special/per/atom 2
molecule co2mol CO2.txt
create_atoms 0 box mol co2mol 464563 units box
# rigid CO2 TraPPE model
create_atoms 0 box mol co2mol 464563 units box
# rigid CO2 TraPPE model
pair_coeff 1 1 0.053649 2.8
pair_coeff 2 2 0.156973 3.05
bond_coeff 1 0 1.16
angle_coeff 1 0 180
pair_coeff 2 2 0.156973 3.05
bond_coeff 1 0 1.16
angle_coeff 1 0 180
# masses
mass 1 12.0107
mass 2 15.9994
mass 1 12.0107
mass 2 15.9994
# MD settings
group co2 type 1 2
neighbor 2.0 bin
neigh_modify every 1 delay 10 check yes
velocity all create ${temp} 54654
velocity all create ${temp} 54654
timestep 1.0
# rigid constraints with thermostat
# rigid constraints with thermostat
fix myrigidnvt co2 rigid/nvt/small molecule temp ${temp} ${temp} 100 mol co2mol
fix myrigid co2 rigid/small molecule mol co2mol
# dynamically update fix rigid/nvt/small temperature ndof
fix_modify myrigidnvt dynamic/dof yes
fix_modify myrigid dynamic/dof yes
# gcmc
variable tfac equal 5.0/3.0 # (3 trans + 2 rot)/(3 trans)
fix mygcmc co2 gcmc 100 100 0 0 54341 ${temp} ${mu} ${disp} mol &
co2mol tfac_insert ${tfac} group co2 rigid myrigidnvt
co2mol tfac_insert ${tfac} group co2 rigid myrigid
# atom counts
variable carbon atom "type==1"
variable carbon atom "type==1"
variable oxygen atom "type==2"
group carbon dynamic co2 var carbon
group oxygen dynamic co2 var oxygen
group carbon dynamic co2 var carbon
group oxygen dynamic co2 var oxygen
variable nC equal count(carbon)
variable nO equal count(oxygen)
# output
variable tacc equal f_mygcmc[2]/(f_mygcmc[1]+0.1)
variable iacc equal f_mygcmc[4]/(f_mygcmc[3]+0.1)
variable dacc equal f_mygcmc[6]/(f_mygcmc[5]+0.1)
variable racc equal f_mygcmc[8]/(f_mygcmc[7]+0.1)
variable tacc equal f_mygcmc[2]/(f_mygcmc[1]+0.1)
variable iacc equal f_mygcmc[4]/(f_mygcmc[3]+0.1)
variable dacc equal f_mygcmc[6]/(f_mygcmc[5]+0.1)
variable racc equal f_mygcmc[8]/(f_mygcmc[7]+0.1)
# dynamically update default temperature ndof
compute_modify thermo_temp dynamic/dof yes

View File

@ -1,196 +0,0 @@
LAMMPS (27 Nov 2018)
using 1 OpenMP thread(s) per MPI task
# GCMC for CO2 molecular fluid, rigid/small/nvt dynamics
# Rigid CO2 TraPPE model
# [Potoff and J.I. Siepmann, Vapor-liquid equilibria of
# mixtures containing alkanes, carbon dioxide and
# nitrogen AIChE J., 47,1676-1682 (2001)].
# variables available on command line
variable mu index -8.1
variable disp index 0.5
variable temp index 338.0
variable lbox index 10.0
variable spacing index 5.0
# global model settings
units real
atom_style full
boundary p p p
pair_style lj/cut/coul/long 14
pair_modify mix arithmetic tail yes
kspace_style ewald 0.0001
bond_style harmonic
angle_style harmonic
# box, start molecules on simple cubic lattice
lattice sc ${spacing}
lattice sc 5.0
Lattice spacing in x,y,z = 5 5 5
region box block 0 ${lbox} 0 ${lbox} 0 ${lbox} units box
region box block 0 10.0 0 ${lbox} 0 ${lbox} units box
region box block 0 10.0 0 10.0 0 ${lbox} units box
region box block 0 10.0 0 10.0 0 10.0 units box
create_box 2 box bond/types 1 angle/types 1 extra/bond/per/atom 2 extra/angle/per/atom 1 extra/special/per/atom 2
Created orthogonal box = (0 0 0) to (10 10 10)
1 by 1 by 1 MPI processor grid
molecule co2mol CO2.txt
Read molecule co2mol:
3 atoms with max type 2
2 bonds with max type 1
1 angles with max type 1
0 dihedrals with max type 0
0 impropers with max type 0
create_atoms 0 box mol co2mol 464563 units box
Created 24 atoms
Time spent = 0.00134993 secs
# rigid CO2 TraPPE model
pair_coeff 1 1 0.053649 2.8
pair_coeff 2 2 0.156973 3.05
bond_coeff 1 0 1.16
angle_coeff 1 0 180
# masses
mass 1 12.0107
mass 2 15.9994
# MD settings
group co2 type 1 2
24 atoms in group co2
neighbor 2.0 bin
neigh_modify every 1 delay 10 check yes
velocity all create ${temp} 54654
velocity all create 338.0 54654
timestep 1.0
# rigid constraints with thermostat
fix myrigidnvt co2 rigid/nvt/small molecule temp ${temp} ${temp} 100 mol co2mol
fix myrigidnvt co2 rigid/nvt/small molecule temp 338.0 ${temp} 100 mol co2mol
fix myrigidnvt co2 rigid/nvt/small molecule temp 338.0 338.0 100 mol co2mol
8 rigid bodies with 24 atoms
1.16 = max distance from body owner to body atom
# dynamically update fix rigid/nvt/small temperature ndof
fix_modify myrigidnvt dynamic/dof yes
# gcmc
variable tfac equal 5.0/3.0 # (3 trans + 2 rot)/(3 trans)
fix mygcmc co2 gcmc 100 100 0 0 54341 ${temp} ${mu} ${disp} mol co2mol tfac_insert ${tfac} group co2 rigid myrigidnvt
fix mygcmc co2 gcmc 100 100 0 0 54341 338.0 ${mu} ${disp} mol co2mol tfac_insert ${tfac} group co2 rigid myrigidnvt
fix mygcmc co2 gcmc 100 100 0 0 54341 338.0 -8.1 ${disp} mol co2mol tfac_insert ${tfac} group co2 rigid myrigidnvt
fix mygcmc co2 gcmc 100 100 0 0 54341 338.0 -8.1 0.5 mol co2mol tfac_insert ${tfac} group co2 rigid myrigidnvt
fix mygcmc co2 gcmc 100 100 0 0 54341 338.0 -8.1 0.5 mol co2mol tfac_insert 1.66666666666667 group co2 rigid myrigidnvt
# atom counts
variable carbon atom "type==1"
variable oxygen atom "type==2"
group carbon dynamic co2 var carbon
dynamic group carbon defined
group oxygen dynamic co2 var oxygen
dynamic group oxygen defined
variable nC equal count(carbon)
variable nO equal count(oxygen)
# output
variable tacc equal f_mygcmc[2]/(f_mygcmc[1]+0.1)
variable iacc equal f_mygcmc[4]/(f_mygcmc[3]+0.1)
variable dacc equal f_mygcmc[6]/(f_mygcmc[5]+0.1)
variable racc equal f_mygcmc[8]/(f_mygcmc[7]+0.1)
# dynamically update default temperature ndof
compute_modify thermo_temp dynamic/dof yes
thermo_style custom step temp press pe ke density atoms v_iacc v_dacc v_tacc v_racc v_nC v_nO
thermo 1000
# run
run 20000
Ewald initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:321)
G vector (1/distance) = 0.164636
estimated absolute RMS force accuracy = 0.0332064
estimated relative force accuracy = 0.0001
KSpace vectors: actual max1d max3d = 16 2 62
kxmax kymax kzmax = 2 2 2
WARNING: Fix gcmc using full_energy option (src/MC/fix_gcmc.cpp:487)
0 atoms in group FixGCMC:gcmc_exclusion_group:mygcmc
0 atoms in group FixGCMC:rotation_gas_atoms:mygcmc
WARNING: Neighbor exclusions used with KSpace solver may give inconsistent Coulombic energies (src/neighbor.cpp:471)
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 16
ghost atom cutoff = 16
binsize = 8, bins = 2 2 2
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 15.62 | 15.62 | 15.62 Mbytes
Step Temp Press PotEng KinEng Density Atoms v_iacc v_dacc v_tacc v_racc v_nC v_nO
0 364.27579 4238.8631 -9.6809388 13.391989 0.5846359 24 0 0 0 0 8 16
1000 267.9799 -73.919548 -3.6735999 5.8578459 0.36539744 15 0.23663972 0.2494423 0 0 5 10
2000 409.06596 -98.033864 -6.7570039 10.974131 0.43847693 18 0.29379544 0.29816284 0 0 6 12
3000 279.3225 -836.47758 -26.434976 15.819539 0.87695385 36 0.23798567 0.24203908 0 0 12 24
4000 333.6181 606.63478 -30.35312 18.894592 0.87695385 36 0.19121778 0.19481508 0 0 12 24
5000 405.98741 -103.97582 -14.180277 16.942399 0.65771539 27 0.15272841 0.15982952 0 0 9 18
6000 283.5835 -240.01076 -6.7198093 7.607777 0.43847693 18 0.1606796 0.16536735 0 0 6 12
7000 142.00717 154.95914 -0.74192319 0.98769159 0.14615898 6 0.19501993 0.20103405 0 0 2 4
8000 376.67702 -118.12474 -10.774631 13.847899 0.5846359 24 0.20133396 0.20468352 0 0 8 16
9000 305.43166 -1095.8633 -10.388279 9.7112935 0.51155641 21 0.19445239 0.19869334 0 0 7 14
10000 244.08225 -179.31274 -12.974988 8.9732748 0.5846359 24 0.19098971 0.19586397 0 0 8 16
11000 305.03389 -568.94714 -21.745425 14.244887 0.73079488 30 0.18517522 0.18978828 0 0 10 20
12000 318.29735 767.76579 -37.184231 21.189508 1.0231128 42 0.17256426 0.17580267 0 0 14 28
13000 411.21707 433.01125 -4.5149215 8.9889065 0.36539744 15 0.16329385 0.16767604 0 0 5 10
14000 304.29535 148.28607 -2.3505844 6.6516754 0.36539744 15 0.17435868 0.17897674 0 0 5 10
15000 338.00555 2384.1424 -21.438264 17.463859 0.80387436 33 0.17237066 0.17634112 0 0 11 22
16000 613.56062 610.93867 -0.057364228 1.2192718 0.073079488 3 0.17128158 0.1758886 0 0 1 2
17000 432.63323 -980.52384 -15.79844 18.054365 0.65771539 27 0.17145651 0.17504846 0 0 9 18
18000 181.74572 -352.81765 -1.8617959 2.1669979 0.21923846 9 0.17292463 0.17654774 0 0 3 6
19000 208.55292 -248.38735 -4.2287767 4.5588154 0.36539744 15 0.18168324 0.18454331 0 0 5 10
20000 304.73317 -649.9896 -16.532405 12.716924 0.65771539 27 0.18085983 0.18345574 0 0 9 18
Loop time of 21.0434 on 1 procs for 20000 steps with 27 atoms
Performance: 82.116 ns/day, 0.292 hours/ns, 950.415 timesteps/s
98.5% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 2.2373 | 2.2373 | 2.2373 | 0.0 | 10.63
Bond | 0.022895 | 0.022895 | 0.022895 | 0.0 | 0.11
Kspace | 0.16756 | 0.16756 | 0.16756 | 0.0 | 0.80
Neigh | 0.11436 | 0.11436 | 0.11436 | 0.0 | 0.54
Comm | 0.26988 | 0.26988 | 0.26988 | 0.0 | 1.28
Output | 0.0014684 | 0.0014684 | 0.0014684 | 0.0 | 0.01
Modify | 18.193 | 18.193 | 18.193 | 0.0 | 86.45
Other | | 0.03692 | | | 0.18
Nlocal: 27 ave 27 max 27 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 2081 ave 2081 max 2081 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 6264 ave 6264 max 6264 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 6264
Ave neighs/atom = 232
Ave special neighs/atom = 2
Neighbor list builds = 20177
Dangerous builds = 0
Total wall time: 0:00:21

View File

@ -0,0 +1,196 @@
LAMMPS (10 Mar 2021)
using 1 OpenMP thread(s) per MPI task
# GCMC for CO2 molecular fluid, rigid/small dynamics
# Rigid CO2 TraPPE model
# [Potoff and J.I. Siepmann, Vapor-liquid equilibria of
# mixtures containing alkanes, carbon dioxide and
# nitrogen AIChE J., 47,1676-1682 (2001)].
# variables available on command line
variable mu index -8.1
variable disp index 0.5
variable temp index 338.0
variable lbox index 10.0
variable spacing index 5.0
# global model settings
units real
atom_style full
boundary p p p
pair_style lj/cut/coul/long 14
pair_modify mix arithmetic tail yes
kspace_style ewald 0.0001
bond_style harmonic
angle_style harmonic
# box, start molecules on simple cubic lattice
lattice sc ${spacing}
lattice sc 5.0
Lattice spacing in x,y,z = 5.0000000 5.0000000 5.0000000
region box block 0 ${lbox} 0 ${lbox} 0 ${lbox} units box
region box block 0 10.0 0 ${lbox} 0 ${lbox} units box
region box block 0 10.0 0 10.0 0 ${lbox} units box
region box block 0 10.0 0 10.0 0 10.0 units box
create_box 2 box bond/types 1 angle/types 1 extra/bond/per/atom 2 extra/angle/per/atom 1 extra/special/per/atom 2
Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (10.000000 10.000000 10.000000)
1 by 1 by 1 MPI processor grid
molecule co2mol CO2.txt
Read molecule template co2mol:
1 molecules
3 atoms with max type 2
2 bonds with max type 1
1 angles with max type 1
0 dihedrals with max type 0
0 impropers with max type 0
create_atoms 0 box mol co2mol 464563 units box
Created 24 atoms
create_atoms CPU = 0.002 seconds
# rigid CO2 TraPPE model
pair_coeff 1 1 0.053649 2.8
pair_coeff 2 2 0.156973 3.05
bond_coeff 1 0 1.16
angle_coeff 1 0 180
# masses
mass 1 12.0107
mass 2 15.9994
# MD settings
group co2 type 1 2
24 atoms in group co2
neighbor 2.0 bin
neigh_modify every 1 delay 10 check yes
velocity all create ${temp} 54654
velocity all create 338.0 54654
timestep 1.0
# rigid constraints with thermostat
fix myrigid co2 rigid/small molecule mol co2mol
create bodies CPU = 0.000 seconds
8 rigid bodies with 24 atoms
1.1600000 = max distance from body owner to body atom
# dynamically update fix rigid/nvt/small temperature ndof
fix_modify myrigid dynamic/dof yes
# gcmc
variable tfac equal 5.0/3.0 # (3 trans + 2 rot)/(3 trans)
fix mygcmc co2 gcmc 100 100 0 0 54341 ${temp} ${mu} ${disp} mol co2mol tfac_insert ${tfac} group co2 rigid myrigid
fix mygcmc co2 gcmc 100 100 0 0 54341 338.0 ${mu} ${disp} mol co2mol tfac_insert ${tfac} group co2 rigid myrigid
fix mygcmc co2 gcmc 100 100 0 0 54341 338.0 -8.1 ${disp} mol co2mol tfac_insert ${tfac} group co2 rigid myrigid
fix mygcmc co2 gcmc 100 100 0 0 54341 338.0 -8.1 0.5 mol co2mol tfac_insert ${tfac} group co2 rigid myrigid
fix mygcmc co2 gcmc 100 100 0 0 54341 338.0 -8.1 0.5 mol co2mol tfac_insert 1.66666666666667 group co2 rigid myrigid
# atom counts
variable carbon atom "type==1"
variable oxygen atom "type==2"
group carbon dynamic co2 var carbon
dynamic group carbon defined
group oxygen dynamic co2 var oxygen
dynamic group oxygen defined
variable nC equal count(carbon)
variable nO equal count(oxygen)
# output
variable tacc equal f_mygcmc[2]/(f_mygcmc[1]+0.1)
variable iacc equal f_mygcmc[4]/(f_mygcmc[3]+0.1)
variable dacc equal f_mygcmc[6]/(f_mygcmc[5]+0.1)
variable racc equal f_mygcmc[8]/(f_mygcmc[7]+0.1)
# dynamically update default temperature ndof
compute_modify thermo_temp dynamic/dof yes
thermo_style custom step temp press pe ke density atoms v_iacc v_dacc v_tacc v_racc v_nC v_nO
thermo 1000
# run
run 20000
Ewald initialization ...
using 12-bit tables for long-range coulomb (src/kspace.cpp:339)
G vector (1/distance) = 0.16463644
estimated absolute RMS force accuracy = 0.033206372
estimated relative force accuracy = 0.0001
KSpace vectors: actual max1d max3d = 16 2 62
kxmax kymax kzmax = 2 2 2
WARNING: Fix gcmc using full_energy option (src/MC/fix_gcmc.cpp:482)
0 atoms in group FixGCMC:gcmc_exclusion_group:mygcmc
0 atoms in group FixGCMC:rotation_gas_atoms:mygcmc
WARNING: Neighbor exclusions used with KSpace solver may give inconsistent Coulombic energies (src/neighbor.cpp:486)
Neighbor list info ...
update every 1 steps, delay 10 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 16
ghost atom cutoff = 16
binsize = 8, bins = 2 2 2
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut/coul/long, perpetual
attributes: half, newton on
pair build: half/bin/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 15.62 | 15.62 | 15.62 Mbytes
Step Temp Press PotEng KinEng Density Atoms v_iacc v_dacc v_tacc v_racc v_nC v_nO
0 364.27579 4238.8631 -9.6809388 13.391989 0.5846359 24 0 0 0 0 8 16
1000 261.50949 -204.60974 -9.6459249 8.3147747 0.51155641 21 0.096366192 0.097590121 0 0 7 14
2000 479.39697 231.28436 -7.0089345 10.47927 0.36539744 15 0.085531005 0.085453295 0 0 5 10
3000 318.31766 -433.17133 -7.3680951 8.5396005 0.43847693 18 0.078556687 0.080101462 0 0 6 12
4000 357.40776 -186.78 -16.453111 14.915105 0.65771539 27 0.082003877 0.08249082 0 0 9 18
5000 399.94731 1524.2909 -16.624678 18.677282 0.73079488 30 0.071285101 0.072731705 0 0 10 20
6000 354.71736 60.134827 -18.988979 16.565073 0.73079488 30 0.071615663 0.071713414 0 0 10 20
7000 483.32057 966.32174 -5.7393251 10.565037 0.36539744 15 0.087027775 0.089855826 0 0 5 10
8000 547.68562 494.96891 -4.125626 11.97201 0.36539744 15 0.11738082 0.11937373 0 0 5 10
9000 433.76488 390.91467 -0.85312985 5.1718828 0.21923846 9 0.13265238 0.13513212 0 0 3 6
10000 330.01685 -862.07457 -26.494645 18.690633 0.87695385 36 0.13775034 0.13905403 0 0 12 24
11000 334.26318 -578.48274 -13.236965 12.288625 0.5846359 24 0.13713936 0.13960485 0 0 8 16
12000 243.68657 -1244.7156 -25.757644 12.590645 0.80387436 33 0.1339588 0.13588739 0 0 11 22
13000 307.66758 -429.66928 -17.864639 14.367878 0.73079488 30 0.12604721 0.1278094 0 0 10 20
14000 330.91434 495.97112 -15.374248 13.809499 0.65771539 27 0.12011756 0.12145865 0 0 9 18
15000 564.87966 982.72332 -14.810525 26.379517 0.73079488 30 0.12164324 0.12343521 0 0 10 20
16000 342.63867 -54.776299 -2.2580523 5.7875978 0.29231795 12 0.13535812 0.13790758 0 0 4 8
17000 461.07005 -2.4317694 -1.145154 3.2068452 0.14615898 6 0.1444739 0.14730804 0 0 2 4
18000 197.21207 -40.124433 -7.0857418 5.2906654 0.43847693 18 0.14403997 0.14574329 0 0 6 12
19000 393.36395 -420.49802 -11.172739 14.461366 0.5846359 24 0.15005606 0.15142063 0 0 8 16
20000 356.48539 56.071962 -1.7861789 4.2504609 0.21923846 9 0.15422732 0.15627984 0 0 3 6
Loop time of 19.5982 on 1 procs for 20000 steps with 9 atoms
Performance: 88.171 ns/day, 0.272 hours/ns, 1020.502 timesteps/s
99.5% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 2.3404 | 2.3404 | 2.3404 | 0.0 | 11.94
Bond | 0.033919 | 0.033919 | 0.033919 | 0.0 | 0.17
Kspace | 0.19974 | 0.19974 | 0.19974 | 0.0 | 1.02
Neigh | 0.11478 | 0.11478 | 0.11478 | 0.0 | 0.59
Comm | 0.22538 | 0.22538 | 0.22538 | 0.0 | 1.15
Output | 0.00096536 | 0.00096536 | 0.00096536 | 0.0 | 0.00
Modify | 16.627 | 16.627 | 16.627 | 0.0 | 84.84
Other | | 0.05594 | | | 0.29
Nlocal: 9.00000 ave 9 max 9 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 703.000 ave 703 max 703 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 719.000 ave 719 max 719 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 719
Ave neighs/atom = 79.888889
Ave special neighs/atom = 2.0000000
Neighbor list builds = 20196
Dangerous builds = 0
Total wall time: 0:00:19

View File

@ -9,7 +9,7 @@ create_box 1 box
create_atoms 1 box
mass 1 1.0
velocity all create 3.0 87287
velocity all create 3.0 87287 loop geom
pair_style lj/cut 2.5
pair_coeff 1 1 1.0 1.0 2.5

View File

@ -1,85 +0,0 @@
LAMMPS (27 Nov 2018)
using 1 OpenMP thread(s) per MPI task
# 3d Lennard-Jones melt
units lj
atom_style atomic
lattice fcc 0.8442
Lattice spacing in x,y,z = 1.6796 1.6796 1.6796
region box block 0 10 0 10 0 10
create_box 1 box
Created orthogonal box = (0 0 0) to (16.796 16.796 16.796)
1 by 2 by 2 MPI processor grid
create_atoms 1 box
Created 4000 atoms
Time spent = 0.00041604 secs
mass 1 1.0
velocity all create 3.0 87287
pair_style lj/cut 2.5
pair_coeff 1 1 1.0 1.0 2.5
neighbor 0.3 bin
neigh_modify every 20 delay 0 check no
fix 1 all nve
#dump id all atom 50 dump.melt
#dump 2 all image 25 image.*.jpg type type # axes yes 0.8 0.02 view 60 -30
#dump_modify 2 pad 3
#dump 3 all movie 25 movie.mpg type type # axes yes 0.8 0.02 view 60 -30
#dump_modify 3 pad 3
thermo 50
run 250
Neighbor list info ...
update every 20 steps, delay 0 steps, check no
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 2.8
ghost atom cutoff = 2.8
binsize = 1.4, bins = 12 12 12
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 2.705 | 2.705 | 2.705 Mbytes
Step Temp E_pair E_mol TotEng Press
0 3 -6.7733681 0 -2.2744931 -3.7033504
50 1.6754119 -4.7947589 0 -2.2822693 5.6615925
100 1.6503357 -4.756014 0 -2.2811293 5.8050524
150 1.6596605 -4.7699432 0 -2.2810749 5.7830138
200 1.6371874 -4.7365462 0 -2.2813789 5.9246674
250 1.6323462 -4.7292021 0 -2.2812949 5.9762238
Loop time of 0.223329 on 4 procs for 250 steps with 4000 atoms
Performance: 483592.231 tau/day, 1119.426 timesteps/s
97.3% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.15881 | 0.16314 | 0.16859 | 0.9 | 73.05
Neigh | 0.02472 | 0.025218 | 0.025828 | 0.3 | 11.29
Comm | 0.025185 | 0.030091 | 0.034351 | 1.9 | 13.47
Output | 0.00015163 | 0.00019169 | 0.00030899 | 0.0 | 0.09
Modify | 0.0037532 | 0.0038366 | 0.0040054 | 0.2 | 1.72
Other | | 0.00085 | | | 0.38
Nlocal: 1000 ave 1010 max 982 min
Histogram: 1 0 0 0 0 0 1 0 0 2
Nghost: 2703.75 ave 2713 max 2689 min
Histogram: 1 0 0 0 0 0 0 2 0 1
Neighs: 37915.5 ave 39239 max 36193 min
Histogram: 1 0 0 0 0 1 1 0 0 1
Total # of neighbors = 151662
Ave neighs/atom = 37.9155
Neighbor list builds = 12
Dangerous builds not checked
Total wall time: 0:00:00

View File

@ -1,4 +1,4 @@
LAMMPS (27 Nov 2018)
LAMMPS (8 Apr 2021)
using 1 OpenMP thread(s) per MPI task
# 3d Lennard-Jones melt
@ -6,17 +6,17 @@ units lj
atom_style atomic
lattice fcc 0.8442
Lattice spacing in x,y,z = 1.6796 1.6796 1.6796
Lattice spacing in x,y,z = 1.6795962 1.6795962 1.6795962
region box block 0 10 0 10 0 10
create_box 1 box
Created orthogonal box = (0 0 0) to (16.796 16.796 16.796)
Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (16.795962 16.795962 16.795962)
1 by 1 by 1 MPI processor grid
create_atoms 1 box
Created 4000 atoms
Time spent = 0.000645638 secs
create_atoms CPU = 0.002 seconds
mass 1 1.0
velocity all create 3.0 87287
velocity all create 3.0 87287 loop geom
pair_style lj/cut 2.5
pair_coeff 1 1 1.0 1.0 2.5
@ -48,38 +48,38 @@ Neighbor list info ...
pair build: half/bin/atomonly/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 3.221 | 3.221 | 3.221 Mbytes
Per MPI rank memory allocation (min/avg/max) = 3.222 | 3.222 | 3.222 Mbytes
Step Temp E_pair E_mol TotEng Press
0 3 -6.7733681 0 -2.2744931 -3.7033504
50 1.6758903 -4.7955425 0 -2.2823355 5.670064
100 1.6458363 -4.7492704 0 -2.2811332 5.8691042
150 1.6324555 -4.7286791 0 -2.280608 5.9589514
200 1.6630725 -4.7750988 0 -2.2811136 5.7364886
250 1.6275257 -4.7224992 0 -2.281821 5.9567365
Loop time of 0.729809 on 1 procs for 250 steps with 4000 atoms
50 1.6842865 -4.8082494 0 -2.2824513 5.5666131
100 1.6712577 -4.7875609 0 -2.281301 5.6613913
150 1.6444751 -4.7471034 0 -2.2810074 5.8614211
200 1.6471542 -4.7509053 0 -2.2807916 5.8805431
250 1.6645597 -4.7774327 0 -2.2812174 5.7526089
Loop time of 1.61045 on 1 procs for 250 steps with 4000 atoms
Performance: 147983.915 tau/day, 342.555 timesteps/s
Performance: 67062.020 tau/day, 155.236 timesteps/s
99.9% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.60661 | 0.60661 | 0.60661 | 0.0 | 83.12
Neigh | 0.092198 | 0.092198 | 0.092198 | 0.0 | 12.63
Comm | 0.013581 | 0.013581 | 0.013581 | 0.0 | 1.86
Output | 0.0001452 | 0.0001452 | 0.0001452 | 0.0 | 0.02
Modify | 0.014395 | 0.014395 | 0.014395 | 0.0 | 1.97
Other | | 0.002878 | | | 0.39
Pair | 1.3961 | 1.3961 | 1.3961 | 0.0 | 86.69
Neigh | 0.13555 | 0.13555 | 0.13555 | 0.0 | 8.42
Comm | 0.037732 | 0.037732 | 0.037732 | 0.0 | 2.34
Output | 0.0003345 | 0.0003345 | 0.0003345 | 0.0 | 0.02
Modify | 0.038016 | 0.038016 | 0.038016 | 0.0 | 2.36
Other | | 0.002731 | | | 0.17
Nlocal: 4000 ave 4000 max 4000 min
Nlocal: 4000.00 ave 4000 max 4000 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 5499 ave 5499 max 5499 min
Nghost: 5506.00 ave 5506 max 5506 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 151513 ave 151513 max 151513 min
Neighs: 151788.0 ave 151788 max 151788 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 151513
Ave neighs/atom = 37.8783
Total # of neighbors = 151788
Ave neighs/atom = 37.947000
Neighbor list builds = 12
Dangerous builds not checked
Total wall time: 0:00:00
Total wall time: 0:00:01

View File

@ -0,0 +1,85 @@
LAMMPS (8 Apr 2021)
using 1 OpenMP thread(s) per MPI task
# 3d Lennard-Jones melt
units lj
atom_style atomic
lattice fcc 0.8442
Lattice spacing in x,y,z = 1.6795962 1.6795962 1.6795962
region box block 0 10 0 10 0 10
create_box 1 box
Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (16.795962 16.795962 16.795962)
1 by 2 by 2 MPI processor grid
create_atoms 1 box
Created 4000 atoms
create_atoms CPU = 0.001 seconds
mass 1 1.0
velocity all create 3.0 87287 loop geom
pair_style lj/cut 2.5
pair_coeff 1 1 1.0 1.0 2.5
neighbor 0.3 bin
neigh_modify every 20 delay 0 check no
fix 1 all nve
#dump id all atom 50 dump.melt
#dump 2 all image 25 image.*.jpg type type # axes yes 0.8 0.02 view 60 -30
#dump_modify 2 pad 3
#dump 3 all movie 25 movie.mpg type type # axes yes 0.8 0.02 view 60 -30
#dump_modify 3 pad 3
thermo 50
run 250
Neighbor list info ...
update every 20 steps, delay 0 steps, check no
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 2.8
ghost atom cutoff = 2.8
binsize = 1.4, bins = 12 12 12
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair lj/cut, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 2.706 | 2.706 | 2.706 Mbytes
Step Temp E_pair E_mol TotEng Press
0 3 -6.7733681 0 -2.2744931 -3.7033504
50 1.6842865 -4.8082494 0 -2.2824513 5.5666131
100 1.6712577 -4.7875609 0 -2.281301 5.6613913
150 1.6444751 -4.7471034 0 -2.2810074 5.8614211
200 1.6471542 -4.7509053 0 -2.2807916 5.8805431
250 1.6645597 -4.7774327 0 -2.2812174 5.7526089
Loop time of 0.490832 on 4 procs for 250 steps with 4000 atoms
Performance: 220034.754 tau/day, 509.340 timesteps/s
96.7% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.35932 | 0.37256 | 0.38746 | 1.9 | 75.90
Neigh | 0.035928 | 0.038449 | 0.042344 | 1.3 | 7.83
Comm | 0.053452 | 0.068917 | 0.08485 | 5.3 | 14.04
Output | 0.00015545 | 0.00023746 | 0.00047684 | 0.0 | 0.05
Modify | 0.0096958 | 0.0097951 | 0.0098989 | 0.1 | 2.00
Other | | 0.0008721 | | | 0.18
Nlocal: 1000.00 ave 1008 max 987 min
Histogram: 1 0 0 0 0 0 1 0 1 1
Nghost: 2711.25 ave 2728 max 2693 min
Histogram: 1 0 0 0 0 2 0 0 0 1
Neighs: 37947.0 ave 38966 max 37338 min
Histogram: 1 1 0 1 0 0 0 0 0 1
Total # of neighbors = 151788
Ave neighs/atom = 37.947000
Neighbor list builds = 12
Dangerous builds not checked
Total wall time: 0:00:00

1
examples/plugins/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/build*

View File

@ -0,0 +1,68 @@
##########################################
# CMake build system for plugin examples.
# The is meant to be used as a template for plugins that are
# distributed independent from the LAMMPS package.
##########################################
cmake_minimum_required(VERSION 3.10)
# enforce out-of-source build
if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
message(FATAL_ERROR "In-source builds are not allowed. You must create and use a build directory. "
"Please remove CMakeCache.txt and CMakeFiles first.")
endif()
project(plugins VERSION 1.0 LANGUAGES CXX)
# NOTE: the next line should be commented out when used outside of the LAMMPS package
get_filename_component(LAMMPS_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../src ABSOLUTE)
set(LAMMPS_HEADER_DIR ${LAMMPS_SOURCE_DIR} CACHE PATH "Location of LAMMPS headers")
if(NOT LAMMPS_HEADER_DIR)
message(FATAL_ERROR "Must set LAMMPS_HEADER_DIR")
endif()
# by default, install into $HOME/.local (not /usr/local),
# so that no root access (and sudo) is needed
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
set(CMAKE_INSTALL_PREFIX "$ENV{HOME}/.local" CACHE PATH "Default install path" FORCE)
endif()
# C++11 is required
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# bail out on windows
if(CMAKE_SYSTEM_NAME STREQUAL Windows)
message(FATAL_ERROR "LAMMPS plugins are currently not supported on Windows")
endif()
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR})
include(CheckIncludeFileCXX)
include(LAMMPSInterfaceCXX)
##########################
# building the plugins
add_library(morse2plugin MODULE morse2plugin.cpp pair_morse2.cpp pair_morse2_omp.cpp)
target_include_directories(morse2plugin PRIVATE "${LAMMPS_HEADER_DIR}/USER-OMP")
target_link_libraries(morse2plugin PRIVATE lammps)
add_library(nve2plugin MODULE nve2plugin.cpp fix_nve2.cpp)
target_link_libraries(nve2plugin PRIVATE lammps)
add_library(helloplugin MODULE helloplugin.cpp)
target_link_libraries(helloplugin PRIVATE lammps)
add_library(zero2plugin MODULE zero2plugin.cpp pair_zero2.cpp bond_zero2.cpp
angle_zero2.cpp dihedral_zero2.cpp improper_zero2.cpp)
target_link_libraries(zero2plugin PRIVATE lammps)
set_target_properties(morse2plugin nve2plugin helloplugin zero2plugin PROPERTIES
PREFIX ""
LINK_FLAGS "-rdynamic")
# MacOS seems to need this
if(CMAKE_SYSTEM_NAME STREQUAL Darwin)
set_target_properties(morse2plugin nve2plugin helloplugin zero2plugin PROPERTIES
LINK_FLAGS "-Wl,-undefined,dynamic_lookup")
endif()

View File

@ -0,0 +1,86 @@
# Cmake script code to define the LAMMPS C++ interface
# settings required for building LAMMPS plugins
################################################################################
# helper function
function(validate_option name values)
string(TOLOWER ${${name}} needle_lower)
string(TOUPPER ${${name}} needle_upper)
list(FIND ${values} ${needle_lower} IDX_LOWER)
list(FIND ${values} ${needle_upper} IDX_UPPER)
if(${IDX_LOWER} LESS 0 AND ${IDX_UPPER} LESS 0)
list_to_bulletpoints(POSSIBLE_VALUE_LIST ${${values}})
message(FATAL_ERROR "\n########################################################################\n"
"Invalid value '${${name}}' for option ${name}\n"
"\n"
"Possible values are:\n"
"${POSSIBLE_VALUE_LIST}"
"########################################################################")
endif()
endfunction(validate_option)
#################################################################################
# LAMMPS C++ interface. We only need the header related parts.
add_library(lammps INTERFACE)
target_include_directories(lammps INTERFACE ${LAMMPS_HEADER_DIR})
################################################################################
# MPI configuration
if(NOT CMAKE_CROSSCOMPILING)
set(MPI_CXX_SKIP_MPICXX TRUE)
find_package(MPI QUIET)
option(BUILD_MPI "Build MPI version" ${MPI_FOUND})
else()
option(BUILD_MPI "Build MPI version" OFF)
endif()
if(BUILD_MPI)
find_package(MPI REQUIRED)
option(LAMMPS_LONGLONG_TO_LONG "Workaround if your system or MPI version does not recognize 'long long' data types" OFF)
if(LAMMPS_LONGLONG_TO_LONG)
target_compile_definitions(lammps INTERFACE -DLAMMPS_LONGLONG_TO_LONG)
endif()
target_link_libraries(lammps INTERFACE MPI::MPI_CXX)
else()
target_include_directories(lammps INTERFACE "${LAMMPS_SOURCE_DIR}/STUBS")
endif()
set(LAMMPS_SIZES "smallbig" CACHE STRING "LAMMPS integer sizes (smallsmall: all 32-bit, smallbig: 64-bit #atoms #timesteps, bigbig: also 64-bit imageint, 64-bit atom ids)")
set(LAMMPS_SIZES_VALUES smallbig bigbig smallsmall)
set_property(CACHE LAMMPS_SIZES PROPERTY STRINGS ${LAMMPS_SIZES_VALUES})
validate_option(LAMMPS_SIZES LAMMPS_SIZES_VALUES)
string(TOUPPER ${LAMMPS_SIZES} LAMMPS_SIZES)
target_compile_definitions(lammps INTERFACE -DLAMMPS_${LAMMPS_SIZES})
################################################################################
# detect if we may enable OpenMP support by default
set(BUILD_OMP_DEFAULT OFF)
find_package(OpenMP QUIET)
if(OpenMP_FOUND)
check_include_file_cxx(omp.h HAVE_OMP_H_INCLUDE)
if(HAVE_OMP_H_INCLUDE)
set(BUILD_OMP_DEFAULT ON)
endif()
endif()
option(BUILD_OMP "Build with OpenMP support" ${BUILD_OMP_DEFAULT})
if(BUILD_OMP)
find_package(OpenMP REQUIRED)
check_include_file_cxx(omp.h HAVE_OMP_H_INCLUDE)
if(NOT HAVE_OMP_H_INCLUDE)
message(FATAL_ERROR "Cannot find the 'omp.h' header file required for full OpenMP support")
endif()
if (((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 9.0)) OR
(CMAKE_CXX_COMPILER_ID STREQUAL "PGI") OR
((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 10.0)) OR
((CMAKE_CXX_COMPILER_ID STREQUAL "Intel") AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.0)))
# GCC 9.x and later plus Clang 10.x and later implement strict OpenMP 4.0 semantics for consts.
# Intel 18.0 was tested to support both, so we switch to OpenMP 4+ from 19.x onward to be safe.
target_compile_definitions(lammps INTERFACE -DLAMMPS_OMP_COMPAT=4)
else()
target_compile_definitions(lammps INTERFACE -DLAMMPS_OMP_COMPAT=3)
endif()
target_link_libraries(lammps INTERFACE OpenMP::OpenMP_CXX)
endif()

View File

@ -0,0 +1,6 @@
CXX=mpicxx
CXXFLAGS=-I../../src -Wall -Wextra -O3 -fPIC -I../../src/USER-OMP -fopenmp
LD=$(CXX) -shared -rdynamic -fopenmp
DSOEXT=.so
include Makefile.common

View File

@ -0,0 +1,36 @@
default: morse2plugin$(DSOEXT) nve2plugin$(DSOEXT) helloplugin$(DSOEXT) zero2plugin$(DSOEXT)
helloplugin$(DSOEXT): helloplugin.o
$(LD) -o $@ $^
morse2plugin$(DSOEXT): morse2plugin.o pair_morse2.o pair_morse2_omp.o
$(LD) -o $@ $^
nve2plugin$(DSOEXT): nve2plugin.o fix_nve2.o
$(LD) -o $@ $^
zero2plugin$(DSOEXT): zero2plugin.o pair_zero2.o bond_zero2.o angle_zero2.o dihedral_zero2.o improper_zero2.o
$(LD) -o $@ $^
.cpp.o:
$(CXX) -o $@ $(CXXFLAGS) -c $<
helloplugin.o: helloplugin.cpp
pair_morse2.o: pair_morse2.cpp pair_morse2.h
pair_morse2_omp.o: pair_morse2_omp.cpp pair_morse2_omp.h pair_morse2.h
morse2plugin.o: morse2plugin.cpp pair_morse2.h pair_morse2_omp.h
fix_nve2.o: fix_nve2.cpp fix_nve2.h
nve2plugin.o: nve2plugin.cpp fix_nve2.h
pair_zero2.o: pair_zero2.cpp pair_zero2.h
bond_zero2.o: bond_zero2.cpp bond_zero2.h
angle_zero2.o: angle_zero2.cpp angle_zero2.h
dihedral_zero2.o: dihedral_zero2.cpp dihedral_zero2.h
improper_zero2.o: improper_zero2.cpp improper_zero2.h
zero2plugin.o: zero2plugin.cpp pair_zero2.h bond_zero2.h angle_zero2.h dihedral_zero2.h
clean:
rm -rf *~ *.so *.dylib *.o log.lammps CMakeCache.txt CMakeFiles

View File

@ -0,0 +1,6 @@
CXX=mpicxx
CXXFLAGS=-I../../src -Wall -Wextra -O3 -fPIC -I../../src/USER-OMP
LD=$(CXX) -bundle -rdynamic -Wl,-undefined,dynamic_lookup
DSOEXT=.dylib
include Makefile.common

View File

@ -0,0 +1,6 @@
CXX=g++
CXXFLAGS=-I../../src -I../../src/STUBS -Wall -Wextra -O3 -fPIC -I../../src/USER-OMP -fopenmp
LD=$(CXX) -shared -rdynamic -fopenmp
DSOEXT=.so
include Makefile.common

View File

@ -0,0 +1,152 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://lammps.sandia.gov/, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Carsten Svaneborg (SDU)
------------------------------------------------------------------------- */
#include "angle_zero2.h"
#include "atom.h"
#include "comm.h"
#include "math_const.h"
#include "memory.h"
#include "error.h"
#include <cstring>
using namespace LAMMPS_NS;
using namespace MathConst;
/* ---------------------------------------------------------------------- */
AngleZero2::AngleZero2(LAMMPS *lmp) : Angle(lmp), coeffflag(1) {}
/* ---------------------------------------------------------------------- */
AngleZero2::~AngleZero2()
{
if (allocated && !copymode) {
memory->destroy(setflag);
memory->destroy(theta0);
}
}
/* ---------------------------------------------------------------------- */
void AngleZero2::compute(int eflag, int vflag)
{
ev_init(eflag,vflag);
}
/* ---------------------------------------------------------------------- */
void AngleZero2::settings(int narg, char **arg)
{
if ((narg != 0) && (narg != 1))
error->all(FLERR,"Illegal angle_style command");
if (narg == 1) {
if (strcmp("nocoeff",arg[0]) == 0) coeffflag=0;
else error->all(FLERR,"Illegal angle_style command");
}
}
/* ---------------------------------------------------------------------- */
void AngleZero2::allocate()
{
allocated = 1;
int n = atom->nangletypes;
memory->create(theta0,n+1,"angle:theta0");
memory->create(setflag,n+1,"angle:setflag");
for (int i = 1; i <= n; i++) setflag[i] = 0;
}
/* ----------------------------------------------------------------------
set coeffs for one or more types
------------------------------------------------------------------------- */
void AngleZero2::coeff(int narg, char **arg)
{
if ((narg < 1) || (coeffflag && narg > 2))
error->all(FLERR,"Incorrect args for angle coefficients");
if (!allocated) allocate();
int ilo,ihi;
utils::bounds(FLERR,arg[0],1,atom->nangletypes,ilo,ihi,error);
double theta0_one = 0.0;
if (coeffflag && (narg == 2))
theta0_one = utils::numeric(FLERR,arg[1],false,lmp);
// convert theta0 from degrees to radians
int count = 0;
for (int i = ilo; i <= ihi; i++) {
setflag[i] = 1;
theta0[i] = theta0_one/180.0 * MY_PI;
count++;
}
if (count == 0) error->all(FLERR,"Incorrect args for angle coefficients");
}
/* ---------------------------------------------------------------------- */
double AngleZero2::equilibrium_angle(int i)
{
return theta0[i];
}
/* ----------------------------------------------------------------------
proc 0 writes out coeffs to restart file
------------------------------------------------------------------------- */
void AngleZero2::write_restart(FILE *fp) {
fwrite(&theta0[1],sizeof(double),atom->nangletypes,fp);
}
/* ----------------------------------------------------------------------
proc 0 reads coeffs from restart file, bcasts them
------------------------------------------------------------------------- */
void AngleZero2::read_restart(FILE *fp)
{
allocate();
if (comm->me == 0) {
utils::sfread(FLERR,&theta0[1],sizeof(double),atom->nangletypes,fp,nullptr,error);
}
MPI_Bcast(&theta0[1],atom->nangletypes,MPI_DOUBLE,0,world);
for (int i = 1; i <= atom->nangletypes; i++) setflag[i] = 1;
}
/* ----------------------------------------------------------------------
proc 0 writes to data file
------------------------------------------------------------------------- */
void AngleZero2::write_data(FILE *fp)
{
for (int i = 1; i <= atom->nangletypes; i++)
fprintf(fp,"%d %g\n",i,theta0[i]/MY_PI*180.0);
}
/* ---------------------------------------------------------------------- */
double AngleZero2::single(int /*type*/, int /*i1*/, int /*i2*/, int /*i3*/)
{
return 0.0;
}

View File

@ -0,0 +1,57 @@
/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifndef LMP_ANGLE_ZERO2_H
#define LMP_ANGLE_ZERO2_H
#include "angle.h"
namespace LAMMPS_NS {
class AngleZero2 : public Angle {
public:
AngleZero2(class LAMMPS *);
virtual ~AngleZero2();
virtual void compute(int, int);
virtual void coeff(int, char **);
virtual void settings(int, char **);
double equilibrium_angle(int);
void write_restart(FILE *);
void read_restart(FILE *);
void write_data(FILE *);
double single(int, int, int, int);
protected:
double *theta0;
int coeffflag;
void allocate();
};
}
#endif
/* ERROR/WARNING messages:
E: Illegal ... command
UNDOCUMENTED
E: Incorrect args for angle coefficients
Self-explanatory. Check the input script or data file.
*/

View File

@ -0,0 +1,161 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://lammps.sandia.gov/, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Carsten Svaneborg (SDU)
------------------------------------------------------------------------- */
#include "bond_zero2.h"
#include "atom.h"
#include "comm.h"
#include "error.h"
#include "memory.h"
#include <cstring>
using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */
BondZero2::BondZero2(LAMMPS *lmp) : Bond(lmp), coeffflag(1) {}
/* ---------------------------------------------------------------------- */
BondZero2::~BondZero2()
{
if (allocated && !copymode) {
memory->destroy(setflag);
memory->destroy(r0);
}
}
/* ---------------------------------------------------------------------- */
void BondZero2::compute(int eflag, int vflag)
{
ev_init(eflag,vflag);
}
/* ---------------------------------------------------------------------- */
void BondZero2::settings(int narg, char **arg)
{
if ((narg != 0) && (narg != 1))
error->all(FLERR,"Illegal bond_style command");
if (narg == 1) {
if (strcmp("nocoeff",arg[0]) == 0) coeffflag=0;
else error->all(FLERR,"Illegal bond_style command");
}
}
/* ---------------------------------------------------------------------- */
void BondZero2::allocate()
{
allocated = 1;
int n = atom->nbondtypes;
memory->create(r0,n+1,"bond:r0");
memory->create(setflag,n+1,"bond:setflag");
for (int i = 1; i <= n; i++) setflag[i] = 0;
}
/* ----------------------------------------------------------------------
set coeffs for one or more types
------------------------------------------------------------------------- */
void BondZero2::coeff(int narg, char **arg)
{
if ((narg < 1) || (coeffflag && narg > 2))
error->all(FLERR,"Incorrect args for bond coefficients");
if (!allocated) allocate();
int ilo,ihi;
utils::bounds(FLERR,arg[0],1,atom->nbondtypes,ilo,ihi,error);
double r0_one = 0.0;
if (coeffflag && (narg == 2))
r0_one = utils::numeric(FLERR,arg[1],false,lmp);
int count = 0;
for (int i = ilo; i <= ihi; i++) {
setflag[i] = 1;
r0[i] = r0_one;
count++;
}
if (count == 0) error->all(FLERR,"Incorrect args for bond coefficients");
}
/* ----------------------------------------------------------------------
return an equilbrium bond length
------------------------------------------------------------------------- */
double BondZero2::equilibrium_distance(int i)
{
return r0[i];
}
/* ----------------------------------------------------------------------
proc 0 writes out coeffs to restart file
------------------------------------------------------------------------- */
void BondZero2::write_restart(FILE *fp) {
fwrite(&r0[1],sizeof(double),atom->nbondtypes,fp);
}
/* ----------------------------------------------------------------------
proc 0 reads coeffs from restart file, bcasts them
------------------------------------------------------------------------- */
void BondZero2::read_restart(FILE *fp)
{
allocate();
if (comm->me == 0) {
utils::sfread(FLERR,&r0[1],sizeof(double),atom->nbondtypes,fp,nullptr,error);
}
MPI_Bcast(&r0[1],atom->nbondtypes,MPI_DOUBLE,0,world);
for (int i = 1; i <= atom->nbondtypes; i++) setflag[i] = 1;
}
/* ----------------------------------------------------------------------
proc 0 writes to data file
------------------------------------------------------------------------- */
void BondZero2::write_data(FILE *fp)
{
for (int i = 1; i <= atom->nbondtypes; i++)
fprintf(fp,"%d %g\n",i,r0[i]);
}
/* ---------------------------------------------------------------------- */
double BondZero2::single(int /*type*/, double /*rsq*/, int /*i*/, int /*j*/,
double & /*fforce*/)
{
return 0.0;
}
/* ---------------------------------------------------------------------- */
void *BondZero2::extract(const char *str, int &dim)
{
dim = 1;
if (strcmp(str,"r0")==0) return (void*) r0;
return nullptr;
}

View File

@ -0,0 +1,58 @@
/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifndef LMP_BOND_ZERO2_H
#define LMP_BOND_ZERO2_H
#include "bond.h"
namespace LAMMPS_NS {
class BondZero2 : public Bond {
public:
BondZero2(class LAMMPS *);
virtual ~BondZero2();
virtual void compute(int, int);
virtual void settings(int, char **);
void coeff(int, char **);
double equilibrium_distance(int);
void write_restart(FILE *);
void read_restart(FILE *);
void write_data(FILE *);
double single(int, double, int, int, double &);
virtual void *extract(const char *, int &);
protected:
double *r0;
int coeffflag;
virtual void allocate();
};
}
#endif
/* ERROR/WARNING messages:
E: Illegal ... command
UNDOCUMENTED
E: Incorrect args for bond coefficients
Self-explanatory. Check the input script or data file.
*/

View File

@ -0,0 +1,121 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://lammps.sandia.gov/, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Carsten Svaneborg (SDU)
------------------------------------------------------------------------- */
#include "dihedral_zero2.h"
#include "atom.h"
#include "error.h"
#include "memory.h"
#include <cstring>
using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */
DihedralZero2::DihedralZero2(LAMMPS *lmp) : Dihedral(lmp), coeffflag(1)
{
writedata = 1;
}
/* ---------------------------------------------------------------------- */
DihedralZero2::~DihedralZero2()
{
if (allocated && !copymode) {
memory->destroy(setflag);
}
}
/* ---------------------------------------------------------------------- */
void DihedralZero2::compute(int eflag, int vflag)
{
ev_init(eflag,vflag);
}
/* ---------------------------------------------------------------------- */
void DihedralZero2::settings(int narg, char **arg)
{
if ((narg != 0) && (narg != 1))
error->all(FLERR,"Illegal dihedral_style command");
if (narg == 1) {
if (strcmp("nocoeff",arg[0]) == 0) coeffflag=0;
else error->all(FLERR,"Illegal dihedral_style command");
}
}
/* ---------------------------------------------------------------------- */
void DihedralZero2::allocate()
{
allocated = 1;
int n = atom->ndihedraltypes;
memory->create(setflag,n+1,"dihedral:setflag");
for (int i = 1; i <= n; i++) setflag[i] = 0;
}
/* ----------------------------------------------------------------------
set coeffs for one or more types
------------------------------------------------------------------------- */
void DihedralZero2::coeff(int narg, char **arg)
{
if ((narg < 1) || (coeffflag && narg > 1))
error->all(FLERR,"Incorrect args for dihedral coefficients");
if (!allocated) allocate();
int ilo,ihi;
utils::bounds(FLERR,arg[0],1,atom->ndihedraltypes,ilo,ihi,error);
int count = 0;
for (int i = ilo; i <= ihi; i++) {
setflag[i] = 1;
count++;
}
if (count == 0) error->all(FLERR,"Incorrect args for dihedral coefficients");
}
/* ----------------------------------------------------------------------
proc 0 writes out coeffs to restart file
------------------------------------------------------------------------- */
void DihedralZero2::write_restart(FILE * /*fp*/) {}
/* ----------------------------------------------------------------------
proc 0 reads coeffs from restart file, bcasts them
------------------------------------------------------------------------- */
void DihedralZero2::read_restart(FILE * /*fp*/)
{
allocate();
for (int i = 1; i <= atom->ndihedraltypes; i++) setflag[i] = 1;
}
/* ----------------------------------------------------------------------
proc 0 writes to data file
------------------------------------------------------------------------- */
void DihedralZero2::write_data(FILE *fp) {
for (int i = 1; i <= atom->ndihedraltypes; i++)
fprintf(fp,"%d\n",i);
}

View File

@ -0,0 +1,57 @@
/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
Identical to dihedral harmonic, except if all k's are zero the
force loop is skipped.
------------------------------------------------------------------------- */
#ifndef LMP_DIHEDRAL_ZERO2_H
#define LMP_DIHEDRAL_ZERO2_H
#include "dihedral.h"
namespace LAMMPS_NS {
class DihedralZero2 : public Dihedral {
public:
DihedralZero2(class LAMMPS *);
virtual ~DihedralZero2();
virtual void compute(int, int);
virtual void coeff(int, char **);
virtual void settings(int, char **);
void write_restart(FILE *);
void read_restart(FILE *);
void write_data(FILE *);
protected:
int coeffflag;
virtual void allocate();
};
}
#endif
/* ERROR/WARNING messages:
E: Illegal ... command
UNDOCUMENTED
E: Incorrect args for dihedral coefficients
UNDOCUMENTED
*/

View File

@ -0,0 +1,171 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://lammps.sandia.gov/, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "fix_nve2.h"
#include <cstring>
#include "atom.h"
#include "force.h"
#include "update.h"
#include "respa.h"
#include "error.h"
using namespace LAMMPS_NS;
using namespace FixConst;
/* ---------------------------------------------------------------------- */
FixNVE2::FixNVE2(LAMMPS *lmp, int narg, char **arg) :
Fix(lmp, narg, arg)
{
if (strcmp(style,"nve/sphere") != 0 && narg < 3)
error->all(FLERR,"Illegal fix nve command");
dynamic_group_allow = 1;
time_integrate = 1;
}
/* ---------------------------------------------------------------------- */
int FixNVE2::setmask()
{
int mask = 0;
mask |= INITIAL_INTEGRATE;
mask |= FINAL_INTEGRATE;
mask |= INITIAL_INTEGRATE_RESPA;
mask |= FINAL_INTEGRATE_RESPA;
return mask;
}
/* ---------------------------------------------------------------------- */
void FixNVE2::init()
{
dtv = update->dt;
dtf = 0.5 * update->dt * force->ftm2v;
if (strstr(update->integrate_style,"respa"))
step_respa = ((Respa *) update->integrate)->step;
}
/* ----------------------------------------------------------------------
allow for both per-type and per-atom mass
------------------------------------------------------------------------- */
void FixNVE2::initial_integrate(int /*vflag*/)
{
double dtfm;
// update v and x of atoms in group
double **x = atom->x;
double **v = atom->v;
double **f = atom->f;
double *rmass = atom->rmass;
double *mass = atom->mass;
int *type = atom->type;
int *mask = atom->mask;
int nlocal = atom->nlocal;
if (igroup == atom->firstgroup) nlocal = atom->nfirst;
if (rmass) {
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
dtfm = dtf / rmass[i];
v[i][0] += dtfm * f[i][0];
v[i][1] += dtfm * f[i][1];
v[i][2] += dtfm * f[i][2];
x[i][0] += dtv * v[i][0];
x[i][1] += dtv * v[i][1];
x[i][2] += dtv * v[i][2];
}
} else {
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
dtfm = dtf / mass[type[i]];
v[i][0] += dtfm * f[i][0];
v[i][1] += dtfm * f[i][1];
v[i][2] += dtfm * f[i][2];
x[i][0] += dtv * v[i][0];
x[i][1] += dtv * v[i][1];
x[i][2] += dtv * v[i][2];
}
}
}
/* ---------------------------------------------------------------------- */
void FixNVE2::final_integrate()
{
double dtfm;
// update v of atoms in group
double **v = atom->v;
double **f = atom->f;
double *rmass = atom->rmass;
double *mass = atom->mass;
int *type = atom->type;
int *mask = atom->mask;
int nlocal = atom->nlocal;
if (igroup == atom->firstgroup) nlocal = atom->nfirst;
if (rmass) {
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
dtfm = dtf / rmass[i];
v[i][0] += dtfm * f[i][0];
v[i][1] += dtfm * f[i][1];
v[i][2] += dtfm * f[i][2];
}
} else {
for (int i = 0; i < nlocal; i++)
if (mask[i] & groupbit) {
dtfm = dtf / mass[type[i]];
v[i][0] += dtfm * f[i][0];
v[i][1] += dtfm * f[i][1];
v[i][2] += dtfm * f[i][2];
}
}
}
/* ---------------------------------------------------------------------- */
void FixNVE2::initial_integrate_respa(int vflag, int ilevel, int /*iloop*/)
{
dtv = step_respa[ilevel];
dtf = 0.5 * step_respa[ilevel] * force->ftm2v;
// innermost level - NVE update of v and x
// all other levels - NVE update of v
if (ilevel == 0) initial_integrate(vflag);
else final_integrate();
}
/* ---------------------------------------------------------------------- */
void FixNVE2::final_integrate_respa(int ilevel, int /*iloop*/)
{
dtf = 0.5 * step_respa[ilevel] * force->ftm2v;
final_integrate();
}
/* ---------------------------------------------------------------------- */
void FixNVE2::reset_dt()
{
dtv = update->dt;
dtf = 0.5 * update->dt * force->ftm2v;
}

View File

@ -0,0 +1,58 @@
/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifdef FIX_CLASS
FixStyle(nve2,FixNVE2)
#else
#ifndef LMP_FIX_NVE2_H
#define LMP_FIX_NVE2_H
#include "fix.h"
namespace LAMMPS_NS {
class FixNVE2 : public Fix {
public:
FixNVE2(class LAMMPS *, int, char **);
virtual ~FixNVE2() {}
int setmask();
virtual void init();
virtual void initial_integrate(int);
virtual void final_integrate();
virtual void initial_integrate_respa(int, int, int);
virtual void final_integrate_respa(int, int);
virtual void reset_dt();
protected:
double dtv,dtf;
double *step_respa;
int mass_require;
};
}
#endif
#endif
/* ERROR/WARNING messages:
E: Illegal ... command
Self-explanatory. Check the input script syntax and compare to the
documentation for the command. You can use -echo screen as a
command-line option when running LAMMPS to see the offending line.
*/

View File

@ -0,0 +1,46 @@
#include "lammpsplugin.h"
#include "comm.h"
#include "command.h"
#include "error.h"
#include "version.h"
#include <cstring>
namespace LAMMPS_NS {
class Hello : public Command {
public:
Hello(class LAMMPS *lmp) : Command(lmp) {};
void command(int, char **);
};
}
using namespace LAMMPS_NS;
void Hello::command(int argc, char **argv)
{
if (argc != 1) error->all(FLERR,"Illegal hello command");
if (comm->me == 0)
utils::logmesg(lmp,fmt::format("Hello, {}!\n",argv[0]));
}
static Command *hellocreator(LAMMPS *lmp)
{
return new Hello(lmp);
}
extern "C" void lammpsplugin_init(void *lmp, void *handle, void *regfunc)
{
lammpsplugin_t plugin;
lammpsplugin_regfunc register_plugin = (lammpsplugin_regfunc) regfunc;
plugin.version = LAMMPS_VERSION;
plugin.style = "command";
plugin.name = "hello";
plugin.info = "Hello world command v1.1";
plugin.author = "Axel Kohlmeyer (akohlmey@gmail.com)";
plugin.creator.v1 = (lammpsplugin_factory1 *) &hellocreator;
plugin.handle = handle;
(*register_plugin)(&plugin,lmp);
}

View File

@ -0,0 +1,122 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://lammps.sandia.gov/, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Carsten Svaneborg (SDU)
------------------------------------------------------------------------- */
#include "improper_zero2.h"
#include "atom.h"
#include "error.h"
#include "memory.h"
#include <cstring>
using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */
ImproperZero2::ImproperZero2(LAMMPS *lmp) : Improper(lmp), coeffflag(1)
{
writedata = 1;
}
/* ---------------------------------------------------------------------- */
ImproperZero2::~ImproperZero2()
{
if (allocated && !copymode) {
memory->destroy(setflag);
}
}
/* ---------------------------------------------------------------------- */
void ImproperZero2::compute(int eflag, int vflag)
{
ev_init(eflag,vflag);
}
/* ---------------------------------------------------------------------- */
void ImproperZero2::settings(int narg, char **arg)
{
if ((narg != 0) && (narg != 1))
error->all(FLERR,"Illegal improper_style command");
if (narg == 1) {
if (strcmp("nocoeff",arg[0]) == 0) coeffflag=0;
else error->all(FLERR,"Illegal improper_style command");
}
}
/* ---------------------------------------------------------------------- */
void ImproperZero2::allocate()
{
allocated = 1;
int n = atom->nimpropertypes;
memory->create(setflag,n+1,"improper:setflag");
for (int i = 1; i <= n; i++) setflag[i] = 0;
}
/* ----------------------------------------------------------------------
set coeffs for one or more types
------------------------------------------------------------------------- */
void ImproperZero2::coeff(int narg, char **arg)
{
if ((narg < 1) || (coeffflag && narg > 1))
error->all(FLERR,"Incorrect args for improper coefficients");
if (!allocated) allocate();
int ilo,ihi;
utils::bounds(FLERR,arg[0],1,atom->nimpropertypes,ilo,ihi,error);
int count = 0;
for (int i = ilo; i <= ihi; i++) {
setflag[i] = 1;
count++;
}
if (count == 0) error->all(FLERR,"Incorrect args for improper coefficients");
}
/* ----------------------------------------------------------------------
proc 0 writes out coeffs to restart file
------------------------------------------------------------------------- */
void ImproperZero2::write_restart(FILE * /*fp*/) {}
/* ----------------------------------------------------------------------
proc 0 reads coeffs from restart file, bcasts them
------------------------------------------------------------------------- */
void ImproperZero2::read_restart(FILE * /*fp*/)
{
allocate();
for (int i = 1; i <= atom->nimpropertypes; i++) setflag[i] = 1;
}
/* ----------------------------------------------------------------------
proc 0 writes to data file
------------------------------------------------------------------------- */
void ImproperZero2::write_data(FILE *fp) {
for (int i = 1; i <= atom->nimpropertypes; i++)
fprintf(fp,"%d\n",i);
}

View File

@ -0,0 +1,53 @@
/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifndef LMP_IMPROPER_ZERO2_H
#define LMP_IMPROPER_ZERO2_H
#include "improper.h"
namespace LAMMPS_NS {
class ImproperZero2 : public Improper {
public:
ImproperZero2(class LAMMPS *);
virtual ~ImproperZero2();
virtual void compute(int, int);
virtual void coeff(int, char **);
virtual void settings(int, char **);
void write_restart(FILE *);
void read_restart(FILE *);
void write_data(FILE *);
protected:
int coeffflag;
virtual void allocate();
};
}
#endif
/* ERROR/WARNING messages:
E: Illegal ... command
UNDOCUMENTED
E: Incorrect args for improper coefficients
Self-explanatory. Check the input script or data file.
*/

View File

@ -0,0 +1,43 @@
#include "lammpsplugin.h"
#include "version.h"
#include <cstring>
#include "pair_morse2.h"
#include "pair_morse2_omp.h"
using namespace LAMMPS_NS;
static Pair *morse2creator(LAMMPS *lmp)
{
return new PairMorse2(lmp);
}
static Pair *morse2ompcreator(LAMMPS *lmp)
{
return new PairMorse2OMP(lmp);
}
extern "C" void lammpsplugin_init(void *lmp, void *handle, void *regfunc)
{
lammpsplugin_t plugin;
lammpsplugin_regfunc register_plugin = (lammpsplugin_regfunc) regfunc;
// register plain morse2 pair style
plugin.version = LAMMPS_VERSION;
plugin.style = "pair";
plugin.name = "morse2";
plugin.info = "Morse2 variant pair style v1.0";
plugin.author = "Axel Kohlmeyer (akohlmey@gmail.com)";
plugin.creator.v1 = (lammpsplugin_factory1 *) &morse2creator;
plugin.handle = handle;
(*register_plugin)(&plugin,lmp);
// also register morse2/omp pair style. only need to update changed fields
plugin.name = "morse2/omp";
plugin.info = "Morse2 variant pair style for OpenMP v1.0";
plugin.creator.v1 = (lammpsplugin_factory1 *) &morse2ompcreator;
(*register_plugin)(&plugin,lmp);
}

View File

@ -0,0 +1,30 @@
#include "lammpsplugin.h"
#include "version.h"
#include <cstring>
#include "fix_nve2.h"
using namespace LAMMPS_NS;
static Fix *nve2creator(LAMMPS *lmp, int argc, char **argv)
{
return new FixNVE2(lmp, argc, argv);
}
extern "C" void lammpsplugin_init(void *lmp, void *handle, void *regfunc)
{
lammpsplugin_t plugin;
lammpsplugin_regfunc register_plugin = (lammpsplugin_regfunc) regfunc;
plugin.version = LAMMPS_VERSION;
plugin.style = "fix";
plugin.name = "nve2";
plugin.info = "NVE2 variant fix style v1.0";
plugin.author = "Axel Kohlmeyer (akohlmey@gmail.com)";
plugin.creator.v2 = (lammpsplugin_factory2 *) &nve2creator;
plugin.handle = handle;
(*register_plugin)(&plugin,lmp);
}

View File

@ -0,0 +1,359 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://lammps.sandia.gov/, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "pair_morse2.h"
#include <cmath>
#include <cstring>
#include "atom.h"
#include "comm.h"
#include "force.h"
#include "neigh_list.h"
#include "memory.h"
#include "error.h"
using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */
PairMorse2::PairMorse2(LAMMPS *lmp) : Pair(lmp)
{
writedata = 1;
}
/* ---------------------------------------------------------------------- */
PairMorse2::~PairMorse2()
{
if (allocated) {
memory->destroy(setflag);
memory->destroy(cutsq);
memory->destroy(cut);
memory->destroy(d0);
memory->destroy(alpha);
memory->destroy(r0);
memory->destroy(morse1);
memory->destroy(offset);
}
}
/* ---------------------------------------------------------------------- */
void PairMorse2::compute(int eflag, int vflag)
{
int i,j,ii,jj,inum,jnum,itype,jtype;
double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair;
double rsq,r,dr,dexp,factor_lj;
int *ilist,*jlist,*numneigh,**firstneigh;
evdwl = 0.0;
ev_init(eflag,vflag);
double **x = atom->x;
double **f = atom->f;
int *type = atom->type;
int nlocal = atom->nlocal;
double *special_lj = force->special_lj;
int newton_pair = force->newton_pair;
inum = list->inum;
ilist = list->ilist;
numneigh = list->numneigh;
firstneigh = list->firstneigh;
// loop over neighbors of my atoms
for (ii = 0; ii < inum; ii++) {
i = ilist[ii];
xtmp = x[i][0];
ytmp = x[i][1];
ztmp = x[i][2];
itype = type[i];
jlist = firstneigh[i];
jnum = numneigh[i];
for (jj = 0; jj < jnum; jj++) {
j = jlist[jj];
factor_lj = special_lj[sbmask(j)];
j &= NEIGHMASK;
delx = xtmp - x[j][0];
dely = ytmp - x[j][1];
delz = ztmp - x[j][2];
rsq = delx*delx + dely*dely + delz*delz;
jtype = type[j];
if (rsq < cutsq[itype][jtype]) {
r = sqrt(rsq);
dr = r - r0[itype][jtype];
dexp = exp(-alpha[itype][jtype] * dr);
fpair = factor_lj * morse1[itype][jtype] * (dexp*dexp - dexp) / r;
f[i][0] += delx*fpair;
f[i][1] += dely*fpair;
f[i][2] += delz*fpair;
if (newton_pair || j < nlocal) {
f[j][0] -= delx*fpair;
f[j][1] -= dely*fpair;
f[j][2] -= delz*fpair;
}
if (eflag) {
evdwl = d0[itype][jtype] * (dexp*dexp - 2.0*dexp) -
offset[itype][jtype];
evdwl *= factor_lj;
}
if (evflag) ev_tally(i,j,nlocal,newton_pair,
evdwl,0.0,fpair,delx,dely,delz);
}
}
}
if (vflag_fdotr) virial_fdotr_compute();
}
/* ----------------------------------------------------------------------
allocate all arrays
------------------------------------------------------------------------- */
void PairMorse2::allocate()
{
allocated = 1;
int n = atom->ntypes;
memory->create(setflag,n+1,n+1,"pair:setflag");
for (int i = 1; i <= n; i++)
for (int j = i; j <= n; j++)
setflag[i][j] = 0;
memory->create(cutsq,n+1,n+1,"pair:cutsq");
memory->create(cut,n+1,n+1,"pair:cut");
memory->create(d0,n+1,n+1,"pair:d0");
memory->create(alpha,n+1,n+1,"pair:alpha");
memory->create(r0,n+1,n+1,"pair:r0");
memory->create(morse1,n+1,n+1,"pair:morse1");
memory->create(offset,n+1,n+1,"pair:offset");
}
/* ----------------------------------------------------------------------
global settings
------------------------------------------------------------------------- */
void PairMorse2::settings(int narg, char **arg)
{
if (narg != 1) error->all(FLERR,"Illegal pair_style command");
cut_global = utils::numeric(FLERR,arg[0],false,lmp);
// reset cutoffs that have been explicitly set
if (allocated) {
int i,j;
for (i = 1; i <= atom->ntypes; i++)
for (j = i; j <= atom->ntypes; j++)
if (setflag[i][j]) cut[i][j] = cut_global;
}
}
/* ----------------------------------------------------------------------
set coeffs for one or more type pairs
------------------------------------------------------------------------- */
void PairMorse2::coeff(int narg, char **arg)
{
if (narg < 5 || narg > 6)
error->all(FLERR,"Incorrect args for pair coefficients");
if (!allocated) allocate();
int ilo,ihi,jlo,jhi;
utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error);
utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error);
double d0_one = utils::numeric(FLERR,arg[2],false,lmp);
double alpha_one = utils::numeric(FLERR,arg[3],false,lmp);
double r0_one = utils::numeric(FLERR,arg[4],false,lmp);
double cut_one = cut_global;
if (narg == 6) cut_one = utils::numeric(FLERR,arg[5],false,lmp);
int count = 0;
for (int i = ilo; i <= ihi; i++) {
for (int j = MAX(jlo,i); j <= jhi; j++) {
d0[i][j] = d0_one;
alpha[i][j] = alpha_one;
r0[i][j] = r0_one;
cut[i][j] = cut_one;
setflag[i][j] = 1;
count++;
}
}
if (count == 0) error->all(FLERR,"Incorrect args for pair coefficients");
}
/* ----------------------------------------------------------------------
init for one type pair i,j and corresponding j,i
------------------------------------------------------------------------- */
double PairMorse2::init_one(int i, int j)
{
if (setflag[i][j] == 0) error->all(FLERR,"All pair coeffs are not set");
morse1[i][j] = 2.0*d0[i][j]*alpha[i][j];
if (offset_flag) {
double alpha_dr = -alpha[i][j] * (cut[i][j] - r0[i][j]);
offset[i][j] = d0[i][j] * (exp(2.0*alpha_dr) - 2.0*exp(alpha_dr));
} else offset[i][j] = 0.0;
d0[j][i] = d0[i][j];
alpha[j][i] = alpha[i][j];
r0[j][i] = r0[i][j];
morse1[j][i] = morse1[i][j];
offset[j][i] = offset[i][j];
return cut[i][j];
}
/* ----------------------------------------------------------------------
proc 0 writes to restart file
------------------------------------------------------------------------- */
void PairMorse2::write_restart(FILE *fp)
{
write_restart_settings(fp);
int i,j;
for (i = 1; i <= atom->ntypes; i++)
for (j = i; j <= atom->ntypes; j++) {
fwrite(&setflag[i][j],sizeof(int),1,fp);
if (setflag[i][j]) {
fwrite(&d0[i][j],sizeof(double),1,fp);
fwrite(&alpha[i][j],sizeof(double),1,fp);
fwrite(&r0[i][j],sizeof(double),1,fp);
fwrite(&cut[i][j],sizeof(double),1,fp);
}
}
}
/* ----------------------------------------------------------------------
proc 0 reads from restart file, bcasts
------------------------------------------------------------------------- */
void PairMorse2::read_restart(FILE *fp)
{
read_restart_settings(fp);
allocate();
int i,j;
int me = comm->me;
for (i = 1; i <= atom->ntypes; i++)
for (j = i; j <= atom->ntypes; j++) {
if (me == 0) utils::sfread(FLERR,&setflag[i][j],sizeof(int),1,fp,nullptr,error);
MPI_Bcast(&setflag[i][j],1,MPI_INT,0,world);
if (setflag[i][j]) {
if (me == 0) {
utils::sfread(FLERR,&d0[i][j],sizeof(double),1,fp,nullptr,error);
utils::sfread(FLERR,&alpha[i][j],sizeof(double),1,fp,nullptr,error);
utils::sfread(FLERR,&r0[i][j],sizeof(double),1,fp,nullptr,error);
utils::sfread(FLERR,&cut[i][j],sizeof(double),1,fp,nullptr,error);
}
MPI_Bcast(&d0[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&alpha[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&r0[i][j],1,MPI_DOUBLE,0,world);
MPI_Bcast(&cut[i][j],1,MPI_DOUBLE,0,world);
}
}
}
/* ----------------------------------------------------------------------
proc 0 writes to restart file
------------------------------------------------------------------------- */
void PairMorse2::write_restart_settings(FILE *fp)
{
fwrite(&cut_global,sizeof(double),1,fp);
fwrite(&offset_flag,sizeof(int),1,fp);
fwrite(&mix_flag,sizeof(int),1,fp);
}
/* ----------------------------------------------------------------------
proc 0 reads from restart file, bcasts
------------------------------------------------------------------------- */
void PairMorse2::read_restart_settings(FILE *fp)
{
if (comm->me == 0) {
utils::sfread(FLERR,&cut_global,sizeof(double),1,fp,nullptr,error);
utils::sfread(FLERR,&offset_flag,sizeof(int),1,fp,nullptr,error);
utils::sfread(FLERR,&mix_flag,sizeof(int),1,fp,nullptr,error);
}
MPI_Bcast(&cut_global,1,MPI_DOUBLE,0,world);
MPI_Bcast(&offset_flag,1,MPI_INT,0,world);
MPI_Bcast(&mix_flag,1,MPI_INT,0,world);
}
/* ----------------------------------------------------------------------
proc 0 writes to data file
------------------------------------------------------------------------- */
void PairMorse2::write_data(FILE *fp)
{
for (int i = 1; i <= atom->ntypes; i++)
fprintf(fp,"%d %g %g %g\n",i,d0[i][i],alpha[i][i],r0[i][i]);
}
/* ----------------------------------------------------------------------
proc 0 writes all pairs to data file
------------------------------------------------------------------------- */
void PairMorse2::write_data_all(FILE *fp)
{
for (int i = 1; i <= atom->ntypes; i++)
for (int j = i; j <= atom->ntypes; j++)
fprintf(fp,"%d %d %g %g %g %g\n",
i,j,d0[i][j],alpha[i][j],r0[i][j],cut[i][j]);
}
/* ---------------------------------------------------------------------- */
double PairMorse2::single(int /*i*/, int /*j*/, int itype, int jtype, double rsq,
double /*factor_coul*/, double factor_lj,
double &fforce)
{
double r,dr,dexp,phi;
r = sqrt(rsq);
dr = r - r0[itype][jtype];
dexp = exp(-alpha[itype][jtype] * dr);
fforce = factor_lj * morse1[itype][jtype] * (dexp*dexp - dexp) / r;
phi = d0[itype][jtype] * (dexp*dexp - 2.0*dexp) - offset[itype][jtype];
return factor_lj*phi;
}
/* ---------------------------------------------------------------------- */
void *PairMorse2::extract(const char *str, int &dim)
{
dim = 2;
if (strcmp(str,"d0") == 0) return (void *) d0;
if (strcmp(str,"r0") == 0) return (void *) r0;
if (strcmp(str,"alpha") == 0) return (void *) alpha;
return nullptr;
}

View File

@ -0,0 +1,70 @@
/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifndef LMP_PAIR_MORSE2_H
#define LMP_PAIR_MORSE2_H
#include "pair.h"
namespace LAMMPS_NS {
class PairMorse2 : public Pair {
public:
PairMorse2(class LAMMPS *);
virtual ~PairMorse2();
virtual void compute(int, int);
void settings(int, char **);
void coeff(int, char **);
double init_one(int, int);
void write_restart(FILE *);
void read_restart(FILE *);
void write_restart_settings(FILE *);
void read_restart_settings(FILE *);
void write_data(FILE *);
void write_data_all(FILE *);
double single(int, int, int, int, double, double, double, double &);
void *extract(const char *, int &);
protected:
double cut_global;
double **cut;
double **d0,**alpha,**r0;
double **morse1;
double **offset;
virtual void allocate();
};
}
#endif
/* ERROR/WARNING messages:
E: Illegal ... command
Self-explanatory. Check the input script syntax and compare to the
documentation for the command. You can use -echo screen as a
command-line option when running LAMMPS to see the offending line.
E: Incorrect args for pair coefficients
Self-explanatory. Check the input script or data file.
E: All pair coeffs are not set
All pair coefficients must be set in the data file or by the
pair_coeff command before running a simulation.
*/

View File

@ -0,0 +1,160 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://lammps.sandia.gov/, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
This software is distributed under the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Axel Kohlmeyer (Temple U)
------------------------------------------------------------------------- */
#include "pair_morse2_omp.h"
#include "atom.h"
#include "comm.h"
#include "force.h"
#include "neigh_list.h"
#include "suffix.h"
#include <cmath>
#include "omp_compat.h"
using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */
PairMorse2OMP::PairMorse2OMP(LAMMPS *lmp) :
PairMorse2(lmp), ThrOMP(lmp, THR_PAIR)
{
suffix_flag |= Suffix::OMP;
respa_enable = 0;
}
/* ---------------------------------------------------------------------- */
void PairMorse2OMP::compute(int eflag, int vflag)
{
ev_init(eflag,vflag);
const int nall = atom->nlocal + atom->nghost;
const int nthreads = comm->nthreads;
const int inum = list->inum;
#if defined(_OPENMP)
#pragma omp parallel LMP_DEFAULT_NONE LMP_SHARED(eflag,vflag)
#endif
{
int ifrom, ito, tid;
loop_setup_thr(ifrom, ito, tid, inum, nthreads);
ThrData *thr = fix->get_thr(tid);
thr->timer(Timer::START);
ev_setup_thr(eflag, vflag, nall, eatom, vatom, nullptr, thr);
if (evflag) {
if (eflag) {
if (force->newton_pair) eval<1,1,1>(ifrom, ito, thr);
else eval<1,1,0>(ifrom, ito, thr);
} else {
if (force->newton_pair) eval<1,0,1>(ifrom, ito, thr);
else eval<1,0,0>(ifrom, ito, thr);
}
} else {
if (force->newton_pair) eval<0,0,1>(ifrom, ito, thr);
else eval<0,0,0>(ifrom, ito, thr);
}
thr->timer(Timer::PAIR);
reduce_thr(this, eflag, vflag, thr);
} // end of omp parallel region
}
template <int EVFLAG, int EFLAG, int NEWTON_PAIR>
void PairMorse2OMP::eval(int iifrom, int iito, ThrData * const thr)
{
int i,j,ii,jj,jnum,itype,jtype;
double xtmp,ytmp,ztmp,delx,dely,delz,evdwl,fpair;
double rsq,r,dr,dexp,factor_lj;
int *ilist,*jlist,*numneigh,**firstneigh;
evdwl = 0.0;
const dbl3_t * _noalias const x = (dbl3_t *) atom->x[0];
dbl3_t * _noalias const f = (dbl3_t *) thr->get_f()[0];
const int * _noalias const type = atom->type;
const int nlocal = atom->nlocal;
const double * _noalias const special_lj = force->special_lj;
double fxtmp,fytmp,fztmp;
ilist = list->ilist;
numneigh = list->numneigh;
firstneigh = list->firstneigh;
// loop over neighbors of my atoms
for (ii = iifrom; ii < iito; ++ii) {
i = ilist[ii];
xtmp = x[i].x;
ytmp = x[i].y;
ztmp = x[i].z;
itype = type[i];
jlist = firstneigh[i];
jnum = numneigh[i];
fxtmp=fytmp=fztmp=0.0;
for (jj = 0; jj < jnum; jj++) {
j = jlist[jj];
factor_lj = special_lj[sbmask(j)];
j &= NEIGHMASK;
delx = xtmp - x[j].x;
dely = ytmp - x[j].y;
delz = ztmp - x[j].z;
rsq = delx*delx + dely*dely + delz*delz;
jtype = type[j];
if (rsq < cutsq[itype][jtype]) {
r = sqrt(rsq);
dr = r - r0[itype][jtype];
dexp = exp(-alpha[itype][jtype] * dr);
fpair = factor_lj * morse1[itype][jtype] * (dexp*dexp - dexp) / r;
fxtmp += delx*fpair;
fytmp += dely*fpair;
fztmp += delz*fpair;
if (NEWTON_PAIR || j < nlocal) {
f[j].x -= delx*fpair;
f[j].y -= dely*fpair;
f[j].z -= delz*fpair;
}
if (EFLAG) {
evdwl = d0[itype][jtype] * (dexp*dexp - 2.0*dexp) -
offset[itype][jtype];
evdwl *= factor_lj;
}
if (EVFLAG) ev_tally_thr(this,i,j,nlocal,NEWTON_PAIR,
evdwl,0.0,fpair,delx,dely,delz,thr);
}
}
f[i].x += fxtmp;
f[i].y += fytmp;
f[i].z += fztmp;
}
}
/* ---------------------------------------------------------------------- */
double PairMorse2OMP::memory_usage()
{
double bytes = memory_usage_thr();
bytes += PairMorse2::memory_usage();
return bytes;
}

View File

@ -0,0 +1,41 @@
/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Axel Kohlmeyer (Temple U)
------------------------------------------------------------------------- */
#ifndef LMP_PAIR_MORSE2_OMP_H
#define LMP_PAIR_MORSE2_OMP_H
#include "pair_morse2.h"
#include "thr_omp.h"
namespace LAMMPS_NS {
class PairMorse2OMP : public PairMorse2, public ThrOMP {
public:
PairMorse2OMP(class LAMMPS *);
virtual void compute(int, int);
virtual double memory_usage();
private:
template <int EVFLAG, int EFLAG, int NEWTON_PAIR>
void eval(int ifrom, int ito, ThrData * const thr);
};
}
#endif

View File

@ -0,0 +1,247 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://lammps.sandia.gov/, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Carsten Svaneborg (SDU)
------------------------------------------------------------------------- */
#include "pair_zero2.h"
#include "atom.h"
#include "comm.h"
#include "memory.h"
#include "error.h"
#include <cstring>
using namespace LAMMPS_NS;
/* ---------------------------------------------------------------------- */
PairZero2::PairZero2(LAMMPS *lmp) : Pair(lmp) {
coeffflag=1;
writedata=1;
single_enable=1;
respa_enable=1;
}
/* ---------------------------------------------------------------------- */
PairZero2::~PairZero2()
{
if (allocated) {
memory->destroy(setflag);
memory->destroy(cutsq);
memory->destroy(cut);
}
}
/* ---------------------------------------------------------------------- */
void PairZero2::compute(int eflag, int vflag)
{
ev_init(eflag,vflag);
if (vflag_fdotr) virial_fdotr_compute();
}
/* ---------------------------------------------------------------------- */
void PairZero2::compute_outer(int eflag, int vflag)
{
ev_init(eflag,vflag);
}
/* ----------------------------------------------------------------------
allocate all arrays
------------------------------------------------------------------------- */
void PairZero2::allocate()
{
allocated = 1;
int n = atom->ntypes;
memory->create(setflag,n+1,n+1,"pair:setflag");
for (int i = 1; i <= n; i++)
for (int j = i; j <= n; j++)
setflag[i][j] = 0;
memory->create(cutsq,n+1,n+1,"pair:cutsq");
memory->create(cut,n+1,n+1,"pair:cut");
}
/* ----------------------------------------------------------------------
global settings
------------------------------------------------------------------------- */
void PairZero2::settings(int narg, char **arg)
{
if ((narg != 1) && (narg != 2))
error->all(FLERR,"Illegal pair_style command");
cut_global = utils::numeric(FLERR,arg[0],false,lmp);
if (narg == 2) {
if (strcmp("nocoeff",arg[1]) == 0) coeffflag=0;
else error->all(FLERR,"Illegal pair_style command");
}
// reset cutoffs that have been explicitly set
if (allocated) {
int i,j;
for (i = 1; i <= atom->ntypes; i++)
for (j = i+1; j <= atom->ntypes; j++)
cut[i][j] = cut_global;
}
}
/* ----------------------------------------------------------------------
set coeffs for one or more type pairs
------------------------------------------------------------------------- */
void PairZero2::coeff(int narg, char **arg)
{
if ((narg < 2) || (coeffflag && narg > 3))
error->all(FLERR,"Incorrect args for pair coefficients");
if (!allocated) allocate();
int ilo,ihi,jlo,jhi;
utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error);
utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error);
double cut_one = cut_global;
if (coeffflag && (narg == 3)) cut_one = utils::numeric(FLERR,arg[2],false,lmp);
int count = 0;
for (int i = ilo; i <= ihi; i++) {
for (int j = MAX(jlo,i); j <= jhi; j++) {
cut[i][j] = cut_one;
setflag[i][j] = 1;
count++;
}
}
if (count == 0) error->all(FLERR,"Incorrect args for pair coefficients");
}
/* ----------------------------------------------------------------------
init for one type pair i,j and corresponding j,i
------------------------------------------------------------------------- */
double PairZero2::init_one(int i, int j)
{
if (setflag[i][j] == 0) {
cut[i][j] = mix_distance(cut[i][i],cut[j][j]);
}
return cut[i][j];
}
/* ----------------------------------------------------------------------
proc 0 writes to restart file
------------------------------------------------------------------------- */
void PairZero2::write_restart(FILE *fp)
{
write_restart_settings(fp);
int i,j;
for (i = 1; i <= atom->ntypes; i++)
for (j = i; j <= atom->ntypes; j++) {
fwrite(&setflag[i][j],sizeof(int),1,fp);
if (setflag[i][j]) {
fwrite(&cut[i][j],sizeof(double),1,fp);
}
}
}
/* ----------------------------------------------------------------------
proc 0 reads from restart file, bcasts
------------------------------------------------------------------------- */
void PairZero2::read_restart(FILE *fp)
{
read_restart_settings(fp);
allocate();
int i,j;
int me = comm->me;
for (i = 1; i <= atom->ntypes; i++)
for (j = i; j <= atom->ntypes; j++) {
if (me == 0) utils::sfread(FLERR,&setflag[i][j],sizeof(int),1,fp,nullptr,error);
MPI_Bcast(&setflag[i][j],1,MPI_INT,0,world);
if (setflag[i][j]) {
if (me == 0) {
utils::sfread(FLERR,&cut[i][j],sizeof(double),1,fp,nullptr,error);
}
MPI_Bcast(&cut[i][j],1,MPI_DOUBLE,0,world);
}
}
}
/* ----------------------------------------------------------------------
proc 0 writes to restart file
------------------------------------------------------------------------- */
void PairZero2::write_restart_settings(FILE *fp)
{
fwrite(&cut_global,sizeof(double),1,fp);
fwrite(&coeffflag,sizeof(int),1,fp);
}
/* ----------------------------------------------------------------------
proc 0 reads from restart file, bcasts
------------------------------------------------------------------------- */
void PairZero2::read_restart_settings(FILE *fp)
{
int me = comm->me;
if (me == 0) {
utils::sfread(FLERR,&cut_global,sizeof(double),1,fp,nullptr,error);
utils::sfread(FLERR,&coeffflag,sizeof(int),1,fp,nullptr,error);
}
MPI_Bcast(&cut_global,1,MPI_DOUBLE,0,world);
MPI_Bcast(&coeffflag,1,MPI_INT,0,world);
}
/* ----------------------------------------------------------------------
proc 0 writes to data file
------------------------------------------------------------------------- */
void PairZero2::write_data(FILE *fp)
{
for (int i = 1; i <= atom->ntypes; i++)
fprintf(fp,"%d\n",i);
}
/* ----------------------------------------------------------------------
proc 0 writes all pairs to data file
------------------------------------------------------------------------- */
void PairZero2::write_data_all(FILE *fp)
{
for (int i = 1; i <= atom->ntypes; i++)
for (int j = i; j <= atom->ntypes; j++)
fprintf(fp,"%d %d %g\n",i,j,cut[i][j]);
}
/* ---------------------------------------------------------------------- */
double PairZero2::single(int /*i*/, int /*j*/, int /* itype */, int /* jtype */,
double /* rsq */, double /*factor_coul*/,
double /* factor_lj */, double &fforce)
{
fforce = 0.0;
return 0.0;
}

View File

@ -0,0 +1,77 @@
/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
Pair zero is a dummy pair interaction useful for requiring a
force cutoff distance in the absence of pair-interactions or
with hybrid/overlay if a larger force cutoff distance is required.
This can be used in conjunction with bond/create to create bonds
that are longer than the cutoff of a given force field, or to
calculate radial distribution functions for models without
pair interactions.
------------------------------------------------------------------------- */
#ifndef LMP_PAIR_ZERO2_H
#define LMP_PAIR_ZERO2_H
#include "pair.h"
namespace LAMMPS_NS {
class PairZero2 : public Pair {
public:
PairZero2(class LAMMPS *);
virtual ~PairZero2();
virtual void compute(int, int);
virtual void compute_outer(int, int);
void settings(int, char **);
void coeff(int, char **);
double init_one(int, int);
void write_restart(FILE *);
void read_restart(FILE *);
void write_restart_settings(FILE *);
void read_restart_settings(FILE *);
void write_data(FILE *);
void write_data_all(FILE *);
double single(int, int, int, int, double, double, double, double &);
protected:
double cut_global;
double **cut;
int coeffflag;
virtual void allocate();
};
}
#endif
/* ERROR/WARNING messages:
E: Illegal ... command
Self-explanatory. Check the input script syntax and compare to the
documentation for the command. You can use -echo screen as a
command-line option when running LAMMPS to see the offending line.
E: Incorrect args for pair coefficients
Self-explanatory. Check the input script or data file.
U: Pair cutoff < Respa interior cutoff
One or more pairwise cutoffs are too short to use with the specified
rRESPA cutoffs.
*/

View File

@ -0,0 +1,78 @@
#include "lammpsplugin.h"
#include "version.h"
#include <cstring>
#include "pair_zero2.h"
#include "bond_zero2.h"
#include "angle_zero2.h"
#include "dihedral_zero2.h"
#include "improper_zero2.h"
using namespace LAMMPS_NS;
static Pair *pairzerocreator(LAMMPS *lmp)
{
return new PairZero2(lmp);
}
static Bond *bondzerocreator(LAMMPS *lmp)
{
return new BondZero2(lmp);
}
static Angle *anglezerocreator(LAMMPS *lmp)
{
return new AngleZero2(lmp);
}
static Dihedral *dihedralzerocreator(LAMMPS *lmp)
{
return new DihedralZero2(lmp);
}
static Improper *improperzerocreator(LAMMPS *lmp)
{
return new ImproperZero2(lmp);
}
extern "C" void lammpsplugin_init(void *lmp, void *handle, void *regfunc)
{
lammpsplugin_t plugin;
lammpsplugin_regfunc register_plugin = (lammpsplugin_regfunc) regfunc;
// register zero2 pair style
plugin.version = LAMMPS_VERSION;
plugin.style = "pair";
plugin.name = "zero2";
plugin.info = "Zero2 variant pair style v1.0";
plugin.author = "Axel Kohlmeyer (akohlmey@gmail.com)";
plugin.creator.v1 = (lammpsplugin_factory1 *) &pairzerocreator;
plugin.handle = handle;
(*register_plugin)(&plugin,lmp);
// register zero2 bond style
plugin.style = "bond";
plugin.info = "Zero2 variant bond style v1.0";
plugin.creator.v1 = (lammpsplugin_factory1 *) &bondzerocreator;
(*register_plugin)(&plugin,lmp);
// register zero2 angle style
plugin.style = "angle";
plugin.info = "Zero2 variant angle style v1.0";
plugin.creator.v1 = (lammpsplugin_factory1 *) &anglezerocreator;
(*register_plugin)(&plugin,lmp);
// register zero2 dihedral style
plugin.style = "dihedral";
plugin.info = "Zero2 variant dihedral style v1.0";
plugin.creator.v1 = (lammpsplugin_factory1 *) &dihedralzerocreator;
(*register_plugin)(&plugin,lmp);
// register zero2 improper style
plugin.style = "improper";
plugin.info = "Zero2 variant improper style v1.0";
plugin.creator.v1 = (lammpsplugin_factory1 *) &improperzerocreator;
(*register_plugin)(&plugin,lmp);
}