Skip to content

Commit

Permalink
Merge pull request #2733 from camelto2/spin-orbit-docs
Browse files Browse the repository at this point in the history
Spin-orbit documentation
  • Loading branch information
ye-luo authored Oct 2, 2020
2 parents 33fa123 + 3001c05 commit c747996
Show file tree
Hide file tree
Showing 7 changed files with 421 additions and 46 deletions.
30 changes: 30 additions & 0 deletions docs/bibs/methods.bib
Original file line number Diff line number Diff line change
Expand Up @@ -105,3 +105,33 @@ @article{Casula2010
volume = {132},
year = {2010}
}

@article{Melton2016-1,
title = {Spin-orbit interactions in electronic structure quantum Monte Carlo methods},
author = {Melton, Cody A. and Zhu, Minyi and Guo, Shi and Ambrosetti, Alberto and Pederiva, Francesco and Mitas, Lubos},
journal = {Phys. Rev. A},
volume = {93},
issue = {4},
pages = {042502},
numpages = {5},
year = {2016},
month = {Apr},
publisher = {American Physical Society},
doi = {10.1103/PhysRevA.93.042502},
url = {https://link.aps.org/doi/10.1103/PhysRevA.93.042502}
}


@article{Melton2016-2,
Author = {Melton,Cody A. and Bennett,M. Chandler and Mitas,Lubos},
Doi = {10.1063/1.4954726},
Eprint = {https://doi.org/10.1063/1.4954726},
Journal = {The Journal of Chemical Physics},
Number = {24},
Pages = {244113},
Title = {Quantum Monte Carlo with variable spins},
Url = {https://doi.org/10.1063/1.4954726},
Volume = {144},
Year = {2016},
Bdsk-Url-1 = {https://doi.org/10.1063/1.4954726}}

45 changes: 45 additions & 0 deletions docs/bibs/spin-orbit.bib
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@

@article{Dolg2012,
Author = {Dolg, Michael and Cao, Xiaoyan},
Doi = {10.1021/cr2001383},
Eprint = {https://doi.org/10.1021/cr2001383},
Journal = {Chemical Reviews},
Note = {PMID: 21913696},
Number = {1},
Pages = {403-480},
Title = {Relativistic Pseudopotentials: Their Development and Scope of Applications},
Url = {https://doi.org/10.1021/cr2001383},
Volume = {112},
Year = {2012},
Bdsk-Url-1 = {https://doi.org/10.1021/cr2001383}
}

@article{Melton2016-1,
title = {Spin-orbit interactions in electronic structure quantum Monte Carlo methods},
author = {Melton, Cody A. and Zhu, Minyi and Guo, Shi and Ambrosetti, Alberto and Pederiva, Francesco and Mitas, Lubos},
journal = {Phys. Rev. A},
volume = {93},
issue = {4},
pages = {042502},
numpages = {5},
year = {2016},
month = {Apr},
publisher = {American Physical Society},
doi = {10.1103/PhysRevA.93.042502},
url = {https://link.aps.org/doi/10.1103/PhysRevA.93.042502}
}


@article{Melton2016-2,
Author = {Melton,Cody A. and Bennett,M. Chandler and Mitas,Lubos},
Doi = {10.1063/1.4954726},
Eprint = {https://doi.org/10.1063/1.4954726},
Journal = {The Journal of Chemical Physics},
Number = {24},
Pages = {244113},
Title = {Quantum Monte Carlo with variable spins},
Url = {https://doi.org/10.1063/1.4954726},
Volume = {144},
Year = {2016},
Bdsk-Url-1 = {https://doi.org/10.1063/1.4954726}}

3 changes: 3 additions & 0 deletions docs/features.rst
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,9 @@ level.
Python-based environments with graphs produced via matplotlib
(included with Nexus)

- Spin-orbit coupling from relativistic pseudopotentials following the
approach of Melton, Bennett, and Mitas.

SoA optimizations and improved algorithms
-----------------------------------------

Expand Down
73 changes: 50 additions & 23 deletions docs/hamiltonianobservable.rst
Original file line number Diff line number Diff line change
Expand Up @@ -285,6 +285,19 @@ use a specific identifying file extension; instead they are simply
suffixed with “``.xml``.” The tabular data format of CASINO is also
supported.

In addition to the semilocal pseudopotential above, spin-orbit
interactions can also be included through the use of spin-orbit
pseudopotentials. The spin-orbit contribution can be written as

.. math::
:label: eqn32
V^{\rm SO} = \sum_{ij} \left(\sum_{\ell = 1}^{\ell_{max}-1} \frac{2}{2\ell+1} V^{\rm SO}_\ell \left( \left|r_i - \tilde{r}_j \right| \right) \sum_{m,m'=-\ell}^{\ell} | Y_{\ell m} \rangle \langle Y_{\ell m} | \vec{\ell} \cdot \vec{s} | Y_{\ell m'}\rangle\langle Y_{\ell m'}|\right)\:.
Here, :math:`\vec{s}` is the spin operator. For each atom with a spin-orbit contribution,
the radial functions :math:`V_{\ell}^{\rm SO}` can be included in the pseudopotential
“``.xml``” file.

``pairpot type=pseudo`` element:

+------------------+-----------------+
Expand All @@ -295,29 +308,31 @@ supported.

attributes:

+-----------------------------+--------------+-----------------------+------------------------+---------------------------------------------+
| **Name** | **Datatype** | **Values** | **Default** | **Description** |
+=============================+==============+=======================+========================+=============================================+
| ``type``:math:`^r` | text | **pseudo** | | Must be pseudo |
+-----------------------------+--------------+-----------------------+------------------------+---------------------------------------------+
| ``name/id``:math:`^r` | text | *anything* | PseudoPot | *No current function* |
+-----------------------------+--------------+-----------------------+------------------------+---------------------------------------------+
| ``source``:math:`^r` | text | ``particleset.name`` | i | Ion ``particleset`` name |
+-----------------------------+--------------+-----------------------+------------------------+---------------------------------------------+
| ``target``:math:`^r` | text | ``particleset.name`` | ``hamiltonian.target`` | Electron ``particleset`` name |
+-----------------------------+--------------+-----------------------+------------------------+---------------------------------------------+
| ``pbc``:math:`^o` | boolean | yes/no | yes* | Use Ewald summation |
+-----------------------------+--------------+-----------------------+------------------------+---------------------------------------------+
| ``forces`` | boolean | yes/no | no | *Deprecated* |
+-----------------------------+--------------+-----------------------+------------------------+---------------------------------------------+
| ``wavefunction``:math:`^r` | text | ``wavefunction.name`` | invalid | Identify wavefunction |
+-----------------------------+--------------+-----------------------+------------------------+---------------------------------------------+
| ``format``:math:`^r` | text | xml/table | table | Select file format |
+-----------------------------+--------------+-----------------------+------------------------+---------------------------------------------+
| ``algorithm``:math:`^o` | text | batched/default | default | Choose NLPP algorithm |
+-----------------------------+--------------+-----------------------+------------------------+---------------------------------------------+
| ``DLA``:math:`^o` | text | yes/no | no | Use determinant localization approximation |
+-----------------------------+--------------+-----------------------+------------------------+---------------------------------------------+
+-----------------------------+--------------+-----------------------+------------------------+--------------------------------------------------+
| **Name** | **Datatype** | **Values** | **Default** | **Description** |
+=============================+==============+=======================+========================+==================================================+
| ``type``:math:`^r` | text | **pseudo** | | Must be pseudo |
+-----------------------------+--------------+-----------------------+------------------------+--------------------------------------------------+
| ``name/id``:math:`^r` | text | *anything* | PseudoPot | *No current function* |
+-----------------------------+--------------+-----------------------+------------------------+--------------------------------------------------+
| ``source``:math:`^r` | text | ``particleset.name`` | i | Ion ``particleset`` name |
+-----------------------------+--------------+-----------------------+------------------------+--------------------------------------------------+
| ``target``:math:`^r` | text | ``particleset.name`` | ``hamiltonian.target`` | Electron ``particleset`` name |
+-----------------------------+--------------+-----------------------+------------------------+--------------------------------------------------+
| ``pbc``:math:`^o` | boolean | yes/no | yes* | Use Ewald summation |
+-----------------------------+--------------+-----------------------+------------------------+--------------------------------------------------+
| ``forces`` | boolean | yes/no | no | *Deprecated* |
+-----------------------------+--------------+-----------------------+------------------------+--------------------------------------------------+
| ``wavefunction``:math:`^r` | text | ``wavefunction.name`` | invalid | Identify wavefunction |
+-----------------------------+--------------+-----------------------+------------------------+--------------------------------------------------+
| ``format``:math:`^r` | text | xml/table | table | Select file format |
+-----------------------------+--------------+-----------------------+------------------------+--------------------------------------------------+
| ``algorithm``:math:`^o` | text | batched/default | default | Choose NLPP algorithm |
+-----------------------------+--------------+-----------------------+------------------------+--------------------------------------------------+
| ``DLA``:math:`^o` | text | yes/no | no | Use determinant localization approximation |
+-----------------------------+--------------+-----------------------+------------------------+--------------------------------------------------+
| ``physicalSO``:math:`^o` | boolean | yes/no | no | Include the SO contribution in the local energy |
+-----------------------------+--------------+-----------------------+------------------------+--------------------------------------------------+

Additional information:

Expand Down Expand Up @@ -357,6 +372,10 @@ Additional information:
(DLA) :cite:`Zen2019DLA` uses only the fermionic part of
the wavefunction when calculating NLPP.

- **physicalSO** If the spin-orbit components are included in the
``.xml`` file, this flag allows control over whether the SO contribution
is included in the local energy.

.. code-block::
:caption: QMCPXML element for pseudopotential electron-ion interaction (psf files).
:name: Listing 19
Expand All @@ -372,6 +391,14 @@ Additional information:
<pseudo elementType="H" href="H.xml"/>
</pairpot>
.. code-block::
:caption: QMCPXML element for pseudopotential including the spin-orbit interaction.
:name: Listing 21
<pairpot name="PseudoPot" type="pseudo" source="i" wavefunction="psi0" format="xml" physicalSO="yes">
<pseudo elementType="Pb" href="Pb.xml"/>
</pairpot>
Details of ``<pseudo/>`` input elements are shown in the following. It
is possible to include (or construct) a full pseudopotential directly in
the input file without providing an external file via ``href``. The full
Expand Down
1 change: 1 addition & 0 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ User's Guide and Developer's Manual
analyzing
LCAO
sCI
spin_orbit
afqmc
examples
lab_qmc_statistics
Expand Down
Loading

0 comments on commit c747996

Please sign in to comment.