Struct Rustb::surf_Green
source · pub struct surf_Green {Show 14 fields
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 eta: f64,
pub ham_bulk: Array3<Complex<f64>>,
pub ham_bulkR: Array2<isize>,
pub ham_hop: Array3<Complex<f64>>,
pub ham_hopR: Array2<isize>,
}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.
eta: f64- The bulk 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.
ham_bulk: Array3<Complex<f64>>§ham_bulkR: Array2<isize>- The distance between the unit cell hoppings, i.e. R in $\bra{m0}\hat H\ket{nR}$.
ham_hop: Array3<Complex<f64>>- The bulk 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.
ham_hopR: Array2<isize>Implementations§
source§impl surf_Green
impl surf_Green
这个模块是用来求解表面格林函数的一个模块.
sourcepub fn from_Model(model: &Model, dir: usize, eta: f64) -> surf_Green
pub fn from_Model(model: &Model, dir: usize, eta: f64) -> surf_Green
从 Model 中构建一个 surf_green 的结构体
dir表示要看哪方向的表面态
eta表示小虚数得取值
对于非晶格矢量得方向, 需要用 model.make_supercell 先扩胞
sourcepub fn k_path(
&self,
path: &Array2<f64>,
nk: usize
) -> (Array2<f64>, Array1<f64>, Array1<f64>)
pub fn k_path( &self, path: &Array2<f64>, nk: usize ) -> (Array2<f64>, Array1<f64>, Array1<f64>)
根据高对称点来生成高对称路径, 画能带图
pub fn gen_ham_onek( &self, kvec: &Array1<f64> ) -> (Array2<Complex<f64>>, Array2<Complex<f64>>)
pub fn surf_green_one( &self, kvec: &Array1<f64>, Energy: f64, spin: usize ) -> (f64, f64, f64)
pub fn surf_green_onek( &self, kvec: &Array1<f64>, Energy: &Array1<f64>, spin: usize ) -> (Array1<f64>, Array1<f64>, Array1<f64>)
pub fn surf_green_path( &self, kvec: &Array2<f64>, E_min: f64, E_max: f64, E_n: usize, spin: usize ) -> (Array2<f64>, Array2<f64>, Array2<f64>)
pub fn show_surf_state( &self, name: &str, kpath: &Array2<f64>, label: &Vec<&str>, nk: usize, E_min: f64, E_max: f64, E_n: usize, spin: usize )
Trait Implementations§
source§impl Clone for surf_Green
impl Clone for surf_Green
source§fn clone(&self) -> surf_Green
fn clone(&self) -> surf_Green
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 RefUnwindSafe for surf_Green
impl Send for surf_Green
impl Sync for surf_Green
impl Unpin for surf_Green
impl UnwindSafe for surf_Green
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