Skip to content

Repository files navigation

Hetero2d

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. Check out our documentation or the paper!

Package Description

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

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.

Installation Instructions for Hetero2d

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.

  1. Download the repo using one of the following methods:
  • gh repo clone cmdlab/Hetero2d (gh must be installed)
  • git clone https://github.com/cmdlab/Hetero2d.git
  • git clone git@github.com:cmdlab/Hetero2d.git
  1. Install Hetero2d in a clean python enviromnent using python>=3.9. I suggest using Anaconda3 to manange environments.
  • conda create --name hetero2d python=3.9
  1. Activate the Hetero2d virtual environment and install the package from the Hetero2d directory:
  • pip install -r requirements.txt
  1. 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 listed below to your .bashrc file. Only necessary if python cannot find the package or the setup.py failed for some reason.
  • python setup.py develop or python setup.py install
  • export PYTHONPATH="$HOME/path_to_package/Hetero2d:$PYTHONPATH"
  1. If this is your first time installing the package dependencies listed below, please ensure you have followed the respective setup instructions:
  1. 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. Via the command line:
  • Activate your environment conda activate hetero2d
  • python -m ipykernel install --user --name hetero2d

Setting up dependancies

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.

  1. 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)
  2. pymatgen has a command line tool installed to set up default directory paths called pmg. There are 2 essential commands you have to run to use Hetero2d on any system.
  • Reference directory for the VASP POTCARs. You need to have the POTCARs from VASP yourself.
    • pmg config -p <EXTRACTED_VASP_POTCAR> <MY_PSP>
  • Default pseudopotential files from VASP
    • pmg config --add PMG_DEFAULT_FUNCTIONAL PBE_54

Examples

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.

Issues Installing

  1. If you have a new install you likely do not have the gcc compiler that pymatgen requires. In that case run
  • sudo apt install build-essential
  • sudo apt-get install manpages-dev

How to cite Hetero2d

If you use Hetero2d in your research, please consider citing the paper!

Tara M. Boland, Arunima K. Singh. Computational synthesis of 2D materials: A high-throughput approach to materials design. Computational Materials Science, 2022, 207, 111238. doi:10.1016/j.commatsci.2022.111238

About

Automate the discovery of stable 2D materials stacked on substrates (either another 2d or substrate surface)! Compute the properties of the interacting system!

Topics

Resources

Stars

14 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - cmdlab/Hetero2d: Automate the discovery of stable 2D materials stacked on substrates (either another 2d or substrate surface)! Compute the properties of the interacting system! · GitHub
Skip to content

Repository files navigation

Hetero2d

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. Check out our documentation or the paper!

Package Description

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

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.

Installation Instructions for Hetero2d

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.

  1. Download the repo using one of the following methods:
  • gh repo clone cmdlab/Hetero2d (gh must be installed)
  • git clone https://github.com/cmdlab/Hetero2d.git
  • git clone git@github.com:cmdlab/Hetero2d.git
  1. Install Hetero2d in a clean python enviromnent using python>=3.9. I suggest using Anaconda3 to manange environments.
  • conda create --name hetero2d python=3.9
  1. Activate the Hetero2d virtual environment and install the package from the Hetero2d directory:
  • pip install -r requirements.txt
  1. 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 listed below to your .bashrc file. Only necessary if python cannot find the package or the setup.py failed for some reason.
  • python setup.py develop or python setup.py install
  • export PYTHONPATH="$HOME/path_to_package/Hetero2d:$PYTHONPATH"
  1. If this is your first time installing the package dependencies listed below, please ensure you have followed the respective setup instructions:
  1. 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. Via the command line:
  • Activate your environment conda activate hetero2d
  • python -m ipykernel install --user --name hetero2d

Setting up dependancies

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.

  1. 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)
  2. pymatgen has a command line tool installed to set up default directory paths called pmg. There are 2 essential commands you have to run to use Hetero2d on any system.
  • Reference directory for the VASP POTCARs. You need to have the POTCARs from VASP yourself.
    • pmg config -p <EXTRACTED_VASP_POTCAR> <MY_PSP>
  • Default pseudopotential files from VASP
    • pmg config --add PMG_DEFAULT_FUNCTIONAL PBE_54

