Convention of the Hamiltonian#
The convention of the Hamiltonian, i. e. the question of how the Hamiltonian is written, is very important as the values of the interaction parameters of the Hamiltonian can be different in different conventions.
We describe the general approach to the convention of the Hamiltonian in the supplementary note 2 of the paper about Magnopy and in this page briefly summarize how the convention of the Hamiltonian is reflected in the code.
The general idea in Magnopy is to support as many conventions as possible. Therefore, the user is responsible for choosing the convention while creating a spin Hamiltonian. Magnopy does all the grunt work of converting between different conventions when necessary.
Hint
If the Hamiltonian is read from the know source (such as TB2J, GROGU), the convention is known and set automatically.
Before reading about convention we recommend to take a look at how the Hamiltonian is written: Spin Hamiltonian.
Constants before the sum#
Keywords of the
magnopy.Convention:c1,c21,c22,c31,c32,c33,c41,c42,c43,c44,c45.
First property that defines the convention of the Hamiltonian is the set of constants being written before the summation sign (the popular choices for bilinear term are \(\pm 1\) or \(\pm \frac{1}{2}\)). We expect the user to define either all or some of eleven constants placed in front of the summation sign for different types of Hamiltonian's terms
Normalization of spins#
Keyword of the
magnopy.Convention:spin_normalized.
In Magnopy we treat spins as operators. Therefore, the question of normalization of spins is ill defined (one can always write \(\hat{S} \rightarrow S \frac{\hat{S}}{S}\), though). Nevertheless, Magnopy supports the values of the interaction parameters under the assumption that the spin vectors are normalized to unit length in the classical version of the quantum spin Hamiltonian.
Let us give an example for the bilinear term of the Hamiltonian:
If by convention the spins are considered to be "not normalized" (
spin_normalized = False), and user inputs parameters \(J^{i_1, i_2}_{\nu_2; \alpha_1, \alpha_2}\), then the Hamiltonian would be written as\[\begin{split}C_2 \sum_{\substack{\mu, \nu_2, \\ \alpha_1, \alpha_2, \\ i_1, i_2}} J^{i_1, i_2}_{\nu_2; \alpha_1, \alpha_2} S_{\mu, \alpha_1}^{i_1} S_{\mu + \nu_2, \alpha_2}^{i_2}\end{split}\]If by convention the spins are considered to be "normalized" (
spin_normalized = True), and user inputs parameters \(J^{i_1, i_2}_{\nu_2; \alpha_1, \alpha_2}\), then the Hamiltonian would be written as\[\begin{split}C_2 \sum_{\substack{\mu, \nu_2, \\ \alpha_1, \alpha_2, \\ i_1, i_2}} J^{i_1, i_2}_{\nu_2; \alpha_1, \alpha_2} \frac{S_{\mu, \alpha_1}^{i_1}}{S_{\alpha_1}} \frac{S_{\mu + \nu_2, \alpha_2}^{i_2}}{S_{\alpha_2}}\end{split}\]
where \(S_{\alpha_1}\) and \(S_{\alpha_2}\) are the spin quantum numbers of the spin operators \(S_{\mu, \alpha_1}^{i_1}\) and \(S_{\mu + \nu_2, \alpha_2}^{i_2}\) respectively.
As the Hamiltonian should not change with the change of convention (only the values of the parameters should), the values of the interaction parameters in these two conventions are related as
Multiple counting#
Keyword of the
magnopy.Convention:multiple_counting.
This property is known as "double counting" in the case of the bilinear terms
((2, 2) terms). It specifies, whether both parameters
\(J^{i_1, i_2}_{\nu_2; \alpha_1, \alpha_2}\) and
\(J^{i_2, i_1}_{-\nu_2; \alpha_2, \alpha_1}\) are included in the summation over the
magnetic sites (multiple_counting = True) or only one of them
(multiple_counting = False). The two interaction parameters from the example above
form what we call an "equivalent set" of parameters, as only their sum is relevant for the
Hamiltonian and not the individual values of each of them (see also
Equivalent parameters).
The generalization of this property for the other terms (with 3 and more components of spin operators) is not as straightforward as one would expect and is linked with the sets of equivalent parameters.For terms with more than two spin operators, the equivalent sets can include more than two parameters.
If by convention the multiple counting is allowed (
multiple_counting = True)The Hamiltonian includes all the parameters from the equivalent set and user is expected to manually input each of them.
If by convention the multiple counting is not allowed (
multiple_counting = False)Only one of the parameters from the equivalent set is included in the Hamiltonian and user is expected to input that single parameter only.
Hint
When multiple_counting = True, one can pass populate_equivalent = True to the
magnopy.SpinHamiltonian.add() method to automatically populate the equivalent
parameters and avoid the manual input of each of them.