Contents:
71 |Some of Hetero2d’s functionality is based on scientific advances / principles developed by various scientists. If you use Hetero2d in your research, you may wish to consider citing the following works:
78 |79 |104 |Shyue Ping Ong, William Davidson Richards, Anubhav Jain, Geoffroy 80 | Hautier, Michael Kocher, Shreyas Cholia, Dan Gunter, Vincent 81 | Chevrier, Kristin A. Persson, Gerbrand Ceder. Python Materials 82 | Genomics (pymatgen) : A Robust, Open-Source Python Library for 83 | Materials Analysis. Computational Materials Science, 2013, 68, 314– 84 | 319. doi:10.1016/j.commatsci.2012.10.028
85 |Mathew, K., Singh, A. K., Gabriel, J. J., Choudhary, K., Sinnott, 86 | S. B., Davydov, A. V, Hennig, R. G. MPInterfaces : A Materials 87 | Project based Python tool for high-throughput computational screening 88 | of interfacial systems. Computational Materials Science, 2016, 122, 89 | 183–190. dio:10.1016/j.commatsci.2016.05.020
90 |Zur, A., & McGill, T. C. Lattice match: An application to 91 | heteroepitaxy. Journal of Applied Physics, 1984, 55, 378–386. 92 | dio:10.1063/1.333084
93 |Mathew, K., Montoya, J. H., Faghaninia, A., Dwarakanath, S., 94 | Aykol, M., Tang, H., Chu, I., Smidt, T., Bocklund, B., Horton, M., 95 | Dagdelen, J., Wood, B., Liu, Z.-K., Neaton, J., Ong, S. P., 96 | Persson, K., Jain, A. Atomate: A high-level interface to generate, 97 | execute, and analyze computational materials science workflows. 98 | Comput. Mater. Sci. 2017, 139, 140–152.
99 |Singh, A. K., Zhuang, H. L., & Hennig, R. G. Ab initio synthesis 100 | of single-layer III-V materials. Physical Review B - Condensed 101 | Matter and Materials Physics, 2014, 89, 1–10. 102 | dio:10.1103/PhysRevB.89.245431
103 |
| 78 | h | ||
| 82 | |
83 | hetero2d | 84 | |
| 87 | |
88 | hetero2d.firetasks | 89 | |
| 92 | |
93 | hetero2d.firetasks.heteroiface_tasks | 94 | |
| 97 | |
98 | hetero2d.firetasks.parse_outputs | 99 | |
| 102 | |
103 | hetero2d.firetasks.run_calc | 104 | |
| 107 | |
108 | hetero2d.firetasks.write_inputs | 109 | |
| 112 | |
113 | hetero2d.fireworks | 114 | |
| 117 | |
118 | hetero2d.fireworks.core | 119 | |
| 122 | |
123 | hetero2d.io | 124 | |
| 127 | |
128 | hetero2d.io.VaspInterfaceSet | 129 | |
| 132 | |
133 | hetero2d.manipulate | 134 | |
| 137 | |
138 | hetero2d.manipulate.heterotransmuter | 139 | |
| 142 | |
143 | hetero2d.manipulate.layersolver | 144 | |
| 147 | |
148 | hetero2d.manipulate.utils | 149 | |
| 152 | |
153 | hetero2d.workflow | 154 | |
| 157 | |
158 | hetero2d.workflow.core | 159 | |
The Hetero2d package leverages well known computational tools: pymatgen, MPInterfaces, atomate, fireworks, and custodian to perform high-throughput ab-initio calculations. Hetero2d is tailored to addressing scientific questions regarding the stability of 2D-substrate hetero-structured materials using an all-in-one workflow approach to model the hetero-structures formed by arbitrary 2D materials and substrates. The workflow creates, computes, analyzes and stores all relevant simulation parameters and results in a queryable MongoDB database that can be accessed through our API.
86 |The 2D-substrate hetero-structure workflow takes a given 2D material, 3D phase (bulk) of the 2D material, and a substrate, relaxes the structures using vdW-corrected DFT and creates hetero-structures subject to user constraints. The workflow analyzes and stores energetic stability information of various 2D hetero-structured materials to predict the feasibility of a substrate stabilizing a meta-stable 2D material.
89 |Hetero2d provides automated routines for the generation of low-lattice mismatched hetero-structures for arbitrary 2D materials and substrate surfaces, the creation of van der Waals corrected density-functional theory (DFT) input files, the submission and monitoring of simulations on computing resources, the post-processing of the key parameters to compute (a) the interface interaction energy of 2D-substrate hetero-structures, (b) the identification of substrate-induced changes in interfacial structure, and (c) charge doping of the 2D material.
90 |To get started using Hetero2d, various tutorials and examples have been created using Jupyter Notebooks. These notebooks demonstrate the basic functionality of Hetero2d to enable users to quickly learn how to use the various modules within this package. These can be found under Hetero2d/examples.
94 |If you use Hetero2d in your research, please consider citing the following work:
98 |99 |101 |Tara M. Boland, Arunima K. Singh. Computational Synthesis of 2D Materials: A High-throughput Approach to Materials Design (2021). arXiv:2112.03900.
100 |
Hetero2d is released under the GNU General Public Version 3 License. Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>. The terms of the license can be found in the main directory in this software package under the LICENSE file.
105 |Arunima Singh (P.I.) of the Computational Materials Design Lab started Hetero2d in 2020, and is project lead.
109 |Currently, the main developer for this package is graduate student Tara M. Boland who has developed much of the existing Hetero2d package under the guidance of Arunima Singh.
110 |See more team details in the Development Team section.
111 |Hetero2d uses a shared copyright model. Each contributor maintains 115 | copyright over their contributions to pymatgen. But, it is important 116 | to note that these contributions are typically only changes to the 117 | repositories. Thus, the Hetero2d source code, in its entirety is not 118 | the copyright of any single person or institution. Instead, it is the 119 | collective copyright of the entire Hetero2d Development Team. If 120 | individual contributors want to maintain a record of what 121 | changes/contributions they have specific copyright on, they should 122 | indicate their copyright in the commit message of the change, when 123 | they commit the change to one of the pymatgen repositories.
124 |With this in mind, the following banner should be used in any source 125 | code file to indicate the copyright and license terms:
126 |# Copyright (c) CMD Lab Development Team.
127 | # Distributed under the terms of the GNU License.
128 | ' + _('Hide Search Matches') + '
') 234 | .appendTo($('#searchbox')); 235 | } 236 | }, 237 | 238 | /** 239 | * init the domain index toggle buttons 240 | */ 241 | initIndexTable : function() { 242 | var togglers = $('img.toggler').click(function() { 243 | var src = $(this).attr('src'); 244 | var idnum = $(this).attr('id').substr(7); 245 | $('tr.cg-' + idnum).toggle(); 246 | if (src.substr(-9) === 'minus.png') 247 | $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); 248 | else 249 | $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); 250 | }).css('display', ''); 251 | if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { 252 | togglers.click(); 253 | } 254 | }, 255 | 256 | /** 257 | * helper function to hide the search marks again 258 | */ 259 | hideSearchWords : function() { 260 | $('#searchbox .highlight-link').fadeOut(300); 261 | $('span.highlighted').removeClass('highlighted'); 262 | }, 263 | 264 | /** 265 | * make the url absolute 266 | */ 267 | makeURL : function(relativeURL) { 268 | return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; 269 | }, 270 | 271 | /** 272 | * get the current relative url 273 | */ 274 | getCurrentURL : function() { 275 | var path = document.location.pathname; 276 | var parts = path.split(/\//); 277 | $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { 278 | if (this === '..') 279 | parts.pop(); 280 | }); 281 | var url = parts.join('/'); 282 | return path.substring(url.lastIndexOf('/') + 1, path.length - 1); 283 | }, 284 | 285 | initOnKeyListeners: function() { 286 | $(document).keydown(function(event) { 287 | var activeElementType = document.activeElement.tagName; 288 | // don't navigate when in search box or textarea 289 | if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT' 290 | && !event.altKey && !event.ctrlKey && !event.metaKey && !event.shiftKey) { 291 | switch (event.keyCode) { 292 | case 37: // left 293 | var prevHref = $('link[rel="prev"]').prop('href'); 294 | if (prevHref) { 295 | window.location.href = prevHref; 296 | return false; 297 | } 298 | case 39: // right 299 | var nextHref = $('link[rel="next"]').prop('href'); 300 | if (nextHref) { 301 | window.location.href = nextHref; 302 | return false; 303 | } 304 | } 305 | } 306 | }); 307 | } 308 | }; 309 | 310 | // quick alias for translations 311 | _ = Documentation.gettext; 312 | 313 | $(document).ready(function() { 314 | Documentation.init(); 315 | }); 316 | -------------------------------------------------------------------------------- /docs/html/project_intro/installation.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 |IMPORTANT NOTE: Atomate and FireWorks do not run on Windows OS. You need a unix-based OS (Mac or Linux) in order for these packages to run. As such, all setup instructions are given for Unix systems.
81 |Download the repo from the green code icon or via github’s commandline tool gh.
85 |90 |86 |
89 |- 87 |
gh repo clone cmdlab/Hetero2d(gh must be installed)- 88 |
git clone https://github.com/cmdlab/Hetero2d.git
Install Hetero2d in a clean enviromnent using python=3.6. I suggest using Anaconda3 to manange environments.
94 |98 |95 |
97 |- 96 |
conda create --name hetero2d python=3.6
Activate the hetero2d environment and run the line below to install Hetero2d. Must be in the directory where Hetero2d was downloaded to.
102 |106 |103 |
105 |- 104 |
pip install -r requirements.txt
After installation, Hetero2d needs to be added to your python path. This can be done by running the first line below OR by adding the 2nd line to your .bashrc file. This is only necessary if python cannot find the package or the setup.py failed for some reason.
110 |115 |111 |
114 |- 112 |
python setup.py developorpython setup.py install- 113 |
export PYTHONPATH="$HOME/path_to_package/Hetero2d:$PYTHONPATH"
If this is your first time installing the package dependencies listed below, please ensure you have followed the respective setup instructions:
119 |126 |120 |
125 |- 121 |
- 122 |
- 123 |
- 124 |
To run jupyter notebooks on various resources the ipykernel has to be installed. Sometimes this isn’t enough and you need explicitly add the kernel to the list of environments.
130 |135 |131 |
134 |- 132 |
Activate your environment
conda activate hetero2d- 133 |
python -m ipykernel install --user --name hetero2d
The Hetero2d package dependancies have a lot of documentation to look over. I will highlight the essential documentation to get started as quickly as possible.
138 |atomate requires the most set up. Mainly, creating a directory scaffold and writing the 5 required files to connect to the database and run jobs. (MongoDB or free Atlas MongoDB is required)
pymatgen has a command line tool installed to set up default directory paths for psuedopotentials called pmg. There are 2 essential commands you have to run to use Hetero2d on any system.
143 |148 |144 |
147 |- 145 |
VASP POTCARs directory:
pmg config -p <EXTRACTED_VASP_POTCAR> <MY_PSP>- 146 |
Default pseudopotential:
pmg config --add PMG_DEFAULT_FUNCTIONAL PBE_54
MPInterfaces has a config file similar to pymatgen. You need to set at least 2 parameters in the mpint_config.yaml file to remove the warning message. An example config file can be found on MPInterfaces github website.
152 |157 |153 |
156 |- 154 |
mp_api: the_key_obtained_from_materialsproject
- 155 |
potentials: path_to_vasp_potcar_files