mpqc::lcao::pbc::detail::PMzOrbitalLocalizationGradient< Tile, Policy, Mat > Class Template Reference
Collaboration diagram for mpqc::lcao::pbc::detail::PMzOrbitalLocalizationGradient< Tile, Policy, Mat >:
Documentation
template<typename Tile, typename Policy, typename Mat>
class mpqc::lcao::pbc::detail::PMzOrbitalLocalizationGradient< Tile, Policy, Mat >
Finds a stationary point of the PM objective function for periodic systems.
Public Types | |
using | MatrixzVec = std::vector< Mat > |
Public Types inherited from mpqc::lcao::pbc::detail::zOrbitalLocalizationGradient< Mat > | |
using | MatrixzVec = std::vector< Mat > |
Public Member Functions | |
virtual | ~PMzOrbitalLocalizationGradient ()=default |
PMzOrbitalLocalizationGradient (std::shared_ptr< pbc::gaussian::AOFactory< TileD, Policy >> ao_factory, double convergence_threshold, size_t max_iter) | |
const Vector3i & | localization_range () const final |
std::vector< std::vector< Mat > > | precompute_gradient (MatrixzVec const &C, Eigen::Vector3i const &nk) |
std::vector< std::vector< Mat > > | shift_Q (std::vector< MatrixzVec > const &Q_list, const Supercell::Point &R_pt, Eigen::Vector3i const &nk, const std::shared_ptr< const UnitCell > &k_mesh_unitcell) const final |
double | compute_function (std::vector< MatrixzVec > const &Q_list, MatrixzVec const &Wn, Eigen::Vector3i const &nk) const final |
std::vector< Mat > | compute_gradient (std::vector< MatrixzVec > const &Q_list, MatrixzVec const &Wn, Eigen::Vector3i const &nk) const final |
std::vector< Mat > | compute_numerical_gradient (std::vector< std::vector< Mat >> const &Q_list, std::vector< Mat > const &Wn, double delta, Eigen::Vector3i const &nk) const |
std::vector< Mat > | compute_numerical_G (std::vector< std::vector< Mat >> const &Q_list, std::vector< Mat > const &Wn, double delta, Eigen::Vector3i const &nk) const |
Public Member Functions inherited from mpqc::lcao::pbc::detail::zOrbitalLocalizationGradient< Mat > | |
virtual std::vector< Mat > | compute_numerical_gradient (std::vector< MatrixzVec > const &Q_list, MatrixzVec const &Wn, double delta, Eigen::Vector3i const &nk) const =0 |
virtual std::vector< Mat > | compute_numerical_G (std::vector< MatrixzVec > const &Q_list, MatrixzVec const &Wn, double delta, Eigen::Vector3i const &nk) const =0 |
Member Typedef Documentation
◆ MatrixzVec
template<typename Tile , typename Policy , typename Mat >
using mpqc::lcao::pbc::detail::PMzOrbitalLocalizationGradient< Tile, Policy, Mat >::MatrixzVec = std::vector<Mat> |
Constructor & Destructor Documentation
◆ ~PMzOrbitalLocalizationGradient()
template<typename Tile , typename Policy , typename Mat >
|
virtualdefault |
◆ PMzOrbitalLocalizationGradient()
template<typename Tile , typename Policy , typename Mat >
|
inline |
Member Function Documentation
◆ compute_function()
template<typename Tile , typename Policy , typename Mat >
|
inlinefinalvirtual |
◆ compute_gradient()
template<typename Tile , typename Policy , typename Mat >
|
inlinefinalvirtual |
calculates the gradient of a given function of the orbitals
- Parameters
-
[in] C input LCAOs: one matrix for each k point [in] nk the vector specifying the number of k points in each direction; number of k points in any direction is an odd, positive integer
- Returns
- Q_list the Qs for each atom A and each unique pair of k1 and k2
- Parameters
-
[in] Q_list the Qs for each atom A and each unique pair of k1 and k2 [in] Wn the nth iteration of the transformation matrices: one matrix for each k point
- Returns
- Gamma_n the nth iteration of the gradient: one matrix for each k point
Implements mpqc::lcao::pbc::detail::zOrbitalLocalizationGradient< Mat >.
◆ compute_numerical_G()
template<typename Tile , typename Policy , typename Mat >
|
inline |
◆ compute_numerical_gradient()
template<typename Tile , typename Policy , typename Mat >
|
inline |
◆ localization_range()
template<typename Tile , typename Policy , typename Mat >
|
inlinefinalvirtual |
- Returns
- @cn={nx,ny,nz}, where
ni>=0
, defines the range of the supercell on which localization is performed; specifically, the supercell includes unit cells with lattice indices in[-n,n] .
- Warning
- if localization had not been performed, this will return
{-1
,-1,-1}
Implements mpqc::lcao::pbc::detail::zOrbitalLocalizationGradient< Mat >.
◆ precompute_gradient()
template<typename Tile , typename Policy , typename Mat >
|
inlinevirtual |
◆ shift_Q()
template<typename Tile , typename Policy , typename Mat >
|
inlinefinalvirtual |
The documentation for this class was generated from the following file:
- mpqc/chemistry/qc/lcao/scf/pbc/zorbital_localization.h