votca 2024.2-dev
Loading...
Searching...
No Matches
votca::xtp::PMLocalization Class Reference

#include <pmlocalization.h>

Collaboration diagram for votca::xtp::PMLocalization:

Public Member Functions

 PMLocalization (Logger &log, const tools::Property &options)
 
void computePML (Orbitals &orbitals)
 
void computePML_UT (Orbitals &orbitals)
 
void computePML_JS (Orbitals &orbitals)
 

Private Member Functions

double cost (const Eigen::MatrixXd &W, const std::vector< Eigen::MatrixXd > &Sat_all, const Index nat) const
 
std::pair< double, Eigen::MatrixXd > cost_derivative (const Eigen::MatrixXd &W, const std::vector< Eigen::MatrixXd > &Sat_all, const Index nat) const
 
Eigen::VectorXd fit_polynomial (const Eigen::VectorXd &x, const Eigen::VectorXd &y) const
 
Eigen::VectorXcd find_complex_roots (const Eigen::VectorXcd &coeff) const
 
double find_smallest_step (const Eigen::VectorXd &coeff) const
 
Eigen::MatrixXcd companion_matrix (const Eigen::VectorXcd &coeff) const
 
Eigen::MatrixXd rotate_W (const double step, const Eigen::MatrixXd &W, const Eigen::VectorXcd &eval, const Eigen::MatrixXcd &evec) const
 
std::vector< Eigen::MatrixXd > setup_pop_matrices (const Eigen::MatrixXd &occ_orbitals)
 
double inner_prod (const Eigen::MatrixXd &A, const Eigen::MatrixXd &B) const
 
Eigen::MatrixX2d rotateorbitals (const Eigen::MatrixX2d &maxorbs, Index s, Index t)
 
void initial_penalty ()
 
void update_penalty (Index s, Index t)
 
void check_orthonormality ()
 
Eigen::VectorXd calculate_lmo_energies (const Orbitals &orbitals)
 
std::pair< Eigen::MatrixXd, Eigen::VectorXd > sort_lmos (const Eigen::VectorXd &energies)
 
Eigen::VectorXd pop_per_atom (const Eigen::VectorXd &orbital)
 
Eigen::Vector2d offdiag_penalty_elements (const Eigen::MatrixXd &s_overlap, Index s, Index t)
 

Private Attributes

Loggerlog_
 
std::string method_
 
Eigen::MatrixXd localized_orbitals_
 
AOBasis aobasis_
 
Eigen::MatrixXd overlap_
 
Index n_occs_
 
Eigen::MatrixXd A_
 
Eigen::MatrixXd B_
 
Eigen::MatrixXd PM_penalty_
 
Eigen::MatrixXd MullikenPop_orb_per_atom_
 
Eigen::MatrixXd W_
 
Eigen::MatrixXd W_old_
 
Eigen::MatrixXd H_
 
Eigen::MatrixXd H_old_
 
Eigen::MatrixXd G_
 
Eigen::MatrixXd G_old_
 
double J_
 
double J_old_
 
double J_threshold_ = 1e-8
 
double G_threshold_ = 1e-5
 
std::vector< Indexnumfuncpatom_
 
Index nrOfIterations_ = 0
 
double convergence_limit_ = 0.0
 

Detailed Description

Definition at line 30 of file pmlocalization.h.

Constructor & Destructor Documentation

◆ PMLocalization()

votca::xtp::PMLocalization::PMLocalization ( Logger & log,
const tools::Property & options )
inline

Definition at line 32 of file pmlocalization.h.

Member Function Documentation

◆ calculate_lmo_energies()

Eigen::VectorXd votca::xtp::PMLocalization::calculate_lmo_energies ( const Orbitals & orbitals)
private

Definition at line 497 of file pmlocalization.cc.

◆ check_orthonormality()

void votca::xtp::PMLocalization::check_orthonormality ( )
private

Definition at line 507 of file pmlocalization.cc.

◆ companion_matrix()

Eigen::MatrixXcd votca::xtp::PMLocalization::companion_matrix ( const Eigen::VectorXcd & coeff) const
private

Definition at line 155 of file pmlocalization.cc.

◆ computePML()

void votca::xtp::PMLocalization::computePML ( Orbitals & orbitals)

Definition at line 30 of file pmlocalization.cc.

◆ computePML_JS()

void votca::xtp::PMLocalization::computePML_JS ( Orbitals & orbitals)

Definition at line 400 of file pmlocalization.cc.

◆ computePML_UT()

void votca::xtp::PMLocalization::computePML_UT ( Orbitals & orbitals)

Definition at line 198 of file pmlocalization.cc.

◆ cost()

double votca::xtp::PMLocalization::cost ( const Eigen::MatrixXd & W,
const std::vector< Eigen::MatrixXd > & Sat_all,
const Index nat ) const
private

Definition at line 43 of file pmlocalization.cc.

◆ cost_derivative()

std::pair< double, Eigen::MatrixXd > votca::xtp::PMLocalization::cost_derivative ( const Eigen::MatrixXd & W,
const std::vector< Eigen::MatrixXd > & Sat_all,
const Index nat ) const
private

Definition at line 59 of file pmlocalization.cc.

◆ find_complex_roots()

Eigen::VectorXcd votca::xtp::PMLocalization::find_complex_roots ( const Eigen::VectorXcd & coeff) const
private

Definition at line 131 of file pmlocalization.cc.

◆ find_smallest_step()

double votca::xtp::PMLocalization::find_smallest_step ( const Eigen::VectorXd & coeff) const
private

Definition at line 101 of file pmlocalization.cc.

◆ fit_polynomial()