Examples

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.

Issues Installing

  1. If you have a new install you likely do not have the gcc compiler that pymatgen requires. In that case run
  • sudo apt install build-essential
  • sudo apt-get install manpages-dev

How to cite Hetero2d

If you use Hetero2d in your research, please consider citing the paper!

Tara M. Boland, Arunima K. Singh. Computational synthesis of 2D materials: A high-throughput approach to materials design. Computational Materials Science, 2022, 207, 111238. doi:10.1016/j.commatsci.2022.111238

About

Automate the discovery of stable 2D materials stacked on substrates (either another 2d or substrate surface)! Compute the properties of the interacting system!

Topics

Resources

Stars

14 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - cmdlab/Hetero2d: Automate the discovery of stable 2D materials stacked on substrates (either another 2d or substrate surface)! Compute the properties of the interacting system! · GitHub
Skip to content

Repository files navigation

Hetero2d

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. Check out our documentation or the paper!

Package Description

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

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.

Installation Instructions for Hetero2d

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.

  1. Download the repo using one of the following methods:
  • gh repo clone cmdlab/Hetero2d (gh must be installed)
  • git clone https://github.com/cmdlab/Hetero2d.git
  • git clone git@github.com:cmdlab/Hetero2d.git
  1. Install Hetero2d in a clean python enviromnent using python>=3.9. I suggest using Anaconda3 to manange environments.
  • conda create --name hetero2d python=3.9
  1. Activate the Hetero2d virtual environment and install the package from the Hetero2d directory:
  • pip install -r requirements.txt
  1. 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 listed below to your .bashrc file. Only necessary if python cannot find the package or the setup.py failed for some reason.
  • python setup.py develop or python setup.py install
  • export PYTHONPATH="$HOME/path_to_package/Hetero2d:$PYTHONPATH"
  1. If this is your first time installing the package dependencies listed below, please ensure you have followed the respective setup instructions:
  1. 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. Via the command line:
  • Activate your environment conda activate hetero2d
  • python -m ipykernel install --user --name hetero2d

Setting up dependancies

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.

  1. 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)
  2. pymatgen has a command line tool installed to set up default directory paths called pmg. There are 2 essential commands you have to run to use Hetero2d on any system.
  • Reference directory for the VASP POTCARs. You need to have the POTCARs from VASP yourself.
    • pmg config -p <EXTRACTED_VASP_POTCAR> <MY_PSP>
  • Default pseudopotential files from VASP
    • pmg config --add PMG_DEFAULT_FUNCTIONAL PBE_54

Examples

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.

Issues Installing

  1. If you have a new install you likely do not have the gcc compiler that pymatgen requires. In that case run
  • sudo apt install build-essential
  • sudo apt-get install manpages-dev

How to cite Hetero2d

If you use Hetero2d in your research, please consider citing the paper!

Tara M. Boland, Arunima K. Singh. Computational synthesis of 2D materials: A high-throughput approach to materials design. Computational Materials Science, 2022, 207, 111238. doi:10.1016/j.commatsci.2022.111238

About

Automate the discovery of stable 2D materials stacked on substrates (either another 2d or substrate surface)! Compute the properties of the interacting system!

Topics

Resources

Stars

14 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - cmdlab/Hetero2d: Automate the discovery of stable 2D materials stacked on substrates (either another 2d or substrate surface)! Compute the properties of the interacting system! · GitHub
Skip to content

Repository files navigation

Hetero2d

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. Check out our documentation or the paper!

Package Description

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

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.

