|
2 | 2 | "cells": [ |
3 | 3 | { |
4 | 4 | "cell_type": "markdown", |
5 | | - "metadata": {}, |
| 5 | + "metadata": { |
| 6 | + "pycharm": { |
| 7 | + "name": "#%% md\n" |
| 8 | + } |
| 9 | + }, |
6 | 10 | "source": [ |
7 | | - "# Materials Transformations with Python Notebooks\n", |
| 11 | + "# Contents.\n", |
| 12 | + "\n", |
| 13 | + "This document contains links to the functionality listed.\n", |
| 14 | + "\n", |
| 15 | + "## 1. Single-Material Structures.\n", |
| 16 | + "\n", |
| 17 | + "### 1.1. 3D Structures.\n", |
| 18 | + "#### [1.1.1. Supercells. Create supercells from 3D crystals.](create_supercell.ipynb)(COMING SOON)\n", |
| 19 | + "\n", |
| 20 | + "### 1.2. 2D Structures.\n", |
| 21 | + "#### [1.2.1. Slabs. Create slabs from bulk materials.](create_slab.ipynb)\n", |
8 | 22 | "\n", |
9 | | - "## Overview\n", |
| 23 | + "### 1.3. 1D Structures.\n", |
| 24 | + "#### [1.3.1. Nanoribbons. Create nanoribbons from 2D materials.](create_nanoribbon.ipynb)\n", |
10 | 25 | "\n", |
11 | | - "This Jupyter Lite distribution contains pre-configured examples of materials transformations including simple ones like creation of supercell or a surface, and more complex like creating an interface with Zur and McGill Superlattice matching algorithm\n", |
| 26 | + "### 1.4. 0D Structures.\n", |
| 27 | + "#### [1.4.1. Spherical. Create clusters or spherical structures.](create_cluster_sphere.ipynb)\n", |
12 | 28 | "\n", |
13 | | - "## Examples\n", |
14 | | - "### 1. Builders / Transformations\n", |
15 | 29 | "\n", |
16 | | - "#### [1.1. Interface creation with Zur and McGill Superlattice (ZSL) algorithm](create_interface_with_min_strain_zsl.ipynb)\n", |
| 30 | + "## 2. Multi-Material Structures.\n", |
17 | 31 | "\n", |
18 | | - "This notebook lets user create an interface between two materials by finding matching superlattices and selecting optimal variants by (1) minimal strain and (2) minimal number of atoms. [Click here to open the notebook](create_interface_with_min_strain_zsl.ipynb).\n", |
| 32 | + "### 2.1. Interfaces\n", |
| 33 | + "#### [2.1.1. Interface with Zur and McGill Superlattice (ZSL) straing matching](create_interface_with_min_strain_zsl.ipynb)\n", |
19 | 34 | "\n", |
20 | | - "#### [1.2. Relaxed interface creation with EMT potential](create_interface_with_relaxation_ase_emt.ipynb)\n", |
| 35 | + "#### [2.1.3. Interface without strain matching](create_interface_with_no_strain_matching.ipynb)\n", |
21 | 36 | "\n", |
22 | | - "This notebook lets user relax an interface between two materials using the EMT potential. Interface material can be created using 1.2. notebook with ZSL algorithm or loaded from the database or a file. [Click here to open the notebook](create_interface_with_relaxation_ase_emt.ipynb).\n", |
| 37 | + "#### [2.1.2. Interface with ASE EMT Relaxation](create_interface_with_relaxation_ase_emt.ipynb)\n", |
23 | 38 | "\n", |
24 | | - "#### [1.3. Interface creation with a supercell matrix](create_interface_with_no_strain_matching.ipynb)\n", |
| 39 | + "#### [2.1.4. Twisted Interface with Commensurate Lattices](create_twisted_interface_with_commensurate_lattices.ipynb)\n", |
25 | 40 | "\n", |
26 | | - "This notebook lets user create an interface between two materials by specifying the supercell matrix, with ability to strain film to fit the substrate. [Click here to open the notebook](create_interface_with_no_strain_matching.ipynb).\n", |
| 41 | + "### 2.2. Stacked Nanoribbons\n", |
| 42 | + "#### [2.2.1. Twisted Nanoribbon Interface/Stack](create_twisted_interface_with_nanoribbons.ipynb)\n", |
27 | 43 | "\n", |
28 | | - "#### [1.4. Point defect creation](create_point_defect.ipynb)\n", |
| 44 | + "### 2.3. Heterostructures\n", |
| 45 | + "#### [2.3.1. Heterostructure with multiple consecutive layers](create_heterostructure_example.ipynb)\n", |
29 | 46 | "\n", |
30 | | - "This notebook lets user create a single point defect (vacancy, substitution or interstitial). [Click here to open the notebook](create_point_defect.ipynb).\n", |
31 | 47 | "\n", |
32 | | - "#### [1.5. Adatom on a slab creation](create_adatom_defect.ipynb)\n", |
| 48 | + "## 3. Defects.\n", |
33 | 49 | "\n", |
34 | | - "This notebook lets user create a slab and place an adatom at specified location. [Click here to open the notebook](create_adatom_defect.ipynb).\n", |
| 50 | + "### 3.1. Point Defects\n", |
| 51 | + "#### [3.1.1. Point Defects: vacancy, substitution, interstitial](create_point_defect.ipynb)\n", |
35 | 52 | "\n", |
36 | | - "#### [1.6. Nanoribbon creation](create_nanoribbon.ipynb)\n", |
| 53 | + "### 3.2. Surface Defects\n", |
| 54 | + "#### [3.2.1. Adatom Defect on a Slab](create_adatom_defect.ipynb)\n", |
37 | 55 | "\n", |
38 | | - "This notebook lets user create a nanoribbon from a bulk 2D material. [Click here to open the notebook](create_nanoribbon.ipynb).\n", |
| 56 | + "### 3.3. Planar Defects\n", |
| 57 | + "#### [3.3.1. Grain Boundary in a 3D Crystal](create_grain_boundary_crystal.ipynb)\n", |
39 | 58 | "\n", |
40 | | - "#### [1.7. Slab Perturbation](create_perturbation.ipynb)\n", |
41 | 59 | "\n", |
42 | | - "This notebook lets user add a perturbation to a slab by moving atoms according to a specified function. [Click here to open the notebook](create_perturbation.ipynb).\n", |
| 60 | + "## 4. Passivation.\n", |
43 | 61 | "\n", |
44 | | - "#### [1.8. Heterostructure creation](create_heterostructure_example.ipynb)\n", |
| 62 | + "### 4.1. Surface Passivation\n", |
| 63 | + "#### [4.1.1. Slab Passivation](slab_passivation.ipynb) (COMING SOON)\n", |
45 | 64 | "\n", |
46 | | - "This notebook lets user create a heterostructure between three materials by consequent creation of two interfaces. [Click here to open the notebook](create_heterostructure_example.ipynb).\n", |
| 65 | + "### 4.2. Edge Passivation\n", |
| 66 | + "#### [4.2.1. Nanoribbon Passivation](nanoribbon_passivation.ipynb) (COMING SOON)\n", |
47 | 67 | "\n", |
48 | | - "### 2. Data Import\n", |
49 | 68 | "\n", |
50 | | - "#### [2.1. Materials import from files in ASE-supported formats](import_materials_from_files.ipynb)\n", |
| 69 | + "## 5. Perturbations.\n", |
51 | 70 | "\n", |
52 | | - "This notebook demonstrates a workflow for converting materials data from user uploaded files in [formats supported by ASE](https://wiki.fysik.dtu.dk/ase/ase/io/io.html) into ESSE format for use with Mat3ra.com platform. [Click here to open the notebook](import_materials_from_files.ipynb).\n", |
| 71 | + "### 5.1. Slab Perturbations\n", |
| 72 | + "#### [5.1.1. Perturbation using sine wave, custom planar (XY) functions](create_perturbation.ipynb)\n", |
53 | 73 | "\n", |
54 | | - "#### [2.2. Materials import from JARVIS](import_material_from_jarvis_db_entry.ipynb)\n", |
55 | 74 | "\n", |
56 | | - "This notebook demonstrates a workflow for converting materials data from the [JARVIS](https://jarvis.nist.gov/) database into ESSE format for use with Mat3ra.com platform. [Click here to open the notebook](import_material_from_jarvis_db_entry.ipynb).\n", |
| 75 | + "## 6. Other.\n", |
57 | 76 | "\n", |
| 77 | + "### 6.1. Import Data.\n", |
58 | 78 | "\n", |
59 | | - "## 3. Under the hood\n", |
60 | | - "### <a id=\"data-exchange\">3.1. Data Exchange</a>\n", |
61 | | - "#### 3.1.1. Passing Data to and from the Outside Runtime\n", |
62 | | - "The data is passed in *from* and *back to* the outside runtime (e.g. web application) using the `get_data` and `set_data` [helpers](../../utils/jupyterlite.py). The `get_data` function is used to retrieve the data from the outside runtime, while the `set_data` function is used to send the data back to the outside runtime.\n", |
| 79 | + "#### [6.1.1. Import from files in ASE-supported formats](import_materials_from_files.ipynb).\n", |
63 | 80 | "\n", |
64 | | - "#### 3.1.2. Uploads Folder\n", |
65 | | - "The **\"uploads\"** folder is used to exchange files between different notebooks when a user uploads a file, or when the notebook generates a file as part of its output.\n", |
| 81 | + "Converting materials data from user-uploaded files in [formats supported by ASE](https://wiki.fysik.dtu.dk/ase/ase/io/io.html) into ESSE format for use with Mat3ra.com platform.\n", |
66 | 82 | "\n", |
67 | | - "#### 3.1.3. Passing Data between notebooks\n", |
68 | | - "When running JupyterLab (Python) locally, the files only get stored in the \"uploads\" folder and are not sent to the outside runtime. In JupyterLite (Pyodide) environment, the files are sent to the outside runtime and stored in the \"uploads\" folder.\n", |
| 83 | + "#### [6.1.2. Materials import from JARVIS](import_material_from_jarvis_db_entry.ipynb).\n", |
69 | 84 | "\n", |
70 | | - "### 3.2. Specific Considerations\n", |
71 | | - "#### 3.2.1. Interface creation\n", |
| 85 | + "This notebook demonstrates a workflow for converting materials data from the [JARVIS](https://jarvis.nist.gov/) database into ESSE format for use with Mat3ra.com platform.\n", |
72 | 86 | "\n", |
73 | | - "The following conventions are used in the interface creation examples:\n", |
| 87 | + "## 7. Read more\n", |
74 | 88 | "\n", |
75 | | - "3. We assume that two input materials are either in bulk form (e.g. Ni crystal) or layered (e.g. graphene). \n", |
76 | | - "1. We construct the interface along the Z-axis. The material corresponding to the bottom of the interface is referred to as the \"**substrate**\", and the top - as the \"**film**\". \n" |
| 89 | + "### 7.1. Under the hood.\n", |
| 90 | + "\n", |
| 91 | + "#### [7.1.1. More info about the conventions used](under_the_hood.ipynb)." |
77 | 92 | ] |
78 | | - }, |
79 | | - { |
80 | | - "cell_type": "code", |
81 | | - "outputs": [], |
82 | | - "source": [], |
83 | | - "metadata": { |
84 | | - "collapsed": false |
85 | | - } |
86 | 93 | } |
87 | 94 | ], |
88 | 95 | "metadata": { |
89 | 96 | "language_info": { |
90 | 97 | "name": "python" |
| 98 | + }, |
| 99 | + "kernelspec": { |
| 100 | + "name": "python3", |
| 101 | + "language": "python", |
| 102 | + "display_name": "Python 3 (ipykernel)" |
91 | 103 | } |
92 | 104 | }, |
93 | 105 | "nbformat": 4, |
|
0 commit comments