Skip to content

Commit

Permalink
update to v0.6
Browse files Browse the repository at this point in the history
Add trivariate Gaussian model charge and selective charge optimization support
  • Loading branch information
MFTabriz committed Apr 4, 2019
1 parent dc090d4 commit 61c80d2
Show file tree
Hide file tree
Showing 149 changed files with 8,392 additions and 8,254 deletions.
54 changes: 31 additions & 23 deletions manual.html
Original file line number Diff line number Diff line change
Expand Up @@ -1075,10 +1075,10 @@
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="last-updated field"><th class="docinfo-name">Last updated:</th><td class="field-body">23 Mar. 2019</td>
<tr class="last-updated field"><th class="docinfo-name">Last updated:</th><td class="field-body">04 April 2019</td>
</tr>
<tr><th class="docinfo-name">Version:</th>
<td>0.5.0</td></tr>
<td>0.6.0</td></tr>
</tbody>
</table>
<div class="contents topic" id="contents">
Expand Down Expand Up @@ -1142,6 +1142,10 @@ <h2><a class="toc-backref" href="#id24">1.1&nbsp;&nbsp;&nbsp;Algorithm</a></h2>
<div class="formula">
<i>ρ</i>(<i>r</i>) = <span class="limits"><sup class="limit"></sup><span class="limit"></span><span class="limit"></span><sub class="limit"><i>i</i></sub></span><span class="fraction"><span class="ignored">(</span><span class="numerator"><i>q</i><sub><i>i</i></sub></span><span class="ignored">)/(</span><span class="denominator"><i>σ</i><span class="scripts"><sup class="script">3</sup><sub class="script"><i>i</i></sub></span>(2<i>π</i>)<sup>3 ⁄ 2</sup></span><span class="ignored">)</span></span>exp<span class="array"><span class="arrayrow"><span class="bracket align-left"></span></span><span class="arrayrow"><span class="bracket align-left"></span></span></span> − <span class="fraction"><span class="ignored">(</span><span class="numerator"><i>r</i><span class="scripts"><sup class="script">2</sup><sub class="script"><i>i</i></sub></span></span><span class="ignored">)/(</span><span class="denominator">2<i>σ</i><span class="scripts"><sup class="script">2</sup><sub class="script"><i>i</i></sub></span></span><span class="ignored">)</span></span><span class="array"><span class="arrayrow"><span class="bracket align-right"></span></span><span class="arrayrow"><span class="bracket align-right"></span></span></span>
</div>
<p>or <a class="reference external" href="http://mathworld.wolfram.com/TrivariateNormalDistribution.html">trivariate Gaussian</a> charge distributions as:</p>
<div class="formula">
<i>ρ</i>(<i>r</i>) = <span class="limits"><sup class="limit"></sup><span class="limit"><span class="symbol"></span></span><sub class="limit"><i>i</i></sub></span><span class="fraction"><span class="ignored">(</span><span class="numerator"><i>q</i><sub><i>i</i></sub></span><span class="ignored">)/(</span><span class="denominator"><i>σ</i><sub><i>i</i>, <i>x</i></sub><i>σ</i><sub><i>i</i>, <i>y</i></sub><i>σ</i><sub><i>i</i>, <i>z</i></sub>(2<i>π</i>)<sup>3 ⁄ 2</sup></span><span class="ignored">)</span></span>exp<span class="array"><span class="arrayrow"><span class="bracket align-left"></span></span><span class="arrayrow"><span class="bracket align-left"></span></span></span> − <span class="fraction"><span class="ignored">(</span><span class="numerator"><i>r</i><span class="scripts"><sup class="script">2</sup><sub class="script"><i>i</i>, <i>x</i></sub></span></span><span class="ignored">)/(</span><span class="denominator">2<i>σ</i><span class="scripts"><sup class="script">2</sup><sub class="script"><i>i</i>, <i>x</i></sub></span></span><span class="ignored">)</span></span> − <span class="fraction"><span class="ignored">(</span><span class="numerator"><i>r</i><span class="scripts"><sup class="script">2</sup><sub class="script"><i>i</i>, <i>y</i></sub></span></span><span class="ignored">)/(</span><span class="denominator">2<i>σ</i><span class="scripts"><sup class="script">2</sup><sub class="script"><i>i</i>, <i>y</i></sub></span></span><span class="ignored">)</span></span> − <span class="fraction"><span class="ignored">(</span><span class="numerator"><i>r</i><span class="scripts"><sup class="script">2</sup><sub class="script"><i>i</i>, <i>z</i></sub></span></span><span class="ignored">)/(</span><span class="denominator">2<i>σ</i><span class="scripts"><sup class="script">2</sup><sub class="script"><i>i</i>, <i>z</i></sub></span></span><span class="ignored">)</span></span><span class="array"><span class="arrayrow"><span class="bracket align-right"></span></span><span class="arrayrow"><span class="bracket align-right"></span></span></span>
</div>
<p>which gives a charge distribution normalized to q<sub>i</sub> with standard deviation of σ<sub>i</sub> (<tt class="docutils literal">charge_sigma</tt>) for each Gaussian distribution i centered at r<sub>i</sub> (<tt class="docutils literal">charge_position</tt>).</p>
</li>
</ul>
Expand Down Expand Up @@ -1247,7 +1251,7 @@ <h2><a class="toc-backref" href="#id24">1.1&nbsp;&nbsp;&nbsp;Algorithm</a></h2>
</ul><ul>
<li>ΔV is calculated at the position least affected by the model charge.</li>
</ul>
<p>More information about the algorithm and implementation details can be found <a class="reference internal" href="#cite">here</a>.</p>
<p>More information about the algorithms and the implementation details can be found <a class="reference internal" href="#cite">here</a>.</p>
</div>
</div>
<div class="section" id="quick-start-guide">
Expand Down Expand Up @@ -1304,7 +1308,7 @@ <h2><a class="toc-backref" href="#id26">2.1&nbsp;&nbsp;&nbsp;Example</a></h2>
interfaces = 0.25 0.75
</pre>
</li>
<li><p class="first"><strong>Correction for the uniform dielectric medium e.g. bulk models:</strong> You must have the same dielectric tensor inside and outside and turn off the optimization for the interfaces:</p>
<li><p class="first"><strong>Correction for the uniform dielectric medium e.g. bulk models:</strong> You must have the same dielectric tensor inside and outside:</p>
<pre class="literal-block">
LOCPOT_charged = CHARGED_LOCPOT
LOCPOT_neutral = UNCHARGED_LOCPOT
Expand All @@ -1313,12 +1317,11 @@ <h2><a class="toc-backref" href="#id26">2.1&nbsp;&nbsp;&nbsp;Example</a></h2>
charge_position = 0.24 0.56 0.65
diel_in = 4.8
diel_out = 4.8
optimize_interfaces = no
</pre>
</li>
</ol>
<ol class="arabic" start="4">
<li><p class="first"><strong>Correction for the monolayer i.e. 2D models:</strong> In-plane dielectric constants must be equal for the default isolated energy calculation algorithm of the 2D models (Bessel expansion of the Poission equation). Use the extrapolation method (<tt class="docutils literal">extrapolate=yes</tt>) for more general cases:</p>
<li><p class="first"><strong>Correction for the monolayer i.e. 2D models:</strong> In-plane dielectric constants must be equal for the default isolated energy calculation algorithm of the 2D models (Bessel expansion of the Poisson equation). Use the extrapolation method (<tt class="docutils literal">extrapolate=yes</tt>) for more general cases:</p>
<pre class="literal-block">
LOCPOT_charged = CHARGED_LOCPOT
LOCPOT_neutral = UNCHARGED_LOCPOT
Expand Down Expand Up @@ -1435,20 +1438,27 @@ <h1><a class="toc-backref" href="#id30">5&nbsp;&nbsp;&nbsp;Input parameters</a><
positions</em></td>
</tr>
<tr><td><tt class="docutils literal">charge_position</tt></td>
<td><p class="first">Position of the model Gaussian charges</p>
<td><p class="first">Center of the model Gaussian charges</p>
<p><tt class="docutils literal">charge_position = 0.2 0.5 0.3</tt></p>
<p class="last"><tt class="docutils literal">charge_position = 0.2 0.2 0.2; 0.3 0.4 0.3</tt></p>
</td>
<td>&nbsp;</td>
</tr>
<tr><td><tt class="docutils literal">charge_sigma</tt></td>
<td><p class="first">Width of each localized Gaussian charge</p>
<p><tt class="docutils literal">charge_sigma = 1</tt></p>
<p class="last"><tt class="docutils literal">charge_sigma = 1 1.5</tt></p>
<td><p class="first">Width of each localized Gaussian charge. It can be 1 or in case of trivariate models, 3 parameters per localized Gaussian charge. For trivariate Gaussian models, defining a single parameter per charge, sets the sigma values to be equal in all directions.</p>
<p>for a single Gaussian charge<p><tt class="docutils literal">charge_sigma = 1</tt></p>
<p>for multiple Gaussian charges<p><tt class="docutils literal">charge_sigma = 1 1.5</tt></p>
<p>for two trivariate Gaussian charges<p class="last"><tt class="docutils literal">charge_sigma = 1 2 3; 1.5 2.5 3.5;</tt></p>
</td>
<td>1 (for each charge in each direction)</td>
</tr>