Installation Instructions for Hetero2d

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.

  1. Download the repo using one of the following methods:
  • gh repo clone cmdlab/Hetero2d (gh must be installed)
  • git clone https://github.com/cmdlab/Hetero2d.git
  • git clone git@github.com:cmdlab/Hetero2d.git
  1. Install Hetero2d in a clean python enviromnent using python>=3.9. I suggest using Anaconda3 to manange environments.
  • conda create --name hetero2d python=3.9
  1. Activate the Hetero2d virtual environment and install the package from the Hetero2d directory:
  • pip install -r requirements.txt
  1. 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 listed below to your .bashrc file. Only necessary if python cannot find the package or the setup.py failed for some reason.
  • python setup.py develop or python setup.py install
  • export PYTHONPATH="$HOME/path_to_package/Hetero2d:$PYTHONPATH"
  1. If this is your first time installing the package dependencies listed below, please ensure you have followed the respective setup instructions:
  1. 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. Via the command line:
  • Activate your environment conda activate hetero2d
  • python -m ipykernel install --user --name hetero2d

Setting up dependancies

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.

  1. 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)
  2. pymatgen has a command line tool installed to set up default directory paths called pmg. There are 2 essential commands you have to run to use Hetero2d on any system.
  • Reference directory for the VASP POTCARs. You need to have the POTCARs from VASP yourself.
    • pmg config -p <EXTRACTED_VASP_POTCAR> <MY_PSP>
  • Default pseudopotential files from VASP
    • pmg config --add PMG_DEFAULT_FUNCTIONAL PBE_54

Examples

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.

Issues Installing

  1. If you have a new install you likely do not have the gcc compiler that pymatgen requires. In that case run
  • sudo apt install build-essential
  • sudo apt-get install manpages-dev

How to cite Hetero2d

If you use Hetero2d in your research, please consider citing the paper!

Tara M. Boland, Arunima K. Singh. Computational synthesis of 2D materials: A high-throughput approach to materials design. Computational Materials Science, 2022, 207, 111238. doi:10.1016/j.commatsci.2022.111238

About

Automate the discovery of stable 2D materials stacked on substrates (either another 2d or substrate surface)! Compute the properties of the interacting system!

Topics

Resources

Stars

14 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - cmdlab/Hetero2d: Automate the discovery of stable 2D materials stacked on substrates (either another 2d or substrate surface)! Compute the properties of the interacting system! · GitHub
Skip to content

Repository files navigation

Hetero2d

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. Check out our documentation or the paper!

Package Description

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

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.

Installation Instructions for Hetero2d

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.

  1. Download the repo using one of the following methods:
  • gh repo clone cmdlab/Hetero2d (gh must be installed)
  • git clone https://github.com/cmdlab/Hetero2d.git
  • git clone git@github.com:cmdlab/Hetero2d.git
  1. Install Hetero2d in a clean python enviromnent using python>=3.9. I suggest using Anaconda3 to manange environments.
  • conda create --name hetero2d python=3.9
  1. Activate the Hetero2d virtual environment and install the package from the Hetero2d directory:
  • pip install -r requirements.txt
  1. 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 listed below to your .bashrc file. Only necessary if python cannot find the package or the setup.py failed for some reason.
  • python setup.py develop or python setup.py install
  • export PYTHONPATH="$HOME/path_to_package/Hetero2d:$PYTHONPATH"
  1. If this is your first time installing the package dependencies listed below, please ensure you have followed the respective setup instructions:
  1. 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. Via the command line:
  • Activate your environment conda activate hetero2d
  • python -m ipykernel install --user --name hetero2d

Setting up dependancies

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.

  1. 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)
  2. pymatgen has a command line tool installed to set up default directory paths called pmg. There are 2 essential commands you have to run to use Hetero2d on any system.
  • Reference directory for the VASP POTCARs. You need to have the POTCARs from VASP yourself.
    • pmg config -p <EXTRACTED_VASP_POTCAR> <MY_PSP>
  • Default pseudopotential files from VASP
    • pmg config --add PMG_DEFAULT_FUNCTIONAL PBE_54

Examples

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.

Issues Installing

  1. If you have a new install you likely do not have the gcc compiler that pymatgen requires. In that case run
  • sudo apt install build-essential
  • sudo apt-get install manpages-dev

How to cite Hetero2d

