From e3fa5fbeeb7dff42993bacfb07c849f0c480e125 Mon Sep 17 00:00:00 2001 From: psd Date: Mon, 19 Feb 2024 23:53:43 +0100 Subject: [PATCH] Added examples for Exercise 1 (not final) --- Exercise_1/Ag-eos.png | Bin 0 -> 13725 bytes Exercise_1/Ag.traj | Bin 0 -> 2346 bytes Exercise_1/Cu_u3.eam | 305 ++++++++++ Exercise_1/Ni.traj | Bin 0 -> 63025 bytes Exercise_1/cnt_atom.data | 713 ++++++++++++++++++++++ Exercise_1/cnt_cu.data | 713 ++++++++++++++++++++++ Exercise_1/exercise-1-solution.ipynb | 850 +++++++++++++++++++++++++++ Exercise_1/exercise-1-workbook.ipynb | 838 ++++++++++++++++++++++++++ Exercise_1/exercise9_solution.ipynb | 126 ++++ Exercise_1/input.lammps | 46 ++ Exercise_1/inputcu.lammps | 46 ++ 11 files changed, 3637 insertions(+) create mode 100644 Exercise_1/Ag-eos.png create mode 100644 Exercise_1/Ag.traj create mode 100644 Exercise_1/Cu_u3.eam create mode 100644 Exercise_1/Ni.traj create mode 100644 Exercise_1/cnt_atom.data create mode 100644 Exercise_1/cnt_cu.data create mode 100644 Exercise_1/exercise-1-solution.ipynb create mode 100644 Exercise_1/exercise-1-workbook.ipynb create mode 100644 Exercise_1/exercise9_solution.ipynb create mode 100644 Exercise_1/input.lammps create mode 100644 Exercise_1/inputcu.lammps diff --git a/Exercise_1/Ag-eos.png b/Exercise_1/Ag-eos.png new file mode 100644 index 0000000000000000000000000000000000000000..12e89534e5a779fa904cbf973b4dfef6681a2a49 GIT binary patch literal 13725 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 literal 0 HcmV?d00001 diff --git a/Exercise_1/cnt_atom.data b/Exercise_1/cnt_atom.data new file mode 100644 index 0000000..c9b388f --- /dev/null +++ b/Exercise_1/cnt_atom.data @@ -0,0 +1,713 @@ +LAMMPS data file. CGCMM style. atom_style molecular generated by VMD/TopoTools v1.7 on Fri Aug 04 11:29:35 CEST 2023 + 700 atoms + 1 atom types + -40.000000 40.000000 xlo xhi + -40.000000 40.000000 ylo yhi + -12.130411 67.869589 zlo zhi + + Masses + + 1 12.010700 # CA + + Atoms # molecular + +1 1 1 5.162323 0.464617 8.843235 +2 2 1 4.852682 1.821242 9.111212 +3 3 1 4.669892 2.248901 10.451096 +4 4 1 3.903312 3.410221 10.719072 +5 5 1 5.099893 0.925494 6.431444 +6 6 1 4.669892 2.248901 6.699420 +7 7 1 4.449502 2.658454 8.039305 +8 8 1 3.581908 3.746382 8.307281 +9 9 1 3.231665 4.052381 9.647165 +10 10 1 2.037123 4.766086 9.915142 +11 11 1 4.996402 1.378919 4.019652 +12 12 1 4.449502 2.658454 4.287629 +13 13 1 4.193288 3.046602 5.627513 +14 14 1 3.231665 4.052381 5.895490 +15 15 1 2.855403 4.325751 7.235374 +16 16 1 1.601694 4.929506 7.503351 +17 17 1 1.153368 5.053236 8.843235 +18 18 1 -0.232543 5.177970 9.111212 +19 19 1 -0.695756 5.136280 10.451096 +20 20 1 -2.037123 4.766086 10.719072 +21 21 1 5.183189 0.000000 0.000000 +22 22 1 4.996402 1.378919 0.267977 +23 23 1 4.852682 1.821242 1.607861 +24 24 1 4.193288 3.046602 1.875838 +25 25 1 3.903312 3.410221 3.215722 +26 26 1 2.855403 4.325751 3.483699 +27 27 1 2.456151 4.564293 4.823583 +28 28 1 1.153368 5.053236 5.091559 +29 29 1 0.695756 5.136280 6.431444 +30 30 1 -0.695756 5.136280 6.699420 +31 31 1 -1.153368 5.053236 8.039305 +32 32 1 -2.456151 4.564293 8.307281 +33 33 1 -2.855403 4.325751 9.647165 +34 34 1 -3.903312 3.410221 9.915142 +35 35 1 3.581908 3.746382 0.803930 +36 36 1 2.456151 4.564293 1.071907 +37 37 1 2.037123 4.766086 2.411791 +38 38 1 0.695756 5.136280 2.679768 +39 39 1 0.232543 5.177970 4.019652 +40 40 1 -1.153368 5.053236 4.287629 +41 41 1 -1.601694 4.929506 5.627513 +42 42 1 -2.855403 4.325751 5.895490 +43 43 1 -3.231665 4.052381 7.235374 +44 44 1 -4.193288 3.046602 7.503351 +45 45 1 -4.449502 2.658454 8.843235 +46 46 1 -4.996402 1.378919 9.111212 +47 47 1 -5.099893 0.925494 10.451096 +48 48 1 -5.162323 -0.464617 10.719072 +49 49 1 1.601694 4.929506 0.000000 +50 50 1 0.232543 5.177970 0.267977 +51 51 1 -0.232543 5.177970 1.607861 +52 52 1 -1.601694 4.929506 1.875838 +53 53 1 -2.037123 4.766086 3.215722 +54 54 1 -3.231665 4.052381 3.483699 +55 55 1 -3.581908 3.746382 4.823583 +56 56 1 -4.449502 2.658454 5.091559 +57 57 1 -4.669892 2.248901 6.431444 +58 58 1 -5.099893 0.925494 6.699420 +59 59 1 -5.162323 0.464617 8.039305 +60 60 1 -5.099893 -0.925494 8.307281 +61 61 1 -4.996402 -1.378919 9.647165 +62 62 1 -4.449502 -2.658454 9.915142 +63 63 1 -2.456151 4.564293 0.803930 +64 64 1 -3.581908 3.746382 1.071907 +65 65 1 -3.903312 3.410221 2.411791 +66 66 1 -4.669892 2.248901 2.679768 +67 67 1 -4.852682 1.821242 4.019652 +68 68 1 -5.162323 0.464617 4.287629 +69 69 1 -5.183189 0.000000 5.627513 +70 70 1 -4.996402 -1.378919 5.895490 +71 71 1 -4.852682 -1.821242 7.235374 +72 72 1 -4.193288 -3.046602 7.503351 +73 73 1 -3.903312 -3.410221 8.843235 +74 74 1 -2.855403 -4.325751 9.111212 +75 75 1 -2.456151 -4.564293 10.451096 +76 76 1 -1.153368 -5.053236 10.719072 +77 77 1 -4.193288 3.046602 0.000000 +78 78 1 -4.852682 1.821242 0.267977 +79 79 1 -4.996402 1.378919 1.607861 +80 80 1 -5.183189 0.000000 1.875838 +81 81 1 -5.162323 -0.464617 3.215722 +82 82 1 -4.852682 -1.821242 3.483699 +83 83 1 -4.669892 -2.248901 4.823583 +84 84 1 -3.903312 -3.410221 5.091559 +85 85 1 -3.581908 -3.746382 6.431444 +86 86 1 -2.456151 -4.564293 6.699420 +87 87 1 -2.037123 -4.766086 8.039305 +88 88 1 -0.695756 -5.136280 8.307281 +89 89 1 -0.232543 -5.177970 9.647165 +90 90 1 1.153368 -5.053236 9.915142 +91 91 1 -5.099893 -0.925494 0.803930 +92 92 1 -4.669892 -2.248901 1.071907 +93 93 1 -4.449502 -2.658454 2.411791 +94 94 1 -3.581908 -3.746382 2.679768 +95 95 1 -3.231665 -4.052381 4.019652 +96 96 1 -2.037123 -4.766086 4.287629 +97 97 1 -1.601694 -4.929506 5.627513 +98 98 1 -0.232543 -5.177970 5.895490 +99 99 1 0.232543 -5.177970 7.235374 +100 100 1 1.601694 -4.929506 7.503351 +101 101 1 2.037123 -4.766086 8.843235 +102 102 1 3.231665 -4.052381 9.111212 +103 103 1 3.581908 -3.746382 10.451096 +104 104 1 4.449502 -2.658454 10.719072 +105 105 1 -4.193288 -3.046602 0.000000 +106 106 1 -3.231665 -4.052381 0.267977 +107 107 1 -2.855403 -4.325751 1.607861 +108 108 1 -1.601694 -4.929506 1.875838 +109 109 1 -1.153368 -5.053236 3.215722 +110 110 1 0.232543 -5.177970 3.483699 +111 111 1 0.695756 -5.136280 4.823583 +112 112 1 2.037123 -4.766086 5.091559 +113 113 1 2.456151 -4.564293 6.431444 +114 114 1 3.581908 -3.746382 6.699420 +115 115 1 3.903312 -3.410221 8.039305 +116 116 1 4.669892 -2.248901 8.307281 +117 117 1 4.852682 -1.821242 9.647165 +118 118 1 5.162323 -0.464617 9.915142 +119 119 1 -0.695756 -5.136280 0.803930 +120 120 1 0.695756 -5.136280 1.071907 +121 121 1 1.153368 -5.053236 2.411791 +122 122 1 2.456151 -4.564293 2.679768 +123 123 1 2.855403 -4.325751 4.019652 +124 124 1 3.903312 -3.410221 4.287629 +125 125 1 4.193288 -3.046602 5.627513 +126 126 1 4.852682 -1.821242 5.895490 +127 127 1 4.996402 -1.378919 7.235374 +128 128 1 5.183189 -0.000000 7.503351 +129 129 1 1.601694 -4.929506 0.000000 +130 130 1 2.855403 -4.325751 0.267977 +131 131 1 3.231665 -4.052381 1.607861 +132 132 1 4.193288 -3.046602 1.875838 +133 133 1 4.449502 -2.658454 3.215722 +134 134 1 4.996402 -1.378919 3.483699 +135 135 1 5.099893 -0.925494 4.823583 +136 136 1 5.162323 0.464617 5.091559 +137 137 1 4.669892 -2.248901 0.803930 +138 138 1 5.099893 -0.925494 1.071907 +139 139 1 5.162323 -0.464617 2.411791 +140 140 1 5.099893 0.925494 2.679768 +141 141 1 5.162323 0.464617 20.098261 +142 142 1 4.852682 1.821242 20.366238 +143 143 1 4.669892 2.248901 21.706121 +144 144 1 3.903312 3.410221 21.974098 +145 145 1 5.099893 0.925494 17.686470 +146 146 1 4.669892 2.248901 17.954447 +147 147 1 4.449502 2.658454 19.294331 +148 148 1 3.581908 3.746382 19.562307 +149 149 1 3.231665 4.052381 20.902191 +150 150 1 2.037123 4.766086 21.170168 +151 151 1 4.996402 1.378919 15.274678 +152 152 1 4.449502 2.658454 15.542655 +153 153 1 4.193288 3.046602 16.882540 +154 154 1 3.231665 4.052381 17.150517 +155 155 1 2.855403 4.325751 18.490400 +156 156 1 1.601694 4.929506 18.758377 +157 157 1 1.153368 5.053236 20.098261 +158 158 1 -0.232543 5.177970 20.366238 +159 159 1 -0.695756 5.136280 21.706121 +160 160 1 -2.037123 4.766086 21.974098 +161 161 1 5.183189 0.000000 11.255026 +162 162 1 4.996402 1.378919 11.523003 +163 163 1 4.852682 1.821242 12.862887 +164 164 1 4.193288 3.046602 13.130864 +165 165 1 3.903312 3.410221 14.470748 +166 166 1 2.855403 4.325751 14.738725 +167 167 1 2.456151 4.564293 16.078609 +168 168 1 1.153368 5.053236 16.346586 +169 169 1 0.695756 5.136280 17.686470 +170 170 1 -0.695756 5.136280 17.954447 +171 171 1 -1.153368 5.053236 19.294331 +172 172 1 -2.456151 4.564293 19.562307 +173 173 1 -2.855403 4.325751 20.902191 +174 174 1 -3.903312 3.410221 21.170168 +175 175 1 3.581908 3.746382 12.058956 +176 176 1 2.456151 4.564293 12.326933 +177 177 1 2.037123 4.766086 13.666818 +178 178 1 0.695756 5.136280 13.934794 +179 179 1 0.232543 5.177970 15.274678 +180 180 1 -1.153368 5.053236 15.542655 +181 181 1 -1.601694 4.929506 16.882540 +182 182 1 -2.855403 4.325751 17.150517 +183 183 1 -3.231665 4.052381 18.490400 +184 184 1 -4.193288 3.046602 18.758377 +185 185 1 -4.449502 2.658454 20.098261 +186 186 1 -4.996402 1.378919 20.366238 +187 187 1 -5.099893 0.925494 21.706121 +188 188 1 -5.162323 -0.464617 21.974098 +189 189 1 1.601694 4.929506 11.255026 +190 190 1 0.232543 5.177970 11.523003 +191 191 1 -0.232543 5.177970 12.862887 +192 192 1 -1.601694 4.929506 13.130864 +193 193 1 -2.037123 4.766086 14.470748 +194 194 1 -3.231665 4.052381 14.738725 +195 195 1 -3.581908 3.746382 16.078609 +196 196 1 -4.449502 2.658454 16.346586 +197 197 1 -4.669892 2.248901 17.686470 +198 198 1 -5.099893 0.925494 17.954447 +199 199 1 -5.162323 0.464617 19.294331 +200 200 1 -5.099893 -0.925494 19.562307 +201 201 1 -4.996402 -1.378919 20.902191 +202 202 1 -4.449502 -2.658454 21.170168 +203 203 1 -2.456151 4.564293 12.058956 +204 204 1 -3.581908 3.746382 12.326933 +205 205 1 -3.903312 3.410221 13.666818 +206 206 1 -4.669892 2.248901 13.934794 +207 207 1 -4.852682 1.821242 15.274678 +208 208 1 -5.162323 0.464617 15.542655 +209 209 1 -5.183189 0.000000 16.882540 +210 210 1 -4.996402 -1.378919 17.150517 +211 211 1 -4.852682 -1.821242 18.490400 +212 212 1 -4.193288 -3.046602 18.758377 +213 213 1 -3.903312 -3.410221 20.098261 +214 214 1 -2.855403 -4.325751 20.366238 +215 215 1 -2.456151 -4.564293 21.706121 +216 216 1 -1.153368 -5.053236 21.974098 +217 217 1 -4.193288 3.046602 11.255026 +218 218 1 -4.852682 1.821242 11.523003 +219 219 1 -4.996402 1.378919 12.862887 +220 220 1 -5.183189 0.000000 13.130864 +221 221 1 -5.162323 -0.464617 14.470748 +222 222 1 -4.852682 -1.821242 14.738725 +223 223 1 -4.669892 -2.248901 16.078609 +224 224 1 -3.903312 -3.410221 16.346586 +225 225 1 -3.581908 -3.746382 17.686470 +226 226 1 -2.456151 -4.564293 17.954447 +227 227 1 -2.037123 -4.766086 19.294331 +228 228 1 -0.695756 -5.136280 19.562307 +229 229 1 -0.232543 -5.177970 20.902191 +230 230 1 1.153368 -5.053236 21.170168 +231 231 1 -5.099893 -0.925494 12.058956 +232 232 1 -4.669892 -2.248901 12.326933 +233 233 1 -4.449502 -2.658454 13.666818 +234 234 1 -3.581908 -3.746382 13.934794 +235 235 1 -3.231665 -4.052381 15.274678 +236 236 1 -2.037123 -4.766086 15.542655 +237 237 1 -1.601694 -4.929506 16.882540 +238 238 1 -0.232543 -5.177970 17.150517 +239 239 1 0.232543 -5.177970 18.490400 +240 240 1 1.601694 -4.929506 18.758377 +241 241 1 2.037123 -4.766086 20.098261 +242 242 1 3.231665 -4.052381 20.366238 +243 243 1 3.581908 -3.746382 21.706121 +244 244 1 4.449502 -2.658454 21.974098 +245 245 1 -4.193288 -3.046602 11.255026 +246 246 1 -3.231665 -4.052381 11.523003 +247 247 1 -2.855403 -4.325751 12.862887 +248 248 1 -1.601694 -4.929506 13.130864 +249 249 1 -1.153368 -5.053236 14.470748 +250 250 1 0.232543 -5.177970 14.738725 +251 251 1 0.695756 -5.136280 16.078609 +252 252 1 2.037123 -4.766086 16.346586 +253 253 1 2.456151 -4.564293 17.686470 +254 254 1 3.581908 -3.746382 17.954447 +255 255 1 3.903312 -3.410221 19.294331 +256 256 1 4.669892 -2.248901 19.562307 +257 257 1 4.852682 -1.821242 20.902191 +258 258 1 5.162323 -0.464617 21.170168 +259 259 1 -0.695756 -5.136280 12.058956 +260 260 1 0.695756 -5.136280 12.326933 +261 261 1 1.153368 -5.053236 13.666818 +262 262 1 2.456151 -4.564293 13.934794 +263 263 1 2.855403 -4.325751 15.274678 +264 264 1 3.903312 -3.410221 15.542655 +265 265 1 4.193288 -3.046602 16.882540 +266 266 1 4.852682 -1.821242 17.150517 +267 267 1 4.996402 -1.378919 18.490400 +268 268 1 5.183189 -0.000000 18.758377 +269 269 1 1.601694 -4.929506 11.255026 +270 270 1 2.855403 -4.325751 11.523003 +271 271 1 3.231665 -4.052381 12.862887 +272 272 1 4.193288 -3.046602 13.130864 +273 273 1 4.449502 -2.658454 14.470748 +274 274 1 4.996402 -1.378919 14.738725 +275 275 1 5.099893 -0.925494 16.078609 +276 276 1 5.162323 0.464617 16.346586 +277 277 1 4.669892 -2.248901 12.058956 +278 278 1 5.099893 -0.925494 12.326933 +279 279 1 5.162323 -0.464617 13.666818 +280 280 1 5.099893 0.925494 13.934794 +281 281 1 5.162323 0.464617 31.353287 +282 282 1 4.852682 1.821242 31.621264 +283 283 1 4.669892 2.248901 32.961147 +284 284 1 3.903312 3.410221 33.229126 +285 285 1 5.099893 0.925494 28.941496 +286 286 1 4.669892 2.248901 29.209473 +287 287 1 4.449502 2.658454 30.549356 +288 288 1 3.581908 3.746382 30.817333 +289 289 1 3.231665 4.052381 32.157219 +290 290 1 2.037123 4.766086 32.425194 +291 291 1 4.996402 1.378919 26.529705 +292 292 1 4.449502 2.658454 26.797682 +293 293 1 4.193288 3.046602 28.137566 +294 294 1 3.231665 4.052381 28.405542 +295 295 1 2.855403 4.325751 29.745426 +296 296 1 1.601694 4.929506 30.013403 +297 297 1 1.153368 5.053236 31.353287 +298 298 1 -0.232543 5.177970 31.621264 +299 299 1 -0.695756 5.136280 32.961147 +300 300 1 -2.037123 4.766086 33.229126 +301 301 1 5.183189 0.000000 22.510052 +302 302 1 4.996402 1.378919 22.778028 +303 303 1 4.852682 1.821242 24.117912 +304 304 1 4.193288 3.046602 24.385889 +305 305 1 3.903312 3.410221 25.725775 +306 306 1 2.855403 4.325751 25.993752 +307 307 1 2.456151 4.564293 27.333635 +308 308 1 1.153368 5.053236 27.601612 +309 309 1 0.695756 5.136280 28.941496 +310 310 1 -0.695756 5.136280 29.209473 +311 311 1 -1.153368 5.053236 30.549356 +312 312 1 -2.456151 4.564293 30.817333 +313 313 1 -2.855403 4.325751 32.157219 +314 314 1 -3.903312 3.410221 32.425194 +315 315 1 3.581908 3.746382 23.313982 +316 316 1 2.456151 4.564293 23.581959 +317 317 1 2.037123 4.766086 24.921843 +318 318 1 0.695756 5.136280 25.189819 +319 319 1 0.232543 5.177970 26.529705 +320 320 1 -1.153368 5.053236 26.797682 +321 321 1 -1.601694 4.929506 28.137566 +322 322 1 -2.855403 4.325751 28.405542 +323 323 1 -3.231665 4.052381 29.745426 +324 324 1 -4.193288 3.046602 30.013403 +325 325 1 -4.449502 2.658454 31.353287 +326 326 1 -4.996402 1.378919 31.621264 +327 327 1 -5.099893 0.925494 32.961147 +328 328 1 -5.162323 -0.464617 33.229126 +329 329 1 1.601694 4.929506 22.510052 +330 330 1 0.232543 5.177970 22.778028 +331 331 1 -0.232543 5.177970 24.117912 +332 332 1 -1.601694 4.929506 24.385889 +333 333 1 -2.037123 4.766086 25.725775 +334 334 1 -3.231665 4.052381 25.993752 +335 335 1 -3.581908 3.746382 27.333635 +336 336 1 -4.449502 2.658454 27.601612 +337 337 1 -4.669892 2.248901 28.941496 +338 338 1 -5.099893 0.925494 29.209473 +339 339 1 -5.162323 0.464617 30.549356 +340 340 1 -5.099893 -0.925494 30.817333 +341 341 1 -4.996402 -1.378919 32.157219 +342 342 1 -4.449502 -2.658454 32.425194 +343 343 1 -2.456151 4.564293 23.313982 +344 344 1 -3.581908 3.746382 23.581959 +345 345 1 -3.903312 3.410221 24.921843 +346 346 1 -4.669892 2.248901 25.189819 +347 347 1 -4.852682 1.821242 26.529705 +348 348 1 -5.162323 0.464617 26.797682 +349 349 1 -5.183189 0.000000 28.137566 +350 350 1 -4.996402 -1.378919 28.405542 +351 351 1 -4.852682 -1.821242 29.745426 +352 352 1 -4.193288 -3.046602 30.013403 +353 353 1 -3.903312 -3.410221 31.353287 +354 354 1 -2.855403 -4.325751 31.621264 +355 355 1 -2.456151 -4.564293 32.961147 +356 356 1 -1.153368 -5.053236 33.229126 +357 357 1 -4.193288 3.046602 22.510052 +358 358 1 -4.852682 1.821242 22.778028 +359 359 1 -4.996402 1.378919 24.117912 +360 360 1 -5.183189 0.000000 24.385889 +361 361 1 -5.162323 -0.464617 25.725775 +362 362 1 -4.852682 -1.821242 25.993752 +363 363 1 -4.669892 -2.248901 27.333635 +364 364 1 -3.903312 -3.410221 27.601612 +365 365 1 -3.581908 -3.746382 28.941496 +366 366 1 -2.456151 -4.564293 29.209473 +367 367 1 -2.037123 -4.766086 30.549356 +368 368 1 -0.695756 -5.136280 30.817333 +369 369 1 -0.232543 -5.177970 32.157219 +370 370 1 1.153368 -5.053236 32.425194 +371 371 1 -5.099893 -0.925494 23.313982 +372 372 1 -4.669892 -2.248901 23.581959 +373 373 1 -4.449502 -2.658454 24.921843 +374 374 1 -3.581908 -3.746382 25.189819 +375 375 1 -3.231665 -4.052381 26.529705 +376 376 1 -2.037123 -4.766086 26.797682 +377 377 1 -1.601694 -4.929506 28.137566 +378 378 1 -0.232543 -5.177970 28.405542 +379 379 1 0.232543 -5.177970 29.745426 +380 380 1 1.601694 -4.929506 30.013403 +381 381 1 2.037123 -4.766086 31.353287 +382 382 1 3.231665 -4.052381 31.621264 +383 383 1 3.581908 -3.746382 32.961147 +384 384 1 4.449502 -2.658454 33.229126 +385 385 1 -4.193288 -3.046602 22.510052 +386 386 1 -3.231665 -4.052381 22.778028 +387 387 1 -2.855403 -4.325751 24.117912 +388 388 1 -1.601694 -4.929506 24.385889 +389 389 1 -1.153368 -5.053236 25.725775 +390 390 1 0.232543 -5.177970 25.993752 +391 391 1 0.695756 -5.136280 27.333635 +392 392 1 2.037123 -4.766086 27.601612 +393 393 1 2.456151 -4.564293 28.941496 +394 394 1 3.581908 -3.746382 29.209473 +395 395 1 3.903312 -3.410221 30.549356 +396 396 1 4.669892 -2.248901 30.817333 +397 397 1 4.852682 -1.821242 32.157219 +398 398 1 5.162323 -0.464617 32.425194 +399 399 1 -0.695756 -5.136280 23.313982 +400 400 1 0.695756 -5.136280 23.581959 +401 401 1 1.153368 -5.053236 24.921843 +402 402 1 2.456151 -4.564293 25.189819 +403 403 1 2.855403 -4.325751 26.529705 +404 404 1 3.903312 -3.410221 26.797682 +405 405 1 4.193288 -3.046602 28.137566 +406 406 1 4.852682 -1.821242 28.405542 +407 407 1 4.996402 -1.378919 29.745426 +408 408 1 5.183189 -0.000000 30.013403 +409 409 1 1.601694 -4.929506 22.510052 +410 410 1 2.855403 -4.325751 22.778028 +411 411 1 3.231665 -4.052381 24.117912 +412 412 1 4.193288 -3.046602 24.385889 +413 413 1 4.449502 -2.658454 25.725775 +414 414 1 4.996402 -1.378919 25.993752 +415 415 1 5.099893 -0.925494 27.333635 +416 416 1 5.162323 0.464617 27.601612 +417 417 1 4.669892 -2.248901 23.313982 +418 418 1 5.099893 -0.925494 23.581959 +419 419 1 5.162323 -0.464617 24.921843 +420 420 1 5.099893 0.925494 25.189819 +421 421 1 5.162323 0.464617 42.608315 +422 422 1 4.852682 1.821242 42.876289 +423 423 1 4.669892 2.248901 44.216175 +424 424 1 3.903312 3.410221 44.484150 +425 425 1 5.099893 0.925494 40.196522 +426 426 1 4.669892 2.248901 40.464497 +427 427 1 4.449502 2.658454 41.804382 +428 428 1 3.581908 3.746382 42.072361 +429 429 1 3.231665 4.052381 43.412243 +430 430 1 2.037123 4.766086 43.680222 +431 431 1 4.996402 1.378919 37.784729 +432 432 1 4.449502 2.658454 38.052708 +433 433 1 4.193288 3.046602 39.392590 +434 434 1 3.231665 4.052381 39.660568 +435 435 1 2.855403 4.325751 41.000454 +436 436 1 1.601694 4.929506 41.268429 +437 437 1 1.153368 5.053236 42.608315 +438 438 1 -0.232543 5.177970 42.876289 +439 439 1 -0.695756 5.136280 44.216175 +440 440 1 -2.037123 4.766086 44.484150 +441 441 1 5.183189 0.000000 33.765079 +442 442 1 4.996402 1.378919 34.033054 +443 443 1 4.852682 1.821242 35.372940 +444 444 1 4.193288 3.046602 35.640915 +445 445 1 3.903312 3.410221 36.980801 +446 446 1 2.855403 4.325751 37.248775 +447 447 1 2.456151 4.564293 38.588661 +448 448 1 1.153368 5.053236 38.856636 +449 449 1 0.695756 5.136280 40.196522 +450 450 1 -0.695756 5.136280 40.464497 +451 451 1 -1.153368 5.053236 41.804382 +452 452 1 -2.456151 4.564293 42.072361 +453 453 1 -2.855403 4.325751 43.412243 +454 454 1 -3.903312 3.410221 43.680222 +455 455 1 3.581908 3.746382 34.569008 +456 456 1 2.456151 4.564293 34.836987 +457 457 1 2.037123 4.766086 36.176868 +458 458 1 0.695756 5.136280 36.444847 +459 459 1 0.232543 5.177970 37.784729 +460 460 1 -1.153368 5.053236 38.052708 +461 461 1 -1.601694 4.929506 39.392590 +462 462 1 -2.855403 4.325751 39.660568 +463 463 1 -3.231665 4.052381 41.000454 +464 464 1 -4.193288 3.046602 41.268429 +465 465 1 -4.449502 2.658454 42.608315 +466 466 1 -4.996402 1.378919 42.876289 +467 467 1 -5.099893 0.925494 44.216175 +468 468 1 -5.162323 -0.464617 44.484150 +469 469 1 1.601694 4.929506 33.765079 +470 470 1 0.232543 5.177970 34.033054 +471 471 1 -0.232543 5.177970 35.372940 +472 472 1 -1.601694 4.929506 35.640915 +473 473 1 -2.037123 4.766086 36.980801 +474 474 1 -3.231665 4.052381 37.248775 +475 475 1 -3.581908 3.746382 38.588661 +476 476 1 -4.449502 2.658454 38.856636 +477 477 1 -4.669892 2.248901 40.196522 +478 478 1 -5.099893 0.925494 40.464497 +479 479 1 -5.162323 0.464617 41.804382 +480 480 1 -5.099893 -0.925494 42.072361 +481 481 1 -4.996402 -1.378919 43.412243 +482 482 1 -4.449502 -2.658454 43.680222 +483 483 1 -2.456151 4.564293 34.569008 +484 484 1 -3.581908 3.746382 34.836987 +485 485 1 -3.903312 3.410221 36.176868 +486 486 1 -4.669892 2.248901 36.444847 +487 487 1 -4.852682 1.821242 37.784729 +488 488 1 -5.162323 0.464617 38.052708 +489 489 1 -5.183189 0.000000 39.392590 +490 490 1 -4.996402 -1.378919 39.660568 +491 491 1 -4.852682 -1.821242 41.000454 +492 492 1 -4.193288 -3.046602 41.268429 +493 493 1 -3.903312 -3.410221 42.608315 +494 494 1 -2.855403 -4.325751 42.876289 +495 495 1 -2.456151 -4.564293 44.216175 +496 496 1 -1.153368 -5.053236 44.484150 +497 497 1 -4.193288 3.046602 33.765079 +498 498 1 -4.852682 1.821242 34.033054 +499 499 1 -4.996402 1.378919 35.372940 +500 500 1 -5.183189 0.000000 35.640915 +501 501 1 -5.162323 -0.464617 36.980801 +502 502 1 -4.852682 -1.821242 37.248775 +503 503 1 -4.669892 -2.248901 38.588661 +504 504 1 -3.903312 -3.410221 38.856636 +505 505 1 -3.581908 -3.746382 40.196522 +506 506 1 -2.456151 -4.564293 40.464497 +507 507 1 -2.037123 -4.766086 41.804382 +508 508 1 -0.695756 -5.136280 42.072361 +509 509 1 -0.232543 -5.177970 43.412243 +510 510 1 1.153368 -5.053236 43.680222 +511 511 1 -5.099893 -0.925494 34.569008 +512 512 1 -4.669892 -2.248901 34.836987 +513 513 1 -4.449502 -2.658454 36.176868 +514 514 1 -3.581908 -3.746382 36.444847 +515 515 1 -3.231665 -4.052381 37.784729 +516 516 1 -2.037123 -4.766086 38.052708 +517 517 1 -1.601694 -4.929506 39.392590 +518 518 1 -0.232543 -5.177970 39.660568 +519 519 1 0.232543 -5.177970 41.000454 +520 520 1 1.601694 -4.929506 41.268429 +521 521 1 2.037123 -4.766086 42.608315 +522 522 1 3.231665 -4.052381 42.876289 +523 523 1 3.581908 -3.746382 44.216175 +524 524 1 4.449502 -2.658454 44.484150 +525 525 1 -4.193288 -3.046602 33.765079 +526 526 1 -3.231665 -4.052381 34.033054 +527 527 1 -2.855403 -4.325751 35.372940 +528 528 1 -1.601694 -4.929506 35.640915 +529 529 1 -1.153368 -5.053236 36.980801 +530 530 1 0.232543 -5.177970 37.248775 +531 531 1 0.695756 -5.136280 38.588661 +532 532 1 2.037123 -4.766086 38.856636 +533 533 1 2.456151 -4.564293 40.196522 +534 534 1 3.581908 -3.746382 40.464497 +535 535 1 3.903312 -3.410221 41.804382 +536 536 1 4.669892 -2.248901 42.072361 +537 537 1 4.852682 -1.821242 43.412243 +538 538 1 5.162323 -0.464617 43.680222 +539 539 1 -0.695756 -5.136280 34.569008 +540 540 1 0.695756 -5.136280 34.836987 +541 541 1 1.153368 -5.053236 36.176868 +542 542 1 2.456151 -4.564293 36.444847 +543 543 1 2.855403 -4.325751 37.784729 +544 544 1 3.903312 -3.410221 38.052708 +545 545 1 4.193288 -3.046602 39.392590 +546 546 1 4.852682 -1.821242 39.660568 +547 547 1 4.996402 -1.378919 41.000454 +548 548 1 5.183189 -0.000000 41.268429 +549 549 1 1.601694 -4.929506 33.765079 +550 550 1 2.855403 -4.325751 34.033054 +551 551 1 3.231665 -4.052381 35.372940 +552 552 1 4.193288 -3.046602 35.640915 +553 553 1 4.449502 -2.658454 36.980801 +554 554 1 4.996402 -1.378919 37.248775 +555 555 1 5.099893 -0.925494 38.588661 +556 556 1 5.162323 0.464617 38.856636 +557 557 1 4.669892 -2.248901 34.569008 +558 558 1 5.099893 -0.925494 34.836987 +559 559 1 5.162323 -0.464617 36.176868 +560 560 1 5.099893 0.925494 36.444847 +561 561 1 5.162323 0.464617 53.863338 +562 562 1 4.852682 1.821242 54.131317 +563 563 1 4.669892 2.248901 55.471199 +564 564 1 3.903312 3.410221 55.739178 +565 565 1 5.099893 0.925494 51.451550 +566 566 1 4.669892 2.248901 51.719524 +567 567 1 4.449502 2.658454 53.059410 +568 568 1 3.581908 3.746382 53.327385 +569 569 1 3.231665 4.052381 54.667271 +570 570 1 2.037123 4.766086 54.935246 +571 571 1 4.996402 1.378919 49.039757 +572 572 1 4.449502 2.658454 49.307732 +573 573 1 4.193288 3.046602 50.647617 +574 574 1 3.231665 4.052381 50.915596 +575 575 1 2.855403 4.325751 52.255478 +576 576 1 1.601694 4.929506 52.523457 +577 577 1 1.153368 5.053236 53.863338 +578 578 1 -0.232543 5.177970 54.131317 +579 579 1 -0.695756 5.136280 55.471199 +580 580 1 -2.037123 4.766086 55.739178 +581 581 1 5.183189 0.000000 45.020103 +582 582 1 4.996402 1.378919 45.288082 +583 583 1 4.852682 1.821242 46.627964 +584 584 1 4.193288 3.046602 46.895943 +585 585 1 3.903312 3.410221 48.235825 +586 586 1 2.855403 4.325751 48.503803 +587 587 1 2.456151 4.564293 49.843685 +588 588 1 1.153368 5.053236 50.111664 +589 589 1 0.695756 5.136280 51.451550 +590 590 1 -0.695756 5.136280 51.719524 +591 591 1 -1.153368 5.053236 53.059410 +592 592 1 -2.456151 4.564293 53.327385 +593 593 1 -2.855403 4.325751 54.667271 +594 594 1 -3.903312 3.410221 54.935246 +595 595 1 3.581908 3.746382 45.824036 +596 596 1 2.456151 4.564293 46.092010 +597 597 1 2.037123 4.766086 47.431896 +598 598 1 0.695756 5.136280 47.699871 +599 599 1 0.232543 5.177970 49.039757 +600 600 1 -1.153368 5.053236 49.307732 +601 601 1 -1.601694 4.929506 50.647617 +602 602 1 -2.855403 4.325751 50.915596 +603 603 1 -3.231665 4.052381 52.255478 +604 604 1 -4.193288 3.046602 52.523457 +605 605 1 -4.449502 2.658454 53.863338 +606 606 1 -4.996402 1.378919 54.131317 +607 607 1 -5.099893 0.925494 55.471199 +608 608 1 -5.162323 -0.464617 55.739178 +609 609 1 1.601694 4.929506 45.020103 +610 610 1 0.232543 5.177970 45.288082 +611 611 1 -0.232543 5.177970 46.627964 +612 612 1 -1.601694 4.929506 46.895943 +613 613 1 -2.037123 4.766086 48.235825 +614 614 1 -3.231665 4.052381 48.503803 +615 615 1 -3.581908 3.746382 49.843685 +616 616 1 -4.449502 2.658454 50.111664 +617 617 1 -4.669892 2.248901 51.451550 +618 618 1 -5.099893 0.925494 51.719524 +619 619 1 -5.162323 0.464617 53.059410 +620 620 1 -5.099893 -0.925494 53.327385 +621 621 1 -4.996402 -1.378919 54.667271 +622 622 1 -4.449502 -2.658454 54.935246 +623 623 1 -2.456151 4.564293 45.824036 +624 624 1 -3.581908 3.746382 46.092010 +625 625 1 -3.903312 3.410221 47.431896 +626 626 1 -4.669892 2.248901 47.699871 +627 627 1 -4.852682 1.821242 49.039757 +628 628 1 -5.162323 0.464617 49.307732 +629 629 1 -5.183189 0.000000 50.647617 +630 630 1 -4.996402 -1.378919 50.915596 +631 631 1 -4.852682 -1.821242 52.255478 +632 632 1 -4.193288 -3.046602 52.523457 +633 633 1 -3.903312 -3.410221 53.863338 +634 634 1 -2.855403 -4.325751 54.131317 +635 635 1 -2.456151 -4.564293 55.471199 +636 636 1 -1.153368 -5.053236 55.739178 +637 637 1 -4.193288 3.046602 45.020103 +638 638 1 -4.852682 1.821242 45.288082 +639 639 1 -4.996402 1.378919 46.627964 +640 640 1 -5.183189 0.000000 46.895943 +641 641 1 -5.162323 -0.464617 48.235825 +642 642 1 -4.852682 -1.821242 48.503803 +643 643 1 -4.669892 -2.248901 49.843685 +644 644 1 -3.903312 -3.410221 50.111664 +645 645 1 -3.581908 -3.746382 51.451550 +646 646 1 -2.456151 -4.564293 51.719524 +647 647 1 -2.037123 -4.766086 53.059410 +648 648 1 -0.695756 -5.136280 53.327385 +649 649 1 -0.232543 -5.177970 54.667271 +650 650 1 1.153368 -5.053236 54.935246 +651 651 1 -5.099893 -0.925494 45.824036 +652 652 1 -4.669892 -2.248901 46.092010 +653 653 1 -4.449502 -2.658454 47.431896 +654 654 1 -3.581908 -3.746382 47.699871 +655 655 1 -3.231665 -4.052381 49.039757 +656 656 1 -2.037123 -4.766086 49.307732 +657 657 1 -1.601694 -4.929506 50.647617 +658 658 1 -0.232543 -5.177970 50.915596 +659 659 1 0.232543 -5.177970 52.255478 +660 660 1 1.601694 -4.929506 52.523457 +661 661 1 2.037123 -4.766086 53.863338 +662 662 1 3.231665 -4.052381 54.131317 +663 663 1 3.581908 -3.746382 55.471199 +664 664 1 4.449502 -2.658454 55.739178 +665 665 1 -4.193288 -3.046602 45.020103 +666 666 1 -3.231665 -4.052381 45.288082 +667 667 1 -2.855403 -4.325751 46.627964 +668 668 1 -1.601694 -4.929506 46.895943 +669 669 1 -1.153368 -5.053236 48.235825 +670 670 1 0.232543 -5.177970 48.503803 +671 671 1 0.695756 -5.136280 49.843685 +672 672 1 2.037123 -4.766086 50.111664 +673 673 1 2.456151 -4.564293 51.451550 +674 674 1 3.581908 -3.746382 51.719524 +675 675 1 3.903312 -3.410221 53.059410 +676 676 1 4.669892 -2.248901 53.327385 +677 677 1 4.852682 -1.821242 54.667271 +678 678 1 5.162323 -0.464617 54.935246 +679 679 1 -0.695756 -5.136280 45.824036 +680 680 1 0.695756 -5.136280 46.092010 +681 681 1 1.153368 -5.053236 47.431896 +682 682 1 2.456151 -4.564293 47.699871 +683 683 1 2.855403 -4.325751 49.039757 +684 684 1 3.903312 -3.410221 49.307732 +685 685 1 4.193288 -3.046602 50.647617 +686 686 1 4.852682 -1.821242 50.915596 +687 687 1 4.996402 -1.378919 52.255478 +688 688 1 5.183189 -0.000000 52.523457 +689 689 1 1.601694 -4.929506 45.020103 +690 690 1 2.855403 -4.325751 45.288082 +691 691 1 3.231665 -4.052381 46.627964 +692 692 1 4.193288 -3.046602 46.895943 +693 693 1 4.449502 -2.658454 48.235825 +694 694 1 4.996402 -1.378919 48.503803 +695 695 1 5.099893 -0.925494 49.843685 +696 696 1 5.162323 0.464617 50.111664 +697 697 1 4.669892 -2.248901 45.824036 +698 698 1 5.099893 -0.925494 46.092010 +699 699 1 5.162323 -0.464617 47.431896 +700 700 1 5.099893 0.925494 47.699871 diff --git a/Exercise_1/cnt_cu.data b/Exercise_1/cnt_cu.data new file mode 100644 index 0000000..7a38148 --- /dev/null +++ b/Exercise_1/cnt_cu.data @@ -0,0 +1,713 @@ +LAMMPS data file. CGCMM style. atom_style molecular generated by VMD/TopoTools v1.7 on Fri Aug 04 11:29:35 CEST 2023 + 700 atoms + 1 atom types +-71.4286 71.4286 xlo xhi +-71.4286 71.4286 ylo yhi +-21.6614 121.196 zlo zhi + + Masses + + 1 12.010700 # CA + + Atoms # molecular + +1 1 1 9.21843 0.829673 15.7915 +2 2 1 8.6655 3.25222 16.27 +3 3 1 8.33909 4.01589 18.6627 +4 4 1 6.9702 6.08968 19.1412 +5 5 1 9.10695 1.65267 11.4847 +6 6 1 8.33909 4.01589 11.9633 +7 7 1 7.94554 4.74724 14.3559 +8 8 1 6.39626 6.68997 14.8344 +9 9 1 5.77083 7.23639 17.2271 +10 10 1 3.63772 8.51087 17.7056 +11 11 1 8.92215 2.46236 7.17795 +12 12 1 7.94554 4.74724 7.65648 +13 13 1 7.48801 5.44036 10.0491 +14 14 1 5.77083 7.23639 10.5277 +15 15 1 5.09893 7.72456 12.9203 +16 16 1 2.86017 8.80269 13.3988 +17 17 1 2.05959 9.02364 15.7915 +18 18 1 -0.415255 9.24638 16.27 +19 19 1 -1.24242 9.17193 18.6627 +20 20 1 -3.63772 8.51087 19.1412 +21 21 1 9.25569 0 0 +22 22 1 8.92215 2.46236 0.47853 +23 23 1 8.6655 3.25222 2.87118 +24 24 1 7.48801 5.44036 3.34971 +25 25 1 6.9702 6.08968 5.74236 +26 26 1 5.09893 7.72456 6.22089 +27 27 1 4.38598 8.15052 8.61354 +28 28 1 2.05959 9.02364 9.09207 +29 29 1 1.24242 9.17193 11.4847 +30 30 1 -1.24242 9.17193 11.9633 +31 31 1 -2.05959 9.02364 14.3559 +32 32 1 -4.38598 8.15052 14.8344 +33 33 1 -5.09893 7.72456 17.2271 +34 34 1 -6.9702 6.08968 17.7056 +35 35 1 6.39626 6.68997 1.43559 +36 36 1 4.38598 8.15052 1.91412 +37 37 1 3.63772 8.51087 4.30677 +38 38 1 1.24242 9.17193 4.7853 +39 39 1 0.415255 9.24638 7.17795 +40 40 1 -2.05959 9.02364 7.65648 +41 41 1 -2.86017 8.80269 10.0491 +42 42 1 -5.09893 7.72456 10.5277 +43 43 1 -5.77083 7.23639 12.9203 +44 44 1 -7.48801 5.44036 13.3988 +45 45 1 -7.94554 4.74724 15.7915 +46 46 1 -8.92215 2.46236 16.27 +47 47 1 -9.10695 1.65267 18.6627 +48 48 1 -9.21843 -0.829673 19.1412 +49 49 1 2.86017 8.80269 0 +50 50 1 0.415255 9.24638 0.47853 +51 51 1 -0.415255 9.24638 2.87118 +52 52 1 -2.86017 8.80269 3.34971 +53 53 1 -3.63772 8.51087 5.74236 +54 54 1 -5.77083 7.23639 6.22089 +55 55 1 -6.39626 6.68997 8.61354 +56 56 1 -7.94554 4.74724 9.09207 +57 57 1 -8.33909 4.01589 11.4847 +58 58 1 -9.10695 1.65267 11.9633 +59 59 1 -9.21843 0.829673 14.3559 +60 60 1 -9.10695 -1.65267 14.8344 +61 61 1 -8.92215 -2.46236 17.2271 +62 62 1 -7.94554 -4.74724 17.7056 +63 63 1 -4.38598 8.15052 1.43559 +64 64 1 -6.39626 6.68997 1.91412 +65 65 1 -6.9702 6.08968 4.30677 +66 66 1 -8.33909 4.01589 4.7853 +67 67 1 -8.6655 3.25222 7.17795 +68 68 1 -9.21843 0.829673 7.65648 +69 69 1 -9.25569 0 10.0491 +70 70 1 -8.92215 -2.46236 10.5277 +71 71 1 -8.6655 -3.25222 12.9203 +72 72 1 -7.48801 -5.44036 13.3988 +73 73 1 -6.9702 -6.08968 15.7915 +74 74 1 -5.09893 -7.72456 16.27 +75 75 1 -4.38598 -8.15052 18.6627 +76 76 1 -2.05959 -9.02364 19.1412 +77 77 1 -7.48801 5.44036 0 +78 78 1 -8.6655 3.25222 0.47853 +79 79 1 -8.92215 2.46236 2.87118 +80 80 1 -9.25569 0 3.34971 +81 81 1 -9.21843 -0.829673 5.74236 +82 82 1 -8.6655 -3.25222 6.22089 +83 83 1 -8.33909 -4.01589 8.61354 +84 84 1 -6.9702 -6.08968 9.09207 +85 85 1 -6.39626 -6.68997 11.4847 +86 86 1 -4.38598 -8.15052 11.9633 +87 87 1 -3.63772 -8.51087 14.3559 +88 88 1 -1.24242 -9.17193 14.8344 +89 89 1 -0.415255 -9.24638 17.2271 +90 90 1 2.05959 -9.02364 17.7056 +91 91 1 -9.10695 -1.65267 1.43559 +92 92 1 -8.33909 -4.01589 1.91412 +93 93 1 -7.94554 -4.74724 4.30677 +94 94 1 -6.39626 -6.68997 4.7853 +95 95 1 -5.77083 -7.23639 7.17795 +96 96 1 -3.63772 -8.51087 7.65648 +97 97 1 -2.86017 -8.80269 10.0491 +98 98 1 -0.415255 -9.24638 10.5277 +99 99 1 0.415255 -9.24638 12.9203 +100 100 1 2.86017 -8.80269 13.3988 +101 101 1 3.63772 -8.51087 15.7915 +102 102 1 5.77083 -7.23639 16.27 +103 103 1 6.39626 -6.68997 18.6627 +104 104 1 7.94554 -4.74724 19.1412 +105 105 1 -7.48801 -5.44036 0 +106 106 1 -5.77083 -7.23639 0.47853 +107 107 1 -5.09893 -7.72456 2.87118 +108 108 1 -2.86017 -8.80269 3.34971 +109 109 1 -2.05959 -9.02364 5.74236 +110 110 1 0.415255 -9.24638 6.22089 +111 111 1 1.24242 -9.17193 8.61354 +112 112 1 3.63772 -8.51087 9.09207 +113 113 1 4.38598 -8.15052 11.4847 +114 114 1 6.39626 -6.68997 11.9633 +115 115 1 6.9702 -6.08968 14.3559 +116 116 1 8.33909 -4.01589 14.8344 +117 117 1 8.6655 -3.25222 17.2271 +118 118 1 9.21843 -0.829673 17.7056 +119 119 1 -1.24242 -9.17193 1.43559 +120 120 1 1.24242 -9.17193 1.91412 +121 121 1 2.05959 -9.02364 4.30677 +122 122 1 4.38598 -8.15052 4.7853 +123 123 1 5.09893 -7.72456 7.17795 +124 124 1 6.9702 -6.08968 7.65648 +125 125 1 7.48801 -5.44036 10.0491 +126 126 1 8.6655 -3.25222 10.5277 +127 127 1 8.92215 -2.46236 12.9203 +128 128 1 9.25569 0 13.3988 +129 129 1 2.86017 -8.80269 0 +130 130 1 5.09893 -7.72456 0.47853 +131 131 1 5.77083 -7.23639 2.87118 +132 132 1 7.48801 -5.44036 3.34971 +133 133 1 7.94554 -4.74724 5.74236 +134 134 1 8.92215 -2.46236 6.22089 +135 135 1 9.10695 -1.65267 8.61354 +136 136 1 9.21843 0.829673 9.09207 +137 137 1 8.33909 -4.01589 1.43559 +138 138 1 9.10695 -1.65267 1.91412 +139 139 1 9.21843 -0.829673 4.30677 +140 140 1 9.10695 1.65267 4.7853 +141 141 1 9.21843 0.829673 35.8898 +142 142 1 8.6655 3.25222 36.3683 +143 143 1 8.33909 4.01589 38.7609 +144 144 1 6.9702 6.08968 39.2395 +145 145 1 9.10695 1.65267 31.583 +146 146 1 8.33909 4.01589 32.0615 +147 147 1 7.94554 4.74724 34.4542 +148 148 1 6.39626 6.68997 34.9327 +149 149 1 5.77083 7.23639 37.3253 +150 150 1 3.63772 8.51087 37.8039 +151 151 1 8.92215 2.46236 27.2762 +152 152 1 7.94554 4.74724 27.7547 +153 153 1 7.48801 5.44036 30.1474 +154 154 1 5.77083 7.23639 30.6259 +155 155 1 5.09893 7.72456 33.0186 +156 156 1 2.86017 8.80269 33.4971 +157 157 1 2.05959 9.02364 35.8898 +158 158 1 -0.415255 9.24638 36.3683 +159 159 1 -1.24242 9.17193 38.7609 +160 160 1 -3.63772 8.51087 39.2395 +161 161 1 9.25569 0 20.0983 +162 162 1 8.92215 2.46236 20.5768 +163 163 1 8.6655 3.25222 22.9694 +164 164 1 7.48801 5.44036 23.448 +165 165 1 6.9702 6.08968 25.8406 +166 166 1 5.09893 7.72456 26.3192 +167 167 1 4.38598 8.15052 28.7118 +168 168 1 2.05959 9.02364 29.1903 +169 169 1 1.24242 9.17193 31.583 +170 170 1 -1.24242 9.17193 32.0615 +171 171 1 -2.05959 9.02364 34.4542 +172 172 1 -4.38598 8.15052 34.9327 +173 173 1 -5.09893 7.72456 37.3253 +174 174 1 -6.9702 6.08968 37.8039 +175 175 1 6.39626 6.68997 21.5339 +176 176 1 4.38598 8.15052 22.0124 +177 177 1 3.63772 8.51087 24.405 +178 178 1 1.24242 9.17193 24.8836 +179 179 1 0.415255 9.24638 27.2762 +180 180 1 -2.05959 9.02364 27.7547 +181 181 1 -2.86017 8.80269 30.1474 +182 182 1 -5.09893 7.72456 30.6259 +183 183 1 -5.77083 7.23639 33.0186 +184 184 1 -7.48801 5.44036 33.4971 +185 185 1 -7.94554 4.74724 35.8898 +186 186 1 -8.92215 2.46236 36.3683 +187 187 1 -9.10695 1.65267 38.7609 +188 188 1 -9.21843 -0.829673 39.2395 +189 189 1 2.86017 8.80269 20.0983 +190 190 1 0.415255 9.24638 20.5768 +191 191 1 -0.415255 9.24638 22.9694 +192 192 1 -2.86017 8.80269 23.448 +193 193 1 -3.63772 8.51087 25.8406 +194 194 1 -5.77083 7.23639 26.3192 +195 195 1 -6.39626 6.68997 28.7118 +196 196 1 -7.94554 4.74724 29.1903 +197 197 1 -8.33909 4.01589 31.583 +198 198 1 -9.10695 1.65267 32.0615 +199 199 1 -9.21843 0.829673 34.4542 +200 200 1 -9.10695 -1.65267 34.9327 +201 201 1 -8.92215 -2.46236 37.3253 +202 202 1 -7.94554 -4.74724 37.8039 +203 203 1 -4.38598 8.15052 21.5339 +204 204 1 -6.39626 6.68997 22.0124 +205 205 1 -6.9702 6.08968 24.405 +206 206 1 -8.33909 4.01589 24.8836 +207 207 1 -8.6655 3.25222 27.2762 +208 208 1 -9.21843 0.829673 27.7547 +209 209 1 -9.25569 0 30.1474 +210 210 1 -8.92215 -2.46236 30.6259 +211 211 1 -8.6655 -3.25222 33.0186 +212 212 1 -7.48801 -5.44036 33.4971 +213 213 1 -6.9702 -6.08968 35.8898 +214 214 1 -5.09893 -7.72456 36.3683 +215 215 1 -4.38598 -8.15052 38.7609 +216 216 1 -2.05959 -9.02364 39.2395 +217 217 1 -7.48801 5.44036 20.0983 +218 218 1 -8.6655 3.25222 20.5768 +219 219 1 -8.92215 2.46236 22.9694 +220 220 1 -9.25569 0 23.448 +221 221 1 -9.21843 -0.829673 25.8406 +222 222 1 -8.6655 -3.25222 26.3192 +223 223 1 -8.33909 -4.01589 28.7118 +224 224 1 -6.9702 -6.08968 29.1903 +225 225 1 -6.39626 -6.68997 31.583 +226 226 1 -4.38598 -8.15052 32.0615 +227 227 1 -3.63772 -8.51087 34.4542 +228 228 1 -1.24242 -9.17193 34.9327 +229 229 1 -0.415255 -9.24638 37.3253 +230 230 1 2.05959 -9.02364 37.8039 +231 231 1 -9.10695 -1.65267 21.5339 +232 232 1 -8.33909 -4.01589 22.0124 +233 233 1 -7.94554 -4.74724 24.405 +234 234 1 -6.39626 -6.68997 24.8836 +235 235 1 -5.77083 -7.23639 27.2762 +236 236 1 -3.63772 -8.51087 27.7547 +237 237 1 -2.86017 -8.80269 30.1474 +238 238 1 -0.415255 -9.24638 30.6259 +239 239 1 0.415255 -9.24638 33.0186 +240 240 1 2.86017 -8.80269 33.4971 +241 241 1 3.63772 -8.51087 35.8898 +242 242 1 5.77083 -7.23639 36.3683 +243 243 1 6.39626 -6.68997 38.7609 +244 244 1 7.94554 -4.74724 39.2395 +245 245 1 -7.48801 -5.44036 20.0983 +246 246 1 -5.77083 -7.23639 20.5768 +247 247 1 -5.09893 -7.72456 22.9694 +248 248 1 -2.86017 -8.80269 23.448 +249 249 1 -2.05959 -9.02364 25.8406 +250 250 1 0.415255 -9.24638 26.3192 +251 251 1 1.24242 -9.17193 28.7118 +252 252 1 3.63772 -8.51087 29.1903 +253 253 1 4.38598 -8.15052 31.583 +254 254 1 6.39626 -6.68997 32.0615 +255 255 1 6.9702 -6.08968 34.4542 +256 256 1 8.33909 -4.01589 34.9327 +257 257 1 8.6655 -3.25222 37.3253 +258 258 1 9.21843 -0.829673 37.8039 +259 259 1 -1.24242 -9.17193 21.5339 +260 260 1 1.24242 -9.17193 22.0124 +261 261 1 2.05959 -9.02364 24.405 +262 262 1 4.38598 -8.15052 24.8836 +263 263 1 5.09893 -7.72456 27.2762 +264 264 1 6.9702 -6.08968 27.7547 +265 265 1 7.48801 -5.44036 30.1474 +266 266 1 8.6655 -3.25222 30.6259 +267 267 1 8.92215 -2.46236 33.0186 +268 268 1 9.25569 0 33.4971 +269 269 1 2.86017 -8.80269 20.0983 +270 270 1 5.09893 -7.72456 20.5768 +271 271 1 5.77083 -7.23639 22.9694 +272 272 1 7.48801 -5.44036 23.448 +273 273 1 7.94554 -4.74724 25.8406 +274 274 1 8.92215 -2.46236 26.3192 +275 275 1 9.10695 -1.65267 28.7118 +276 276 1 9.21843 0.829673 29.1903 +277 277 1 8.33909 -4.01589 21.5339 +278 278 1 9.10695 -1.65267 22.0124 +279 279 1 9.21843 -0.829673 24.405 +280 280 1 9.10695 1.65267 24.8836 +281 281 1 9.21843 0.829673 55.988 +282 282 1 8.6655 3.25222 56.4665 +283 283 1 8.33909 4.01589 58.8592 +284 284 1 6.9702 6.08968 59.3377 +285 285 1 9.10695 1.65267 51.6812 +286 286 1 8.33909 4.01589 52.1598 +287 287 1 7.94554 4.74724 54.5524 +288 288 1 6.39626 6.68997 55.031 +289 289 1 5.77083 7.23639 57.4236 +290 290 1 3.63772 8.51087 57.9021 +291 291 1 8.92215 2.46236 47.3745 +292 292 1 7.94554 4.74724 47.853 +293 293 1 7.48801 5.44036 50.2457 +294 294 1 5.77083 7.23639 50.7242 +295 295 1 5.09893 7.72456 53.1168 +296 296 1 2.86017 8.80269 53.5954 +297 297 1 2.05959 9.02364 55.988 +298 298 1 -0.415255 9.24638 56.4665 +299 299 1 -1.24242 9.17193 58.8592 +300 300 1 -3.63772 8.51087 59.3377 +301 301 1 9.25569 0 40.1965 +302 302 1 8.92215 2.46236 40.6751 +303 303 1 8.6655 3.25222 43.0677 +304 304 1 7.48801 5.44036 43.5462 +305 305 1 6.9702 6.08968 45.9389 +306 306 1 5.09893 7.72456 46.4174 +307 307 1 4.38598 8.15052 48.8101 +308 308 1 2.05959 9.02364 49.2886 +309 309 1 1.24242 9.17193 51.6812 +310 310 1 -1.24242 9.17193 52.1598 +311 311 1 -2.05959 9.02364 54.5524 +312 312 1 -4.38598 8.15052 55.031 +313 313 1 -5.09893 7.72456 57.4236 +314 314 1 -6.9702 6.08968 57.9021 +315 315 1 6.39626 6.68997 41.6321 +316 316 1 4.38598 8.15052 42.1106 +317 317 1 3.63772 8.51087 44.5033 +318 318 1 1.24242 9.17193 44.9818 +319 319 1 0.415255 9.24638 47.3745 +320 320 1 -2.05959 9.02364 47.853 +321 321 1 -2.86017 8.80269 50.2457 +322 322 1 -5.09893 7.72456 50.7242 +323 323 1 -5.77083 7.23639 53.1168 +324 324 1 -7.48801 5.44036 53.5954 +325 325 1 -7.94554 4.74724 55.988 +326 326 1 -8.92215 2.46236 56.4665 +327 327 1 -9.10695 1.65267 58.8592 +328 328 1 -9.21843 -0.829673 59.3377 +329 329 1 2.86017 8.80269 40.1965 +330 330 1 0.415255 9.24638 40.6751 +331 331 1 -0.415255 9.24638 43.0677 +332 332 1 -2.86017 8.80269 43.5462 +333 333 1 -3.63772 8.51087 45.9389 +334 334 1 -5.77083 7.23639 46.4174 +335 335 1 -6.39626 6.68997 48.8101 +336 336 1 -7.94554 4.74724 49.2886 +337 337 1 -8.33909 4.01589 51.6812 +338 338 1 -9.10695 1.65267 52.1598 +339 339 1 -9.21843 0.829673 54.5524 +340 340 1 -9.10695 -1.65267 55.031 +341 341 1 -8.92215 -2.46236 57.4236 +342 342 1 -7.94554 -4.74724 57.9021 +343 343 1 -4.38598 8.15052 41.6321 +344 344 1 -6.39626 6.68997 42.1106 +345 345 1 -6.9702 6.08968 44.5033 +346 346 1 -8.33909 4.01589 44.9818 +347 347 1 -8.6655 3.25222 47.3745 +348 348 1 -9.21843 0.829673 47.853 +349 349 1 -9.25569 0 50.2457 +350 350 1 -8.92215 -2.46236 50.7242 +351 351 1 -8.6655 -3.25222 53.1168 +352 352 1 -7.48801 -5.44036 53.5954 +353 353 1 -6.9702 -6.08968 55.988 +354 354 1 -5.09893 -7.72456 56.4665 +355 355 1 -4.38598 -8.15052 58.8592 +356 356 1 -2.05959 -9.02364 59.3377 +357 357 1 -7.48801 5.44036 40.1965 +358 358 1 -8.6655 3.25222 40.6751 +359 359 1 -8.92215 2.46236 43.0677 +360 360 1 -9.25569 0 43.5462 +361 361 1 -9.21843 -0.829673 45.9389 +362 362 1 -8.6655 -3.25222 46.4174 +363 363 1 -8.33909 -4.01589 48.8101 +364 364 1 -6.9702 -6.08968 49.2886 +365 365 1 -6.39626 -6.68997 51.6812 +366 366 1 -4.38598 -8.15052 52.1598 +367 367 1 -3.63772 -8.51087 54.5524 +368 368 1 -1.24242 -9.17193 55.031 +369 369 1 -0.415255 -9.24638 57.4236 +370 370 1 2.05959 -9.02364 57.9021 +371 371 1 -9.10695 -1.65267 41.6321 +372 372 1 -8.33909 -4.01589 42.1106 +373 373 1 -7.94554 -4.74724 44.5033 +374 374 1 -6.39626 -6.68997 44.9818 +375 375 1 -5.77083 -7.23639 47.3745 +376 376 1 -3.63772 -8.51087 47.853 +377 377 1 -2.86017 -8.80269 50.2457 +378 378 1 -0.415255 -9.24638 50.7242 +379 379 1 0.415255 -9.24638 53.1168 +380 380 1 2.86017 -8.80269 53.5954 +381 381 1 3.63772 -8.51087 55.988 +382 382 1 5.77083 -7.23639 56.4665 +383 383 1 6.39626 -6.68997 58.8592 +384 384 1 7.94554 -4.74724 59.3377 +385 385 1 -7.48801 -5.44036 40.1965 +386 386 1 -5.77083 -7.23639 40.6751 +387 387 1 -5.09893 -7.72456 43.0677 +388 388 1 -2.86017 -8.80269 43.5462 +389 389 1 -2.05959 -9.02364 45.9389 +390 390 1 0.415255 -9.24638 46.4174 +391 391 1 1.24242 -9.17193 48.8101 +392 392 1 3.63772 -8.51087 49.2886 +393 393 1 4.38598 -8.15052 51.6812 +394 394 1 6.39626 -6.68997 52.1598 +395 395 1 6.9702 -6.08968 54.5524 +396 396 1 8.33909 -4.01589 55.031 +397 397 1 8.6655 -3.25222 57.4236 +398 398 1 9.21843 -0.829673 57.9021 +399 399 1 -1.24242 -9.17193 41.6321 +400 400 1 1.24242 -9.17193 42.1106 +401 401 1 2.05959 -9.02364 44.5033 +402 402 1 4.38598 -8.15052 44.9818 +403 403 1 5.09893 -7.72456 47.3745 +404 404 1 6.9702 -6.08968 47.853 +405 405 1 7.48801 -5.44036 50.2457 +406 406 1 8.6655 -3.25222 50.7242 +407 407 1 8.92215 -2.46236 53.1168 +408 408 1 9.25569 0 53.5954 +409 409 1 2.86017 -8.80269 40.1965 +410 410 1 5.09893 -7.72456 40.6751 +411 411 1 5.77083 -7.23639 43.0677 +412 412 1 7.48801 -5.44036 43.5462 +413 413 1 7.94554 -4.74724 45.9389 +414 414 1 8.92215 -2.46236 46.4174 +415 415 1 9.10695 -1.65267 48.8101 +416 416 1 9.21843 0.829673 49.2886 +417 417 1 8.33909 -4.01589 41.6321 +418 418 1 9.10695 -1.65267 42.1106 +419 419 1 9.21843 -0.829673 44.5033 +420 420 1 9.10695 1.65267 44.9818 +421 421 1 9.21843 0.829673 76.0863 +422 422 1 8.6655 3.25222 76.5648 +423 423 1 8.33909 4.01589 78.9575 +424 424 1 6.9702 6.08968 79.436 +425 425 1 9.10695 1.65267 71.7795 +426 426 1 8.33909 4.01589 72.258 +427 427 1 7.94554 4.74724 74.6507 +428 428 1 6.39626 6.68997 75.1292 +429 429 1 5.77083 7.23639 77.5219 +430 430 1 3.63772 8.51087 78.0004 +431 431 1 8.92215 2.46236 67.4727 +432 432 1 7.94554 4.74724 67.9513 +433 433 1 7.48801 5.44036 70.3439 +434 434 1 5.77083 7.23639 70.8224 +435 435 1 5.09893 7.72456 73.2151 +436 436 1 2.86017 8.80269 73.6936 +437 437 1 2.05959 9.02364 76.0863 +438 438 1 -0.415255 9.24638 76.5648 +439 439 1 -1.24242 9.17193 78.9575 +440 440 1 -3.63772 8.51087 79.436 +441 441 1 9.25569 0 60.2948 +442 442 1 8.92215 2.46236 60.7733 +443 443 1 8.6655 3.25222 63.166 +444 444 1 7.48801 5.44036 63.6445 +445 445 1 6.9702 6.08968 66.0371 +446 446 1 5.09893 7.72456 66.5157 +447 447 1 4.38598 8.15052 68.9083 +448 448 1 2.05959 9.02364 69.3869 +449 449 1 1.24242 9.17193 71.7795 +450 450 1 -1.24242 9.17193 72.258 +451 451 1 -2.05959 9.02364 74.6507 +452 452 1 -4.38598 8.15052 75.1292 +453 453 1 -5.09893 7.72456 77.5219 +454 454 1 -6.9702 6.08968 78.0004 +455 455 1 6.39626 6.68997 61.7304 +456 456 1 4.38598 8.15052 62.2089 +457 457 1 3.63772 8.51087 64.6016 +458 458 1 1.24242 9.17193 65.0801 +459 459 1 0.415255 9.24638 67.4727 +460 460 1 -2.05959 9.02364 67.9513 +461 461 1 -2.86017 8.80269 70.3439 +462 462 1 -5.09893 7.72456 70.8224 +463 463 1 -5.77083 7.23639 73.2151 +464 464 1 -7.48801 5.44036 73.6936 +465 465 1 -7.94554 4.74724 76.0863 +466 466 1 -8.92215 2.46236 76.5648 +467 467 1 -9.10695 1.65267 78.9575 +468 468 1 -9.21843 -0.829673 79.436 +469 469 1 2.86017 8.80269 60.2948 +470 470 1 0.415255 9.24638 60.7733 +471 471 1 -0.415255 9.24638 63.166 +472 472 1 -2.86017 8.80269 63.6445 +473 473 1 -3.63772 8.51087 66.0371 +474 474 1 -5.77083 7.23639 66.5157 +475 475 1 -6.39626 6.68997 68.9083 +476 476 1 -7.94554 4.74724 69.3869 +477 477 1 -8.33909 4.01589 71.7795 +478 478 1 -9.10695 1.65267 72.258 +479 479 1 -9.21843 0.829673 74.6507 +480 480 1 -9.10695 -1.65267 75.1292 +481 481 1 -8.92215 -2.46236 77.5219 +482 482 1 -7.94554 -4.74724 78.0004 +483 483 1 -4.38598 8.15052 61.7304 +484 484 1 -6.39626 6.68997 62.2089 +485 485 1 -6.9702 6.08968 64.6016 +486 486 1 -8.33909 4.01589 65.0801 +487 487 1 -8.6655 3.25222 67.4727 +488 488 1 -9.21843 0.829673 67.9513 +489 489 1 -9.25569 0 70.3439 +490 490 1 -8.92215 -2.46236 70.8224 +491 491 1 -8.6655 -3.25222 73.2151 +492 492 1 -7.48801 -5.44036 73.6936 +493 493 1 -6.9702 -6.08968 76.0863 +494 494 1 -5.09893 -7.72456 76.5648 +495 495 1 -4.38598 -8.15052 78.9575 +496 496 1 -2.05959 -9.02364 79.436 +497 497 1 -7.48801 5.44036 60.2948 +498 498 1 -8.6655 3.25222 60.7733 +499 499 1 -8.92215 2.46236 63.166 +500 500 1 -9.25569 0 63.6445 +501 501 1 -9.21843 -0.829673 66.0371 +502 502 1 -8.6655 -3.25222 66.5157 +503 503 1 -8.33909 -4.01589 68.9083 +504 504 1 -6.9702 -6.08968 69.3869 +505 505 1 -6.39626 -6.68997 71.7795 +506 506 1 -4.38598 -8.15052 72.258 +507 507 1 -3.63772 -8.51087 74.6507 +508 508 1 -1.24242 -9.17193 75.1292 +509 509 1 -0.415255 -9.24638 77.5219 +510 510 1 2.05959 -9.02364 78.0004 +511 511 1 -9.10695 -1.65267 61.7304 +512 512 1 -8.33909 -4.01589 62.2089 +513 513 1 -7.94554 -4.74724 64.6016 +514 514 1 -6.39626 -6.68997 65.0801 +515 515 1 -5.77083 -7.23639 67.4727 +516 516 1 -3.63772 -8.51087 67.9513 +517 517 1 -2.86017 -8.80269 70.3439 +518 518 1 -0.415255 -9.24638 70.8224 +519 519 1 0.415255 -9.24638 73.2151 +520 520 1 2.86017 -8.80269 73.6936 +521 521 1 3.63772 -8.51087 76.0863 +522 522 1 5.77083 -7.23639 76.5648 +523 523 1 6.39626 -6.68997 78.9575 +524 524 1 7.94554 -4.74724 79.436 +525 525 1 -7.48801 -5.44036 60.2948 +526 526 1 -5.77083 -7.23639 60.7733 +527 527 1 -5.09893 -7.72456 63.166 +528 528 1 -2.86017 -8.80269 63.6445 +529 529 1 -2.05959 -9.02364 66.0371 +530 530 1 0.415255 -9.24638 66.5157 +531 531 1 1.24242 -9.17193 68.9083 +532 532 1 3.63772 -8.51087 69.3869 +533 533 1 4.38598 -8.15052 71.7795 +534 534 1 6.39626 -6.68997 72.258 +535 535 1 6.9702 -6.08968 74.6507 +536 536 1 8.33909 -4.01589 75.1292 +537 537 1 8.6655 -3.25222 77.5219 +538 538 1 9.21843 -0.829673 78.0004 +539 539 1 -1.24242 -9.17193 61.7304 +540 540 1 1.24242 -9.17193 62.2089 +541 541 1 2.05959 -9.02364 64.6016 +542 542 1 4.38598 -8.15052 65.0801 +543 543 1 5.09893 -7.72456 67.4727 +544 544 1 6.9702 -6.08968 67.9513 +545 545 1 7.48801 -5.44036 70.3439 +546 546 1 8.6655 -3.25222 70.8224 +547 547 1 8.92215 -2.46236 73.2151 +548 548 1 9.25569 0 73.6936 +549 549 1 2.86017 -8.80269 60.2948 +550 550 1 5.09893 -7.72456 60.7733 +551 551 1 5.77083 -7.23639 63.166 +552 552 1 7.48801 -5.44036 63.6445 +553 553 1 7.94554 -4.74724 66.0371 +554 554 1 8.92215 -2.46236 66.5157 +555 555 1 9.10695 -1.65267 68.9083 +556 556 1 9.21843 0.829673 69.3869 +557 557 1 8.33909 -4.01589 61.7304 +558 558 1 9.10695 -1.65267 62.2089 +559 559 1 9.21843 -0.829673 64.6016 +560 560 1 9.10695 1.65267 65.0801 +561 561 1 9.21843 0.829673 96.1845 +562 562 1 8.6655 3.25222 96.6631 +563 563 1 8.33909 4.01589 99.0557 +564 564 1 6.9702 6.08968 99.5342 +565 565 1 9.10695 1.65267 91.8778 +566 566 1 8.33909 4.01589 92.3563 +567 567 1 7.94554 4.74724 94.7489 +568 568 1 6.39626 6.68997 95.2275 +569 569 1 5.77083 7.23639 97.6201 +570 570 1 3.63772 8.51087 98.0987 +571 571 1 8.92215 2.46236 87.571 +572 572 1 7.94554 4.74724 88.0495 +573 573 1 7.48801 5.44036 90.4422 +574 574 1 5.77083 7.23639 90.9207 +575 575 1 5.09893 7.72456 93.3134 +576 576 1 2.86017 8.80269 93.7919 +577 577 1 2.05959 9.02364 96.1845 +578 578 1 -0.415255 9.24638 96.6631 +579 579 1 -1.24242 9.17193 99.0557 +580 580 1 -3.63772 8.51087 99.5342 +581 581 1 9.25569 0 80.393 +582 582 1 8.92215 2.46236 80.8716 +583 583 1 8.6655 3.25222 83.2642 +584 584 1 7.48801 5.44036 83.7428 +585 585 1 6.9702 6.08968 86.1354 +586 586 1 5.09893 7.72456 86.6139 +587 587 1 4.38598 8.15052 89.0066 +588 588 1 2.05959 9.02364 89.4851 +589 589 1 1.24242 9.17193 91.8778 +590 590 1 -1.24242 9.17193 92.3563 +591 591 1 -2.05959 9.02364 94.7489 +592 592 1 -4.38598 8.15052 95.2275 +593 593 1 -5.09893 7.72456 97.6201 +594 594 1 -6.9702 6.08968 98.0987 +595 595 1 6.39626 6.68997 81.8286 +596 596 1 4.38598 8.15052 82.3072 +597 597 1 3.63772 8.51087 84.6998 +598 598 1 1.24242 9.17193 85.1783 +599 599 1 0.415255 9.24638 87.571 +600 600 1 -2.05959 9.02364 88.0495 +601 601 1 -2.86017 8.80269 90.4422 +602 602 1 -5.09893 7.72456 90.9207 +603 603 1 -5.77083 7.23639 93.3134 +604 604 1 -7.48801 5.44036 93.7919 +605 605 1 -7.94554 4.74724 96.1845 +606 606 1 -8.92215 2.46236 96.6631 +607 607 1 -9.10695 1.65267 99.0557 +608 608 1 -9.21843 -0.829673 99.5342 +609 609 1 2.86017 8.80269 80.393 +610 610 1 0.415255 9.24638 80.8716 +611 611 1 -0.415255 9.24638 83.2642 +612 612 1 -2.86017 8.80269 83.7428 +613 613 1 -3.63772 8.51087 86.1354 +614 614 1 -5.77083 7.23639 86.6139 +615 615 1 -6.39626 6.68997 89.0066 +616 616 1 -7.94554 4.74724 89.4851 +617 617 1 -8.33909 4.01589 91.8778 +618 618 1 -9.10695 1.65267 92.3563 +619 619 1 -9.21843 0.829673 94.7489 +620 620 1 -9.10695 -1.65267 95.2275 +621 621 1 -8.92215 -2.46236 97.6201 +622 622 1 -7.94554 -4.74724 98.0987 +623 623 1 -4.38598 8.15052 81.8286 +624 624 1 -6.39626 6.68997 82.3072 +625 625 1 -6.9702 6.08968 84.6998 +626 626 1 -8.33909 4.01589 85.1783 +627 627 1 -8.6655 3.25222 87.571 +628 628 1 -9.21843 0.829673 88.0495 +629 629 1 -9.25569 0 90.4422 +630 630 1 -8.92215 -2.46236 90.9207 +631 631 1 -8.6655 -3.25222 93.3134 +632 632 1 -7.48801 -5.44036 93.7919 +633 633 1 -6.9702 -6.08968 96.1845 +634 634 1 -5.09893 -7.72456 96.6631 +635 635 1 -4.38598 -8.15052 99.0557 +636 636 1 -2.05959 -9.02364 99.5342 +637 637 1 -7.48801 5.44036 80.393 +638 638 1 -8.6655 3.25222 80.8716 +639 639 1 -8.92215 2.46236 83.2642 +640 640 1 -9.25569 0 83.7428 +641 641 1 -9.21843 -0.829673 86.1354 +642 642 1 -8.6655 -3.25222 86.6139 +643 643 1 -8.33909 -4.01589 89.0066 +644 644 1 -6.9702 -6.08968 89.4851 +645 645 1 -6.39626 -6.68997 91.8778 +646 646 1 -4.38598 -8.15052 92.3563 +647 647 1 -3.63772 -8.51087 94.7489 +648 648 1 -1.24242 -9.17193 95.2275 +649 649 1 -0.415255 -9.24638 97.6201 +650 650 1 2.05959 -9.02364 98.0987 +651 651 1 -9.10695 -1.65267 81.8286 +652 652 1 -8.33909 -4.01589 82.3072 +653 653 1 -7.94554 -4.74724 84.6998 +654 654 1 -6.39626 -6.68997 85.1783 +655 655 1 -5.77083 -7.23639 87.571 +656 656 1 -3.63772 -8.51087 88.0495 +657 657 1 -2.86017 -8.80269 90.4422 +658 658 1 -0.415255 -9.24638 90.9207 +659 659 1 0.415255 -9.24638 93.3134 +660 660 1 2.86017 -8.80269 93.7919 +661 661 1 3.63772 -8.51087 96.1845 +662 662 1 5.77083 -7.23639 96.6631 +663 663 1 6.39626 -6.68997 99.0557 +664 664 1 7.94554 -4.74724 99.5342 +665 665 1 -7.48801 -5.44036 80.393 +666 666 1 -5.77083 -7.23639 80.8716 +667 667 1 -5.09893 -7.72456 83.2642 +668 668 1 -2.86017 -8.80269 83.7428 +669 669 1 -2.05959 -9.02364 86.1354 +670 670 1 0.415255 -9.24638 86.6139 +671 671 1 1.24242 -9.17193 89.0066 +672 672 1 3.63772 -8.51087 89.4851 +673 673 1 4.38598 -8.15052 91.8778 +674 674 1 6.39626 -6.68997 92.3563 +675 675 1 6.9702 -6.08968 94.7489 +676 676 1 8.33909 -4.01589 95.2275 +677 677 1 8.6655 -3.25222 97.6201 +678 678 1 9.21843 -0.829673 98.0987 +679 679 1 -1.24242 -9.17193 81.8286 +680 680 1 1.24242 -9.17193 82.3072 +681 681 1 2.05959 -9.02364 84.6998 +682 682 1 4.38598 -8.15052 85.1783 +683 683 1 5.09893 -7.72456 87.571 +684 684 1 6.9702 -6.08968 88.0495 +685 685 1 7.48801 -5.44036 90.4422 +686 686 1 8.6655 -3.25222 90.9207 +687 687 1 8.92215 -2.46236 93.3134 +688 688 1 9.25569 0 93.7919 +689 689 1 2.86017 -8.80269 80.393 +690 690 1 5.09893 -7.72456 80.8716 +691 691 1 5.77083 -7.23639 83.2642 +692 692 1 7.48801 -5.44036 83.7428 +693 693 1 7.94554 -4.74724 86.1354 +694 694 1 8.92215 -2.46236 86.6139 +695 695 1 9.10695 -1.65267 89.0066 +696 696 1 9.21843 0.829673 89.4851 +697 697 1 8.33909 -4.01589 81.8286 +698 698 1 9.10695 -1.65267 82.3072 +699 699 1 9.21843 -0.829673 84.6998 +700 700 1 9.10695 1.65267 85.1783 diff --git a/Exercise_1/exercise-1-solution.ipynb b/Exercise_1/exercise-1-solution.ipynb new file mode 100644 index 0000000..26abd06 --- /dev/null +++ b/Exercise_1/exercise-1-solution.ipynb @@ -0,0 +1,850 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# -- Exercise 1: Determination of lattice constants via equations of state and a general second-degree polynomial fit -- #\n", + "## 0. Introduction to the course\n", + "\n", + "Welcome to Molecular and Materials Modelling in the Spring Semester 2023 at the ETH\n", + "Zürich. This interdisciplinary course will explore many facets of computational physics and\n", + "materials science using classical, semi-classical, and quantum-mechanical methodologies.\n", + "In this course, we will gain:\n", + "\n", + "- the ability to select a suitable atomistic approach to model a nanoscale system,\n", + "and to employ a simulation package to compute quantities, thereby providing a\n", + "theoretically-sound explanation of the results of a given experiment;\n", + "\n", + "- knowledge of empirical force fields and insight into electronic structure theory, with\n", + "emphasis on density-functional theory\n", + "\n", + "- proficiency in experiments performed in silico. We will interpret the experimental in-\n", + "put, choose the level of theory, model the approximations, perform calculations on a\n", + "supercomputer, and finally collect and represent the results using Juypter notebooks\n", + "and Python scripting.\n", + "\n", + "### 0.1. Course structure\n", + "\n", + "The meeting times and places of this course are as follows:\n", + "\n", + "- Semester: Spring Semester 2023\n", + "- Wednesdays: lecture from 8.15 - 10.00;\n", + "- Credit points: 4 LP (dt. *Leistungspunkte*)\n", + "- Meeting place: ETZ E9 in ETH Zentrum\n", + "- Final grade: The final grade will be the result of a 30 minutes individual oral exam\n", + "on the course topics (50%) and the cumulative grade about exercises assigned after\n", + "each exercise appointment (50%). The students will receive a small computational\n", + "exercise about the topics treated in the class, that could be solved within different\n", + "programming environments (we provide python based Jupyter notebooks) and if\n", + "necessary high performance computing resources. A short report and/or answer to\n", + "a few questions will be delivered at the next lecture appointment. At the end of the\n", + "oral exam, the solutions will be briefly discussed and a grade will be given which\n", + "will take into account the commitment and the quality of the solutions/report, as\n", + "well as the discussion on them at the exam.\n", + "\n", + "### Assignments structure\n", + "\n", + "Assignments are designed to allow the students to apply the content of the lecture in a\n", + "hands-on setting. As such, they constitute an integral aspect of the course – a fact reflected\n", + "in their weighting of 50% of the final grade.\n", + "\n", + "Assignments are to be completed within the Jupyter notebook itself, **within the\n", + "respective fields in which they appear** in the exercise-i-workbook.ipynb file. For\n", + "answers which are to be written in text (an explanation or elucidation of a phenomenon,\n", + "for instance), the cell should be in the markdown format. For answers involving bash\n", + "scripting, the `` environment within the markdown format should suffice.\n", + "Standard Python code can be written directly in the cell. All assignments, which are to\n", + "be submitted for grading, will appear in a box such as this:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Assignment 1: Playing with Markdown and Latex" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this course, we will be making ample use of both Markdown and Python within a Jupyter Notebook. In order to familiarise ourselves with some of the syntax, here are some introductory tasks to practice different modes of syntax:\n", + "1. Sometimes we will want to highlight words or phrases by means of bold or italicised text. Write something in bold, something in italicised, and then something in bold and italicised text:\n", + " * **bold**, *italicised*, ***bold italicised***\n", + "2. Formatting and appearance are important. Typeset \"import matplotlib.pyplot as plt\" here in Markdown using the monospaced slab serif typeface, so that it 'looks' more like code.\n", + " * `import matplotlib.pyplot as plt`\n", + "3. Write the time-dependent 3D Schrödinger Equation (so, using the del-operator) in SI-units (so, with all the physical constants) for some arbitrary wavefunction $\\psi(\\vec{x})$ and some arbitrary potential $V(x)$ for $x := |\\vec{x}|$. If you don't know the Schrödinger Equation by heart, just Google it:\n", + "\n", + "$$\\left(\\frac{\\hbar^2}{2m}\\nabla^2 + V(x) \\right)\\psi(\\vec{x}) = i \\hbar \\frac{∂\\psi(\\vec{x})}{∂t}$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### End Assignment 1\n", + "\n", + "..., and should furthermore fulfill **all** of the following criteria:\n", + "\n", + "- Assignments shall be submitted **on or before 18.00h of the following Sunday**\n", + "to `ramador@ethz.ch`;\n", + "- Follow the format: SURNAME-FIRSTNAME_exercise-i-workbook.ipynb, where i of\n", + "course denotes the exercise / week number;\n", + "- Assignments should be sensibly worked out, even if the submitted solution is incor-\n", + "rect. **If, after having attempted the solution, and after Googling around\n", + "for help, you are still unable to arrive at a working answer, please explain\n", + "what you tried and what you searched for in your submission**, and, if\n", + "necessary, what logic you applied and where you got stuck. Standstills are\n", + "all too common in original research, for which reason you will still get credit for\n", + "the exercise for a reasonably thorough explanation.\n", + "\n", + "If all of this seems a bit overwhelming, don’t worry – we’ll cover everything in this\n", + "course, and Raymond Amador, Daniele Passerone, and Carlo Pignedoli are of course\n", + "reachable by email. Solutions will then be posted by the following Monday.\n", + "\n", + "### 0.3. The *compendium scriptorum*\n", + "\n", + "Over the course of the semester, we will be using several bash scripts to automate certain\n", + "tasks or extract data. Scripts which are to be added to this compendium scriptorum will\n", + "be enclosed in the following box:\n", + "\n", + "```\n", + "#!/bin/bash\n", + "##--SCRIPT TO BE ADDED--##\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1 The Atomic Simulation Environment" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 1.2 The atomization energy of a nitrogen molecule\n", + "\n", + "We begin toying around with the Atomic Simulation Environment (ASE) by investigating\n", + "some basic properties of materials: in the current exercise, we first want to use ASE to\n", + "calculate the **atomization energy** of a nitrogen molecule. The atomization energy,\n", + "or more precisely, the **enthalpy of atomization**, is defined as the change in enthalpy\n", + "$∆_{at}H$ when the bonds of a compound are broken, and the component atoms are thereby\n", + "separated into individual atoms. We therefore arrive at the following definition: $$∆_{at}H=E_{N_2} - 2E_N, $$\n", + "where $E_{N_2}$ and $E_N$ represent the energy of the $N_2$ molecule and that of the single N atom, respectively." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Assignment 2: Atomization energy\n", + "Why must the atomization energy always be positive?\n", + "
A: *Atomization energy is always positive because this is the energy that has to be supplied to break up a bond (which was an energetically favourable state) and separate atoms (into an energetically unfavourable state).*" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### End Assignment 2\n", + "\n", + "The `!` appearing in `[1]` directs the Jupyter notebook to interact directly with the\n", + "Terminal, as if the command were being carried out directly in the command line. This\n", + "cell installs the necessary packages to our Jupyter notebook which will be required for this\n", + "(and all future) exercise.\n", + "`\n", + "We now turn to the second and third cells, which import various libraries from the\n", + "packages we’ve just installed, and then create an Atoms object out of the object class;\n", + "execute them." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "#!pip install ase\n", + "#!pip install nglview" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "2e2a5801336d4cddb1cf9f3168a48af9", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from ase import Atoms\n", + "from ase.calculators.emt import EMT\n", + "import nglview as nv" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In `[3]`, an Atoms object containing one nitrogen is created and a fast EMT – effective\n", + "medium theory – calculator is attached to it simply as an argument. In ASE, a calculator\n", + "is a sort of ”black box” which can take atomic numbers and atomic positions from an Atoms\n", + "object and calculate the energy, forces, and (sometimes) stresses. In order to calculate\n", + "forrces and energies, we need to attach a calculator to an Atoms object. The total energy\n", + "for the isolated atom is then calculated and stored in the e_atom variable.\n", + "In the following cell we define the atom species as well as the atomic coordinates of\n", + "the nitrogen molecule," + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "atom = Atoms('N')\n", + "atom.calc = EMT()\n", + "e_atom = atom.get_potential_energy()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the following cell we define the atom species as well as the atomic coordinates of\n", + "the nitrogen molecule,and then calculate the atomization energy according to the equation above:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "d = 1.1\n", + "molecule = Atoms('2N', [(0., 0., 0.), (0., 0., d)])\n", + "molecule.calc = EMT()\n", + "e_molecule = molecule.get_potential_energy()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can view the structure:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "def view_structure(structure):\n", + " #t1=make_supercell(structure,[[3,0,0],[0,3,0],[0,0,3]])\n", + " t = nv.ASEStructure(structure)\n", + " w = nv.NGLWidget(t, gui=True)\n", + " w.add_unitcell()\n", + " #w.add_spacefill()\n", + " return w" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "5834ab0f2e1c455c93994cfb159d433f", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "NGLWidget()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "e6b36bb4786140d2814a6f8a2739797c", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Tab(children=(Box(children=(Box(children=(Box(children=(Label(value='step'), IntSlider(value=1, min=-100)), la…" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "view_structure(molecule)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and then calculate the atomization energy according to Eq. 1.2:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "e_atomization = e_molecule - 2 * e_atom" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Running the last cell in this section generates the output we want:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Nitrogen atom energy: 5.10 eV\n", + "Nitrogen molecule energy: 0.44 eV\n", + "Atomization energy: 9.76 eV\n" + ] + } + ], + "source": [ + "print('Nitrogen atom energy: %5.2f eV' % e_atom)\n", + "print('Nitrogen molecule energy: %5.2f eV' % e_molecule)\n", + "print('Atomization energy: %5.2f eV' % -e_atomization)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2. Optimizsation using an equation of state: FCC Ag\n", + "\n", + "In this and the following section, we now want to determine lattice constants of two bulk\n", + "systems using polynomial fitting to a thermodynamic equation of state (this section),\n", + "and a general second-degree polynomial (next section).\n", + "\n", + "### 2.1 Theoretical underpinnings\n", + "\n", + "An equation of state is a relation between certain extensive and intensive thermody-\n", + "namic variables Zi of the system: $$f(Z_1,...Z_N) = 0$$\n", + "\n", + "where the relation $f$ is generally invertible and solvable in terms of the quantities $Z_i$\n", + "(at least in theory). The most well known equations of state (encountered for instance in\n", + "courses in thermodynamics and statistical mechanics) are\n", + "\n", + "- the **ideal gas**: $$pV=Nk_BT$$;\n", + "- the **van der Waals gas**: $$\\left(p+a\\frac{n^2}{V^2}\\right)(V-nb) = nRT$$\n", + "- the **virial expansion**: $$pV = Nk_BT\\left[1+B_1\\left(\\frac{N}{V}\\right)+B_2\\left(\\frac{N^2}{V^2}\\right) +\\dots\\right],$$\n", + "\n", + "where the pressure $p$, volume $V$ , number of atoms $N$, the Boltzmann constant $k_B$,\n", + "temperature $T$, phenomenological material constants $a$ and $b$, number of moles $n$, the ideal\n", + "gas constant $R$, and the virial coefficients $B_i$, all exist and are well defined. The **Birch-\n", + "Murnaghan equation of state** is the fit that we want to investigate in this section, and\n", + "reads: $$p=\\frac{3B_0}{2}\\left[\\left(\\frac{V_0}{V}\\right)^{\\frac{7}{3}}-\\left(\\frac{V_0}{V}\\right)^{\\frac{5}{3}}\\right] \\left\\{1+\\frac{3}{4}(B'_0-4)\\left[\\left(\\frac{V_0}{V}\\right)^{\\frac{2}{3}}-1\\right] \\right\\},$$\n", + "\n", + "where $V_0$ is the reference volume, $V$ the deformation volume, $B_0$ the bulk modulus, and $B'_0$ the derivative of the bulk modulus with respect to pressure $p$.\n", + "\n", + "### 2.1. Computational implementation\n", + "\n", + "For this section we will need to import the NumPy library as well as the Trajectory\n", + "module:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "from ase.io.trajectory import Trajectory\n", + "from ase.io import read\n", + "from ase.units import kJ\n", + "from ase.eos import EquationOfState" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We first want to calculate the total energy of (bulk) FCC silver for five different lattice\n", + "constants. Using the ASE modules we define the approximate lattice constants (taken from\n", + "the literature or wherever else) as well as the species of the unit cell:" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "a = 4.0 # approximate lattice constant\n", + "b = a / 2\n", + "ag = Atoms('Ag',\n", + " cell=[(0, b, b), (b, 0, b), (b, b, 0)],\n", + " pbc=1,\n", + " calculator=EMT()) # use EMT potential\n", + "cell = ag.get_cell()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The next cell creates the Trajectory object:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "traj = Trajectory('Ag.traj', 'w')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and the following writes the file for each of the 5 lattice constants:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "for x in np.linspace(0.95, 1.05, 5):\n", + " ag.set_cell(cell * x, scale_atoms=True)\n", + " ag.get_potential_energy()\n", + " traj.write(ag)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We are now in a position to analyse the result using the EquationOfState class. For\n", + "each of the five configurations we have just generated, we want to use ASE to extract both\n", + "the volumes and total energies, in order that we might plot these values and determine\n", + "the volume for which the system attains its energetic minimum. The following cell reads\n", + "the five configurations," + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "configs = read('Ag.traj@0:5') # read 5 configurations" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "the next cell extracts the volumes and energies for each configuration," + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "# Extract volumes and energies:\n", + "volumes = [ag.get_volume() for ag in configs]\n", + "energies = [ag.get_potential_energy() for ag in configs]\n", + "eos = EquationOfState(volumes, energies, eos='birchmurnaghan')\n", + "v0, e0, B = eos.fit()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and the last cell in this section generates our energy-volume plot:" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "100.03821770846413 GPa\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "print(B / kJ * 1.0e24, 'GPa')\n", + "eos.plot('Ag-eos.png')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3. Optimization of two lattice parameters: hcp Ni\n", + "\n", + "Having just done the volume optimization on an FCC crystal, we now turn to the hexagonal close packed (hcp) structure, the unit cell (containing 2 atoms) of which can be seen in Fig. \\ref{Fig:unitcells}. In this section we will investigate nickel. Using the \\texttt{EMT} potential we can try to find the $a$ and $c$ lattice constants; first we make an initial guess for $a$ and $c$ using the nearest neighbour distance as well as the ideal $c/a$ ratio.\n", + "\n", + "We perform the $9=3\\times 3$ calculations around equilibrium (respectively 3 each for $a$ and $c$) by executing the following two cells:" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "from ase.build import bulk, make_supercell" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "a0 = 3.52 / np.sqrt(2)\n", + "c0 = np.sqrt(8 / 3.0) * a0\n", + "n_grid=10\n", + "\n", + "traj = Trajectory('Ni.traj', 'w')\n", + "\n", + "eps = 0.0005\n", + "for a in a0 * np.linspace(1 - eps, 1 + eps, n_grid):\n", + " for c in c0 * np.linspace(1 - eps, 1 + eps, n_grid):\n", + " ni = bulk('Ni', 'hcp', a=a, c=c)\n", + " ni.calc = EMT()\n", + " ni.get_potential_energy()\n", + " #print(\"potential energy at this cycle:\" + str(ni.get_potential_energy()))\n", + " traj.write(ni)\n", + " #print(\"cell at this cycle:\" + str(ni.cell))" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Cell([[2.4902603777115355, 0.0, 0.0], [-1.2451301888557678, 2.156628749136021, 0.0], [0.0, 0.0, 4.066578168042512]])" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ni.cell" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "From this we see that we can access `a` from `ni.cell[0,0]` and `c` from `ni.cell[2,2]`.\n", + "Before proceeding any further, let us visualise the unit cell of hcp Ni. Since hcp Ni\n", + "only contains 2 atoms per unit cell, however, we want to create a supercell in order to\n", + "visualise the periodicity`" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "8f44b57c5cc24a9390c667d802f87844", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "NGLWidget()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "9d3fdf88fc9a4d3d8dc408e8a9dc7b86", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Tab(children=(Box(children=(Box(children=(Box(children=(Label(value='step'), IntSlider(value=1, min=-100)), la…" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "view_structure(ni)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Play around a bit with the gui and also with the repetition of the supercell in order\n", + "to get a feel for the periodicity. Using some **list comprehension** in Python, we can execute the following cells to first\n", + "define the energies array:" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "configs = read('Ni.traj@:')\n", + "energies = [config.get_potential_energy() for config in configs]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and then defining the lattice parameters a resp. c as their own arrays:" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "a = np.array([config.cell[0, 0] for config in configs])\n", + "c = np.array([config.cell[2, 2] for config in configs])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We want to fit the total energy to a general second-degree polynomial, quadratic in the two \"variables\" $a$ and $c$:\n", + "$$\\alpha_0 + \\alpha_1a + \\alpha_2c + \\alpha_3a^2 + \\alpha_4ac + \\alpha_5c^2$$\n", + "\n", + "#### Assignment 3: Lattice constants\n", + "Use the ```np.linalg.lstsq()``` module to extract the minimum; what are the values for the lattice constants $a$ and $c$? *Hint*: do this by:\n", + "1. defining an array of coefficients $\\alpha_i$ as defined in Eq. 2 of the Latex file\n", + "2. using the `np.linalg.lsqsq()` method to obtain a regression. You will need to use the transpose of the array of coefficients (defined in step 1) as well as the `energies` array as two of the arguments; I recommend using `rcond=-1` for the `rcond` parameter; Google around for the documentation if you are unsure;\n", + "3. extracting $\\alpha_0$, $\\alpha_1$, and $\\alpha_2$ from the regression obtained in step 2;\n", + "4. using the `np.linalg.solve()` method to find the true lattice constants $a_0$ and $c_0$." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "## SOLUTION\n", + "functions = np.array([a**0, a, c, a**2, a * c, c**2])\n", + "\n", + "A = np.empty((100, 6))\n", + "A[:, 0] = 1\n", + "A[:, 1] = a\n", + "A[:, 2] = c\n", + "A[:, 3] = np.power(a, 2)\n", + "A[:, 4] = c*a\n", + "A[:, 5] = np.power(c, 2)\n", + "alphas = np.linalg.lstsq(A, energies, rcond=-1)[0]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We want to fit the total energy to a general second-degree polynomial, quadratic in the two \"variables\" $a$ and $c$:\n", + "\n", + "\\begin{equation}\n", + "\\alpha_0 + \\alpha_1a + \\alpha_2c + \\alpha_3a^2 + \\alpha_4ac + \\alpha_5c^2\n", + "\\end{equation}\n", + "\n", + "Now we calculate its derivative:\n", + "$$\n", + "\\frac{\\partial (1)}{\\partial a} = \\alpha_1 + 2\\alpha_3a + \\alpha_4c\n", + "$$\n", + "\n", + "$$\n", + "\\frac{\\partial (1)}{\\partial c} = \\alpha_2 + \\alpha_4a + 2\\alpha_5c\n", + "$$\n", + "we set the derivative to zero and re-arrange the formulae:\n", + "$$\\Rightarrow$$\n", + "\n", + "$$\n", + "2\\alpha_3a + \\alpha_4c = -\\alpha_1\n", + "$$\n", + "\n", + "$$\n", + "\\alpha_4a + 2\\alpha_5c = -\\alpha_2\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we solve for $a$ and $c$: " + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Lattice constant a0: 2.465, Lattice constant c0: 4.023\n" + ] + } + ], + "source": [ + "A = np.array([\n", + " [2*alphas[3], alphas[4]],\n", + " [alphas[4], 2*alphas[5]]\n", + "])\n", + "b = np.array([alphas[1], alphas[2]])\n", + "a0, c0 = np.linalg.solve(A, -b)\n", + "\n", + "print(f\"Lattice constant a0: {a0:.3f}, Lattice constant c0: {c0:.3f}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### End Assignment 3" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Assigment 4: Expectations from this course" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Please explain in a few sentences what you hope to learn from this course within the context of your background in classical and quantum mechanics, bash scripting, programming languages, and computational physics." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "##--your code/answer here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### End Assignment 4" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + }, + "vscode": { + "interpreter": { + "hash": "783d7c8e9042dd68e9add47c0b718632a846e28849c908d45a1167fba6f8c7d5" + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/Exercise_1/exercise-1-workbook.ipynb b/Exercise_1/exercise-1-workbook.ipynb new file mode 100644 index 0000000..f2d5777 --- /dev/null +++ b/Exercise_1/exercise-1-workbook.ipynb @@ -0,0 +1,838 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# -- Exercise 1: Determination of lattice constants via equations of state and a general second-degree polynomial fit -- #\n", + "## 0. Introduction to the course\n", + "\n", + "Welcome to Molecular and Materials Modelling in the Spring Semester 2023 at the ETH\n", + "Zürich. This interdisciplinary course will explore many facets of computational physics and\n", + "materials science using classical, semi-classical, and quantum-mechanical methodologies.\n", + "In this course, we will gain:\n", + "\n", + "- the ability to select a suitable atomistic approach to model a nanoscale system,\n", + "and to employ a simulation package to compute quantities, thereby providing a\n", + "theoretically-sound explanation of the results of a given experiment;\n", + "\n", + "- knowledge of empirical force fields and insight into electronic structure theory, with\n", + "emphasis on density-functional theory\n", + "\n", + "- proficiency in experiments performed in silico. We will interpret the experimental in-\n", + "put, choose the level of theory, model the approximations, perform calculations on a\n", + "supercomputer, and finally collect and represent the results using Juypter notebooks\n", + "and Python scripting.\n", + "\n", + "### 0.1. Course structure\n", + "\n", + "The meeting times and places of this course are as follows:\n", + "\n", + "- Semester: Spring Semester 2023\n", + "- Wednesdays: lecture from 8.15 - 10.00;\n", + "- Credit points: 6 LP (dt. *Leistungspunkte*)\n", + "- Meeting place: ETZ E9 in ETH Zentrum\n", + "- Final grade: The final grade will be the result of a 30 minutes individual oral exam\n", + "on the course topics (50%) and the cumulative grade about exercises assigned after\n", + "each exercise appointment (50%). The students will receive a small computational\n", + "exercise about the topics treated in the class, that could be solved within different\n", + "programming environments (we provide python based Jupyter notebooks) and if\n", + "necessary high performance computing resources. A short report and/or answer to\n", + "a few questions will be delivered at the next lecture appointment. At the end of the\n", + "oral exam, the solutions will be briefly discussed and a grade will be given which\n", + "will take into account the commitment and the quality of the solutions/report, as\n", + "well as the discussion on them at the exam.\n", + "\n", + "### 0.2. Course content\n", + "\n", + "The lectures and accompanying exercises will be divided as follows:\n", + "\n", + "1. 22 Feb.: Introduction (DP/RA)\n", + "2. 01 Mar.: Monte Carlo methods (CP)\n", + "3. 08 Mar.: Force fields and potential energy surfaces: locating extrema and transition states (DP/RA)\n", + "4. 15 Mar.: Band structure I (CP)\n", + "5. 22 Mar.: Band structure II (CP)\n", + "6. 29 Mar.: From quantum mechanics to chemical reactions (DP/RA)\n", + "7. 05 Apr.: Density-functional theory I: introduction to theory and simulation (DP/RA)\n", + "8. 12 Apr.: unterrichtsfreie Woche nach Ostern\n", + "9. 19 Apr.: Density-functional theory II: applications to computer experiments on surfaces (DP/RA)\n", + "10. 26 Apr.: Classical molecular dynamics (DP/RA)\n", + "11. 03 May: Machine learning I: data and dimensionality reduction (CP)\n", + "12. 10 May: Machine learning II: data and dimensionality reduction continued (CP)\n", + "13. 17 May: Thermostats; replica exchange (DP/RA)\n", + "14. 24 May: Computational spectroscopies and microscopy (x-ray, infrared, STM) (DP/RA)\n", + "15. 31 May: Free energy methods (DP/RA)\n", + "\n", + "### 0.3. Assignments structure\n", + "\n", + "Assignments are designed to allow the students to apply the content of the lecture in a\n", + "hands-on setting. As such, they constitute an integral aspect of the course – a fact reflected\n", + "in their weighting of 50% of the final grade.\n", + "\n", + "Assignments are to be completed within the Jupyter notebook itself, **within the\n", + "respective fields in which they appear** in the exercise-i-workbook.ipynb file. For\n", + "answers which are to be written in text (an explanation or elucidation of a phenomenon,\n", + "for instance), the cell should be in the markdown format. For answers involving bash\n", + "scripting (or really any coding environment), the `` environment within the markdown format should suffice.\n", + "Standard Python code can be written directly in the cell. All assignments, which are to\n", + "be submitted for grading, will appear in a box such as this:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Assignment 1: Playing with Markdown and Latex" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this course, we will be making ample use of both Markdown and Python within a Jupyter Notebook. In order to familiarise ourselves with some of the syntax, here are some introductory tasks to practice different modes of syntax:\n", + "1. Sometimes we will want to highlight words or phrases by means of bold or italicised text. Write something in bold, something in italicised, and then something in bold and italicised text.\n", + "2. Formatting and appearance are important. Typeset \"import matplotlib.pyplot as plt\" here in Markdown using the monospaced slab serif typeface, so that it 'looks' more like code.\n", + "3. Write the time-dependent 3D Schrödinger Equation (so, using the del-operator) in SI-units (so, with all the physical constants) for some arbitrary wavefunction $\\psi(\\vec{x})$ and some arbitrary potential $V(x)$ for $x := |\\vec{x}|$. If you don't know the Schrödinger Equation by heart, just Google it." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### End Assignment 1\n", + "\n", + "..., and should furthermore fulfill **all** of the following criteria:\n", + "\n", + "- Assignments shall be submitted **on or before 18.00h of the following Sunday**\n", + "to `ramador@ethz.ch`;\n", + "- Assignments should be submitted as **folders** containing all necessary files to ensure their proper opening, including but not limited to generated image and text files. *Please do not include the wavefunction `.wfn` files in the submitted folder, as these files are quite large*.\n", + "- The Jupyter notebooks themselves should follw the format: SURNAME-FIRSTNAME_exercise-i-workbook.ipynb, where i of\n", + "course denotes the exercise / week number;\n", + "- Assignments should be sensibly worked out, even if the submitted solution is incor-\n", + "rect. **If, after having attempted the solution, and after Googling around\n", + "for help, you are still unable to arrive at a working answer, please explain\n", + "what you tried and what you searched for in your submission**, and, if\n", + "necessary, what logic you applied and where you got stuck. Standstills are\n", + "all too common in original research, for which reason you will still get credit for\n", + "the exercise for a reasonably thorough explanation.\n", + "\n", + "If all of this seems a bit overwhelming, don’t worry – we’ll cover everything in this\n", + "course, and Raymond Amador, Daniele Passerone, and Carlo Pignedoli are of course\n", + "reachable by email. Solutions will then be posted by the following Monday.\n", + "\n", + "### 0.3. The *compendium scriptorum*\n", + "\n", + "Over the course of the semester, we will be using several bash scripts to automate certain\n", + "tasks or extract data. Scripts which are to be added to this compendium scriptorum will\n", + "be enclosed in the following box:\n", + "\n", + "```\n", + "#!/bin/bash\n", + "##--SCRIPT TO BE ADDED--##\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1 The Atomic Simulation Environment" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 1.2 The atomization energy of a nitrogen molecule\n", + "\n", + "We begin toying around with the Atomic Simulation Environment (ASE) by investigating\n", + "some basic properties of materials: in the current exercise, we first want to use ASE to\n", + "calculate the **atomization energy** of a nitrogen molecule. The atomization energy,\n", + "or more precisely, the **enthalpy of atomization**, is defined as the change in enthalpy\n", + "$∆_{at}H$ when the bonds of a compound are broken, and the component atoms are thereby\n", + "separated into individual atoms. We therefore arrive at the following definition: $$∆_{at}H=E_{N_2} - 2E_N, $$\n", + "where $E_{N_2}$ and $E_N$ represent the energy of the $N_2$ molecule and that of the single N atom, respectively." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Assignment 2: Atomization energy\n", + "Why must the atomization energy always be positive?\n", + "
A:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### End Assignment 2\n", + "\n", + "The `!` appearing in `[1]` directs the Jupyter notebook to interact directly with the\n", + "Terminal, as if the command were being carried out directly in the command line. This\n", + "cell installs the necessary packages to our Jupyter notebook which will be required for this\n", + "(and all future) exercise.\n", + "`\n", + "We now turn to the second and third cells, which import various libraries from the\n", + "packages we’ve just installed, and then create an Atoms object out of the object class;\n", + "execute them." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "#!pip install ase\n", + "#!pip install nglview" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "0688248f1b68489888e6dd4e2feff595", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from ase import Atoms\n", + "from ase.calculators.emt import EMT\n", + "import nglview as nv" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In `[3]`, an Atoms object containing one nitrogen is created and a fast EMT – effective\n", + "medium theory – calculator is attached to it simply as an argument. In ASE, a calculator\n", + "is a sort of ”black box” which can take atomic numbers and atomic positions from an Atoms\n", + "object and calculate the energy, forces, and (sometimes) stresses. In order to calculate\n", + "forrces and energies, we need to attach a calculator to an Atoms object. The total energy\n", + "for the isolated atom is then calculated and stored in the e_atom variable.\n", + "In the following cell we define the atom species as well as the atomic coordinates of\n", + "the nitrogen molecule," + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "atom = Atoms('N')\n", + "atom.calc = EMT()\n", + "e_atom = atom.get_potential_energy()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the following cell we define the atom species as well as the atomic coordinates of\n", + "the nitrogen molecule,and then calculate the atomization energy according to the equation above:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "d = 1.1\n", + "molecule = Atoms('2N', [(0., 0., 0.), (0., 0., d)])\n", + "molecule.calc = EMT()\n", + "e_molecule = molecule.get_potential_energy()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can view the structure:" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [], + "source": [ + "def view_structure(structure):\n", + " \"\"\"\n", + " Use the ASE library to view an atoms object.\n", + "\n", + " Parameters\n", + " ----------\n", + "\n", + " structure: Atoms object\n", + "\n", + " Returns\n", + " -------\n", + "\n", + " NGLWidget with GUI: object to be viewed\n", + " \n", + " \"\"\"\n", + " #t1=make_supercell(structure,[[3,0,0],[0,3,0],[0,0,3]])\n", + " t = nv.ASEStructure(structure)\n", + " w = nv.NGLWidget(t, gui=True)\n", + " w.add_unitcell()\n", + " #w.add_spacefill()\n", + " return w" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "bb483e08d033474f82183ececcb9ac35", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "NGLWidget()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "a241833a24bf4515a4966f8eaa518755", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Tab(children=(Box(children=(Box(children=(Box(children=(Label(value='step'), IntSlider(value=1, min=-100)), la…" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "view_structure(molecule)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and then calculate the atomization energy according to Eq. 1.2:" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "e_atomization = e_molecule - 2 * e_atom" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Running the last cell in this section generates the output we want:" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Nitrogen atom energy: 5.10 eV\n", + "Nitrogen molecule energy: 0.44 eV\n", + "Atomization energy: 9.76 eV\n" + ] + } + ], + "source": [ + "print('Nitrogen atom energy: %5.2f eV' % e_atom)\n", + "print('Nitrogen molecule energy: %5.2f eV' % e_molecule)\n", + "print('Atomization energy: %5.2f eV' % -e_atomization)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2. Optimisation using an equation of state: FCC Ag\n", + "\n", + "In this and the following section, we now want to determine lattice constants of two bulk\n", + "systems using polynomial fitting to a thermodynamic equation of state (this section),\n", + "and a general second-degree polynomial (next section).\n", + "\n", + "### 2.1 Theoretical underpinnings\n", + "\n", + "An equation of state is a relation between certain extensive and intensive thermodynamic variables $Z_i$ of the system: $$f(Z_1,...Z_N) = 0$$\n", + "\n", + "where the relation $f$ is generally invertible and solvable in terms of the quantities $Z_i$\n", + "(at least in theory). The most well known equations of state (encountered for instance in\n", + "courses in thermodynamics and statistical mechanics) are\n", + "\n", + "- the **classical ideal gas**: $$pV=Nk_BT$$;\n", + "- the **van der Waals gas**: $$\\left(p+a\\frac{n^2}{V^2}\\right)(V-nb) = nRT$$\n", + "- the **virial expansion**: $$pV = Nk_BT\\left[1+B_1\\left(\\frac{N}{V}\\right)+B_2\\left(\\frac{N^2}{V^2}\\right) +\\dots\\right],$$\n", + "\n", + "where the pressure $p$, volume $V$ , number of atoms $N$, the Boltzmann constant $k_B$,\n", + "temperature $T$, phenomenological material constants $a$ and $b$, number of moles $n$, the ideal\n", + "gas constant $R$, and the virial coefficients $B_i$, all exist and are well defined. The **Birch-\n", + "Murnaghan equation of state** is the fit that we want to investigate in this section, and\n", + "reads: $$p=\\frac{3B_0}{2}\\left[\\left(\\frac{V_0}{V}\\right)^{\\frac{7}{3}}-\\left(\\frac{V_0}{V}\\right)^{\\frac{5}{3}}\\right] \\left\\{1+\\frac{3}{4}(B'_0-4)\\left[\\left(\\frac{V_0}{V}\\right)^{\\frac{2}{3}}-1\\right] \\right\\},$$\n", + "\n", + "where $V_0$ is the reference volume, $V$ the deformation volume, $B_0$ the bulk modulus, and $B'_0$ the derivative of the bulk modulus with respect to pressure $p$.\n", + "\n", + "Given the equivalence of the classical-mechanical and statistical-mechanical definitions of **pressure** *p*, i.e.,\n", + "\n", + "$$\n", + "p = - \\left \\langle \\frac{∂H}{∂V} \\right \\rangle ,\n", + "$$\n", + "\n", + "together with the equivalence of **inner energy** $U$ with the expectation value of the Hamiltonian $\\langle H \\rangle$ in the thermodynamic limit:\n", + "\n", + "$$\n", + "E := U =\\langle H \\rangle,\n", + "$$\n", + "\n", + "we have\n", + "\n", + "$$\n", + "p = - \\left(\\frac{∂E}{∂V}\\right)_{N, T}.\n", + "$$\n", + "\n", + "The internal energy $U=E(V)$ can then be obtained by integrating the pressure. In this exercise, we want this $E$ vs. $V$ plot for the Birch-Murnaghan equation of state. The foregoing reasoning, while (more or less) correct, was admittedly quite rash and even hand-waving: if any of these concepts are unfamiliar to you, consult any standard text on statistical mechanics (I recommend §1.3.5 \"Grundrelation der Thermodynamik\" of *Statistische Physik* by W. Nolting). \n", + "\n", + "### 2.1. Computational implementation\n", + "\n", + "For this section we will need to import the NumPy library as well as the Trajectory\n", + "module:" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "from ase.io.trajectory import Trajectory\n", + "from ase.io import read\n", + "from ase.units import kJ\n", + "from ase.eos import EquationOfState" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We first want to calculate the total energy of (bulk) FCC silver for five different lattice\n", + "constants. Using the ASE modules we define the approximate lattice constants (taken from\n", + "the literature or wherever else) as well as the species of the unit cell:" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "a = 4.0 # approximate lattice constant\n", + "b = a / 2\n", + "ag = Atoms('Ag',\n", + " cell=[(0, b, b), (b, 0, b), (b, b, 0)],\n", + " pbc=1,\n", + " calculator=EMT()) # use EMT potential\n", + "cell = ag.get_cell()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The next cell creates the Trajectory object:" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "traj = Trajectory('Ag.traj', 'w')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and the following writes the file for each of the 5 lattice constants:" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "for x in np.linspace(0.95, 1.05, 5):\n", + " ag.set_cell(cell * x, scale_atoms=True)\n", + " ag.get_potential_energy()\n", + " traj.write(ag)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We are now in a position to analyse the result using the EquationOfState class. For\n", + "each of the five configurations we have just generated, we want to use ASE to extract both\n", + "the volumes and total energies, in order that we might plot these values and determine\n", + "the volume for which the system attains its energetic minimum. The following cell reads\n", + "the five configurations," + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "configs = read('Ag.traj@0:5') # read 5 configurations" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "the next cell extracts the volumes and energies for each configuration," + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "# Extract volumes and energies:\n", + "volumes = [ag.get_volume() for ag in configs]\n", + "energies = [ag.get_potential_energy() for ag in configs]\n", + "eos = EquationOfState(volumes, energies, eos='birchmurnaghan')\n", + "v0, e0, B = eos.fit()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and the last cell in this section generates our energy-volume plot:" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "100.03821770846413 GPa\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "print(B / kJ * 1.0e24, 'GPa')\n", + "eos.plot('Ag-eos.png')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3. Optimization of two lattice parameters: hcp Ni\n", + "\n", + "Having just done the volume optimization on an FCC crystal, we now turn to the hexagonal close packed (hcp) structure, the unit cell (containing 2 atoms) of which can be seen in Fig. \\ref{Fig:unitcells}. In this section we will investigate nickel. Using the \\texttt{EMT} potential we can try to find the $a$ and $c$ lattice constants; first we make an initial guess for $a$ and $c$ using the nearest neighbour distance as well as the ideal $c/a$ ratio.\n", + "\n", + "We perform the $9=3\\times 3$ calculations around equilibrium (respectively 3 each for $a$ and $c$) by executing the following two cells:" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "from ase.build import bulk, make_supercell" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "a0 = 3.52 / np.sqrt(2)\n", + "c0 = np.sqrt(8 / 3.0) * a0\n", + "n_grid=10\n", + "\n", + "traj = Trajectory('Ni.traj', 'w')\n", + "\n", + "eps = 0.0005\n", + "for a in a0 * np.linspace(1 - eps, 1 + eps, n_grid):\n", + " for c in c0 * np.linspace(1 - eps, 1 + eps, n_grid):\n", + " ni = bulk('Ni', 'hcp', a=a, c=c)\n", + " ni.calc = EMT()\n", + " ni.get_potential_energy()\n", + " #print(\"potential energy at this cycle:\" + str(ni.get_potential_energy()))\n", + " traj.write(ni)\n", + " #print(\"cell at this cycle:\" + str(ni.cell))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can view the cell:" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Cell([[2.4902603777115355, 0.0, 0.0], [-1.2451301888557678, 2.156628749136021, 0.0], [0.0, 0.0, 4.066578168042512]])" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ni.cell" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "From this we see that we can access `a` from `ni.cell[0,0]` and `c` from `ni.cell[2,2]`.\n", + "Before proceeding any further, let us visualise the unit cell of hcp Ni. Since hcp Ni\n", + "only contains 2 atoms per unit cell, we might want to create a supercell in order to\n", + "visualise the periodicity, in which case we would need to adjust the comment in the `view_structure()` function:" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "efc50b3a790f4c569f6ec5cee838d9fb", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "NGLWidget()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "da542499f3034477954e7cc02be12901", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Tab(children=(Box(children=(Box(children=(Box(children=(Label(value='step'), IntSlider(value=1, min=-100)), la…" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "view_structure(ni)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Play around a bit with the gui and also with the repetition of the supercell in order\n", + "to get a feel for the periodicity. Using some **list comprehension** in Python, we can execute the following cells to first\n", + "define the energies array:" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [], + "source": [ + "configs = read('Ni.traj@:')\n", + "energies = [config.get_potential_energy() for config in configs]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and then defining the lattice parameters a resp. c as their own arrays:" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [], + "source": [ + "a = np.array([config.cell[0, 0] for config in configs])\n", + "c = np.array([config.cell[2, 2] for config in configs])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We want to fit the total energy to a general second-degree polynomial, quadratic in the two \"variables\" $a$ and $c$:\n", + "$$\n", + "\\alpha_0 + \\alpha_1a + \\alpha_2c + \\alpha_3a^2 + \\alpha_4ac + \\alpha_5c^2\n", + "$$\n", + "\n", + "#### Assignment 3: Lattice constants\n", + "Use the ```np.linalg.lstsq()``` module to extract the minimum; what are the values for the lattice constants $a$ and $c$? *Hint*: do this by:\n", + "1. defining an array of coefficients $\\alpha_i$ as defined in the equation directly above\n", + "2. using the `np.linalg.lsqsq()` method to obtain a regression. You will need to use the transpose of the array of coefficients (defined in step 1) as well as the `energies` array as two of the arguments; I recommend using `rcond=-1` for the `rcond` parameter; Google around for the documentation if you are unsure;\n", + "3. extracting $p_0$, $p_1$, and $p_2$ from the regression obtained in step 2;\n", + "4. using the `np.linalg.solve()` method to find the true lattice constants $a_0$ and $c_0$." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "##--your code here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### End Assignment 3" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Assigment 4: Expectations from this course" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Please explain in a few sentences what you hope to learn from this course within the context of your background in classical and quantum mechanics, bash scripting, programming languages, and computational physics." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "##--your code/answer here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### End Assignment 4" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + }, + "vscode": { + "interpreter": { + "hash": "783d7c8e9042dd68e9add47c0b718632a846e28849c908d45a1167fba6f8c7d5" + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/Exercise_1/exercise9_solution.ipynb b/Exercise_1/exercise9_solution.ipynb new file mode 100644 index 0000000..b836b8c --- /dev/null +++ b/Exercise_1/exercise9_solution.ipynb @@ -0,0 +1,126 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "f94243a4378b446689751ca2143e94f2", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "from ase import Atom\n", + "from ase.io import read\n", + "from ase.visualize import view\n", + "import matplotlib.pyplot as plt\n", + "import nglview as nv" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "def view_structure(system):\n", + " t = nv.ASEStructure(system) \n", + " w = nv.NGLWidget(t, gui=True)\n", + " # w.add_spacefill()\n", + " return w" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "def view_trajectory(trajectory):\n", + " t2 = nv.ASETrajectory(trajectory)\n", + " w2 = nv.NGLWidget(t2, gui=True)\n", + " w2.add_spacefill()\n", + " return w2" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "ec427b547fc64fe19a5ca976707664a8", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "NGLWidget()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "9c5a2de3e42a48b7993e952c09b76687", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Tab(children=(Box(children=(Box(children=(Box(children=(Label(value='step'), IntSlider(value=1, min=-100)), la…" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "struc_38 = read(\"38atoms.xyz\")\n", + "traj_38 = read(\"production_38-pos-1.xyz\")\n", + "view_structure(struc_38) #this works\n", + "#view_trajectory(traj_38) #this not" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.13" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/Exercise_1/input.lammps b/Exercise_1/input.lammps new file mode 100644 index 0000000..87552b5 --- /dev/null +++ b/Exercise_1/input.lammps @@ -0,0 +1,46 @@ +# Initialisation + +units metal +atom_style molecular +boundary p p p +pair_style airebo 2.5 1 1 +read_data cnt_atom.data +pair_coeff * * CH.airebo C + +change_box all x final -40 40 y final -40 40 z final -80 80 + +group carbon_atoms type 1 +variable carbon_xcm equal -1*xcm(carbon_atoms,x) +variable carbon_ycm equal -1*xcm(carbon_atoms,y) +variable carbon_zcm equal -1*xcm(carbon_atoms,z) +displace_atoms carbon_atoms move ${carbon_xcm} ${carbon_ycm} ${carbon_zcm} + +variable zmax equal bound(carbon_atoms,zmax)+2.5 +variable zmin equal bound(carbon_atoms,zmin)-2.5 +region rtop block INF INF INF INF ${zmax} INF +region rbot block INF INF INF INF INF ${zmin} +region rmid block INF INF INF INF ${zmin} ${zmax} +group carbon_top region rtop +group carbon_bot region rbot +group carbon_mid region rmid + +# velocity carbon_mid create ${T} 48455 mom yes rot yes + +# delete_atoms random fraction 0.005 yes all NULL 482793 + +fix mynve all nve +compute Tmid carbon_mid temp +fix myber carbon_mid temp/berendsen 1 1000 0.1 +fix_modify myber temp Tmid + +dump mydmp all atom 1000 dump.lammpstrj + +thermo 100 +thermo_modify temp Tmid + +timestep 0.0005 +#run 5000 + +# 0.15 A/ps = 30 m/s +#velocity carbon_top set NULL NULL 1.5 +run 100000 diff --git a/Exercise_1/inputcu.lammps b/Exercise_1/inputcu.lammps new file mode 100644 index 0000000..04fa94a --- /dev/null +++ b/Exercise_1/inputcu.lammps @@ -0,0 +1,46 @@ +# Initialisation + +units metal +atom_style molecular +boundary p p p +pair_style eam +read_data cnt_cu.data +pair_coeff * * Cu_u3.eam + +change_box all x final -71.4286 71.4286 y final -71.4286 71.4286 z final -142.8572 142.8572 + +group carbon_atoms type 1 +variable carbon_xcm equal -1*xcm(carbon_atoms,x) +variable carbon_ycm equal -1*xcm(carbon_atoms,y) +variable carbon_zcm equal -1*xcm(carbon_atoms,z) +displace_atoms carbon_atoms move ${carbon_xcm} ${carbon_ycm} ${carbon_zcm} + +variable zmax equal bound(carbon_atoms,zmax)+2.5 +variable zmin equal bound(carbon_atoms,zmin)-2.5 +region rtop block INF INF INF INF ${zmax} INF +region rbot block INF INF INF INF INF ${zmin} +region rmid block INF INF INF INF ${zmin} ${zmax} +group carbon_top region rtop +group carbon_bot region rbot +group carbon_mid region rmid + +# velocity carbon_mid create ${T} 48455 mom yes rot yes + +# delete_atoms random fraction 0.005 yes all NULL 482793 + +fix mynve all nve +compute Tmid carbon_mid temp +fix myber carbon_mid temp/berendsen 1 200 0.1 +fix_modify myber temp Tmid + +dump mydmp all atom 1000 dump.lammpstrj + +thermo 100 +thermo_modify temp Tmid + +timestep 0.0005 +#run 5000 + +# 0.15 A/ps = 30 m/s +#velocity carbon_top set NULL NULL 1.5 +run 100000