Eigen::VectorXd votca::xtp::PMLocalization::fit_polynomial ( const Eigen::VectorXd & x,
const Eigen::VectorXd & y ) const
private

Definition at line 79 of file pmlocalization.cc.

◆ initial_penalty()

void votca::xtp::PMLocalization::initial_penalty ( )
private

Definition at line 570 of file pmlocalization.cc.

◆ inner_prod()

double votca::xtp::PMLocalization::inner_prod ( const Eigen::MatrixXd & A,
const Eigen::MatrixXd & B ) const
inlineprivate

Definition at line 66 of file pmlocalization.h.

◆ offdiag_penalty_elements()

Eigen::Vector2d votca::xtp::PMLocalization::offdiag_penalty_elements ( const Eigen::MatrixXd & s_overlap,
Index s,
Index t )
private

Definition at line 666 of file pmlocalization.cc.

◆ pop_per_atom()

Eigen::VectorXd votca::xtp::PMLocalization::pop_per_atom ( const Eigen::VectorXd & orbital)
private

Definition at line 553 of file pmlocalization.cc.

◆ rotate_W()

Eigen::MatrixXd votca::xtp::PMLocalization::rotate_W ( const double step,
const Eigen::MatrixXd & W,
const Eigen::VectorXcd & eval,
const Eigen::MatrixXcd & evec ) const
private

Definition at line 184 of file pmlocalization.cc.

◆ rotateorbitals()

Eigen::MatrixX2d votca::xtp::PMLocalization::rotateorbitals ( const Eigen::MatrixX2d & maxorbs,
Index s,
Index t )
private

Definition at line 538 of file pmlocalization.cc.

◆ setup_pop_matrices()

std::vector< Eigen::MatrixXd > votca::xtp::PMLocalization::setup_pop_matrices ( const Eigen::MatrixXd & occ_orbitals)
private

Definition at line 608 of file pmlocalization.cc.

◆ sort_lmos()

std::pair< Eigen::MatrixXd, Eigen::VectorXd > votca::xtp::PMLocalization::sort_lmos ( const Eigen::VectorXd & energies)
private

Definition at line 472 of file pmlocalization.cc.

◆ update_penalty()

void votca::xtp::PMLocalization::update_penalty ( Index s,
Index t )
private

Definition at line 703 of file pmlocalization.cc.

Member Data Documentation

◆ A_

Eigen::MatrixXd votca::xtp::PMLocalization::A_
private

Definition at line 92 of file pmlocalization.h.

◆ aobasis_

AOBasis votca::xtp::PMLocalization::aobasis_
private

Definition at line 87 of file pmlocalization.h.

◆ B_

Eigen::MatrixXd votca::xtp::PMLocalization::B_
private

Definition at line 93 of file pmlocalization.h.

◆ convergence_limit_

double votca::xtp::PMLocalization::convergence_limit_ = 0.0
private

Definition at line 112 of file pmlocalization.h.

◆ G_

Eigen::MatrixXd votca::xtp::PMLocalization::G_
private

Definition at line 102 of file pmlocalization.h.

◆ G_old_

Eigen::MatrixXd votca::xtp::PMLocalization::G_old_
private

Definition at line 103 of file pmlocalization.h.

◆ G_threshold_

double votca::xtp::PMLocalization::G_threshold_ = 1e-5
private

Definition at line 107 of file pmlocalization.h.

◆ H_

Eigen::MatrixXd votca::xtp::PMLocalization::H_
private

Definition at line 100 of file pmlocalization.h.

◆ H_old_

Eigen::MatrixXd votca::xtp::PMLocalization::H_old_
private

Definition at line 101 of file pmlocalization.h.

◆ J_

double votca::xtp::PMLocalization::J_
private

Definition at line 104 of file pmlocalization.h.

◆ J_old_

double votca::xtp::PMLocalization::J_old_
private

Definition at line 105 of file pmlocalization.h.

◆ J_threshold_

double votca::xtp::PMLocalization::J_threshold_ = 1e-8
private

Definition at line 106 of file pmlocalization.h.

◆ localized_orbitals_

Eigen::MatrixXd votca::xtp::PMLocalization::localized_orbitals_
private

Definition at line 85 of file pmlocalization.h.

◆ log_

Logger& votca::xtp::PMLocalization::log_
private

Definition at line 42 of file pmlocalization.h.

◆ method_

std::string votca::xtp::PMLocalization::method_
private

Definition at line 44 of file pmlocalization.h.

◆ MullikenPop_orb_per_atom_

Eigen::MatrixXd votca::xtp::PMLocalization::MullikenPop_orb_per_atom_
private

Definition at line 95 of file pmlocalization.h.

◆ n_occs_

Index votca::xtp::PMLocalization::n_occs_
private

Definition at line 89 of file pmlocalization.h.

◆ nrOfIterations_

Index votca::xtp::PMLocalization::nrOfIterations_ = 0
private

Definition at line 111 of file pmlocalization.h.

◆ numfuncpatom_

std::vector<Index> votca::xtp::PMLocalization::numfuncpatom_
private

Definition at line 109 of file pmlocalization.h.

◆ overlap_

Eigen::MatrixXd votca::xtp::PMLocalization::overlap_
private

Definition at line 88 of file pmlocalization.h.

◆ PM_penalty_

Eigen::MatrixXd votca::xtp::PMLocalization::PM_penalty_
private

Definition at line 94 of file pmlocalization.h.

◆ W_

Eigen::MatrixXd votca::xtp::PMLocalization::W_
private

Definition at line 98 of file pmlocalization.h.

◆ W_old_

Eigen::MatrixXd votca::xtp::PMLocalization::W_old_
private

Definition at line 99 of file pmlocalization.h.


The documentation for this class was generated from the following files: