7. Magnetic Fields
Static \(\mathbf{B}\)-fields are an important case of lattice modifications that can be performed automatically by KITE. This feature is of particular interest to the study of Landau levels, magneto-transport and magneto-optical effects, among others.
Uniform B-fields in KITE: overview¶
The automated \(\mathbf{B}\)-field functionality works by the addition of Peierls phases in the Hamiltonian and can be used in conjunction with other lattice modifications, including disorder. This is a new feature under development that currently allows for:
- Uniform \(\mathbf{B}\) fields in 2D lattices (with the B-field perpendicular to the plane)
- Uniform \(\mathbf{B}\) fields in 3D lattices (with the B-field collinear to the third primitive lattice vector)
The \(\mathbf{B}\)-field is added by using the following KITE modification:
where (mag
) is the magnetic field strength (given in Tesla).
When used with periodic boundary conditions,
\(|\mathbf{B}|\) is restricted to be a multiple of a minimum magnetic field,
which is determined internally when generating the configuration file (see details below).
For example, to compute the DOS of a disordered system subject to the \(\mathbf{B}\)-field modification outlined above, one may use
5000
Chebyshev moments, 10
random vectors and 10
disorder realizations.
Note the addition of the lattice modification (modification=mod_mag_field
) with respect to the settings
as discussed in the section about disorder.
Implementation details¶
Units
Lattice parameters must be given in nanometers (see example dos_dccond_square_lattice.py
in the bash kite/examples/
-folder).
The magnetic fields considered in KITE are uniform, so the corresponding vector potential is linear. It is naturally expressed in terms of the primitive reciprocal lattice vectors (\(\mathbf{b}_{i=1,2,3}\)) in the Landau gauge
where \(h\) is Planck's constant, \(e>0\) is the elementary charge, \(N_{2}\) is the number of unit cells along the \(\mathbf{a}_{2}\) direction (primitive vector of the direct lattice) and \(n\) is an integer. The corresponding magnetic field points along the \(\mathbf{a}_{3}\) direction for 3D systems and perpendicularly to the basal plane (\(\mathbf{e}_{\perp}\equiv\hat{\mathbf{z}}\)) for 2D systems:
and is restricted to be a multiple of a minimum field
where \(\Omega_{c}\) is the 3D/2D volume of the unit cell. When the user requests a magnetic field strength \(|\mathbf{B}|\) (given in Tesla), KITE calculates \(B_{\textrm{min}}\) first and then uses that to determine the required \(n\) to achieve the closest possible value of \(|\mathbf{B}|\) by rounding \(|\mathbf{B}|/\mathbf{B}_{\textrm{min}}=n\) to the nearest integer. If \(n\) rounds down to zero, it means that the system is too small to support the requested magnetic field. When determining \(B_{\textrm{min}}\), KITE assumes that the primitive vectors in the Python configuration script are given in nanometers.