QNANO
|
Public Member Functions | |
void | setup_local_orb_blocks () |
void | setup (Parameter_Map ¶m_map) |
void | setup () |
Eigenvector_Printer_SLEPc (Mat *A_, EPS *eps_, Organize_Blocks *org_bl) | |
Eigenvector_Printer_SLEPc (SLEPc_Solver *solver, Organize_Blocks *org_bl) | |
void | check_fully_initialized () const |
virtual int | get_n_converged () const |
virtual double | get_eigenvalue (int i) const |
virtual void | print_eigenvalues () const |
virtual void | print_eigenvector (int i) const |
virtual void | print_eigenvector_Kramers (int i) const |
bool | has_Kramers_partner (int i) const |
Kramers part: | |
virtual void | calculate_alpha_beta_Kramers_sz (std::complex< double > &alpha, std::complex< double > &beta, int i) const |
virtual std::complex< double > | calculate_max_phase_factor (std::complex< double > alpha, std::complex< double > beta, int i) const |
Public Member Functions inherited from Eigenvector_Printer | |
bool | orbs_are_spinless () const |
const std::string & | get_EV_header (int i) const |
void | print_block (std::string &str, std::complex< double > *ptr, int blocksize, int baseindex) const |
virtual int | get_actual_nr_print () const |
virtual void | print () const |
Eigenvector_Printer (Organize_Blocks *org, bool spinless_=true) | |
Eigenvector_Printer (size_t DIM, bool spinless_=true) | |
Public Attributes | |
int | MPI_rank |
int | MPI_size |
Mat * | A |
EPS * | eps |
int | nrorb |
Organize_Blocks_By_List | local_orb_blocks |
contains blocksizes for the atoms stored on the local node | |
Public Attributes inherited from Eigenvector_Printer | |
int | round_figure |
std::string | EV_filename_pattern |
std::string | eigenvalue_filename |
int | nr_print |
bool | override_printEV |
std::string | EV_header |
std::vector< std::string > | EV_header_individual |
bool | print_sparse |
double | print_sparse_cutoff |
bool | print_error_cout |
bool | silent |
bool | print_Kramers_sz |
variables dealing with Kramers pairs: | |
double | kramers_tolerance |
Organize_Blocks * | orb_blocks |
std::string(* | sparse_print_index )(size_t line_counter, void *spi_ctx) |
void * | spi_ctx |
Additional Inherited Members | |
Static Public Member Functions inherited from Eigenvector_Printer | |
static std::string | sparse_print_index_default (size_t line_counter, void *spi_ctx) |
Protected Attributes inherited from Eigenvector_Printer | |
bool | delete_orb_blocks_on_destruction |
bool | spinless |
|
virtual |
Theory: <s_z> = ( alpha* <0| + beta* <1| ) s_z ( alpha |0> + beta |1> )
<sz> = 1/2 * ( |alpha|^2 ( |f0(up)|^2 - |f0(down)|^2 )
Note also: f1(down)= - Re(f0(up)) + i Im(f0(up)) f1(up)= Re(f0(down)) - i Im(f0(down)),
f0(down)= Re(f1(up)) - i Im(f1(up)) f0(up) = - Re(f1(down)) + Im (f1(down))
Reimplemented from Eigenvector_Printer.