PAOFLOW.hamiltonian.add_ext_field#
Functions#
|
Add external electric field, magnetic field, and Hubbard U corrections to the real-space Hamiltonian. |
Module Contents#
- PAOFLOW.hamiltonian.add_ext_field.add_ext_field(data_controller)[source]#
Add external electric field, magnetic field, and Hubbard U corrections to the real-space Hamiltonian.
- Parameters:
data_controller (DataController) – Object providing
data_arraysanddata_attributes. Required arrays:HRs(shape(nawf, nawf, nk1, nk2, nk3, nspin)),Efield(shape(3,)),Bfield(shape(3,)),Sj(shape(3, nawf, nawf)),HubbardU(shape(nawf,)),tau(shape(natoms, 3)in Bohr radii). Required attribute:natoms.- Returns:
Modifies
data_controller.data_arrays['HRs']in place.- Return type:
None
Notes
This function applies up to three perturbations to the on-site elements of the real-space Hamiltonian at \(\mathbf{R} = 0\). Each correction is applied only when the corresponding field array is non-zero.
Electric field: subtracts \(\mathbf{E} \cdot \boldsymbol{\tau}_n\) from each diagonal entry \(H^R_{nn}(0)\), where \(\boldsymbol{\tau}_n\) is the orbital position in Ångström:
\[H^R_{nn}(0) \leftarrow H^R_{nn}(0) - \mathbf{E} \cdot \boldsymbol{\tau}_n\]Magnetic field: subtracts the Zeeman coupling from every \(\mathbf{R} = 0\) matrix element:
\[H^R_{nm}(0) \leftarrow H^R_{nm}(0) - \sum_{\alpha} B_{\alpha} S^{\alpha}_{nm}\]Hubbard U: subtracts \(U_n / 2\) from each diagonal entry:
\[H^R_{nn}(0) \leftarrow H^R_{nn}(0) - U_n / 2\]
Atomic positions are assumed to be uniform across orbitals within the same atom. The array
HRsis temporarily reshaped to(nawf, nawf, nk1*nk2*nk3, nspin)during processing and restored to its original shape on exit.