mpqc::lcao::detail::PMOrbitalSpreadMinimizer Class Reference
Collaboration diagram for mpqc::lcao::detail::PMOrbitalSpreadMinimizer:

Documentation

finds a stationary point of the Pipek-Mezey objective function

Public Member Functions

virtual ~PMOrbitalSpreadMinimizer ()=default
 
 PMOrbitalSpreadMinimizer (Mat const &S_min_obs, Mat const &S_min, size_t nAtoms, std::vector< Atom > const &atoms, std::vector< gaussian::Shell > const &min_shells, double convergence_threshold, size_t max_iter, int spread_exponent)
 
bool compute (Mat &Cm, Mat &U) const final
 

Additional Inherited Members

- Public Types inherited from mpqc::lcao::detail::OrbitalSpreadMinimizer
using Mat = Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor >
 

Constructor & Destructor Documentation

◆ ~PMOrbitalSpreadMinimizer()

virtual mpqc::lcao::detail::PMOrbitalSpreadMinimizer::~PMOrbitalSpreadMinimizer ( )
virtualdefault

◆ PMOrbitalSpreadMinimizer()

mpqc::lcao::detail::PMOrbitalSpreadMinimizer::PMOrbitalSpreadMinimizer ( Mat const &  S_min_obs,
Mat const &  S_min,
size_t  nAtoms,
std::vector< Atom > const &  atoms,
std::vector< gaussian::Shell > const &  min_shells,
double  convergence_threshold,
size_t  max_iter,
int  spread_exponent 
)
Parameters
[in]S_min_obsthe overlap matrix between the minimal AO basis and the orbital AO basis
[in]S_minthe overlap matrix for the minimal AO basis
[in]convergence_thresholdstop once maximum rotation angle (in rad) changes between iterations by less than this
[in]max_iterdo not exceed this many iterations
[in]spread_exponentan integer specifying the exponent of spread quantity in the spread functional; currently supported values are 2 and 4.

Member Function Documentation

◆ compute()

bool mpqc::lcao::detail::PMOrbitalSpreadMinimizer::compute ( Mat Cm,
Mat U 
) const
finalvirtual

finds a stationary point of a spread functional

Parameters
[in,out]Cmon input: orbitals to be localized; on output: localized LCAOs
[out]Utransformation matrix converting original to localized LCAOs
Returns
true if converged

Implements mpqc::lcao::detail::OrbitalSpreadMinimizer.


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