<tr><td><tt class="docutils literal">charge_trivariate</tt></td>
<td><p class="first">Use trivariate Gaussian model along the main axis</p>
</td>
<td>1 (for each
charge)</td>
<td>false</td>
</tr>

<tr><td><tt class="docutils literal">CHGCAR_charged</tt></td>
<td><p class="first">Charge density file (CHGCAR) of the charged system</p>
<p class="last"><tt class="docutils literal">CHGCAR_charged = CHGCAR1</tt></p>
Expand Down Expand Up @@ -1869,30 +1879,28 @@ <h1><a class="toc-backref" href="#id33">7&nbsp;&nbsp;&nbsp;FAQ</a></h1>
<blockquote>
Another method to test the effectiveness of the charge correction is to increase the thickness of the vacuum in your slab model and check the energies. If the charge correction is done properly, the energy values must be independent of the (adequately large) vacuum thickness.</blockquote>
<ol class="arabic simple" id="cite" start="11">
<li><strong>How should I cite slabcc?</strong> (You can <a class="reference external" href="https://www.sciencedirect.com/sdfe/arp/cite?pii=S0010465519300700&amp;format=application%2Fx-research-info-systems&amp;withabstract=true">download the citation in the RIS format from here</a>!)</li>
<li><strong>How should I cite slabcc?</strong> Please cite the slabcc as: (You can <a class="reference external" href="https://www.sciencedirect.com/sdfe/arp/cite?pii=S0010465519300700&amp;format=application%2Fx-research-info-systems&amp;withabstract=true">download the citation in the RIS format from here</a>!)</li>
</ol>
<blockquote>
Meisam Farzalipour Tabriz, Bálint Aradi, Thomas Frauenheim, Peter Deák, <em>SLABCC: Total energy correction code for charged periodic slab models</em>, Computer Physics Communications (2019), DOI: <a class="reference external" href="https://doi.org/10.1016/j.cpc.2019.02.018">10.1016/j.cpc.2019.02.018</a></blockquote>
Meisam Farzalipour Tabriz, Bálint Aradi, Thomas Frauenheim, Peter Deák, <em>SLABCC: Total energy correction code for charged periodic slab models</em>, Computer Physics Communications, Vol. 240C (2019), pp. 101-105, DOI: <a class="reference external" href="https://doi.org/10.1016/j.cpc.2019.02.018">10.1016/j.cpc.2019.02.018</a></blockquote>
</div>
<div class="section" id="known-issues-and-limitations">
<h1><a class="toc-backref" href="#id34">8&nbsp;&nbsp;&nbsp;Known issues and limitations</a></h1>
<ul>
<li><p class="first">Shape of the VASP files cell is limited to orthogonal cells with vectors along the main axis:</p>
<pre class="literal-block">
X 0 0
0 Y 0
0 0 Z
</pre>
</li>
<li><p class="first">BOBYQA algorithm cannot be used for optimization of the models with multiple localized Gaussian charges.</p>
<li><p class="first">Shape of the VASP files cell is limited to orthogonal cells.</p>
</li>
<li><p class="first">Maximum line length of the input file (slabcc.in) is 4000 bytes.</p>
</li>
<li><p class="first">BOBYQA algorithm cannot be used for optimization of the models with multiple localized Gaussian charges. COBYLA algorithm must be used in these cases.</p>
</li>
<li><p class="first">Bessel expansion of the Poisson equation cannot be used for the calculation of isolated energies for the 2D models with anisotropic in-plane screening, trivariate Gaussian model change, or the models which are not surrounded by the vacuum (<tt class="docutils literal">diel_out = 1</tt>). Extrapolation method must be used in these cases.</p>
</li>
</ul>
</div>
<div class="section" id="release-history">
<h1><a class="toc-backref" href="#id35">9&nbsp;&nbsp;&nbsp;Release history</a></h1>
<ul class="simple">
<li>2019-04-04: version 0.6 - Added trivariate Gaussian model charge and selective charge optimization support.</li>
<li>2019-03-18: version 0.5 - Added 2D model support.</li>
<li>2018-10-10: version 0.4 - Added spdlog. General interface and performance improvements.</li>
<li>2018-07-29: version 0.3 - First public release</li>
Expand Down Expand Up @@ -1965,7 +1973,7 @@ <h2><a class="toc-backref" href="#id37">10.1&nbsp;&nbsp;&nbsp;Included libraries
</ul>
</blockquote>
<ul class="simple">
<li><a class="reference external" href="https://github.com/boostorg/predef">Boost.Predef</a> licensed under the Boost Software License</li>
<li><a class="reference external" href="https://github.com/boostorg/predef">Boost.Predef</a> licensed under the Boost Software License 1.0</li>
</ul>
<blockquote>
<ul class="simple">
Expand Down
Loading

0 comments on commit 61c80d2

Please sign in to comment.