magnopy.SpinHamiltonian.add_dipole_dipole#
method
- SpinHamiltonian.add_dipole_dipole(R_cut=None, E_cut=None, alphas=None)[source]#
Add magnetic dipole dipole interaction to the Hamiltonian.
Magnetic dipole dipole interaction is added in the form of two-spin & two-sites parameter
\[C_{2,2} \sum_{\mu,\nu,\alpha,\beta,i,j} J_{dd}(\boldsymbol{r}_{\nu,\alpha\beta})^{ij} S_{\mu,\alpha}^i S_{\mu+\nu,\beta}^j\]where the parameter is defined as
\[J_{dd}(\boldsymbol{r}_{\nu,\alpha\beta})^{ij} = \dfrac{\mu_0\mu_B^2}{8\pi C_{2,2}} \dfrac{g_{\alpha}g_{\beta}}{\vert\boldsymbol{r}_{\nu,\alpha\beta}\vert^3} (\delta_{k,l} - 3\hat{r}_{\nu,\alpha\beta}^i\hat{r}_{\nu,\alpha\beta}^j)\]if
SpinHamiltonian.convention.multiple_countingisTrueand as\[J_{dd}(\boldsymbol{r}_{\nu,\alpha\beta})^{ij} = \dfrac{\mu_0\mu_B^2}{4\pi C_{2,2}} \dfrac{g_{\alpha}g_{\beta}}{\vert\boldsymbol{r}_{\nu,\alpha\beta}\vert^3} (\delta_{k,l} - 3\hat{r}_{\nu,\alpha\beta}^i\hat{r}_{\nu,\alpha\beta}^j)\]if
SpinHamiltonian.convention.multiple_countingisFalse.where \(g_{\alpha}\) is a g-factor, \(\boldsymbol{\hat{r}}_{\nu,\alpha\beta}\) is a unit vector.
- Parameters:
- R_cutfloat, optional
Cut off radius for the distance between a pair of atoms. \(R_{cut} \ge 0\).
- E_cutfloat, optional
Cut off value for the maximum value of the parameter. \(E_{cut} > 0\).
- alphaslist of int, optional
Indices of atoms, to which the magnetic field effect should be added.
- Raises:
- ValueError
If none of the
R_cutorE_cutare provided.If
R_cut < 0If
E_cut <= 0
Notes
If only
R_cutis given, then the dipole dipole term between the pair of spins \(S_{\mu,\alpha}^i\) and \(S_{\mu+\nu,\beta}^j\) is added if \(\vert\boldsymbol{r}_{\nu,\alpha\beta}\vert <= R_{cut}\).If only
E_cutis given, then theR_cutis estimated as\[R_{cut} = \left( 3\sqrt{2} \dfrac{\mu_0\mu_B^2g_{max}^2}{8\pi C_{2,2}E_{cut}} \right)^{\dfrac{1}{3}}\]if
SpinHamiltonian.convention.multiple_countingisTrueand as\[R_{cut} = \left( 3\sqrt{2} \dfrac{\mu_0\mu_B^2g_{max}^2}{4\pi C_{2,2}E_{cut}} \right)^{\dfrac{1}{3}}\]if
SpinHamiltonian.convention.multiple_countingisFalse.The dipole dipole term between the pair of spins \(S_{\mu,\alpha}^i\) and \(S_{\mu+\nu,\beta}^j\) is added if \(\vert\boldsymbol{r}_{\nu,\alpha\beta}\vert \le R_{cut}\) and \(\vert J_{dd}(\boldsymbol{r}_{\nu,\alpha\beta})^{ij}\vert\ge E_{cut}\) for some \(i, j\).
If both
R_cutandE_cutare provided, then the dipole dipole term between the pair of spins \(S_{\mu,\alpha}^i\) and \(S_{\mu+\nu,\beta}^j\) is added if \(\vert\boldsymbol{r}_{\nu,\alpha\beta}\vert \le R_{cut}\) and \(\vert J_{dd}(\boldsymbol{r}_{\nu,\alpha\beta})^{ij}\vert \ge E_{cut}\) for some \(i, j\).
Magnetic dipole-dipole interaction is added either to magnetic atoms or to the list of the atoms provided by user.
If
alphas is None, then parameters of the magnetic field added only to the magnetic atoms. In other words only to atoms that already have at least one other parameter (any) associated with it.If
alpha is not None, then parameters of magnetic field are added to the atoms with the provided indices (based on the order inSpinHamiltonian.atoms)