diff --git a/atomate/__init__.py b/atomate/__init__.py index ab5e18288..12c9d608a 100644 --- a/atomate/__init__.py +++ b/atomate/__init__.py @@ -1 +1 @@ -__version__ = "0.8.5" \ No newline at end of file +__version__ = "0.8.6" \ No newline at end of file diff --git a/docs/_images/math/1a4b629275000c607845a73db48e6ac7f90e2c66.png b/docs/_images/math/1a4b629275000c607845a73db48e6ac7f90e2c66.png new file mode 100644 index 000000000..abfab244f Binary files /dev/null and b/docs/_images/math/1a4b629275000c607845a73db48e6ac7f90e2c66.png differ diff --git a/docs/_images/math/21bf7e6d55dfb97d60bdb21b0339d8b343f3ba84.png b/docs/_images/math/21bf7e6d55dfb97d60bdb21b0339d8b343f3ba84.png new file mode 100644 index 000000000..fe81a371a Binary files /dev/null and b/docs/_images/math/21bf7e6d55dfb97d60bdb21b0339d8b343f3ba84.png differ diff --git a/docs/_images/math/294bfec245799ab29aace193d2a6a9ca12c107b0.png b/docs/_images/math/294bfec245799ab29aace193d2a6a9ca12c107b0.png new file mode 100644 index 000000000..e760438d5 Binary files /dev/null and b/docs/_images/math/294bfec245799ab29aace193d2a6a9ca12c107b0.png differ diff --git a/docs/_images/math/3666981dc77862de77b6ecfcb64aad59b425cbaf.png b/docs/_images/math/3666981dc77862de77b6ecfcb64aad59b425cbaf.png new file mode 100644 index 000000000..7c25bd718 Binary files /dev/null and b/docs/_images/math/3666981dc77862de77b6ecfcb64aad59b425cbaf.png differ diff --git a/docs/_images/math/66a97789fe1a1365e5a6db0b58fc1abec5dfeb46.png b/docs/_images/math/66a97789fe1a1365e5a6db0b58fc1abec5dfeb46.png new file mode 100644 index 000000000..b8578f9b5 Binary files /dev/null and b/docs/_images/math/66a97789fe1a1365e5a6db0b58fc1abec5dfeb46.png differ diff --git a/docs/_images/math/66ebfcff6eadbfdcfbed124f9584df0c3570dc8a.png b/docs/_images/math/66ebfcff6eadbfdcfbed124f9584df0c3570dc8a.png new file mode 100644 index 000000000..5404bc964 Binary files /dev/null and b/docs/_images/math/66ebfcff6eadbfdcfbed124f9584df0c3570dc8a.png differ diff --git a/docs/_images/math/67be806f44b78982eb821332699a2c84e086485d.png b/docs/_images/math/67be806f44b78982eb821332699a2c84e086485d.png new file mode 100644 index 000000000..1d0e1524a Binary files /dev/null and b/docs/_images/math/67be806f44b78982eb821332699a2c84e086485d.png differ diff --git a/docs/_images/math/699a37bbd7b0416548ee19df7cf0858bb9ec46b1.png b/docs/_images/math/699a37bbd7b0416548ee19df7cf0858bb9ec46b1.png new file mode 100644 index 000000000..f12790f00 Binary files /dev/null and b/docs/_images/math/699a37bbd7b0416548ee19df7cf0858bb9ec46b1.png differ diff --git a/docs/_images/math/78763521c82d5102be5a3f148fe107a4705627c7.png b/docs/_images/math/78763521c82d5102be5a3f148fe107a4705627c7.png new file mode 100644 index 000000000..c264f20f1 Binary files /dev/null and b/docs/_images/math/78763521c82d5102be5a3f148fe107a4705627c7.png differ diff --git a/docs/_images/math/7d28b83e95abf8aa59bcd91638cd7497b0045c5f.png b/docs/_images/math/7d28b83e95abf8aa59bcd91638cd7497b0045c5f.png new file mode 100644 index 000000000..bae4f32f8 Binary files /dev/null and b/docs/_images/math/7d28b83e95abf8aa59bcd91638cd7497b0045c5f.png differ diff --git a/docs/_images/math/a2af98f30bcea97cee6215f77d3f45e87073d56d.png b/docs/_images/math/a2af98f30bcea97cee6215f77d3f45e87073d56d.png new file mode 100644 index 000000000..1503a1f60 Binary files /dev/null and b/docs/_images/math/a2af98f30bcea97cee6215f77d3f45e87073d56d.png differ diff --git a/docs/_sources/changelog.rst.txt b/docs/_sources/changelog.rst.txt index aa6f597d3..1804f1b95 100644 --- a/docs/_sources/changelog.rst.txt +++ b/docs/_sources/changelog.rst.txt @@ -2,6 +2,10 @@ atomate Changelog ================= +**v0.8.6** + +* add bandstructure no-opt workflow preset (A. Ganose) + **v0.8.5** * add NMR workflow (S. Dwaraknath) diff --git a/docs/_sources/contributors.rst.txt b/docs/_sources/contributors.rst.txt index 6c293d8c2..223b7f565 100644 --- a/docs/_sources/contributors.rst.txt +++ b/docs/_sources/contributors.rst.txt @@ -6,10 +6,10 @@ atomate development is led by the Hacking Materials research group led by Anubha Contributions are provided by: +* Alireza Faghaninia, Alex Dunn, Alex Ganose, and Evan Spotte-Smith through the research group of A. Jain at LBNL. * Kiran Mathew, Shyam Dwaraknath, Joey Montoya, Murat Aykol, Patrick Huck, Brandon Wood, Sam Blau, Jimmy Shen, and Anne Rutt through the research group of Prof. Kristin Persson at UC Berkeley. * Hanmei Tang, Prof. Shyue Ping Ong, and the Materials Virtual Lab research group at UC San Diego. * Brandon Bocklund, who led the atomate documentation effort, through the research group of Prof. Zi-Kiu Liu at Penn State. -* Alireza Faghaninia, Alex Dunn, and Evan Spotte-Smith through the research group of A. Jain at LBNL. * Tess Smidt through the research group of Prof. Jeff Neaton at UC Berkeley. * Danny Broberg through the research group of Prof. Mark Asta at UC Berkeley. * External contributors: specter119, M. Dias Costa, S. Torrisi diff --git a/docs/_static/basic.css b/docs/_static/basic.css index 19ced1057..104f076ae 100644 --- a/docs/_static/basic.css +++ b/docs/_static/basic.css @@ -81,6 +81,10 @@ div.sphinxsidebar input { font-size: 1em; } +div.sphinxsidebar #searchbox form.search { + overflow: hidden; +} + div.sphinxsidebar #searchbox input[type="text"] { float: left; width: 80%; @@ -427,6 +431,13 @@ table.field-list td, table.field-list th { hyphens: manual; } +/* -- hlist styles ---------------------------------------------------------- */ + +table.hlist td { + vertical-align: top; +} + + /* -- other body styles ----------------------------------------------------- */ ol.arabic { diff --git a/docs/_static/doctools.js b/docs/_static/doctools.js index 0c15c0099..ffadbec11 100644 --- a/docs/_static/doctools.js +++ b/docs/_static/doctools.js @@ -70,7 +70,9 @@ jQuery.fn.highlightText = function(text, className) { if (node.nodeType === 3) { var val = node.nodeValue; var pos = val.toLowerCase().indexOf(text); - if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) { + if (pos >= 0 && + !jQuery(node.parentNode).hasClass(className) && + !jQuery(node.parentNode).hasClass("nohighlight")) { var span; var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); if (isInSVG) { @@ -148,7 +150,9 @@ var Documentation = { this.fixFirefoxAnchorBug(); this.highlightSearchWords(); this.initIndexTable(); - + if (DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) { + this.initOnKeyListeners(); + } }, /** @@ -308,4 +312,4 @@ _ = Documentation.gettext; $(document).ready(function() { Documentation.init(); -}); \ No newline at end of file +}); diff --git a/docs/_static/documentation_options.js b/docs/_static/documentation_options.js index bdc4c35e9..147685d35 100644 --- a/docs/_static/documentation_options.js +++ b/docs/_static/documentation_options.js @@ -1,9 +1,296 @@ var DOCUMENTATION_OPTIONS = { - URL_ROOT: '', - VERSION: '0.8.5', + URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), + VERSION: '0.8.6', LANGUAGE: 'None', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true, - SOURCELINK_SUFFIX: '.txt' -}; \ No newline at end of file + SOURCELINK_SUFFIX: '.txt', + NAVIGATION_WITH_KEYS: false, + SEARCH_LANGUAGE_STOP_WORDS: ["a","and","are","as","at","be","but","by","for","if","in","into","is","it","near","no","not","of","on","or","such","that","the","their","then","there","these","they","this","to","was","will","with"] +}; + + + +/* Non-minified version JS is _stemmer.js if file is provided */ +/** + * Porter Stemmer + */ +var Stemmer = function() { + + var step2list = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' + }; + + var step3list = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }; + + var c = "[^aeiou]"; // consonant + var v = "[aeiouy]"; // vowel + var C = c + "[^aeiouy]*"; // consonant sequence + var V = v + "[aeiou]*"; // vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + + + + + +var splitChars = (function() { + var result = {}; + var singles = [96, 180, 187, 191, 215, 247, 749, 885, 903, 907, 909, 930, 1014, 1648, + 1748, 1809, 2416, 2473, 2481, 2526, 2601, 2609, 2612, 2615, 2653, 2702, + 2706, 2729, 2737, 2740, 2857, 2865, 2868, 2910, 2928, 2948, 2961, 2971, + 2973, 3085, 3089, 3113, 3124, 3213, 3217, 3241, 3252, 3295, 3341, 3345, + 3369, 3506, 3516, 3633, 3715, 3721, 3736, 3744, 3748, 3750, 3756, 3761, + 3781, 3912, 4239, 4347, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823, + 4881, 5760, 5901, 5997, 6313, 7405, 8024, 8026, 8028, 8030, 8117, 8125, + 8133, 8181, 8468, 8485, 8487, 8489, 8494, 8527, 11311, 11359, 11687, 11695, + 11703, 11711, 11719, 11727, 11735, 12448, 12539, 43010, 43014, 43019, 43587, + 43696, 43713, 64286, 64297, 64311, 64317, 64319, 64322, 64325, 65141]; + var i, j, start, end; + for (i = 0; i < singles.length; i++) { + result[singles[i]] = true; + } + var ranges = [[0, 47], [58, 64], [91, 94], [123, 169], [171, 177], [182, 184], [706, 709], + [722, 735], [741, 747], [751, 879], [888, 889], [894, 901], [1154, 1161], + [1318, 1328], [1367, 1368], [1370, 1376], [1416, 1487], [1515, 1519], [1523, 1568], + [1611, 1631], [1642, 1645], [1750, 1764], [1767, 1773], [1789, 1790], [1792, 1807], + [1840, 1868], [1958, 1968], [1970, 1983], [2027, 2035], [2038, 2041], [2043, 2047], + [2070, 2073], [2075, 2083], [2085, 2087], [2089, 2307], [2362, 2364], [2366, 2383], + [2385, 2391], [2402, 2405], [2419, 2424], [2432, 2436], [2445, 2446], [2449, 2450], + [2483, 2485], [2490, 2492], [2494, 2509], [2511, 2523], [2530, 2533], [2546, 2547], + [2554, 2564], [2571, 2574], [2577, 2578], [2618, 2648], [2655, 2661], [2672, 2673], + [2677, 2692], [2746, 2748], [2750, 2767], [2769, 2783], [2786, 2789], [2800, 2820], + [2829, 2830], [2833, 2834], [2874, 2876], [2878, 2907], [2914, 2917], [2930, 2946], + [2955, 2957], [2966, 2968], [2976, 2978], [2981, 2983], [2987, 2989], [3002, 3023], + [3025, 3045], [3059, 3076], [3130, 3132], [3134, 3159], [3162, 3167], [3170, 3173], + [3184, 3191], [3199, 3204], [3258, 3260], [3262, 3293], [3298, 3301], [3312, 3332], + [3386, 3388], [3390, 3423], [3426, 3429], [3446, 3449], [3456, 3460], [3479, 3481], + [3518, 3519], [3527, 3584], [3636, 3647], [3655, 3663], [3674, 3712], [3717, 3718], + [3723, 3724], [3726, 3731], [3752, 3753], [3764, 3772], [3774, 3775], [3783, 3791], + [3802, 3803], [3806, 3839], [3841, 3871], [3892, 3903], [3949, 3975], [3980, 4095], + [4139, 4158], [4170, 4175], [4182, 4185], [4190, 4192], [4194, 4196], [4199, 4205], + [4209, 4212], [4226, 4237], [4250, 4255], [4294, 4303], [4349, 4351], [4686, 4687], + [4702, 4703], [4750, 4751], [4790, 4791], [4806, 4807], [4886, 4887], [4955, 4968], + [4989, 4991], [5008, 5023], [5109, 5120], [5741, 5742], [5787, 5791], [5867, 5869], + [5873, 5887], [5906, 5919], [5938, 5951], [5970, 5983], [6001, 6015], [6068, 6102], + [6104, 6107], [6109, 6111], [6122, 6127], [6138, 6159], [6170, 6175], [6264, 6271], + [6315, 6319], [6390, 6399], [6429, 6469], [6510, 6511], [6517, 6527], [6572, 6592], + [6600, 6607], [6619, 6655], [6679, 6687], [6741, 6783], [6794, 6799], [6810, 6822], + [6824, 6916], [6964, 6980], [6988, 6991], [7002, 7042], [7073, 7085], [7098, 7167], + [7204, 7231], [7242, 7244], [7294, 7400], [7410, 7423], [7616, 7679], [7958, 7959], + [7966, 7967], [8006, 8007], [8014, 8015], [8062, 8063], [8127, 8129], [8141, 8143], + [8148, 8149], [8156, 8159], [8173, 8177], [8189, 8303], [8306, 8307], [8314, 8318], + [8330, 8335], [8341, 8449], [8451, 8454], [8456, 8457], [8470, 8472], [8478, 8483], + [8506, 8507], [8512, 8516], [8522, 8525], [8586, 9311], [9372, 9449], [9472, 10101], + [10132, 11263], [11493, 11498], [11503, 11516], [11518, 11519], [11558, 11567], + [11622, 11630], [11632, 11647], [11671, 11679], [11743, 11822], [11824, 12292], + [12296, 12320], [12330, 12336], [12342, 12343], [12349, 12352], [12439, 12444], + [12544, 12548], [12590, 12592], [12687, 12689], [12694, 12703], [12728, 12783], + [12800, 12831], [12842, 12880], [12896, 12927], [12938, 12976], [12992, 13311], + [19894, 19967], [40908, 40959], [42125, 42191], [42238, 42239], [42509, 42511], + [42540, 42559], [42592, 42593], [42607, 42622], [42648, 42655], [42736, 42774], + [42784, 42785], [42889, 42890], [42893, 43002], [43043, 43055], [43062, 43071], + [43124, 43137], [43188, 43215], [43226, 43249], [43256, 43258], [43260, 43263], + [43302, 43311], [43335, 43359], [43389, 43395], [43443, 43470], [43482, 43519], + [43561, 43583], [43596, 43599], [43610, 43615], [43639, 43641], [43643, 43647], + [43698, 43700], [43703, 43704], [43710, 43711], [43715, 43738], [43742, 43967], + [44003, 44015], [44026, 44031], [55204, 55215], [55239, 55242], [55292, 55295], + [57344, 63743], [64046, 64047], [64110, 64111], [64218, 64255], [64263, 64274], + [64280, 64284], [64434, 64466], [64830, 64847], [64912, 64913], [64968, 65007], + [65020, 65135], [65277, 65295], [65306, 65312], [65339, 65344], [65371, 65381], + [65471, 65473], [65480, 65481], [65488, 65489], [65496, 65497]]; + for (i = 0; i < ranges.length; i++) { + start = ranges[i][0]; + end = ranges[i][1]; + for (j = start; j <= end; j++) { + result[j] = true; + } + } + return result; +})(); + +function splitQuery(query) { + var result = []; + var start = -1; + for (var i = 0; i < query.length; i++) { + if (splitChars[query.charCodeAt(i)]) { + if (start !== -1) { + result.push(query.slice(start, i)); + start = -1; + } + } else if (start === -1) { + start = i; + } + } + if (start !== -1) { + result.push(query.slice(start)); + } + return result; +} + + diff --git a/docs/_static/searchtools.js b/docs/_static/searchtools.js index 41b833677..7473859b2 100644 --- a/docs/_static/searchtools.js +++ b/docs/_static/searchtools.js @@ -1,5 +1,5 @@ /* - * searchtools.js_t + * searchtools.js * ~~~~~~~~~~~~~~~~ * * Sphinx JavaScript utilities for the full-text search. @@ -9,323 +9,44 @@ * */ - -/* Non-minified version JS is _stemmer.js if file is provided */ -/** - * Porter Stemmer - */ -var Stemmer = function() { - - var step2list = { - ational: 'ate', - tional: 'tion', - enci: 'ence', - anci: 'ance', - izer: 'ize', - bli: 'ble', - alli: 'al', - entli: 'ent', - eli: 'e', - ousli: 'ous', - ization: 'ize', - ation: 'ate', - ator: 'ate', - alism: 'al', - iveness: 'ive', - fulness: 'ful', - ousness: 'ous', - aliti: 'al', - iviti: 'ive', - biliti: 'ble', - logi: 'log' - }; - - var step3list = { - icate: 'ic', - ative: '', - alize: 'al', - iciti: 'ic', - ical: 'ic', - ful: '', - ness: '' +if (!Scorer) { + /** + * Simple result scoring code. + */ + var Scorer = { + // Implement the following function to further tweak the score for each result + // The function takes a result array [filename, title, anchor, descr, score] + // and returns the new score. + /* + score: function(result) { + return result[4]; + }, + */ + + // query matches the full name of an object + objNameMatch: 11, + // or matches in the last dotted part of the object name + objPartialMatch: 6, + // Additive scores depending on the priority of the object + objPrio: {0: 15, // used to be importantResults + 1: 5, // used to be objectResults + 2: -5}, // used to be unimportantResults + // Used when the priority is not in the mapping. + objPrioDefault: 0, + + // query found in title + title: 15, + // query found in terms + term: 5 }; - - var c = "[^aeiou]"; // consonant - var v = "[aeiouy]"; // vowel - var C = c + "[^aeiouy]*"; // consonant sequence - var V = v + "[aeiou]*"; // vowel sequence - - var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 - var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 - var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 - var s_v = "^(" + C + ")?" + v; // vowel in stem - - this.stemWord = function (w) { - var stem; - var suffix; - var firstch; - var origword = w; - - if (w.length < 3) - return w; - - var re; - var re2; - var re3; - var re4; - - firstch = w.substr(0,1); - if (firstch == "y") - w = firstch.toUpperCase() + w.substr(1); - - // Step 1a - re = /^(.+?)(ss|i)es$/; - re2 = /^(.+?)([^s])s$/; - - if (re.test(w)) - w = w.replace(re,"$1$2"); - else if (re2.test(w)) - w = w.replace(re2,"$1$2"); - - // Step 1b - re = /^(.+?)eed$/; - re2 = /^(.+?)(ed|ing)$/; - if (re.test(w)) { - var fp = re.exec(w); - re = new RegExp(mgr0); - if (re.test(fp[1])) { - re = /.$/; - w = w.replace(re,""); - } - } - else if (re2.test(w)) { - var fp = re2.exec(w); - stem = fp[1]; - re2 = new RegExp(s_v); - if (re2.test(stem)) { - w = stem; - re2 = /(at|bl|iz)$/; - re3 = new RegExp("([^aeiouylsz])\\1$"); - re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); - if (re2.test(w)) - w = w + "e"; - else if (re3.test(w)) { - re = /.$/; - w = w.replace(re,""); - } - else if (re4.test(w)) - w = w + "e"; - } - } - - // Step 1c - re = /^(.+?)y$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(s_v); - if (re.test(stem)) - w = stem + "i"; - } - - // Step 2 - re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - suffix = fp[2]; - re = new RegExp(mgr0); - if (re.test(stem)) - w = stem + step2list[suffix]; - } - - // Step 3 - re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - suffix = fp[2]; - re = new RegExp(mgr0); - if (re.test(stem)) - w = stem + step3list[suffix]; - } - - // Step 4 - re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; - re2 = /^(.+?)(s|t)(ion)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(mgr1); - if (re.test(stem)) - w = stem; - } - else if (re2.test(w)) { - var fp = re2.exec(w); - stem = fp[1] + fp[2]; - re2 = new RegExp(mgr1); - if (re2.test(stem)) - w = stem; - } - - // Step 5 - re = /^(.+?)e$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(mgr1); - re2 = new RegExp(meq1); - re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); - if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) - w = stem; - } - re = /ll$/; - re2 = new RegExp(mgr1); - if (re.test(w) && re2.test(w)) { - re = /.$/; - w = w.replace(re,""); - } - - // and turn initial Y back to y - if (firstch == "y") - w = firstch.toLowerCase() + w.substr(1); - return w; - } } - - -/** - * Simple result scoring code. - */ -var Scorer = { - // Implement the following function to further tweak the score for each result - // The function takes a result array [filename, title, anchor, descr, score] - // and returns the new score. - /* - score: function(result) { - return result[4]; - }, - */ - - // query matches the full name of an object - objNameMatch: 11, - // or matches in the last dotted part of the object name - objPartialMatch: 6, - // Additive scores depending on the priority of the object - objPrio: {0: 15, // used to be importantResults - 1: 5, // used to be objectResults - 2: -5}, // used to be unimportantResults - // Used when the priority is not in the mapping. - objPrioDefault: 0, - - // query found in title - title: 15, - // query found in terms - term: 5 -}; - - - - - -var splitChars = (function() { - var result = {}; - var singles = [96, 180, 187, 191, 215, 247, 749, 885, 903, 907, 909, 930, 1014, 1648, - 1748, 1809, 2416, 2473, 2481, 2526, 2601, 2609, 2612, 2615, 2653, 2702, - 2706, 2729, 2737, 2740, 2857, 2865, 2868, 2910, 2928, 2948, 2961, 2971, - 2973, 3085, 3089, 3113, 3124, 3213, 3217, 3241, 3252, 3295, 3341, 3345, - 3369, 3506, 3516, 3633, 3715, 3721, 3736, 3744, 3748, 3750, 3756, 3761, - 3781, 3912, 4239, 4347, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823, - 4881, 5760, 5901, 5997, 6313, 7405, 8024, 8026, 8028, 8030, 8117, 8125, - 8133, 8181, 8468, 8485, 8487, 8489, 8494, 8527, 11311, 11359, 11687, 11695, - 11703, 11711, 11719, 11727, 11735, 12448, 12539, 43010, 43014, 43019, 43587, - 43696, 43713, 64286, 64297, 64311, 64317, 64319, 64322, 64325, 65141]; - var i, j, start, end; - for (i = 0; i < singles.length; i++) { - result[singles[i]] = true; - } - var ranges = [[0, 47], [58, 64], [91, 94], [123, 169], [171, 177], [182, 184], [706, 709], - [722, 735], [741, 747], [751, 879], [888, 889], [894, 901], [1154, 1161], - [1318, 1328], [1367, 1368], [1370, 1376], [1416, 1487], [1515, 1519], [1523, 1568], - [1611, 1631], [1642, 1645], [1750, 1764], [1767, 1773], [1789, 1790], [1792, 1807], - [1840, 1868], [1958, 1968], [1970, 1983], [2027, 2035], [2038, 2041], [2043, 2047], - [2070, 2073], [2075, 2083], [2085, 2087], [2089, 2307], [2362, 2364], [2366, 2383], - [2385, 2391], [2402, 2405], [2419, 2424], [2432, 2436], [2445, 2446], [2449, 2450], - [2483, 2485], [2490, 2492], [2494, 2509], [2511, 2523], [2530, 2533], [2546, 2547], - [2554, 2564], [2571, 2574], [2577, 2578], [2618, 2648], [2655, 2661], [2672, 2673], - [2677, 2692], [2746, 2748], [2750, 2767], [2769, 2783], [2786, 2789], [2800, 2820], - [2829, 2830], [2833, 2834], [2874, 2876], [2878, 2907], [2914, 2917], [2930, 2946], - [2955, 2957], [2966, 2968], [2976, 2978], [2981, 2983], [2987, 2989], [3002, 3023], - [3025, 3045], [3059, 3076], [3130, 3132], [3134, 3159], [3162, 3167], [3170, 3173], - [3184, 3191], [3199, 3204], [3258, 3260], [3262, 3293], [3298, 3301], [3312, 3332], - [3386, 3388], [3390, 3423], [3426, 3429], [3446, 3449], [3456, 3460], [3479, 3481], - [3518, 3519], [3527, 3584], [3636, 3647], [3655, 3663], [3674, 3712], [3717, 3718], - [3723, 3724], [3726, 3731], [3752, 3753], [3764, 3772], [3774, 3775], [3783, 3791], - [3802, 3803], [3806, 3839], [3841, 3871], [3892, 3903], [3949, 3975], [3980, 4095], - [4139, 4158], [4170, 4175], [4182, 4185], [4190, 4192], [4194, 4196], [4199, 4205], - [4209, 4212], [4226, 4237], [4250, 4255], [4294, 4303], [4349, 4351], [4686, 4687], - [4702, 4703], [4750, 4751], [4790, 4791], [4806, 4807], [4886, 4887], [4955, 4968], - [4989, 4991], [5008, 5023], [5109, 5120], [5741, 5742], [5787, 5791], [5867, 5869], - [5873, 5887], [5906, 5919], [5938, 5951], [5970, 5983], [6001, 6015], [6068, 6102], - [6104, 6107], [6109, 6111], [6122, 6127], [6138, 6159], [6170, 6175], [6264, 6271], - [6315, 6319], [6390, 6399], [6429, 6469], [6510, 6511], [6517, 6527], [6572, 6592], - [6600, 6607], [6619, 6655], [6679, 6687], [6741, 6783], [6794, 6799], [6810, 6822], - [6824, 6916], [6964, 6980], [6988, 6991], [7002, 7042], [7073, 7085], [7098, 7167], - [7204, 7231], [7242, 7244], [7294, 7400], [7410, 7423], [7616, 7679], [7958, 7959], - [7966, 7967], [8006, 8007], [8014, 8015], [8062, 8063], [8127, 8129], [8141, 8143], - [8148, 8149], [8156, 8159], [8173, 8177], [8189, 8303], [8306, 8307], [8314, 8318], - [8330, 8335], [8341, 8449], [8451, 8454], [8456, 8457], [8470, 8472], [8478, 8483], - [8506, 8507], [8512, 8516], [8522, 8525], [8586, 9311], [9372, 9449], [9472, 10101], - [10132, 11263], [11493, 11498], [11503, 11516], [11518, 11519], [11558, 11567], - [11622, 11630], [11632, 11647], [11671, 11679], [11743, 11822], [11824, 12292], - [12296, 12320], [12330, 12336], [12342, 12343], [12349, 12352], [12439, 12444], - [12544, 12548], [12590, 12592], [12687, 12689], [12694, 12703], [12728, 12783], - [12800, 12831], [12842, 12880], [12896, 12927], [12938, 12976], [12992, 13311], - [19894, 19967], [40908, 40959], [42125, 42191], [42238, 42239], [42509, 42511], - [42540, 42559], [42592, 42593], [42607, 42622], [42648, 42655], [42736, 42774], - [42784, 42785], [42889, 42890], [42893, 43002], [43043, 43055], [43062, 43071], - [43124, 43137], [43188, 43215], [43226, 43249], [43256, 43258], [43260, 43263], - [43302, 43311], [43335, 43359], [43389, 43395], [43443, 43470], [43482, 43519], - [43561, 43583], [43596, 43599], [43610, 43615], [43639, 43641], [43643, 43647], - [43698, 43700], [43703, 43704], [43710, 43711], [43715, 43738], [43742, 43967], - [44003, 44015], [44026, 44031], [55204, 55215], [55239, 55242], [55292, 55295], - [57344, 63743], [64046, 64047], [64110, 64111], [64218, 64255], [64263, 64274], - [64280, 64284], [64434, 64466], [64830, 64847], [64912, 64913], [64968, 65007], - [65020, 65135], [65277, 65295], [65306, 65312], [65339, 65344], [65371, 65381], - [65471, 65473], [65480, 65481], [65488, 65489], [65496, 65497]]; - for (i = 0; i < ranges.length; i++) { - start = ranges[i][0]; - end = ranges[i][1]; - for (j = start; j <= end; j++) { - result[j] = true; - } - } - return result; -})(); - -function splitQuery(query) { - var result = []; - var start = -1; - for (var i = 0; i < query.length; i++) { - if (splitChars[query.charCodeAt(i)]) { - if (start !== -1) { - result.push(query.slice(start, i)); - start = -1; - } - } else if (start === -1) { - start = i; - } - } - if (start !== -1) { - result.push(query.slice(start)); - } - return result; +if (!splitQuery) { + function splitQuery(query) { + return query.split(/\s+/); + } } - - - /** * Search Module */ @@ -417,7 +138,7 @@ var Search = { */ query : function(query) { var i; - var stopwords = ["a","and","are","as","at","be","but","by","for","if","in","into","is","it","near","no","not","of","on","or","such","that","the","their","then","there","these","they","this","to","was","will","with"]; + var stopwords = DOCUMENTATION_OPTIONS.SEARCH_LANGUAGE_STOP_WORDS; // stem the searchterms and add them to the correct list var stemmer = new Stemmer(); @@ -758,4 +479,4 @@ var Search = { $(document).ready(function() { Search.init(); -}); \ No newline at end of file +}); diff --git a/docs/atomate.common.firetasks.html b/docs/atomate.common.firetasks.html index a60568e23..9378b7802 100644 --- a/docs/atomate.common.firetasks.html +++ b/docs/atomate.common.firetasks.html @@ -6,10 +6,10 @@
-atomate.common.firetasks.tests.test_glue_tasks.
TestCopyFilesFromCalcLoc
(methodName='runTest')¶Bases: atomate.utils.testing.AtomateTest
setUpClass
()¶Hook method for setting up class fixture before running tests in the class.
+test_copyfilesfromcalcloc
()¶atomate.common.firetasks.tests.test_glue_tasks.
TestCreateFolder
(methodName='runTest')¶Bases: atomate.utils.testing.AtomateTest
test_createfolder
()¶atomate.common.firetasks.tests.test_glue_tasks.
TestDeleteFiles
(methodName='runTest')¶Bases: atomate.utils.testing.AtomateTest
test_cleanupfiles
()¶atomate.common.firetasks.tests.test_glue_tasks.
TestPassCalcLocs
(methodName='runTest')¶Bases: atomate.utils.testing.AtomateTest
test_passcalclocs
()¶schema
= {'root': {'input', 'output', 'state', 'dir_name', 'completed_at', 'last_updated', 'schema'}}¶schema
= {'root': {'completed_at', 'dir_name', 'input', 'last_updated', 'output', 'schema', 'state'}}¶
@@ -223,7 +223,7 @@ get_valid_paths
(path)¶get_valid_paths
(self, path)¶
Checks if path contains valid data for assimilation, and then returns the valid paths. The paths returned can be a list of directory or file paths, depending on what kind of data you are assimilating. For @@ -215,27 +215,27 @@
post_process
(d)¶post_process
(dir_name, d)¶
Post-processing for various files other than the QChem input and output files. Currently only looks for custodian.json. Modify this if other files need to be processed.
process_qchem_multirun
(input_files, output_files)¶process_qchem_multirun
(dir_name, input_files, output_files)¶
Process a QChem run which is known to include multiple calculations in a single input/output pair.
process_qchemrun
(taskname, input_file, output_file)¶process_qchemrun
(dir_name, taskname, input_file, output_file)¶
Process a QChem calculation, aka an input/output pair.
schema
= {'input': {'job_type', 'initial_molecule'}, 'output': {'job_type', 'initial_molecule'}, 'root': {'chemsys', 'cputime', 'input', 'output', 'dir_name', 'smiles', 'calcs_reversed', 'walltime', 'pointgroup', 'formula_anonymous', 'formula_pretty'}}¶schema
= {'input': {'initial_molecule', 'job_type'}, 'output': {'initial_molecule', 'job_type'}, 'root': {'calcs_reversed', 'chemsys', 'cputime', 'dir_name', 'formula_anonymous', 'formula_pretty', 'input', 'output', 'pointgroup', 'smiles', 'walltime'}}¶
exists
(path)¶exists
(sftp, path)¶
os.path.exists() for paramiko’s SCP object
get_ssh_connection
(host, private_key)¶get_ssh_connection
(username, host, private_key)¶
Connect to the remote host via paramiko using the private key. If the host key is not present it will be added automatically.
from_file
(m='materials', **kwargs)¶from_file
(db_file, m='materials', **kwargs)¶
Get builder using only a db file.
from_file
(m='materials', **kwargs)¶from_file
(db_file, m='materials', **kwargs)¶
Get a MaterialsEhullBuilder using only a db file.
atomate.vasp.firetasks.parse_outputs.
BoltztrapToDBTask
(*args, **kwargs)¶atomate.vasp.firetasks.parse_outputs.
BoltztrapToDb
(*args, **kwargs)¶Bases: fireworks.core.firework.FiretaskBase
Enter a BoltzTraP run into the database. Note that this assumes you are in a current dir +that has the uniform band structure data with a sub-directory called “boltztrap” containing +the BoltzTraP information.
+hall_doping (bool): set True to retain hall_doping in dict +additional_fields (dict): fields added to the document such as user-defined tags or name, ids, etc
+optional_params
= ['db_file', 'hall_doping', 'additional_fields']¶run_task
(fw_spec)¶This method gets called when the Firetask is run. It can take in a +Firework spec, perform some task using that data, and then return an +output in the form of a FWAction.
+atomate.vasp.firetasks.parse_outputs.
ElasticTensorToDb
(*args, **kwargs)¶Bases: fireworks.core.firework.FiretaskBase
Analyzes the stress/strain data of an elastic workflow to produce +an elastic tensor and various other quantities.
+order (int): order of fit to perform +fw_spec_field (str): if set, will update the task doc with the contents
+++of this key in the fw_spec.
optional_params
= ['db_file', 'order', 'fw_spec_field', 'fitting_method']¶required_params
= ['structure']¶run_task
(fw_spec)¶This method gets called when the Firetask is run. It can take in a +Firework spec, perform some task using that data, and then return an +output in the form of a FWAction.
+atomate.vasp.firetasks.parse_outputs.
ElasticTensorToDbTask
(*args, **kwargs)¶Bases: atomate.vasp.firetasks.parse_outputs.ElasticTensorToDb
atomate.vasp.firetasks.parse_outputs.
FitEOSToDb
(*args, **kwargs)¶Bases: fireworks.core.firework.FiretaskBase
Retrieve the energy and volume data and fit it to the given equation of state. The summary dict +is written to ‘bulk_modulus.json’ file.
+db_file (str): path to the db file
+to_db (bool): if True, the data will be inserted to “eos” collection; otherwise, dumped to a .json file. +eos (str): equation of state used for fitting the energies and the volumes.
+++options supported by pymatgen: “quadratic”, “murnaghan”, “birch”, “birch_murnaghan”, +“pourier_tarantola”, “vinet”, “deltafactor”. Default: “vinet”
optional_params
= ['to_db', 'eos']¶required_params
= ['tag', 'db_file']¶run_task
(fw_spec)¶This method gets called when the Firetask is run. It can take in a +Firework spec, perform some task using that data, and then return an +output in the form of a FWAction.
+atomate.vasp.firetasks.parse_outputs.
FitEquationOfStateTask
(*args, **kwargs)¶atomate.vasp.firetasks.parse_outputs.
GibbsAnalysisToDb
(*args, **kwargs)¶Bases: fireworks.core.firework.FiretaskBase
Compute the quasi-harmonic gibbs free energy. There are 2 options available for the +quasi-harmonic approximation (set via ‘qha_type’ parameter): +1. use the phonopy package quasi-harmonic approximation interface or +2. use the debye model. +Note: Instead of relying on fw_spec, this task gets the required data directly from the +tasks collection for processing. The summary dict is written to ‘gibbs.json’ file.
+db_file (str): path to the db file
+t_min (float): min temperature +t_step (float): temperature step +t_max (float): max temperature +mesh (list/tuple): reciprocal space density +eos (str): equation of state used for fitting the energies and the volumes.
+++options supported by phonopy: “vinet”, “murnaghan”, “birch_murnaghan”.
pressure (float): in GPa, optional. +poisson (float): poisson ratio. Defaults to 0.25. +anharmonic_contribution (bool): consider anharmonic contributions to
+++Gibbs energy from the Debye model. Defaults to False.
pressure (float): in GPa, optional. +metadata (dict): meta data
+optional_params
= ['qha_type', 't_min', 't_step', 't_max', 'mesh', 'eos', 'pressure', 'poisson', 'anharmonic_contribution', 'metadata']¶required_params
= ['tag', 'db_file']¶run_task
(fw_spec)¶This method gets called when the Firetask is run. It can take in a +Firework spec, perform some task using that data, and then return an +output in the form of a FWAction.
+atomate.vasp.firetasks.parse_outputs.
GibbsFreeEnergyTask
(*args, **kwargs)¶Bases: atomate.vasp.firetasks.parse_outputs.GibbsAnalysisToDb
atomate.vasp.firetasks.parse_outputs.
JsonToDb
(*args, **kwargs)¶Bases: fireworks.core.firework.FiretaskBase
Insert the a JSON file (default: task.json) directly into the tasks database. +Note that if the JSON file contains a “task_id” key, that task_id must not already be present +in the tasks collection.
+json_filename (str): name of the JSON file to insert (default: “task.json”) +db_file (str): path to file containing the database credentials. Supports env_chk. +calc_dir (str): path to dir (on current filesystem) that contains VASP output files.
+++Default: use current working directory.
optional_params
= ['json_filename', 'db_file', 'calc_dir']¶run_task
(fw_spec)¶This method gets called when the Firetask is run. It can take in a +Firework spec, perform some task using that data, and then return an +output in the form of a FWAction.
+atomate.vasp.firetasks.parse_outputs.
JsonToDbTask
(*args, **kwargs)¶atomate.vasp.firetasks.parse_outputs.
PolarizationToDb
(*args, **kwargs)¶Bases: fireworks.core.firework.FiretaskBase
Recovers the same branch polarization and spontaneous polarization +for a ferroelectric workflow.
+optional_params
= ['db_file']¶run_task
(fw_spec)¶This method gets called when the Firetask is run. It can take in a +Firework spec, perform some task using that data, and then return an +output in the form of a FWAction.
+atomate.vasp.firetasks.parse_outputs.
RamanSusceptibilityTensorToDbTask
(*args, **kwargs)¶atomate.vasp.firetasks.parse_outputs.
RamanTensorToDb
(*args, **kwargs)¶Bases: fireworks.core.firework.FiretaskBase
See: 10.1103/PhysRevB.73.104304. +The frequencies are in the units of cm^-1. To convert the frequency to THz: multiply by 0.1884.
+optional_params
= ['db_file']¶run_task
(fw_spec)¶This method gets called when the Firetask is run. It can take in a +Firework spec, perform some task using that data, and then return an +output in the form of a FWAction.
+atomate.vasp.firetasks.parse_outputs.
ThermalExpansionCoeffTask
(*args, **kwargs)¶Bases: atomate.vasp.firetasks.parse_outputs.ThermalExpansionCoeffToDb
atomate.vasp.firetasks.parse_outputs.
ThermalExpansionCoeffToDb
(*args, **kwargs)¶Bases: fireworks.core.firework.FiretaskBase
Compute the quasi-harmonic thermal expansion coefficient using phonopy.
+db_file (str): path to the db file
+t_min (float): min temperature +t_step (float): temperature step +t_max (float): max temperature +mesh (list/tuple): reciprocal space density +eos (str): equation of state used for fitting the energies and the volumes.
+++options supported by phonopy: “vinet” (default), “murnaghan”, “birch_murnaghan”.
pressure (float): in GPa, optional.
+optional_params
= ['t_min', 't_step', 't_max', 'mesh', 'eos', 'pressure']¶required_params
= ['tag', 'db_file']¶run_task
(fw_spec)¶This method gets called when the Firetask is run. It can take in a +Firework spec, perform some task using that data, and then return an +output in the form of a FWAction.
+atomate.vasp.firetasks.parse_outputs.
VaspToDb
(*args, **kwargs)¶Bases: fireworks.core.firework.FiretaskBase
Enter a VASP run into the database. Uses current directory unless you +specify calc_dir or calc_loc.
+additional_fields (dict): dict of additional fields to add +db_file (str): path to file containing the database credentials.
+++Supports env_chk. Default: write data to JSON file.
optional_params
= ['calc_dir', 'calc_loc', 'parse_dos', 'bandstructure_mode', 'additional_fields', 'db_file', 'fw_spec_field', 'defuse_unsuccessful', 'task_fields_to_push', 'parse_chgcar', 'parse_aeccar']¶run_task
(fw_spec)¶This method gets called when the Firetask is run. It can take in a +Firework spec, perform some task using that data, and then return an +output in the form of a FWAction.
+atomate.vasp.firetasks.parse_outputs.
VaspToDbTask
(*args, **kwargs)¶atomate.vasp.firetasks.run_calc.
RunBoltztrap
(*args, **kwargs)¶Bases: fireworks.core.firework.FiretaskBase
Run Boltztrap directly. Requires vasprun.xml and OUTCAR to be in current dir.
+optional_params
= ['scissor', 'tmax', 'tgrid', 'doping', 'soc']¶run_task
(fw_spec)¶This method gets called when the Firetask is run. It can take in a +Firework spec, perform some task using that data, and then return an +output in the form of a FWAction.
+atomate.vasp.firetasks.run_calc.
RunNoVasp
(*args, **kwargs)¶Bases: fireworks.core.firework.FiretaskBase
Do NOT run vasp. Do nothing.
+run_task
(fw_spec)¶This method gets called when the Firetask is run. It can take in a +Firework spec, perform some task using that data, and then return an +output in the form of a FWAction.
+atomate.vasp.firetasks.run_calc.
RunVaspCustodian
(*args, **kwargs)¶Bases: fireworks.core.firework.FiretaskBase
Run VASP using custodian “on rails”, i.e. in a simple way that supports most common options.
+gzip_output: (bool) - gzip output (default=T) +max_errors: (int) - maximum # of errors to fix before giving up (default=5) +ediffg: (float) shortcut for setting EDIFFG in special custodian jobs +auto_npar: (bool) - use auto_npar (default=F). Recommended set to T
+++for single-node jobs only. Supports env_chk.
wall_time (int): Total wall time in seconds. Activates WalltimeHandler if set. +half_kpts_first_relax (bool): Use half the k-points for the first relaxation
+optional_params
= ['job_type', 'handler_group', 'max_force_threshold', 'scratch_dir', 'gzip_output', 'max_errors', 'ediffg', 'auto_npar', 'gamma_vasp_cmd', 'wall_time', 'half_kpts_first_relax']¶required_params
= ['vasp_cmd']¶run_task
(fw_spec)¶This method gets called when the Firetask is run. It can take in a +Firework spec, perform some task using that data, and then return an +output in the form of a FWAction.
+atomate.vasp.firetasks.run_calc.
RunVaspDirect
(*args, **kwargs)¶Bases: fireworks.core.firework.FiretaskBase
Execute a command directly (no custodian).
+optional_params
= ['expand_vars']¶required_params
= ['vasp_cmd']¶run_task
(fw_spec)¶This method gets called when the Firetask is run. It can take in a +Firework spec, perform some task using that data, and then return an +output in the form of a FWAction.
+atomate.vasp.firetasks.run_calc.
RunVaspFake
(*args, **kwargs)¶Bases: fireworks.core.firework.FiretaskBase
Vasp Emulator
+optional_params
= ['params_to_check', 'check_incar', 'check_kpoints', 'check_poscar', 'check_potcar']¶required_params
= ['ref_dir']¶run_task
(fw_spec)¶This method gets called when the Firetask is run. It can take in a +Firework spec, perform some task using that data, and then return an +output in the form of a FWAction.
+atomate.vasp.firetasks.write_inputs.
ModifyIncar
(*args, **kwargs)¶Bases: fireworks.core.firework.FiretaskBase
Modify an INCAR file.
+incar_update (dict): overwrite Incar dict key. Supports env_chk. +incar_multiply ([{<str>:<float>}]) - multiply Incar key by a constant
+++factor. Supports env_chk.
input_filename (str): Input filename (if not “INCAR”) +output_filename (str): Output filename (if not “INCAR”)
+optional_params
= ['incar_update', 'incar_multiply', 'incar_dictmod', 'input_filename', 'output_filename']¶run_task
(fw_spec)¶This method gets called when the Firetask is run. It can take in a +Firework spec, perform some task using that data, and then return an +output in the form of a FWAction.
+atomate.vasp.firetasks.write_inputs.
ModifyPotcar
(*args, **kwargs)¶Bases: fireworks.core.firework.FiretaskBase
Modify Potcar file.
+optional_params
= ['functional', 'input_filename', 'output_filename']¶required_params
= ['potcar_symbols']¶run_task
(fw_spec)¶This method gets called when the Firetask is run. It can take in a +Firework spec, perform some task using that data, and then return an +output in the form of a FWAction.
+atomate.vasp.firetasks.write_inputs.
WriteNormalmodeDisplacedPoscar
(*args, **kwargs)¶Bases: fireworks.core.firework.FiretaskBase
Displace the structure from the previous calculation along the provided normal mode by the +given amount and write the corresponding Poscar file. The fw_spec must contain a “normalmodes” +key with “eigenvecs” sub-key that is likely produced by a previous calc.
+required_params
= ['mode', 'displacement']¶run_task
(fw_spec)¶This method gets called when the Firetask is run. It can take in a +Firework spec, perform some task using that data, and then return an +output in the form of a FWAction.
+atomate.vasp.firetasks.write_inputs.
WriteTransmutedStructureIOSet
(*args, **kwargs)¶Bases: fireworks.core.firework.FiretaskBase
Apply the provided transformations to the input structure and write the +input set for that structure. Reads structure from POSCAR if no structure provided. Note that +if a transformation yields many structures from one, only the last structure in the list is +used.
+structure (Structure): input structure +transformations (list): list of names of transformation classes as defined in
+++the modules in pymatgen.transformations
vasp_input_set (VaspInputSet): VASP input set.
+override_default_vasp_params (dict): additional user input settings. +prev_calc_dir: path to previous calculation if using structure from another calculation.
+optional_params
= ['prev_calc_dir', 'transformation_params', 'override_default_vasp_params']¶required_params
= ['structure', 'transformations', 'vasp_input_set']¶run_task
(fw_spec)¶This method gets called when the Firetask is run. It can take in a +Firework spec, perform some task using that data, and then return an +output in the form of a FWAction.
+atomate.vasp.firetasks.write_inputs.
WriteVaspFromIOSet
(*args, **kwargs)¶Bases: fireworks.core.firework.FiretaskBase
Create VASP input files using implementations of pymatgen’s AbstractVaspInputSet. An input set +can be provided as an object or as a String/parameter combo.
+structure (Structure): structure +vasp_input_set (AbstractVaspInputSet or str): Either a VaspInputSet object or a string
+++name for the VASP input set (e.g., “MPRelaxSet”).
optional_params
= ['vasp_input_params']¶required_params
= ['structure', 'vasp_input_set']¶run_task
(fw_spec)¶This method gets called when the Firetask is run. It can take in a +Firework spec, perform some task using that data, and then return an +output in the form of a FWAction.
+atomate.vasp.firetasks.write_inputs.
WriteVaspFromIOSetFromInterpolatedPOSCAR
(*args, **kwargs)¶Bases: atomate.vasp.firetasks.glue_tasks.GetInterpolatedPOSCAR
Grabs CONTCARS from two previous calculations to create interpolated +structure. Create VASP input files using implementations of pymatgen’s +AbstractVaspInputSet. An input set can be provided as String/parameter +combo.
+start (str): name of fw for start of interpolation. +end (str): name of fw for end of interpolation. +this_image (int): which interpolation this is. +nimages (int) : number of interpolations. +autosort_tol (float): a distance tolerance in angstrom in which
+++to automatically sort end_structure to match to the closest +points in this particular structure.
vasp_input_set (str): a string name for the VASP input set (e.g., “MPRelaxSet”).
+optional_params
= ['vasp_input_params', 'autosort_tol']¶required_params
= ['start', 'end', 'this_image', 'nimages', 'vasp_input_set']¶run_task
(fw_spec)¶This method gets called when the Firetask is run. It can take in a +Firework spec, perform some task using that data, and then return an +output in the form of a FWAction.
+atomate.vasp.firetasks.write_inputs.
WriteVaspFromPMGObjects
(*args, **kwargs)¶Bases: fireworks.core.firework.FiretaskBase
Write VASP files using pymatgen objects.
+optional_params
= ['incar', 'poscar', 'kpoints', 'potcar']¶run_task
(fw_spec)¶This method gets called when the Firetask is run. It can take in a +Firework spec, perform some task using that data, and then return an +output in the form of a FWAction.
+atomate.vasp.firetasks.write_inputs.
WriteVaspHSEBSFromPrev
(*args, **kwargs)¶Bases: fireworks.core.firework.FiretaskBase
Writes input files for HSE band structure run. Assumes that output files from a +a previous job can be accessed. Since HSE always re-optimizes the charge density (no nSCF mode), +the previous job is used to get the location of VBM/CBM for mode=”gap” (otherwise just used to +get the structure / starting charge density).
+optional_params
= ['prev_calc_dir', 'mode', 'reciprocal_density', 'kpoints_line_density']¶required_params
= []¶run_task
(fw_spec)¶This method gets called when the Firetask is run. It can take in a +Firework spec, perform some task using that data, and then return an +output in the form of a FWAction.
+atomate.vasp.firetasks.write_inputs.
WriteVaspNMRFromPrev
(*args, **kwargs)¶Bases: fireworks.core.firework.FiretaskBase
Writes input files for a NMR calculation
+prev_calc_dir: path to previous calculation, else current directory +mode (str): the NMR calculation type: cs or efg, default is cs +isotopes (list): list of isotopes to include, default is to include the
+++lowest mass quadrupolar isotope for all applicable elements
reciprocol_density (int): the reciprocol density for the kpoint mesh, defaults to 100 +other_aprams (dict) : any other params passsed to MPNMRSet as a dictionary
+optional_params
= ['mode', 'isotopes', 'reciprocal_density', 'other_params']¶run_task
(fw_spec)¶This method gets called when the Firetask is run. It can take in a +Firework spec, perform some task using that data, and then return an +output in the form of a FWAction.
+atomate.vasp.firetasks.write_inputs.
WriteVaspNSCFFromPrev
(*args, **kwargs)¶Bases: fireworks.core.firework.FiretaskBase
Writes input files for an NSCF static run. Assumes that output files from an +scf job can be accessed. There are many options, e.g. uniform mode, +line mode, adding the optical properties, etc.
+optional_params
= ['prev_calc_dir', 'copy_chgcar', 'nbands_factor', 'reciprocal_density', 'kpoints_line_density', 'small_gap_multiply', 'standardize', 'sym_prec', 'international_monoclinic', 'mode', 'nedos', 'optics', 'other_params']¶required_params
= []¶run_task
(fw_spec)¶This method gets called when the Firetask is run. It can take in a +Firework spec, perform some task using that data, and then return an +output in the form of a FWAction.
+atomate.vasp.firetasks.write_inputs.
WriteVaspSOCFromPrev
(*args, **kwargs)¶Bases: fireworks.core.firework.FiretaskBase
Writes input files for a spinorbit coupling calculation.
+optional_params
= ['prev_calc_dir', 'copy_chgcar', 'nbands_factor', 'reciprocal_density', 'small_gap_multiply', 'standardize', 'sym_prec', 'international_monoclinic', 'other_params']¶required_params
= ['magmom', 'saxis']¶run_task
(fw_spec)¶This method gets called when the Firetask is run. It can take in a +Firework spec, perform some task using that data, and then return an +output in the form of a FWAction.
+atomate.vasp.firetasks.write_inputs.
WriteVaspStaticFromPrev
(*args, **kwargs)¶Bases: fireworks.core.firework.FiretaskBase
Writes input files for a static run. Assumes that output files from a previous +(e.g., optimization) run can be accessed in current dir or prev_calc_dir. Also allows +lepsilon (dielectric constant) calcs.
+optional_params
= ['prev_calc_dir', 'reciprocal_density', 'small_gap_multiply', 'standardize', 'sym_prec', 'international_monoclinic', 'lepsilon', 'other_params']¶run_task
(fw_spec)¶This method gets called when the Firetask is run. It can take in a +Firework spec, perform some task using that data, and then return an +output in the form of a FWAction.
+atomate.vasp.firetasks.tests.test_copy.
TestCopyVaspOutputs
(methodName='runTest')¶Bases: atomate.utils.testing.AtomateTest
setUpClass
()¶Hook method for setting up class fixture before running tests in the class.
+test_gzip_copy
()¶test_plain_copy
()¶test_plain_copy_more
()¶test_relax2_copy
()¶test_unittestsetup
()¶atomate.vasp.firetasks.tests.test_get_interpolated_poscar.
TestGetInterpolatedPOSCAR
(methodName='runTest')¶Bases: atomate.utils.testing.AtomateTest
setUpClass
()¶Hook method for setting up class fixture before running tests in the class.
+test_getinterpolatedposcar
()¶atomate.vasp.firetasks.tests.test_polarization_to_db.
TestFerroelectricWorkflow
(methodName='runTest')¶Bases: atomate.utils.testing.AtomateTest
test_polarizationtodb
()¶atomate.vasp.firetasks.tests.test_write_vasp.
TestWriteVasp
(methodName='runTest')¶Bases: atomate.utils.testing.AtomateTest
setUp
()¶Create scratch directory(removes the old one if there is one) and change to it. +Also initialize launchpad.
+setUpClass
()¶Hook method for setting up class fixture before running tests in the class.
+tearDown
()¶Remove the scratch directory and teardown the test db.
+test_ioset_explicit
()¶test_ioset_implicit
()¶test_ioset_params
()¶test_modify_incar
()¶test_modify_potcar
()¶test_pmgobjects
()¶atomate.vasp.firetasks.tests.test_write_vasp_from_interpolated_poscar.
TestWriteVaspFromInterpolatedPOSCAR
(methodName='runTest')¶Bases: atomate.utils.testing.AtomateTest
setUpClass
()¶Hook method for setting up class fixture before running tests in the class.
+test_writevaspfrominterpolatedposcar
()¶atomate.vasp.fireworks.core.
BoltztrapFW
(parents=None, structure=None, name='boltztrap', db_file=None, scissor=0.0, doping=None, tmax=1300, tgrid=50, prev_calc_dir=None, soc=False, additional_fields=None, **kwargs)¶Bases: fireworks.core.firework.Firework
__init__
(parents=None, structure=None, name='boltztrap', db_file=None, scissor=0.0, doping=None, tmax=1300, tgrid=50, prev_calc_dir=None, soc=False, additional_fields=None, **kwargs)¶Run Boltztrap (which includes writing bolztrap input files and parsing outputs). Assumes +you have a previous FW with the calc_locs passed into the current FW.
+structure (Structure): - only used for setting name of FW +name (str): name of this FW +db_file (str): path to the db file +parents (Firework): Parents of this particular Firework. FW or list of FWS. +prev_calc_dir (str): Path to a previous calculation to copy from +scissor (float): if scissor > 0, apply scissor on the band structure so that new
+++band gap = scissor (in eV)
doping: ([float]) doping levels you want to compute +tmax: (float) max temperature to evaluate +tgrid: (float) temperature interval +soc (bool): whether the band structure is calculated with spin-orbit coupling +additional_fields (dict): fields added to the document such as user-defined tags or name, ids, etc +**kwargs: Other kwargs that are passed to Firework.__init__.
+atomate.vasp.fireworks.core.
DFPTFW
(structure=None, prev_calc_dir=None, name='static dielectric', vasp_cmd='vasp', copy_vasp_outputs=True, lepsilon=True, db_file=None, parents=None, user_incar_settings=None, pass_nm_results=False, **kwargs)¶Bases: fireworks.core.firework.Firework
__init__
(structure=None, prev_calc_dir=None, name='static dielectric', vasp_cmd='vasp', copy_vasp_outputs=True, lepsilon=True, db_file=None, parents=None, user_incar_settings=None, pass_nm_results=False, **kwargs)¶++Static DFPT calculation Firework
name (str): Name for the Firework. +lepsilon (bool): Turn on LEPSILON to calculate polar properties +vasp_cmd (str): Command to run vasp. +copy_vasp_outputs (str or bool): Whether to copy outputs from previous
+++run. Defaults to True.
prev_calc_dir (str): Path to a previous calculation to copy from +db_file (str): Path to file specifying db credentials. +parents (Firework): Parents of this particular Firework.
+++FW or list of FWS.
user_incar_settings (dict): Parameters in INCAR to override +pass_nm_results (bool): if true the normal mode eigen vals and vecs are passed so that
+++next firework can use it.
**kwargs: Other kwargs that are passed to Firework.__init__.
+atomate.vasp.fireworks.core.
HSEBSFW
(parents=None, prev_calc_dir=None, structure=None, mode='gap', name=None, vasp_cmd='vasp', db_file=None, **kwargs)¶Bases: fireworks.core.firework.Firework
__init__
(parents=None, prev_calc_dir=None, structure=None, mode='gap', name=None, vasp_cmd='vasp', db_file=None, **kwargs)¶For getting a more accurate band gap or a full band structure with HSE - requires previous +calculation that gives VBM/CBM info or the high-symmetry kpoints.
+parents (Firework): Parents of this particular Firework. FW or list of FWS. +prev_calc_dir (str): Path to a previous calculation to copy from +structure (Structure): Input structure - used only to set the name of the FW. +mode (string): options:
+++“line” to get a full band structure along symmetry lines or +“uniform” for uniform mesh band structure or +“gap” to get the energy at the CBM and VBM
name (str): Name for the Firework. +vasp_cmd (str): Command to run vasp. +db_file (str): Path to file specifying db credentials. +**kwargs: Other kwargs that are passed to Firework.__init__.
+atomate.vasp.fireworks.core.
LepsFW
(structure, name='static dielectric', vasp_cmd='vasp', copy_vasp_outputs=True, db_file=None, parents=None, phonon=False, mode=None, displacement=None, user_incar_settings=None, **kwargs)¶Bases: fireworks.core.firework.Firework
__init__
(structure, name='static dielectric', vasp_cmd='vasp', copy_vasp_outputs=True, db_file=None, parents=None, phonon=False, mode=None, displacement=None, user_incar_settings=None, **kwargs)¶Standard static calculation Firework for dielectric constants using DFPT.
+name (str): Name for the Firework. +vasp_cmd (str): Command to run vasp. +copy_vasp_outputs (bool): Whether to copy outputs from previous
+++run. Defaults to True.
db_file (str): Path to file specifying db credentials. +parents (Firework): Parents of this particular Firework.
+++FW or list of FWS.
mode (int): normal mode index. +displacement (float): displacement along the normal mode in Angstroms. +user_incar_settings (dict): Parameters in INCAR to override +**kwargs: Other kwargs that are passed to Firework.__init__.
+atomate.vasp.fireworks.core.
MDFW
(structure, start_temp, end_temp, nsteps, name='molecular dynamics', vasp_input_set=None, vasp_cmd='vasp', override_default_vasp_params=None, wall_time=19200, db_file=None, parents=None, copy_vasp_outputs=True, **kwargs)¶Bases: fireworks.core.firework.Firework
__init__
(structure, start_temp, end_temp, nsteps, name='molecular dynamics', vasp_input_set=None, vasp_cmd='vasp', override_default_vasp_params=None, wall_time=19200, db_file=None, parents=None, copy_vasp_outputs=True, **kwargs)¶Standard firework for a single MD run.
+structure (Structure): Input structure. +start_temp (float): Start temperature of MD run. +end_temp (float): End temperature of MD run. +nsteps (int): Number of MD steps +name (string): Name for the Firework. +vasp_input_set (string): string name for the VASP input set (e.g.,
+++“MITMDVaspInputSet”).
vasp_cmd (string): Command to run vasp. +override_default_vasp_params (dict): If this is not None,
+++these params are passed to the default vasp_input_set, i.e., +MITMDSet. This allows one to easily override some +settings, e.g., user_incar_settings, etc. Particular to MD, +one can control time_step and all other settings of the input set.
wall_time (int): Total wall time in seconds before writing STOPCAR. +copy_vasp_outputs (bool): Whether to copy outputs from previous run. Defaults to True. +db_file (string): Path to file specifying db credentials. +parents (Firework): Parents of this particular Firework. FW or list of FWS. +**kwargs: Other kwargs that are passed to Firework.__init__.
+atomate.vasp.fireworks.core.
NEBFW
(spec, neb_label, from_images=True, user_incar_settings=None, user_kpoints_settings=None, additional_cust_args=None, **kwargs)¶Bases: fireworks.core.firework.Firework
CI-NEB Firework in NEB Workflow.
+Task 2) Run NEB VASP using Custodian +Task 3) Update structure to spec +Task 4) Pass CalcLocs named “neb_{}”.format(neb_label)
+__init__
(spec, neb_label, from_images=True, user_incar_settings=None, user_kpoints_settings=None, additional_cust_args=None, **kwargs)¶spec (dict): Specification of the job to run. +neb_label (str): “1”, “2”…, label neb run. +from_images (bool): Set True to initialize from image structures, False starting
+++from relaxed endpoint structures.
user_incar_settings (dict): Additional INCAR settings. +user_kpoints_settings (dict): Additional KPOINTS settings. +additional_cust_args (dict): Other kwargs that are passed to RunVaspCustodian. +**kwargs: Other kwargs that are passed to Firework.__init__.
+atomate.vasp.fireworks.core.
NEBRelaxationFW
(spec, label, user_incar_settings=None, user_kpoints_settings=None, additional_cust_args=None, **kwargs)¶Bases: fireworks.core.firework.Firework
Relaxation Firework in NEB Workflow.
+Task 1) Read in a structure with “st_label” (“rlx”, “ep0” or “ep1”) and generates input sets. +Task 2) Run VASP using Custodian +Task 3) Update structure to spec +Task 4) Pass CalcLocs named “{}_dir”.format(st_label)
+__init__
(spec, label, user_incar_settings=None, user_kpoints_settings=None, additional_cust_args=None, **kwargs)¶atomate.vasp.fireworks.core.
NonSCFFW
(parents=None, prev_calc_dir=None, structure=None, name='nscf', mode='uniform', vasp_cmd='vasp', copy_vasp_outputs=True, db_file=None, **kwargs)¶Bases: fireworks.core.firework.Firework
__init__
(parents=None, prev_calc_dir=None, structure=None, name='nscf', mode='uniform', vasp_cmd='vasp', copy_vasp_outputs=True, db_file=None, **kwargs)¶Standard NonSCF Calculation Firework supporting both +uniform and line modes.
+structure (Structure): Input structure - used only to set the name of the FW. +name (str): Name for the Firework. +mode (str): “uniform” or “line” mode. +vasp_cmd (str): Command to run vasp. +copy_vasp_outputs (bool): Whether to copy outputs from previous
+++run. Defaults to True.
prev_calc_dir (str): Path to a previous calculation to copy from +db_file (str): Path to file specifying db credentials. +parents (Firework): Parents of this particular Firework.
+++FW or list of FWS.
**kwargs: Other kwargs that are passed to Firework.__init__.
+atomate.vasp.fireworks.core.
OptimizeFW
(structure, name='structure optimization', vasp_input_set=None, vasp_cmd='vasp', override_default_vasp_params=None, ediffg=None, db_file=None, force_gamma=True, job_type='double_relaxation_run', max_force_threshold=0.25, auto_npar='>>auto_npar<<', half_kpts_first_relax=False, parents=None, **kwargs)¶Bases: fireworks.core.firework.Firework
__init__
(structure, name='structure optimization', vasp_input_set=None, vasp_cmd='vasp', override_default_vasp_params=None, ediffg=None, db_file=None, force_gamma=True, job_type='double_relaxation_run', max_force_threshold=0.25, auto_npar='>>auto_npar<<', half_kpts_first_relax=False, parents=None, **kwargs)¶Optimize the given structure.
+structure (Structure): Input structure. +name (str): Name for the Firework. +vasp_input_set (VaspInputSet): input set to use. Defaults to MPRelaxSet() if None. +override_default_vasp_params (dict): If this is not None, these params are passed to
+++the default vasp_input_set, i.e., MPRelaxSet. This allows one to easily override +some settings, e.g., user_incar_settings, etc.
vasp_cmd (str): Command to run vasp. +ediffg (float): Shortcut to set ediffg in certain jobs +db_file (str): Path to file specifying db credentials to place output parsing. +force_gamma (bool): Force gamma centered kpoint generation +job_type (str): custodian job type (default “double_relaxation_run”) +max_force_threshold (float): max force on a site allowed at end; otherwise, reject job +auto_npar (bool or str): whether to set auto_npar. defaults to env_chk: “>>auto_npar<<” +half_kpts_first_relax (bool): whether to use half the kpoints for the first relaxation +parents ([Firework]): Parents of this particular Firework. +**kwargs: Other kwargs that are passed to Firework.__init__.
+atomate.vasp.fireworks.core.
RamanFW
(mode, displacement, prev_calc_dir=None, structure=None, name='raman', vasp_cmd='vasp', db_file=None, parents=None, user_incar_settings=None, **kwargs)¶Bases: fireworks.core.firework.Firework
__init__
(mode, displacement, prev_calc_dir=None, structure=None, name='raman', vasp_cmd='vasp', db_file=None, parents=None, user_incar_settings=None, **kwargs)¶Static calculation Firework that computes the DFPT dielectric constant for +structure displaced along the given normal mode direction.
+mode (int): normal mode index. +displacement (float): displacement along the normal mode in Angstroms. +name (str): Name for the Firework. +prev_calc_dir (str): Path to a previous calculation to copy from +vasp_cmd (str): Command to run vasp. +db_file (str): Path to file specifying db credentials. +parents (Firework): Parents of this particular Firework.
+++FW or list of FWS.
user_incar_settings (dict): Parameters in INCAR to override +**kwargs: Other kwargs that are passed to Firework.__init__.
+atomate.vasp.fireworks.core.
SOCFW
(magmom, structure=None, name='spin-orbit coupling', saxis=(0, 0, 1), prev_calc_dir=None, vasp_cmd='vasp_ncl', copy_vasp_outputs=True, db_file=None, parents=None, **kwargs)¶Bases: fireworks.core.firework.Firework
__init__
(magmom, structure=None, name='spin-orbit coupling', saxis=(0, 0, 1), prev_calc_dir=None, vasp_cmd='vasp_ncl', copy_vasp_outputs=True, db_file=None, parents=None, **kwargs)¶Firework for spin orbit coupling calculation.
+name (str): Name for the Firework. +prev_calc_dir (str): Path to a previous calculation to copy from +vasp_cmd (str): Command to run vasp. +copy_vasp_outputs (bool): Whether to copy outputs from previous
+++run. Defaults to True.
db_file (str): Path to file specifying db credentials. +parents (Firework): Parents of this particular Firework.
+++FW or list of FWS.
**kwargs: Other kwargs that are passed to Firework.__init__.
+atomate.vasp.fireworks.core.
StaticFW
(structure=None, name='static', vasp_input_set=None, vasp_input_set_params=None, vasp_cmd='vasp', prev_calc_loc=True, prev_calc_dir=None, db_file=None, vasptodb_kwargs={}, parents=None, **kwargs)¶Bases: fireworks.core.firework.Firework
__init__
(structure=None, name='static', vasp_input_set=None, vasp_input_set_params=None, vasp_cmd='vasp', prev_calc_loc=True, prev_calc_dir=None, db_file=None, vasptodb_kwargs={}, parents=None, **kwargs)¶Standard static calculation Firework - either from a previous location or from a structure.
+name (str): Name for the Firework. +vasp_input_set (VaspInputSet): input set to use (for jobs w/no parents)
+++Defaults to MPStaticSet() if None.
vasp_input_set_params (dict): Dict of vasp_input_set kwargs. +vasp_cmd (str): Command to run vasp. +prev_calc_loc (bool or str): If true (default), copies outputs from previous calc. If
+++a str value, retrieves a previous calculation output by name. If False/None, will create +new static calculation using the provided structure.
prev_calc_dir (str): Path to a previous calculation to copy from +db_file (str): Path to file specifying db credentials. +parents (Firework): Parents of this particular Firework. FW or list of FWS. +**kwargs: Other kwargs that are passed to Firework.__init__.
+atomate.vasp.fireworks.core.
StaticInterpolateFW
(structure, start, end, name='static', vasp_input_set='MPStaticSet', vasp_input_set_params=None, vasp_cmd='vasp', db_file=None, parents=None, this_image=None, nimages=None, autosort_tol=0, **kwargs)¶Bases: fireworks.core.firework.Firework
__init__
(structure, start, end, name='static', vasp_input_set='MPStaticSet', vasp_input_set_params=None, vasp_cmd='vasp', db_file=None, parents=None, this_image=None, nimages=None, autosort_tol=0, **kwargs)¶Standard static calculation Firework that interpolates structures from two previous calculations.
+structure (Structure): Input structure used to name FireWork. +start (str): PassCalcLoc name of StaticFW or RelaxFW run of starting structure. +end (str): PassCalcLoc name of StaticFW or RelaxFW run of ending structure. +name (str): Name for the Firework. +vasp_input_set (str): Input set to use. Defaults to MPStaticSet. +vasp_input_set_params (dict): Dict of vasp_input_set_kwargs. +vasp_cmd (str): Command to run vasp. +copy_vasp_outputs (bool): Whether to copy outputs from previous run. Defaults to True. +db_file (str): Path to file specifying db credentials. +parents (Firework): Parents of this particular Firework. FW or list of FWS. +this_image (int): which interpolation to use for this run +nimages (int): number of interpolations +autosort_tol (float): a distance tolerance in angstrom in which
+++to automatically sort end_structure to match to the closest +points in this particular structure.
**kwargs: Other kwargs that are passed to Firework.__init__.
+atomate.vasp.fireworks.core.
TransmuterFW
(structure, transformations, transformation_params=None, vasp_input_set=None, prev_calc_dir=None, name='structure transmuter', vasp_cmd='vasp', copy_vasp_outputs=True, db_file=None, parents=None, override_default_vasp_params=None, **kwargs)¶Bases: fireworks.core.firework.Firework
__init__
(structure, transformations, transformation_params=None, vasp_input_set=None, prev_calc_dir=None, name='structure transmuter', vasp_cmd='vasp', copy_vasp_outputs=True, db_file=None, parents=None, override_default_vasp_params=None, **kwargs)¶Apply the transformations to the input structure, write the input set corresponding +to the transformed structure, and run vasp on them. Note that if a transformation yields +many structures from one, only the last structure in the list is used.
+structure (Structure): Input structure. +transformations (list): list of names of transformation classes as defined in
+++the modules in pymatgen.transformations. +eg: transformations=[‘DeformStructureTransformation’, ‘SupercellTransformation’]
name (string): Name for the Firework. +vasp_cmd (string): Command to run vasp. +copy_vasp_outputs (bool): Whether to copy outputs from previous run. Defaults to True. +prev_calc_dir (str): Path to a previous calculation to copy from +db_file (string): Path to file specifying db credentials. +parents (Firework): Parents of this particular Firework. FW or list of FWS. +override_default_vasp_params (dict): additional user input settings for vasp_input_set. +**kwargs: Other kwargs that are passed to Firework.__init__.
+atomate.vasp.fireworks.nmr.
NMRFW
(structure=None, mode='cs', isotopes=None, name='nmr tensor', prev_calc_dir=None, vasp_cmd='vasp', copy_vasp_outputs=True, db_file=None, parents=None, **kwargs)¶Bases: fireworks.core.firework.Firework
__init__
(structure=None, mode='cs', isotopes=None, name='nmr tensor', prev_calc_dir=None, vasp_cmd='vasp', copy_vasp_outputs=True, db_file=None, parents=None, **kwargs)¶Firework for NMR tensor calculations
+mode (str): the NMR calculation type: cs or efg, default is cs +isotopes (list): list of isotopes to include, default is to include the
+++lowest mass quadrupolar isotope for all applicable elements
name (str): Name for the Firework. +prev_calc_dir (str): Path to a previous calculation to copy from +vasp_cmd (str): Command to run vasp. +copy_vasp_outputs (bool): Whether to copy outputs from previous
+++run. Defaults to True.
db_file (str): Path to file specifying db credentials. +parents (Firework): Parents of this particular Firework.
+++FW or list of FWS.
kwargs: Other kwargs that are passed to Firework.__init__.
+atomate.vasp.fireworks.polarization.
LcalcpolFW
(structure, name='static dipole moment', static_name='static', vasp_cmd='vasp', vasp_input_set=None, vasp_input_set_params=None, db_file=None, parents=None, gap_threshold=0.01, interpolate=False, start=None, end=None, this_image=0, nimages=5, **kwargs)¶Bases: fireworks.core.firework.Firework
__init__
(structure, name='static dipole moment', static_name='static', vasp_cmd='vasp', vasp_input_set=None, vasp_input_set_params=None, db_file=None, parents=None, gap_threshold=0.01, interpolate=False, start=None, end=None, this_image=0, nimages=5, **kwargs)¶Static Firework that calculates the dipole moment of structure or a single interpolated image of structures +output by two calculations specified by PassCalcLoc names start and end.
+This Firework uses three steps to calculate the dipole moment. +1. A StaticFW or StaticInterpolatFW calculation is performed to compute the band gap of the structure. +2. Because VASP cannot compute the dipole moment of metallic structures, CheckBandgap checks that the structure +has a band gap greater than gap_threshold. If the structure has a band gap less than gap_threshold, +the Firework defuses. Otherwise, +3. a polarization calculation (LCALCPOL=TRUE) is performed to calculate the dipole moment.
+If interpolate is equal to True, the keywords start and end are PassCalcLoc names used to locate the output +structures (CONTCAR) of two previous calculations. These two structures must have the same number and +type of atoms given in identical order in the structures. These structures are used to create nimages structures +interpolations.
+this_image specifies which of the interpolated structures to use in this Firework. For example in the +ferroelectric workflow, two structures that can be distorted into one another (a +high-symmetry nonpolar structure and a low-symmetry polar structure) are relaxed using OptimizeFW. Then the +dipole moment is calculated for nimages intermediate structures generated by interpolating between these two +relaxed structures.
+name (str): Name for the polarization FireWork. +static_name (str): Name for the SCF run to be used in PassCalcLoc if copy_vasp_outputs != True. +vasp_cmd (str): Command to run vasp. +vasp_input_set (str): string name for the VASP input set (e.g., “MITMDVaspInputSet”). +vasp_input_set_params (dict): Dict of vasp_input_set_kwargs. +db_file (str): Path to file specifying db credentials. +parents (Firework): Parents of this particular Firework. FW or list of FWS. +gap_threshold: Band gap cutoff for determining whether polarization calculation will proceed from
+++SCF band gap.
start (str): PassCalcLoc name of StaticFW or RelaxFW run of starting structure +end (str): PassCalcLoc name of StaticFW or RelaxFW run of ending structure +this_image (int): which interpolation to use for this run of the nimage interpolations. +nimages (int): number of interpolations between CONTCAR structures from calculations indicated by start and
+++end args.
schema
= {'analysis': {'delta_volume_as_percent', 'warnings', 'delta_volume', 'errors', 'max_force'}, 'calcs_reversed': {'input', 'nsites', 'formula_reduced_abc', 'vasp_version', 'task', 'dir_name', 'output', 'has_vasp_completed', 'nelements', 'elements', 'composition_reduced', 'composition_unit_cell', 'completed_at', 'formula_anonymous', 'run_type', 'formula_pretty'}, 'input': {'pseudo_potential', 'is_hubbard', 'potcar_spec', 'structure', 'is_lasph', 'hubbards', 'xc_override'}, 'output': {'bandgap', 'cbm', 'vbm', 'energy', 'density', 'spacegroup', 'is_gap_direct', 'is_metal', 'structure', 'forces', 'stress', 'energy_per_atom'}, 'root': {'chemsys', 'input', 'nsites', 'formula_reduced_abc', 'output', 'state', 'dir_name', 'run_stats', 'nelements', 'elements', 'composition_reduced', 'analysis', 'calcs_reversed', 'completed_at', 'formula_anonymous', 'composition_unit_cell', 'schema', 'formula_pretty'}}¶schema
= {'analysis': {'delta_volume', 'delta_volume_as_percent', 'errors', 'max_force', 'warnings'}, 'calcs_reversed': {'completed_at', 'composition_reduced', 'composition_unit_cell', 'dir_name', 'elements', 'formula_anonymous', 'formula_pretty', 'formula_reduced_abc', 'has_vasp_completed', 'input', 'nelements', 'nsites', 'output', 'run_type', 'task', 'vasp_version'}, 'input': {'hubbards', 'is_hubbard', 'is_lasph', 'potcar_spec', 'pseudo_potential', 'structure', 'xc_override'}, 'output': {'bandgap', 'cbm', 'density', 'energy', 'energy_per_atom', 'forces', 'is_gap_direct', 'is_metal', 'spacegroup', 'stress', 'structure', 'vbm'}, 'root': {'analysis', 'calcs_reversed', 'chemsys', 'completed_at', 'composition_reduced', 'composition_unit_cell', 'dir_name', 'elements', 'formula_anonymous', 'formula_pretty', 'formula_reduced_abc', 'input', 'nelements', 'nsites', 'output', 'run_stats', 'schema', 'state'}}¶
set_analysis
(max_force_threshold=0.5, volume_change_threshold=0.2)¶set_analysis
(d, max_force_threshold=0.5, volume_change_threshold=0.2)¶
Adapted from matgendb.creator
set the ‘analysis’ key
atomate.vasp.powerups.
add_additional_fields_to_taskdocs
(original_wf, update_dict=None, task_name_constraint='VaspToDb')¶For all VaspToDbTasks in a given workflow, add information to “additional_fields” to be +placed in the task doc.
+atomate.vasp.powerups.
add_bandgap_check
(original_wf, check_bandgap_params=None, fw_name_constraint=None)¶Every FireWork that enters into the Db has a band gap check afterwards, e.g. min_gap and max_gap
+atomate.vasp.powerups.
add_common_powerups
(wf, c=None)¶Apply the common powerups such as add_namefile, use_scratch_dir etc. from the given config dict.
+atomate.vasp.powerups.
add_modify_incar
(original_wf, modify_incar_params=None, fw_name_constraint=None)¶Every FireWork that runs VASP has a ModifyIncar task just beforehand. For example, allows +you to modify the INCAR based on the Worker using env_chk or using hard-coded changes.
+atomate.vasp.powerups.
add_modify_incar_envchk
(original_wf, fw_name_constraint=None)¶If you set the “incar_update” parameter in the Worker env, the INCAR will update this +parameter for all matching VASP runs
+atomate.vasp.powerups.
add_modify_potcar
(original_wf, modify_potcar_params=None, fw_name_constraint=None)¶Every FireWork that runs VASP has a ModifyIncar task just beforehand. For example, allows +you to modify the INCAR based on the Worker using env_chk or using hard-coded changes.
+atomate.vasp.powerups.
add_namefile
(original_wf, use_slug=True)¶Every FireWork begins by writing an empty file with the name +“FW–<fw.name>”. This makes it easy to figure out what jobs are in what +launcher directories, e.g. “ls -l launch*/FW–*” from within a “block” dir.
+atomate.vasp.powerups.
add_priority
(original_wf, root_priority, child_priority=None)¶Adds priority to a workflow
+atomate.vasp.powerups.
add_small_gap_multiply
(original_wf, gap_cutoff, density_multiplier, fw_name_constraint=None)¶In all FWs with specified name constraints, add a ‘small_gap_multiply’ parameter that +multiplies the k-mesh density of compounds with gap < gap_cutoff by density multiplier. +Useful for increasing the k-point mesh for metallic or small gap systems. +Note that this powerup only works on FireWorks with the appropriate WriteVasp* tasks that +accept the small_gap_multiply argument…
+atomate.vasp.powerups.
add_stability_check
(original_wf, check_stability_params=None, fw_name_constraint=None)¶Every FireWork that enters into the Db has a CheckStability task afterward. This +allows defusing jobs that are not stable. In practice, you might want +to set the fw_name_constraint so that the stability is only checked at the +beginning of the workflow
+Adds tags to all Fireworks in the Workflow, WF metadata, as well as additional_fields for +the VaspDrone to track them later (e.g. all fireworks and vasp tasks related to a research project)
+atomate.vasp.powerups.
add_trackers
(original_wf, tracked_files=None, nlines=25)¶Every FireWork that runs VASP also tracks the OUTCAR, OSZICAR, etc using FWS Trackers.
+atomate.vasp.powerups.
add_wf_metadata
(original_wf, structure)¶Adds structure metadata to a workflow
+atomate.vasp.powerups.
clean_up_files
(original_wf, files=('WAVECAR*', ), fw_name_constraint=None, task_name_constraint='RunVasp')¶Cleans up files after another fireworks. Default behavior is to remove WAVECAR after running VASP
+atomate.vasp.powerups.
clear_modify
(original_wf, fw_name_constraint=None)¶Simple powerup that clears the modifications to a workflow.
+atomate.vasp.powerups.
modify_to_soc
(original_wf, nbands, structure=None, modify_incar_params=None, fw_name_constraint=None)¶Takes a regular workflow and transforms its VASP fireworkers that are specified with +fw_name_constraints to non-collinear calculations taking spin orbit coupling into account.
+atomate.vasp.powerups.
preserve_fworker
(original_wf, fw_name_constraint=None)¶set _preserve_fworker spec of Fireworker(s) of a Workflow. Can be used to pin a workflow to +the first fworker it is run with. Very useful when running on multiple machines that can’t +share files. fw_name_constraint can be used to only preserve fworker after a certain point +where file passing becomes important
+atomate.vasp.powerups.
remove_custodian
(original_wf, fw_name_constraint=None)¶Replaces all tasks with “RunVasp*” (e.g. RunVaspCustodian) to be RunVaspDirect.
+atomate.vasp.powerups.
set_execution_options
(original_wf, fworker_name=None, category=None, fw_name_constraint=None, task_name_constraint=None)¶set _fworker spec of Fireworker(s) of a Workflow. It can be used to specify a queue; +e.g. run large-memory jobs on a separate queue.
+original_wf (Workflow): +fworker_name (str): user-defined tag to be added under fw.spec._fworker
+++e.g. “large memory”, “big”, etc
category (str): category of FWorker that should pul job +fw_name_constraint (str): name of the Fireworks to be tagged (all if None is passed) +task_name_constraint (str): name of the Firetasks to be tagged (e.g. None or ‘RunVasp’)
+atomate.vasp.powerups.
use_custodian
(original_wf, fw_name_constraint=None, custodian_params=None)¶Replaces all tasks with “RunVasp*” (e.g. RunVaspDirect) to be RunVaspCustodian. Thus, this +powerup adds error correction into VASP runs if not originally present and/or modifies +the correction behavior.
+original_wf (Workflow): original workflow +fw_name_constraint (str): Only apply changes to FWs where fw_name contains this substring.
+++For example, use custodian only for certain runs, or set job_type to +“double_relaxation_run” only for structure optimization run, or set different +handler_group for different runs.
atomate.vasp.powerups.
use_fake_vasp
(original_wf, ref_dirs, params_to_check=None)¶Replaces all tasks with “RunVasp” (e.g. RunVaspDirect) to be RunVaspFake. Thus, we do not +actually run VASP but copy pre-determined inputs and outputs.
+atomate.vasp.powerups.
use_gamma_vasp
(original_wf, gamma_vasp_cmd)¶For all RunVaspCustodian tasks, add the desired scratch dir.
+atomate.vasp.powerups.
use_no_vasp
(original_wf, ref_dirs)¶Instead of running VASP, does nothing and pass task documents from task.json files in ref_dirs +to task database.
+atomate.vasp.powerups.
use_scratch_dir
(original_wf, scratch_dir)¶For all RunVaspCustodian tasks, add the desired scratch dir.
+atomate.vasp.tests.test_vasp_powerups.
TestVaspPowerups
(methodName='runTest')¶Bases: unittest.case.TestCase
setUpClass
()¶Hook method for setting up class fixture before running tests in the class.
+test_add_clean_up
()¶test_add_priority
()¶test_add_small_gap_multiply
()¶test_add_trackers
()¶test_add_wf_metadata
()¶test_custodian_powerups
()¶test_modify_incar
()¶test_modify_potcar
()¶test_use_scratch_dir
()¶atomate.vasp.workflows.base.adsorption.
MPSurfaceSet
(structure, bulk=False, auto_dipole=None, **kwargs)¶Bases: pymatgen.io.vasp.sets.MVLSlabSet
Input class for MP slab calcs, mostly to change parameters +and defaults slightly
+__init__
(structure, bulk=False, auto_dipole=None, **kwargs)¶Initialize self. See help(type(self)) for accurate signature.
+incar
¶Incar object
+atomate.vasp.workflows.base.adsorption.
get_slab_fw
(slab, transmuter=False, db_file=None, vasp_input_set=None, parents=None, vasp_cmd='vasp', name='', add_slab_metadata=True)¶Function to generate a a slab firework. Returns a TransmuterFW if +bulk_structure is specified, constructing the necessary transformations +from the slab and slab generator parameters, or an OptimizeFW if only a +slab is specified.
+parents (Fireworks or list of ints): parent FWs +db_file (string): path to database file +vasp_cmd (string): vasp command +name (string): name of firework +add_slab_metadata (bool): whether to add slab metadata to task doc
+atomate.vasp.workflows.base.adsorption.
get_slab_trans_params
(slab)¶Gets a set of slab transformation params
+atomate.vasp.workflows.base.adsorption.
get_wf_molecules
(molecules, vasp_input_set=None, db_file=None, vasp_cmd='vasp', name='')¶atomate.vasp.workflows.base.adsorption.
get_wf_slab
(slab, include_bulk_opt=False, adsorbates=None, ads_structures_params=None, vasp_cmd='vasp', db_file=None, add_molecules_in_box=False)¶Gets a workflow corresponding to a slab calculation along with optional +adsorbate calcs and precursor oriented unit cell optimization
+slabs (list of Slabs or Structures): slabs to calculate +include_bulk_opt (bool): whether to include bulk optimization,
+++this flag sets the slab fireworks to be TransmuterFWs based +on bulk optimization of oriented unit cells
adsorbates ([Molecule]): list of molecules to place as adsorbates +ads_structures_params (dict): parameters to be supplied as
+++kwargs to AdsorbateSiteFinder.generate_adsorption_structures
db_file (string): path to database file +vasp_cmd (string): vasp command
+atomate.vasp.workflows.base.adsorption.
get_wfs_all_slabs
(bulk_structure, include_bulk_opt=False, adsorbates=None, max_index=1, slab_gen_params=None, ads_structures_params=None, vasp_cmd='vasp', db_file=None, add_molecules_in_box=False)¶Convenience constructor that allows a user to construct a workflow +that finds all adsorption configurations (or slabs) for a given +max miller index.
+bulk_structure (Structure): bulk structure from which to construct slabs +include_bulk_opt (bool): whether to include bulk optimization
+++of oriented unit cells
adsorbates ([Molecule]): adsorbates to place on surfaces +max_index (int): max miller index +slab_gen_params (dict): dictionary of kwargs for generate_all_slabs +ads_structures_params (dict): dictionary of kwargs for generating
+++of adsorption structures via AdsorptionSiteFinder
vasp_cmd (str): vasp command +db_file (str): location of db file +add_molecules_in_box (bool): whether to add molecules in a box
+++for the entire workflow
atomate.vasp.workflows.base.bulk_modulus.
get_wf_bulk_modulus
(structure, deformations, vasp_input_set=None, vasp_cmd='vasp', db_file=None, user_kpoints_settings=None, eos='vinet', tag=None, user_incar_settings=None)¶Returns the workflow that computes the bulk modulus by fitting to the given equation of state.
+structure (Structure): input structure. +deformations (list): list of deformation matrices(list of lists). +vasp_input_set (VaspInputSet): for the static deformation calculations +vasp_cmd (str): vasp command to run. +db_file (str): path to the db file. +user_kpoints_settings (dict): example: {“grid_density”: 7000} +eos (str): equation of state used for fitting the energies and the volumes.
+++supported equation of states: “quadratic”, “murnaghan”, “birch”, “birch_murnaghan”, +“pourier_tarantola”, “vinet”, “deltafactor”. See pymatgen.analysis.eos.py
user_incar_settings (dict):
+atomate.vasp.workflows.base.core.
get_wf
(structure, wf_filename, params=None, common_params=None, vis=None, wf_metadata=None)¶Get a workflow given a structure and a name of file from the workflow library.
+Possible options for wf_filename are listed in: atomate.vasp.workflows.base.library and +include band structure, dielectric constant, NEB, and more.
+You can also override some of the parameters via the function arguments.
+structure: (Structure) structure to run +wf_filename: filename in library subdir, e.g. “band_structure.yaml” +params: (list of dicts) set params for each Firework; format is list
+++that is same length as # of fws in the workflow
common_params: (dict) set common params +vis: (VaspInputSet) A VaspInputSet to use for the first FW +wf_metadata: (dict) workflow metadata
+atomate.vasp.workflows.base.deformations.
get_wf_deformations
(structure, deformations, name='deformation', vasp_input_set=None, vasp_cmd='vasp', db_file=None, tag='', copy_vasp_outputs=True, metadata=None)¶Returns a structure deformation workflow.
+Firework 1 : structural relaxation +Firework 2 - len(deformations): Deform the optimized structure and run static calculations.
+structure (Structure): input structure to be optimized and run +deformations (list of 3x3 array-likes): list of deformations +name (str): some appropriate name for the transmuter fireworks. +vasp_input_set (DictVaspInputSet): vasp input set for static deformed structure calculation. +vasp_cmd (str): command to run +db_file (str): path to file containing the database credentials. +tag (str): some unique string that will be appended to the names of the fireworks so that
+++the data from those tagged fireworks can be queried later during the analysis.
metadata (dict): meta data
+atomate.vasp.workflows.base.elastic.
get_default_strain_states
(order=2)¶Generates a list of “strain-states”
+atomate.vasp.workflows.base.elastic.
get_wf_elastic_constant
(structure, strain_states=None, stencils=None, db_file=None, conventional=False, order=2, vasp_input_set=None, analysis=True, sym_reduce=False, tag='elastic', copy_vasp_outputs=False, **kwargs)¶Returns a workflow to calculate elastic constants.
+Firework 2 - number of total deformations: Static runs on the deformed structures
+last Firework : Analyze Stress/Strain data and fit the elastic tensor
+structure (Structure): input structure to be optimized and run. +strain_states (list of Voigt-notation strains): list of ratios of nonzero elements
+++of Voigt-notation strain, e. g. [(1, 0, 0, 0, 0, 0), (0, 1, 0, 0, 0, 0), etc.].
db_file (str): path to file containing the database credentials. +conventional (bool): flag to convert input structure to conventional structure,
+++defaults to False.
sym_reduce (bool): Whether or not to apply symmetry reductions +tag (str): +copy_vasp_outputs (bool): whether or not to copy previous vasp outputs. +kwargs (keyword arguments): additional kwargs to be passed to get_wf_deformations
+atomate.vasp.workflows.base.ferroelectric.
get_wf_ferroelectric
(polar_structure, nonpolar_structure, vasp_cmd='vasp', db_file=None, vasp_input_set_polar='MPStaticSet', vasp_input_set_nonpolar='MPStaticSet', relax=False, vasp_relax_input_set_polar=None, vasp_relax_input_set_nonpolar=None, nimages=9, hse=False, add_analysis_task=False, wfid=None, tags=None)¶Returns a workflow to calculate the spontaneous polarization of polar_structure using +a nonpolar reference phase structure and linear interpolations between the polar and +nonpolar structure.
+The nonpolar and polar structures must be in the same space group setting and atoms ordered +such that a linear interpolation can be performed to create intermediate structures along +the distortion.
+For example, to calculate the polarization of orthorhombic BaTiO3 (space group 38) using +the cubic structure (space group 221) as the nonpolar reference phase, we must transform +the cubic to the orthorhombic setting. This can be accomplished using Bilbao Crystallographic +Server’s Structure Relations tool. (http://www.cryst.ehu.es/cryst/rel.html)
+polar_structure (Structure): polar structure of candidate ferroelectric +nonpolar_structure (Structure): nonpolar reference structure in polar setting +vasp_input_set_polar (DictVaspInputSet): VASP polar input set. Defaults to MPStaticSet. +vasp_input_set_nonpolar (DictVaspInputSet): VASP nonpolar input set. Defaults to MPStaticSet. +vasp_relax_input_set_polar (DictVaspInputSet): VASP polar input set. Defaults to MPRelaxSet. +vasp_relax_input_set_nonpolar (DictVaspInputSet): VASP nonpolar input set. Defaults to MPRelaxSet. +vasp_cmd (str): command to run +db_file (str): path to file containing the database credentials. +nimages: Number of interpolations calculated from polar to nonpolar structures, including the nonpolar.
+++For example, nimages = 9 will calculate 8 interpolated structures. 8 interpolations + nonpolar = 9.
add_analysis_task: Analyze polarization and energy trends as part of workflow. Default False. +wfid (string): Unique worfklow id starting with “wfid_”. If None this is atomatically generated (recommended). +tags (list of strings): Additional tags to add such as identifiers for structures.
+Returns:
+atomate.vasp.workflows.base.gibbs.
get_wf_gibbs_free_energy
(structure, deformations, vasp_input_set=None, vasp_cmd='vasp', db_file=None, user_kpoints_settings=None, t_step=10, t_min=0, t_max=1000, mesh=(20, 20, 20), eos='vinet', qha_type='debye_model', pressure=0.0, poisson=0.25, anharmonic_contribution=False, metadata=None, tag=None)¶Returns quasi-harmonic gibbs free energy workflow. +Note: phonopy package is required for the final analysis step if qha_type=”phonopy”
+structure (Structure): input structure. +deformations (list): list of deformation matrices(list of lists). +vasp_input_set (VaspInputSet) +vasp_cmd (str): vasp command to run. +db_file (str): path to the db file. +user_kpoints_settings (dict): example: {“grid_density”: 7000} +t_step (float): temperature step (in K) +t_min (float): min temperature (in K) +t_max (float): max temperature (in K) +mesh (list/tuple): reciprocal space density +eos (str): equation of state used for fitting the energies and the volumes.
+++options supported by phonopy: “vinet”, “murnaghan”, “birch_murnaghan”. +Note: pymatgen supports more options than phonopy. see pymatgen.analysis.eos.py
pressure (float): in GPa +poisson (float): poisson ratio +anharmonic_contribution (bool): consider anharmonic contributions to
+++Gibbs energy from the Debye model. Defaults to False.
metadata (dict): meta data +tag (str): something unique to identify the tasks in this workflow. If None a random uuid
+++will be assigned.
This module defines the Nudged Elastic Band (NEB) workflow.
+atomate.vasp.workflows.base.neb.
get_wf_neb_from_endpoints
(parent, endpoints, user_incar_settings=None, additional_spec=None, user_kpoints_settings=None, additional_cust_args=None)¶Get a CI-NEB workflow from given endpoints. +Workflow: (Endpoints relax – ) NEB_1 – NEB_2 - … - NEB_r
+++endpoints not optimized: ep–neb(r) +endpoints are optimized: neb(r)
parent (Structure): parent structure. +endpoints (list[Structure]): The endpoint structures. +user_incar_settings([dict]): Additional user_incar_settings. Note that the order of the
+++list is set as: “parent”, “ep_relax”, “neb1”, “neb2” etc., which contains +at least three elements. The first dict is for parent structure relaxation, +the second dict is for endpoints relaxation, and the rest are for NEB +calculations. For example, [{}, {}, {“IOPT”: 7}, {“IOPT”: 1}]. Besides, +user_incar_settings is used to determine how many NEB rounds will be. Default +is [{}, {}, {}].
additional_spec (dict): User spec settings to overwrite default_spec. +user_kpoints_settings ([dict]): Additional user_kpoints_settings, which contains at at
+++least three elements, which is similar to user_incar_settings. For example, +[{}, {}, {“grid_density”: 100}] for the workflow from the parent structure +relaxation, then the endpoint relaxation followed by one-round NEB simulation. +Default values depend on the selected VaspInputSet.
atomate.vasp.workflows.base.neb.
get_wf_neb_from_images
(parent, images, user_incar_settings, additional_spec=None, user_kpoints_settings=None, additional_cust_args=None)¶Get a CI-NEB workflow from given images. +Workflow: NEB_1 – NEB_2 - … - NEB_n
+parent (Structure): parent structure. +images ([Structure]): All images and two endpoints. +user_incar_settings([dict]): Additional user_incar_settings. Note that the order of the
+++list is set as: “parent”, “ep_relax”, “neb1”, “neb2” etc., which contains +at least three elements. The first dict is for parent structure relaxation, +the second dict is for endpoints relaxation, and the rest are for NEB +calculations. For example, [{}, {}, {“IOPT”: 7}, {“IOPT”: 1}]. Besides, +user_incar_settings is used to determine how many NEB rounds will be. Default +is [{}, {}, {}].
additional_spec (dict): User spec settings to overwrite default_spec. +user_kpoints_settings ([dict]): Additional user_kpoints_settings, which contains at at
+++least three elements, which is similar to user_incar_settings. For example, +[{}, {}, {“grid_density”: 100}] for the workflow from the parent structure +relaxation, then the endpoint relaxation followed by one-round NEB simulation. +Default values depend on the selected VaspInputSet.
atomate.vasp.workflows.base.neb.
get_wf_neb_from_structure
(structure, user_incar_settings=None, additional_spec=None, user_kpoints_settings=None, additional_cust_args=None)¶Obtain the CI-NEB workflow staring with a parent structure. This works only under the single +vacancy diffusion mechanism.
+structure (Structure): The parent structure. +user_incar_settings([dict]): Additional user_incar_settings. Note that the order of the
+++list is set as: “parent”, “ep_relax”, “neb1”, “neb2” etc., which contains +at least three elements. The first dict is for parent structure relaxation, +the second dict is for endpoints relaxation, and the rest are for NEB +calculations. For example, [{}, {}, {“IOPT”: 7}, {“IOPT”: 1}]. Besides, +user_incar_settings is used to determine how many NEB rounds will be. Default +is [{}, {}, {}].
additional_spec (dict): User spec settings to overwrite default_spec. +user_kpoints_settings ([dict]): Additional user_kpoints_settings, which contains at at
+++least three elements, which is similar to user_incar_settings. For example, +[{}, {}, {“grid_density”: 100}] for the workflow from the parent structure +relaxation, then the endpoint relaxation followed by one-round NEB simulation. +Default values depend on the selected VaspInputSet.
atomate.vasp.workflows.base.raman.
get_wf_raman_spectra
(structure, modes=None, step_size=0.005, vasp_cmd='vasp', db_file=None)¶structure (Structure): Input structure. +modes (tuple/list): list of modes for which the Raman spectra need to be calculated.
+++The default is to use all the 3N modes.
vasp_cmd (str): vasp command to run. +db_file (str): path to file containing the database credentials.
+atomate.vasp.workflows.base.thermal_expansion.
get_wf_thermal_expansion
(structure, deformations, vasp_input_set=None, vasp_cmd='vasp', db_file=None, user_kpoints_settings=None, t_step=10, t_min=0, t_max=1000, mesh=(20, 20, 20), eos='vinet', pressure=0.0, tag=None)¶Returns quasi-harmonic thermal expansion workflow. +Note: phonopy package is required for the final analysis step.
+structure (Structure): input structure. +deformations (list): list of deformation matrices(list of lists). +vasp_input_set (VaspInputSet) +vasp_cmd (str): vasp command to run. +db_file (str): path to the db file. +user_kpoints_settings (dict): example: {“grid_density”: 7000} +t_step (float): temperature step (in K) +t_min (float): min temperature (in K) +t_max (float): max temperature (in K) +mesh (list/tuple): reciprocal space density +eos (str): equation of state used for fitting the energies and the volumes.
+++options supported by phonopy: “vinet”, “murnaghan”, “birch_murnaghan”. +Note: pymatgen supports more options than phonopy. see pymatgen.analysis.eos.py
pressure (float): in GPa +tag (str): something unique to identify the tasks in this workflow. If None a random uuid
+++will be assigned.
atomate.vasp.workflows.presets.core.
wf_bandstructure
(structure, c=None)¶atomate.vasp.workflows.presets.core.
wf_bandstructure_hse
(structure, c=None)¶atomate.vasp.workflows.presets.core.
wf_bandstructure_no_opt
(structure, c=None)¶atomate.vasp.workflows.presets.core.
wf_bandstructure_plus_boltztrap
(structure, c=None)¶atomate.vasp.workflows.presets.core.
wf_bandstructure_plus_hse
(structure, gap_only=True, c=None)¶atomate.vasp.workflows.presets.core.
wf_bulk_modulus
(structure, c=None)¶Bulk modulus workflow from the given structure and config dict.
+atomate.vasp.workflows.presets.core.
wf_dielectric_constant
(structure, c=None)¶atomate.vasp.workflows.presets.core.
wf_dielectric_constant_no_opt
(structure, c=None)¶atomate.vasp.workflows.presets.core.
wf_elastic_constant
(structure, c=None, order=2, sym_reduce=False)¶atomate.vasp.workflows.presets.core.
wf_elastic_constant_minimal
(structure, c=None, order=2, sym_reduce=True)¶atomate.vasp.workflows.presets.core.
wf_gibbs_free_energy
(structure, c=None)¶Gibbs free energy workflow from the given structure and config dict.
+atomate.vasp.workflows.presets.core.
wf_nmr
(structure, c=None)¶atomate.vasp.workflows.presets.core.
wf_nudged_elastic_band
(structures, parent, c=None)¶Nudged elastic band (NEB) workflow from the given structures and config dict.
+‘is_optimized’ default False +‘neb_round’ default 1
+Length of Structure list and “is_optimized” are used to determine the workflow: +1 structure # The parent structure & two endpoint indexes provided; need relaxation.
+++# The parent structure & two endpoint indexes provided; no need to relax.
>=3 structures # All images including two endpoints are provided.
+parent (Structure): parent structure used to get two endpoints. +c (dict): workflow config dict, basic format:
++++
+- {“fireworks”: [], “common_params”: {}, “additional_ep_params”: {},
+- “additional_neb_params”: {}}. When the length of structures is 1, “site_indices” key +must be included in c. Note that “fireworks” is a list corresponding to the order of +execution.
+
atomate.vasp.workflows.presets.core.
wf_piezoelectric_constant
(structure, c=None)¶atomate.vasp.workflows.presets.core.
wf_raman_spectra
(structure, c=None)¶Raman spectra workflow from the given structure and config dict
+atomate.vasp.workflows.presets.core.
wf_static
(structure, c=None)¶atomate.vasp.workflows.presets.core.
wf_structure_optimization
(structure, c=None)¶atomate.vasp.workflows.presets.core.
wf_thermal_expansion
(structure, c=None)¶Thermal expansion coefficient workflow from the given structure and config dict.
+atomate.vasp.workflows.presets.scan.
wf_scan_opt
(structure, c=None)¶atomate.vasp.workflows.tests.test_adsorbate_workflow.
TestAdsorptionWorkflow
(methodName='runTest')¶Bases: atomate.utils.testing.AtomateTest
setUp
()¶Create scratch directory(removes the old one if there is one) and change to it. +Also initialize launchpad.
+test_input_sets
()¶test_wf
()¶test_wf_functions
()¶atomate.vasp.workflows.tests.test_bulk_modulus_workflow.
TestBulkModulusWorkflow
(methodName='runTest')¶Bases: atomate.utils.testing.AtomateTest
This test will either actually run VASP (if VASP_CMD is set) or artificially pass on outputs +(if not VASP_CMD) and test the whole bulk modulus workflow and its implementation and outputs +for an example calculation for silicon.
+note for the developer of the test: +This tests can be run in two modes if not VASP_CMD: +1. first all inputs and outputs of all deformations are present in which case
+++in each folder a trimmed version of task.json will be generated so that
setUp
()¶Create scratch directory(removes the old one if there is one) and change to it. +Also initialize launchpad.
+setup_task_docs
()¶test_wf
()¶write_task_docs
()¶atomate.vasp.workflows.tests.test_elastic_workflow.
TestElasticWorkflow
(methodName='runTest')¶Bases: atomate.utils.testing.AtomateTest
setUp
()¶Create scratch directory(removes the old one if there is one) and change to it. +Also initialize launchpad.
+test_wf
()¶atomate.vasp.workflows.tests.test_ferroelectric_workflow.
TestFerroelectricWorkflow
(methodName='runTest')¶Bases: atomate.utils.testing.AtomateTest
setUp
()¶Create scratch directory(removes the old one if there is one) and change to it. +Also initialize launchpad.
+test_wf
()¶untarTestFiles
()¶atomate.vasp.workflows.tests.test_neb_workflow.
TestNudgedElasticBandWorkflow
(methodName='runTest')¶Bases: atomate.utils.testing.AtomateTest
setUp
()¶test_wf
()¶atomate.vasp.workflows.tests.test_nmr.
TestNMRWorkflow
(methodName='runTest')¶Bases: atomate.utils.testing.AtomateTest
This test will either actually run VASP (if VASP_CMD is set) or artificially pass on outputs +(if not VASP_CMD) and test the NMR workflow and its implementation and outputs +for an example calculation for LiAlSiO4.
+setUp
()¶Create scratch directory(removes the old one if there is one) and change to it. +Also initialize launchpad.
+test_wf
()¶atomate.vasp.workflows.tests.test_raman_workflow.
TestRamanWorkflow
(methodName='runTest')¶Bases: atomate.utils.testing.AtomateTest
setUp
()¶Create scratch directory(removes the old one if there is one) and change to it. +Also initialize launchpad.
+test_wf
()¶atomate.vasp.workflows.tests.test_vasp_workflows.
TestVaspWorkflows
(methodName='runTest')¶Bases: atomate.utils.testing.AtomateTest
setUp
()¶Create scratch directory(removes the old one if there is one) and change to it. +Also initialize launchpad.
+test_bandgap_check_Vasp
()¶test_bandstructure_Vasp
()¶test_chgcar_db_read
()¶test_chgcar_db_read_write
()¶test_single_Vasp
()¶test_single_Vasp_dbinsertion
()¶test_trackers
()¶v0.8.6
+v0.8.5
Once you have identified each calculation or analysis step as a Firework in our graph, we must determine which Fireworks correspond to each node in our graph. The full Python documentation for each of the atomate Fireworks can be found in the atomate.vasp.fireworks module
documentation or the corresponding documentation page for the software you want to use. Currently FEFF, LAMMPS, and VASP are supported. Some available VASP Fireworks are
Once you have identified each calculation or analysis step as a Firework in our graph, we must determine which Fireworks correspond to each node in our graph. The full Python documentation for each of the atomate Fireworks can be found in the atomate.vasp.fireworks module
documentation or the corresponding documentation page for the software you want to use. Currently FEFF, LAMMPS, and VASP are supported. Some available VASP Fireworks are
atomate.common.firetasks module
for software-agnostic tasks such as PassCalcLocs
or atomate.vasp.firetasks package <atomate.vasp.firetasks
for some VASP specific ones, including the analysis tasks usually found in atomate.vasp.firetasks.parse_outputs
.
+You’ll notice that more generic Fireworks and Fireworks for analysis tasks are not in this list. Because they are intended to be simple and modular, these Fireworks are actually written as plain Firetasks that will get wrapped into a Firework when the Workflow is constructed. We’ll cover how to use them as Fireworks in the next section, but know that they can be found at places like atomate.common.firetasks module
for software-agnostic tasks such as PassCalcLocs
or atomate.vasp.firetasks package <atomate.vasp.firetasks
for some VASP specific ones, including the analysis tasks usually found in atomate.vasp.firetasks.parse_outputs
.
With each of the Fireworks identified for our sketched workflow, they can assemble them into a complete atomate Workflow in Python. In order to understand what’s going on here, you should be comfortable with creating instances of classes and using functions. To demonstrate how to assemble and use a workflow, we will use a slightly modified version of the Gibbs Free Energy Workflow and step through each line of code to explain what is going on.
-For context, the Gibbs Free Energy Workflow calculates for a structure. Two methods for doing this are using the Debye model (see Blanco et al. Comput. Phys. Commun., 158, (2004)) or through vibration frequencies of atoms (see Togo and Tanaka, Scr. Mater., 108 (2015). It does this by first optimizing the desired structure. Next, that optimized structure has its volume scaled and a VASP calculation that is either a static calculation or calculation with density functional perturbation theory (the IBRION = 7 or 8
INCAR setting) is performed depending on what type of analysis is used. In the analysis, the Debye model or a phonon calculation is used to extrapolate the from 0K to finite temperatures using the harmonic approximation, giving each structure an dependence. Then each of these structures are considered together and fit to an equation of state which allows us express for this structure, which we can transform to to get the Gibbs free energy of that structure. The phonopy website has a good visualization for Helmholtz energies and volumes with increasing temperature.
For context, the Gibbs Free Energy Workflow calculates for a structure. Two methods for doing this are using the Debye model (see Blanco et al. Comput. Phys. Commun., 158, (2004)) or through vibration frequencies of atoms (see Togo and Tanaka, Scr. Mater., 108 (2015). It does this by first optimizing the desired structure. Next, that optimized structure has its volume scaled and a VASP calculation that is either a static calculation or calculation with density functional perturbation theory (the IBRION = 7 or 8
INCAR setting) is performed depending on what type of analysis is used. In the analysis, the Debye model or a phonon calculation is used to extrapolate the from 0K to finite temperatures using the harmonic approximation, giving each structure an dependence. Then each of these structures are considered together and fit to an equation of state which allows us express for this structure, which we can transform to to get the Gibbs free energy of that structure. The phonopy website has a good visualization for Helmholtz energies and volumes with increasing temperature.
The Python implementation of the modified Gibbs Free Energy Workflow is:
Note
-The documentation and source for the actual Gibbs Free Energy Workflow is found at atomate.vasp.workflows.base.gibbs
. Here we have simplified some of the options and explicitly added each Firework.
The documentation and source for the actual Gibbs Free Energy Workflow is found at atomate.vasp.workflows.base.gibbs
. Here we have simplified some of the options and explicitly added each Firework.
In the above code example, we start by importing the classes and functions we’ll be using and defining our wf_gibbs_free_energy
function with all of the parameters we’d like to control from a workflow level and the documentation for those parameters. Running the function will return a FireWorks Workflow to add to the LaunchPad.
Lines 41-51 is where we define the optimization Firework. First we check if a vasp_input_set_relax parameter was passed, if not we default to MPRelaxSet and update that set if the user_kpoints_settings
parameter was passed. It’s common to see a similar parameter for user_incar_settings
. On line 49 we create our list of Fireworks (fws
) with the OptimizeFW
that we imported. Take note that this is the only Firework we pass our structure to, which allows for more flexibility. More on this later.
atomate.vasp.workflows.base
) would be a good place to find functional examples with reasonable parametersatomate.vasp.workflows.base
) would be a good place to find functional examples with reasonable parametersPowerups (atomate.vasp.powerups
) enable modifications to be made to workflows after they have been created. The benefit of these is that you can apply powerups conditionally in code or to a large list of Workflows that you’ll later add to your LaunchPad. Some powerups affect the behavior of your calculations, others simply add metadata or change how the individual Fireworks interact with the database under the hood.
Powerups (atomate.vasp.powerups
) enable modifications to be made to workflows after they have been created. The benefit of these is that you can apply powerups conditionally in code or to a large list of Workflows that you’ll later add to your LaunchPad. Some powerups affect the behavior of your calculations, others simply add metadata or change how the individual Fireworks interact with the database under the hood.
Some useful powerups that affect the behavior of VASP are
add_modify_incar
: Update the INCAR of Fireworks specifed by (partially matched) name at runtimeThe Creating Workflows guide gave details on constructing workflows. This group of tutorials will give specific examples for customizations to workflows as you create them.
-For some of these customizations, preset workflows cannot be used. Preset workflows are designed to give generically reasonable options. More full access for customizing the workflows can be achieved by using the atomate.vasp.workflows.base
workflows instead of the presets.
For some of these customizations, preset workflows cannot be used. Preset workflows are designed to give generically reasonable options. More full access for customizing the workflows can be achieved by using the atomate.vasp.workflows.base
workflows instead of the presets.
+ |
+ | + |