Struct Rustb::Model_sparse
source · pub struct Model_sparse<hop_element> {
pub dim_r: usize,
pub norb: usize,
pub nsta: usize,
pub natom: usize,
pub spin: bool,
pub lat: Array2<f64>,
pub orb: Array2<f64>,
pub atom: Array2<f64>,
pub atom_list: Vec<usize>,
pub ham: Vec<hop_element>,
}Expand description
This cate is used to perform various calculations on the TB model, currently including:
-
Calculate the band structure
-
Expand the cell and calculate the surface state
-
Calculate the first-order anomalous Hall conductivity and spin Hall conductivity
Fields§
§dim_r: usize- The real space dimension of the model.
norb: usize- The number of orbitals in the model.
nsta: usize- The number of states in the model. If spin is enabled, nsta=norb$\times$2
natom: usize- The number of atoms in the model. The atom and atom_list at the back are used to store the positions of the atoms, and the number of orbitals corresponding to each atom.
spin: bool- Whether the model has spin enabled. If enabled, spin=true
lat: Array2<f64>- The lattice vector of the model, a dim_r$\times$dim_r matrix, the axis0 direction stores a 1$\times$dim_r lattice vector.
orb: Array2<f64>- The position of the orbitals in the model. We use fractional coordinates uniformly.
atom: Array2<f64>- The position of the atoms in the model, also in fractional coordinates.
atom_list: Vec<usize>- The number of orbitals in the atoms, in the same order as the atom positions.
ham: Vec<hop_element>- The Hamiltonian of the model, $\bra{m0}\hat H\ket{nR}$, a three-dimensional complex tensor of size n_R$\times$nsta$\times$ nsta, where the first nsta*nsta matrix corresponds to hopping within the unit cell, i.e. <m0|H|n0>, and the subsequent matrices correspond to hopping within hamR.
Implementations§
source§impl Model_sparse<hop_element>
impl Model_sparse<hop_element>
pub fn from_Model(model: Model) -> Model_sparse<hop_element>
Trait Implementations§
source§impl<hop_element: Clone> Clone for Model_sparse<hop_element>
impl<hop_element: Clone> Clone for Model_sparse<hop_element>
source§fn clone(&self) -> Model_sparse<hop_element>
fn clone(&self) -> Model_sparse<hop_element>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl<hop_element> RefUnwindSafe for Model_sparse<hop_element>where
hop_element: RefUnwindSafe,
impl<hop_element> Send for Model_sparse<hop_element>where
hop_element: Send,
impl<hop_element> Sync for Model_sparse<hop_element>where
hop_element: Sync,
impl<hop_element> Unpin for Model_sparse<hop_element>where
hop_element: Unpin,
impl<hop_element> UnwindSafe for Model_sparse<hop_element>where
hop_element: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more