If you use Hetero2d in your research, please consider citing the paper!

Tara M. Boland, Arunima K. Singh. Computational synthesis of 2D materials: A high-throughput approach to materials design. Computational Materials Science, 2022, 207, 111238. doi:10.1016/j.commatsci.2022.111238

About

Automate the discovery of stable 2D materials stacked on substrates (either another 2d or substrate surface)! Compute the properties of the interacting system!

Topics

Resources

Stars

14 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - cmdlab/Hetero2d: Automate the discovery of stable 2D materials stacked on substrates (either another 2d or substrate surface)! Compute the properties of the interacting system! · GitHub
Skip to content

Repository files navigation

Hetero2d

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. Check out our documentation or the paper!

Package Description

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

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.

Installation Instructions for Hetero2d

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.

  1. Download the repo using one of the following methods:
  • gh repo clone cmdlab/Hetero2d (gh must be installed)
  • git clone https://github.com/cmdlab/Hetero2d.git
  • git clone git@github.com:cmdlab/Hetero2d.git
  1. Install Hetero2d in a clean python enviromnent using python>=3.9. I suggest using Anaconda3 to manange environments.
  • conda create --name hetero2d python=3.9
  1. Activate the Hetero2d virtual environment and install the package from the Hetero2d directory:
  • pip install -r requirements.txt
  1. 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 listed below to your .bashrc file. Only necessary if python cannot find the package or the setup.py failed for some reason.
  • python setup.py develop or python setup.py install
  • export PYTHONPATH="$HOME/path_to_package/Hetero2d:$PYTHONPATH"
  1. If this is your first time installing the package dependencies listed below, please ensure you have followed the respective setup instructions:
  1. 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. Via the command line:
  • Activate your environment conda activate hetero2d
  • python -m ipykernel install --user --name hetero2d

Setting up dependancies

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.

  1. 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)
  2. pymatgen has a command line tool installed to set up default directory paths called pmg. There are 2 essential commands you have to run to use Hetero2d on any system.
  • Reference directory for the VASP POTCARs. You need to have the POTCARs from VASP yourself.
    • pmg config -p <EXTRACTED_VASP_POTCAR> <MY_PSP>
  • Default pseudopotential files from VASP
    • pmg config --add PMG_DEFAULT_FUNCTIONAL PBE_54

Examples

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.

Issues Installing

  1. If you have a new install you likely do not have the gcc compiler that pymatgen requires. In that case run
  • sudo apt install build-essential
  • sudo apt-get install manpages-dev

How to cite Hetero2d

If you use Hetero2d in your research, please consider citing the paper!

Tara M. Boland, Arunima K. Singh. Computational synthesis of 2D materials: A high-throughput approach to materials design. Computational Materials Science, 2022, 207, 111238. doi:10.1016/j.commatsci.2022.111238

About

Automate the discovery of stable 2D materials stacked on substrates (either another 2d or substrate surface)! Compute the properties of the interacting system!

Topics

Resources

Stars

14 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - cmdlab/Hetero2d: Automate the discovery of stable 2D materials stacked on substrates (either another 2d or substrate surface)! Compute the properties of the interacting system! · GitHub
Skip to content

Repository files navigation

Hetero2d

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. Check out our documentation or the paper!

Package Description

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

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.

Installation Instructions for Hetero2d

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.

  1. Download the repo using one of the following methods:
  • gh repo clone cmdlab/Hetero2d (gh must be installed)
  • git clone https://github.com/cmdlab/Hetero2d.git
  • git clone git@github.com:cmdlab/Hetero2d.git
  1. Install Hetero2d in a clean python enviromnent using python>=3.9. I suggest using Anaconda3 to manange environments.
  • conda create --name hetero2d python=3.9
  1. Activate the Hetero2d virtual environment and install the package from the Hetero2d directory:
  • pip install -r requirements.txt
  1. 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 listed below to your .bashrc file. Only necessary if python cannot find the package or the setup.py failed for some reason.
  • python setup.py develop or python setup.py install
  • export PYTHONPATH="$HOME/path_to_package/Hetero2d:$PYTHONPATH"
  1. If this is your first time installing the package dependencies listed below, please ensure you have followed the respective setup instructions:
  1. 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. Via the command line:
  • Activate your environment conda activate hetero2d
  • python -m ipykernel install --user --name hetero2d

