Skip to content

Commit

Permalink
fix references in nigglibasis docstring
Browse files Browse the repository at this point in the history
  • Loading branch information
thchr committed Sep 16, 2024
1 parent 003a54f commit 6357eea
Showing 1 changed file with 10 additions and 9 deletions.
19 changes: 10 additions & 9 deletions Bravais/src/niggli.jl
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ vector lengths ``|\\mathbf{a}|, |\\mathbf{b}|, |\\mathbf{c}|``, and mutual angle
``\\mathbf{a}, \\mathbf{b}, \\mathbf{c}``). This uniqueness is one of the main motivations
for computing the Niggli reduction procedure, as it enables easy comparison of lattices.
Additionally, the associated Niggli-reduced basis vectors ``(\\mathbf{a}, \\mathbf{b},
\\mathbf{c})``, fulfil several conditions [3]:
\\mathbf{c})``, fulfil several conditions [^3]:
1. **"Main" conditions:**
- The basis vectors are sorted by increasing length:
Expand All @@ -22,10 +22,11 @@ Additionally, the associated Niggli-reduced basis vectors ``(\\mathbf{a}, \\math
2. **"Special" conditions:**
- Several special conditions, applied in "special" cases, such as
``|\\mathbf{a}| = |\\mathbf{b}|`` or
`\\mathbf{b}\\cdot\\mathbf{c} = \\tfrac{1}{2}|\\mathbf{b}|^2`. See [3] for details.
`\\mathbf{b}\\cdot\\mathbf{c} = \\tfrac{1}{2}|\\mathbf{b}|^2`. See Ref. [^3] for
details.
Equivalently, the Niggli-reduced basis fulfils the following geometric conditions (Section
9.3.1 of [3]):
9.3.1 of Ref. [^3]):
- The basis vectors are sorted by increasing length.
- The basis vectors have least possible total length, i.e., ``|\\mathbf{a}| + |\\mathbf{b}|
+ |\\mathbf{c}|`` is minimum. I.e., the associated Niggli cell is a Buerger cell.
Expand All @@ -41,16 +42,16 @@ Equivalently, the Niggli-reduced basis fulfils the following geometric condition
## Implementation
Implementation follows the algorithm originally described by Krivy & Gruber [1], with the
stability modificiations proposed by Grosse-Kunstleve et al. [2] (without which the
algorithm proposed in [1] simply does not work on floating point hardware).
Implementation follows the algorithm originally described by Krivy & Gruber [^1], with the
stability modificiations proposed by Grosse-Kunstleve et al. [^2] (without which the
algorithm proposed in [^1] simply does not work on floating point hardware).
[1] I. Krivy & B. Gruber. A unified algorithm for determinign the reduced (Niggli) cell,
[^1] I. Krivy & B. Gruber. A unified algorithm for determinign the reduced (Niggli) cell,
[Acta Crystallogr. A **32**, 297 (1976)](https://doi.org/10.1107/S0567739476000636).
[2] R.W. Grosse-Kunstleve, N.K. Sauter, & P.D. Adams, Numerically stable algorithms for the
[^2] R.W. Grosse-Kunstleve, N.K. Sauter, & P.D. Adams, Numerically stable algorithms for the
computation of reduced unit cells,
[Acta Crystallogr. A **60**, 1 (2004)](https://doi.org/10.1107/S010876730302186X)
[3] Sections 9.2 & 9.3, International Tables of Crystallography, Volume A, 5th ed. (2005).
[^3] Sections 9.2 & 9.3, International Tables of Crystallography, Volume A, 5th ed. (2005).
"""
function nigglibasis(
Rs :: DirectBasis{3};
Expand Down

4 comments on commit 6357eea

@thchr
Copy link
Owner Author

@thchr thchr commented on 6357eea Sep 16, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JuliaRegistrator
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Registration pull request created: JuliaRegistries/General/115273

Tip: Release Notes

Did you know you can add release notes too? Just add markdown formatted text underneath the comment after the text
"Release notes:" and it will be added to the registry PR, and if TagBot is installed it will also be added to the
release that TagBot creates. i.e.

@JuliaRegistrator register

Release notes:

## Breaking changes

- blah

To add them here just re-invoke and the PR will be updated.

Tagging

After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.

This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:

git tag -a v0.6.0 -m "<description of version>" 6357eea0536afe5cb6355baf61c722a79b23dc1d
git push origin v0.6.0

@thchr
Copy link
Owner Author

@thchr thchr commented on 6357eea Sep 16, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JuliaRegistrator register

Release notes:

This is intended as a preliminary release of a v0.6 series, with some flux still to be expected in the definitions of BandRep, NewBandRep, and SymmetryVector as well as tooling around it.

New features

  • nigglibasis: compute the Niggli-reduced cell basis.
  • SymmetryVector: encode the symmetry content of a set of irrep multiplicities
  • Use SymmetryVector to define a new type NewBandRep{D} (and Collection{NewBandRep{D}}, which is expected to replace BandRep (and BandRepSet) eventually.

@JuliaRegistrator
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Registration pull request updated: JuliaRegistries/General/115273

Tagging

After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.

This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:

git tag -a v0.6.0 -m "<description of version>" 6357eea0536afe5cb6355baf61c722a79b23dc1d
git push origin v0.6.0

Please sign in to comment.