1 #ifndef QNANO_NEW_EIGEN_BAND_STRUCTURE_CALCULATOR_DEFINED_H 2 #define QNANO_NEW_EIGEN_BAND_STRUCTURE_CALCULATOR_DEFINED_H 4 #include "tightbinding/TB_Model_Slater_Koster.h" 5 #include "eigen/Eigen_Diagonalize_Sparse_Matrix.h" 6 #include "eigen/Eigenvector_Printer_Eigen.h" 7 #include "structure/Band_Structure.h" 13 bool bck_evaluate_at_k=model.evaluate_at_k;
14 model.evaluate_at_k=
true;
15 Vec3d bck_kvector=model.kvector;
18 Lattice &lat=model.parlist[0].lat;
19 int DIM=model.get_DIM();
21 bs.complain_if_k_not_set_up();
26 for(
size_t i=0; i<bs.get_nr_k(); i++){
28 model.kvector=
Vec3d(kvec[0]*scale_k[0], kvec[1]*scale_k[1], kvec[2]*scale_k[2]);
33 EVprinter.target=-10000;
34 for(
int n=0; n<EVprinter.get_n_converged(); n++){
35 bs.energy[n][i]=EVprinter.get_eigenvalue(n);
39 model.evaluate_at_k=bck_evaluate_at_k;
40 model.kvector=bck_kvector;
Class to store positions and to handle operations on 3d vectors.
Definition: Vec3d.h:9
Vec3d get_k(int i, const Lattice &lat) const
get k-vector; convert from lattice units to 1/nm using the specified lattice
Definition: K_Point_List.cc:3
Definition: Eigen_Diagonalize_Sparse_Matrix.h:8
Definition: Band_Structure.h:6
Definition: Eigenvector_Printer_Eigen.h:8
Definition: TB_Model_Slater_Koster.h:19
Definition: Eigen_Band_Structure_Calculator.h:9