forked from hackingmaterials/atomate
-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathbuilders.html
168 lines (157 loc) · 9.16 KB
/
builders.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Builders — atomate 1.0.3 documentation</title>
<link rel="stylesheet" href="_static/nature.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/language_data.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="Creating Workflows" href="creating_workflows.html" />
<link rel="prev" title="Running Gibbs Workflows" href="gibbs_workflow_tutorial.html" />
<link href='https://fonts.googleapis.com/css?family=Lato:400,700' rel='stylesheet' type='text/css'>
</head><body>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="creating_workflows.html" title="Creating Workflows"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="gibbs_workflow_tutorial.html" title="Running Gibbs Workflows"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">atomate 1.0.3 documentation</a> »</li>
<li class="nav-item nav-item-this"><a href="">Builders</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="builders-creating-calculation-reports-for-data-analysis">
<span id="builders"></span><h1>Builders: creating calculation reports for data analysis<a class="headerlink" href="#builders-creating-calculation-reports-for-data-analysis" title="Permalink to this headline">¶</a></h1>
<div class="section" id="introduction">
<h2>Introduction<a class="headerlink" href="#introduction" title="Permalink to this headline">¶</a></h2>
<p>By default, atomate parses the results of each calculation (“task”) and stores the result in
MongoDB. Although it is often useful to have such a “calculation-centric” view of the data, in
which each document in the database represents one calculation, it is sometimes even more useful
to have a database in which each document summarizes all calculated properties of a given material.</p>
<p>A “builder” in atomate summarizes all calculated data on a single material by collecting together
information from multiple tasks. One can also use builders to do post-processing such as computing
and storing materials descriptors that can be helpful in data analysis. Thus, the main goal of a
builder is take the somewhat “raw” information from a set of calculation tasks and derive a summary
and higher-level information from a materials perspective.</p>
<p>A high-level diagram of the build process is shown below.</p>
<div class="figure align-default" id="id1">
<a class="reference internal image-reference" href="_images/build_process.png"><img alt="Build process" src="_images/build_process.png" style="width: 500.0px; height: 324.5px;" /></a>
<p class="caption"><span class="caption-text">Diagram of the build process, which collects lower-level information such as tasks and organizes it into higher-level collections like materials.</span><a class="headerlink" href="#id1" title="Permalink to this image">¶</a></p>
</div>
<div class="section" id="the-core-builder-tasksmaterialsbuilder">
<h3>The core builder: TasksMaterialsBuilder<a class="headerlink" href="#the-core-builder-tasksmaterialsbuilder" title="Permalink to this headline">¶</a></h3>
<p>The core builder of atomate is TasksMaterialsBuilder. This builder will:</p>
<ul class="simple">
<li><p>automatically determine which tasks are on the same material using pymatgen’s StructureMatcher</p></li>
<li><p>collect together basic data from all those tasks into a single document that is stored in a new collection called “materials”.</p></li>
</ul>
<p>This core builder is one of the more complex builders because it needs to decide things like:</p>
<ul class="simple">
<li><p>what kinds of calculations should be considered as possible new materials? (for example, in general one would not like to consider a small deformation calculation performed for the purpose of elastic tensor calculation to be different “material” than its parent)</p></li>
<li><p>if there are multiple calculation types that give different values of the same property for a single material, which calculation should be trusted?</p></li>
<li><p>how can we decide if two calculations are on the same material?</p></li>
</ul>
<p>However, this is the “core” builder because it begins the process of collecting together data from individual calculations and creating a single materials-centric report.</p>
</div>
<div class="section" id="other-builders">
<h3>Other builders<a class="headerlink" href="#other-builders" title="Permalink to this headline">¶</a></h3>
<p>Other builders can be found in the <code class="docutils literal notranslate"><span class="pre">atomate.vasp.builders</span></code> package. Refer to the code documentation to learn their various purposes.</p>
</div>
</div>
<div class="section" id="running-builders">
<h2>Running builders<a class="headerlink" href="#running-builders" title="Permalink to this headline">¶</a></h2>
<p>Running builders is simple. Note that running builders does not modify the source <code class="docutils literal notranslate"><span class="pre">tasks</span></code> collection; it only creates new collections and data. Thus, one can safely run the builders.</p>
<p>To try running builders, follow the example in <code class="docutils literal notranslate"><span class="pre">atomate.vasp.builders.examples</span></code>. Afterwards, inspect your MongoDB database to find the new collections and data.</p>
<p>Note that builders have a reset() function in case you want to start over.</p>
</div>
</div>
<div class="clearer"></div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h3><a href="index.html">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">Builders: creating calculation reports for data analysis</a><ul>
<li><a class="reference internal" href="#introduction">Introduction</a><ul>
<li><a class="reference internal" href="#the-core-builder-tasksmaterialsbuilder">The core builder: TasksMaterialsBuilder</a></li>
<li><a class="reference internal" href="#other-builders">Other builders</a></li>
</ul>
</li>
<li><a class="reference internal" href="#running-builders">Running builders</a></li>
</ul>
</li>
</ul>
<h4>Previous topic</h4>
<p class="topless"><a href="gibbs_workflow_tutorial.html"
title="previous chapter">Running Gibbs Workflows</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="creating_workflows.html"
title="next chapter">Creating Workflows</a></p>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="_sources/builders.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="creating_workflows.html" title="Creating Workflows"
>next</a> |</li>
<li class="right" >
<a href="gibbs_workflow_tutorial.html" title="Running Gibbs Workflows"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">atomate 1.0.3 documentation</a> »</li>
<li class="nav-item nav-item-this"><a href="">Builders</a></li>
</ul>
</div>
<div class="footer" role="contentinfo">
© Copyright 2015, Anubhav Jain.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
</div>
</body>
</html>