Setting up dependancies

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.

  1. 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)
  2. pymatgen has a command line tool installed to set up default directory paths called pmg. There are 2 essential commands you have to run to use Hetero2d on any system.
  • Reference directory for the VASP POTCARs. You need to have the POTCARs from VASP yourself.
    • pmg config -p <EXTRACTED_VASP_POTCAR> <MY_PSP>
  • Default pseudopotential files from VASP
    • pmg config --add PMG_DEFAULT_FUNCTIONAL PBE_54

Examples

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.

Issues Installing

  1. If you have a new install you likely do not have the gcc compiler that pymatgen requires. In that case run
  • sudo apt install build-essential
  • sudo apt-get install manpages-dev

How to cite Hetero2d

If you use Hetero2d in your research, please consider citing the paper!

Tara M. Boland, Arunima K. Singh. Computational synthesis of 2D materials: A high-throughput approach to materials design. Computational Materials Science, 2022, 207, 111238. doi:10.1016/j.commatsci.2022.111238

About

Automate the discovery of stable 2D materials stacked on substrates (either another 2d or substrate surface)! Compute the properties of the interacting system!

Topics

Resources

Stars

14 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - cmdlab/Hetero2d: Automate the discovery of stable 2D materials stacked on substrates (either another 2d or substrate surface)! Compute the properties of the interacting system! · GitHub
Skip to content

Repository files navigation

Hetero2d

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. Check out our documentation or the paper!

Package Description

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

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.

Installation Instructions for Hetero2d

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.

  1. Download the repo using one of the following methods:
  • gh repo clone cmdlab/Hetero2d (gh must be installed)
  • git clone https://github.com/cmdlab/Hetero2d.git
  • git clone git@github.com:cmdlab/Hetero2d.git
  1. Install Hetero2d in a clean python enviromnent using python>=3.9. I suggest using Anaconda3 to manange environments.
  • conda create --name hetero2d python=3.9
  1. Activate the Hetero2d virtual environment and install the package from the Hetero2d directory:
  • pip install -r requirements.txt
  1. 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 listed below to your .bashrc file. Only necessary if python cannot find the package or the setup.py failed for some reason.
  • python setup.py develop or python setup.py install
  • export PYTHONPATH="$HOME/path_to_package/Hetero2d:$PYTHONPATH"
  1. If this is your first time installing the package dependencies listed below, please ensure you have followed the respective setup instructions:
  1. 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. Via the command line:
  • Activate your environment conda activate hetero2d
  • python -m ipykernel install --user --name hetero2d

Setting up dependancies

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.

  1. 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)
  2. pymatgen has a command line tool installed to set up default directory paths called pmg. There are 2 essential commands you have to run to use Hetero2d on any system.
  • Reference directory for the VASP POTCARs. You need to have the POTCARs from VASP yourself.
    • pmg config -p <EXTRACTED_VASP_POTCAR> <MY_PSP>
  • Default pseudopotential files from VASP
    • pmg config --add PMG_DEFAULT_FUNCTIONAL PBE_54

Examples

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.

Issues Installing

  1. If you have a new install you likely do not have the gcc compiler that pymatgen requires. In that case run
  • sudo apt install build-essential
  • sudo apt-get install manpages-dev

How to cite Hetero2d

If you use Hetero2d in your research, please consider citing the paper!

Tara M. Boland, Arunima K. Singh. Computational synthesis of 2D materials: A high-throughput approach to materials design. Computational Materials Science, 2022, 207, 111238. doi:10.1016/j.commatsci.2022.111238

About

Automate the discovery of stable 2D materials stacked on substrates (either another 2d or substrate surface)! Compute the properties of the interacting system!

Topics

Resources

Stars

14 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages