|
1 | 1 | {
|
2 | 2 | "cells": [
|
3 | 3 | {
|
4 |
| - "cell_type": "code", |
5 |
| - "outputs": [], |
6 |
| - "source": [], |
| 4 | + "cell_type": "markdown", |
| 5 | + "source": [ |
| 6 | + "# Grain Boundary 3D FCC Metal\n", |
| 7 | + "\n", |
| 8 | + "## 0. Introduction\n", |
| 9 | + "\n", |
| 10 | + "This notebook demonstrates how to create a grain boundary structure for a 3D FCC metal, Cu in particular. The grain boundary is created by combining two slabs with different orientations. \n", |
| 11 | + "\n", |
| 12 | + "Aiming to reproduce the structure from the publication:\n", |
| 13 | + "> **Timofey Frolov, David L. Olmsted, Mark Asta & Yuri Mishin**\n", |
| 14 | + "> \"Structural phase transformations in metallic grain boundaries\"\n", |
| 15 | + "> Nature Communications, volume 4, Article number: 1899 (2013)\n", |
| 16 | + "> DOI: [10.1038/ncomms2919](https://www.nature.com/articles/ncomms2919) \n", |
| 17 | + "\n", |
| 18 | + "Focusing on reproducing the structures from Figure 1. b:\n", |
| 19 | + "\n", |
| 20 | + "<img src=\"https://i.imgur.com/SdIaZRD.png\" alt=\"Figure 1.\" width=\"400\"/>" |
| 21 | + ], |
7 | 22 | "metadata": {
|
8 | 23 | "collapsed": false
|
9 | 24 | },
|
10 |
| - "id": "initial_id", |
11 |
| - "execution_count": 0 |
| 25 | + "id": "aa0a426af23f6def" |
12 | 26 | },
|
13 | 27 | {
|
14 | 28 | "cell_type": "markdown",
|
|
29 | 43 | "source": [
|
30 | 44 | "# Enable interactive selection of terminations via UI prompt\n",
|
31 | 45 | "IS_TERMINATIONS_SELECTION_INTERACTIVE = False \n",
|
| 46 | + "MATERIAL_NAME = \"Cu\"\n", |
32 | 47 | "\n",
|
33 | 48 | "# Parameters for Phase 1\n",
|
34 |
| - "PHASE_1_MILLER_INDICES = (1, 1, 1)\n", |
35 |
| - "PHASE_1_THICKNESS = 6 # in atomic layers\n", |
| 49 | + "PHASE_1_MILLER_INDICES = (3,1,0)\n", |
| 50 | + "PHASE_1_THICKNESS = 4 # in atomic layers\n", |
36 | 51 | "PHASE_1_USE_ORTHOGONAL_Z = True\n",
|
37 | 52 | "\n",
|
38 | 53 | "# Parameters for Phase 2\n",
|
39 |
| - "PHASE_2_MILLER_INDICES = (0, 0, 1)\n", |
| 54 | + "PHASE_2_MILLER_INDICES = (-3, -1, 0)\n", |
40 | 55 | "PHASE_2_THICKNESS = 4 # in atomic layers\n",
|
41 | 56 | "PHASE_2_USE_ORTHOGONAL_Z = True\n",
|
42 | 57 | "\n",
|
|
58 | 73 | "collapsed": false
|
59 | 74 | },
|
60 | 75 | "id": "45730b0f5384262b",
|
61 |
| - "execution_count": 0 |
| 76 | + "execution_count": null |
62 | 77 | },
|
63 | 78 | {
|
64 | 79 | "cell_type": "markdown",
|
|
82 | 97 | " \n",
|
83 | 98 | " await micropip.install('mat3ra-api-examples', deps=False)\n",
|
84 | 99 | " from utils.jupyterlite import install_packages\n",
|
85 |
| - " await install_packages(\"create_grain_boundary.ipynb\")\n" |
| 100 | + " await install_packages(\"specific_examples|create_grain_boundary.ipynb\")\n" |
86 | 101 | ],
|
87 | 102 | "metadata": {
|
88 | 103 | "collapsed": false
|
89 | 104 | },
|
90 | 105 | "id": "bae18ae87d3cc5ba",
|
91 |
| - "execution_count": 0 |
| 106 | + "execution_count": null |
92 | 107 | },
|
93 | 108 | {
|
94 | 109 | "cell_type": "markdown",
|
|
104 | 119 | "cell_type": "code",
|
105 | 120 | "outputs": [],
|
106 | 121 | "source": [
|
107 |
| - "from utils.jupyterlite import get_materials\n", |
| 122 | + "from mat3ra.standata.materials import Materials\n", |
| 123 | + "from mat3ra.made.material import Material\n", |
108 | 124 | "\n",
|
109 |
| - "materials = get_materials(globals())\n", |
110 |
| - "material = materials[0]" |
| 125 | + "material = Material(Materials.get_by_name_first_match(MATERIAL_NAME))" |
111 | 126 | ],
|
112 | 127 | "metadata": {
|
113 | 128 | "collapsed": false
|
114 | 129 | },
|
115 | 130 | "id": "950e5bef61bbd84a",
|
116 |
| - "execution_count": 0 |
| 131 | + "execution_count": null |
117 | 132 | },
|
118 | 133 | {
|
119 | 134 | "cell_type": "markdown",
|
|
136 | 151 | "collapsed": false
|
137 | 152 | },
|
138 | 153 | "id": "4ebde830102b0b94",
|
139 |
| - "execution_count": 0 |
| 154 | + "execution_count": null |
140 | 155 | },
|
141 | 156 | {
|
142 | 157 | "cell_type": "markdown",
|
143 | 158 | "source": [
|
144 |
| - "## 2. Configure slabs and select termination pair\n", |
| 159 | + "## 2. Create grain boundary for (310) surface\n", |
145 | 160 | "\n",
|
146 | 161 | "### 2.1. Create Phase 1 and Phase 2 Slabs\n",
|
147 | 162 | "Slab Configuration lets define the slab thickness, vacuum, and the Miller indices of the interfacial plane and get the slabs with possible terminations."
|
|
175 | 190 | "collapsed": false
|
176 | 191 | },
|
177 | 192 | "id": "b7cc3daa852d868d",
|
178 |
| - "execution_count": 0 |
| 193 | + "execution_count": null |
179 | 194 | },
|
180 | 195 | {
|
181 | 196 | "cell_type": "markdown",
|
|
198 | 213 | "collapsed": false
|
199 | 214 | },
|
200 | 215 | "id": "5bdc0e37e3ec9891",
|
201 |
| - "execution_count": 0 |
| 216 | + "execution_count": null |
202 | 217 | },
|
203 | 218 | {
|
204 | 219 | "cell_type": "markdown",
|
|
224 | 239 | "collapsed": false
|
225 | 240 | },
|
226 | 241 | "id": "f75092312b399f84",
|
227 |
| - "execution_count": 0 |
| 242 | + "execution_count": null |
228 | 243 | },
|
229 | 244 | {
|
230 | 245 | "cell_type": "markdown",
|
|
251 | 266 | "collapsed": false
|
252 | 267 | },
|
253 | 268 | "id": "40b4ba55613d9658",
|
254 |
| - "execution_count": 0 |
| 269 | + "execution_count": null |
255 | 270 | },
|
256 | 271 | {
|
257 | 272 | "cell_type": "markdown",
|
|
282 | 297 | "collapsed": false
|
283 | 298 | },
|
284 | 299 | "id": "8dfc5893f510bae4",
|
285 |
| - "execution_count": 0 |
| 300 | + "execution_count": null |
286 | 301 | },
|
287 | 302 | {
|
288 | 303 | "cell_type": "markdown",
|
289 | 304 | "source": [
|
290 |
| - "## 3. Create grain boundary\n", |
291 |
| - "\n", |
292 |
| - "### 3.1. Initialize the Grain Boundary Configuration" |
| 305 | + "### 2.6. Initialize the Grain Boundary Configuration" |
293 | 306 | ],
|
294 | 307 | "metadata": {
|
295 | 308 | "collapsed": false
|
|
325 | 338 | "collapsed": false
|
326 | 339 | },
|
327 | 340 | "id": "40b6c8662d071f18",
|
328 |
| - "execution_count": 0 |
| 341 | + "execution_count": null |
329 | 342 | },
|
330 | 343 | {
|
331 | 344 | "cell_type": "markdown",
|
332 | 345 | "source": [
|
333 |
| - "### 3.2. Set Strain Matching Algorithm Parameters" |
| 346 | + "### 2.7. Set Strain Matching Algorithm Parameters" |
334 | 347 | ],
|
335 | 348 | "metadata": {
|
336 | 349 | "collapsed": false
|
|
356 | 369 | "collapsed": false
|
357 | 370 | },
|
358 | 371 | "id": "44015c5407563d4e",
|
359 |
| - "execution_count": 0 |
| 372 | + "execution_count": null |
360 | 373 | },
|
361 | 374 | {
|
362 | 375 | "cell_type": "markdown",
|
363 | 376 | "source": [
|
364 |
| - "### 3.3. Generate grain boundary with strain matcher" |
| 377 | + "### 2.8. Generate grain boundary with strain matcher" |
365 | 378 | ],
|
366 | 379 | "metadata": {
|
367 | 380 | "collapsed": false
|
|
381 | 394 | "collapsed": false
|
382 | 395 | },
|
383 | 396 | "id": "884b458236270a29",
|
384 |
| - "execution_count": 0 |
| 397 | + "execution_count": null |
385 | 398 | },
|
386 | 399 | {
|
387 | 400 | "cell_type": "markdown",
|
388 | 401 | "source": [
|
389 |
| - "## 4. Preview the grain boundary" |
| 402 | + "## 2.9. Preview the grain boundary" |
390 | 403 | ],
|
391 | 404 | "metadata": {
|
392 | 405 | "collapsed": false
|
|
404 | 417 | "collapsed": false
|
405 | 418 | },
|
406 | 419 | "id": "892c0e7c932cd725",
|
407 |
| - "execution_count": 0 |
| 420 | + "execution_count": null |
408 | 421 | },
|
409 | 422 | {
|
410 | 423 | "cell_type": "markdown",
|
411 | 424 | "source": [
|
412 |
| - "## 5. Pass data to the outside runtime" |
| 425 | + "## 3. Save the final material" |
413 | 426 | ],
|
414 | 427 | "metadata": {
|
415 | 428 | "collapsed": false
|
|
420 | 433 | "cell_type": "code",
|
421 | 434 | "outputs": [],
|
422 | 435 | "source": [
|
423 |
| - "from utils.jupyterlite import set_materials\n", |
424 |
| - "set_materials(grain_boundary)" |
| 436 | + "from utils.jupyterlite import download_content_to_file\n", |
| 437 | + "\n", |
| 438 | + "download_content_to_file(grain_boundary, f\"{MATERIAL_NAME}-{PHASE_1_MILLER_INDICES}-{PHASE_2_MILLER_INDICES}_grain_boundary.json\")" |
425 | 439 | ],
|
426 | 440 | "metadata": {
|
427 | 441 | "collapsed": false
|
428 | 442 | },
|
429 | 443 | "id": "503eff0dd5c1a160",
|
430 |
| - "execution_count": 0 |
| 444 | + "execution_count": null |
431 | 445 | }
|
432 | 446 | ],
|
433 | 447 | "metadata": {
|
|
0 commit comments