Collaboration diagram for mpqc::lcao::pbc::SD:

Documentation

Abstract single-determinant wavefunction under open and periodic boundary conditions.

Classes

class  Impl
 single-determinant wavefunction under open and periodic boundary conditions. More...
 

Public Member Functions

int64_t k_size ()
 
auto nocc () const
 
bool can_evaluate (Energy *energy) override
 
void evaluate (Energy *result) override
 
- Public Member Functions inherited from mpqc::lcao::PeriodicWavefunction
virtual ~PeriodicWavefunction ()
 
MatrixzVec co_coeff () const
 
VectordVec co_energy () const
 
Vector3i nk () const
 
- Public Member Functions inherited from mpqc::lcao::Wavefunction
 Wavefunction (const KeyVal &kv)
 The KeyVal constructor. More...
 
virtual ~Wavefunction ()=default
 
std::shared_ptr< WavefunctionWorldwfn_world () const
 
- Public Member Functions inherited from mpqc::Wavefunction
 Wavefunction (const KeyVal &kv)
 The KeyVal constructor. More...
 
const std::shared_ptr< WavefunctionWorld > & wfn_world () const
 
virtual void obsolete ()
 
bool computed () const
 
const std::shared_ptr< const Molecule > & atoms () const
 
virtual void print (std::ostream &os=ExEnv::out0()) const
 
- Public Member Functions inherited from mpqc::DescribedClass
 DescribedClass ()=default
 
virtual ~DescribedClass ()
 
std::string class_key () const
 
- Public Member Functions inherited from mpqc::enable_shared_from_this< DescribedClass >
virtual ~enable_shared_from_this ()=default
 
std::shared_ptr< DescribedClassshared_from_this ()
 returns the pointer to this object More...
 
std::shared_ptr< std::add_const_t< DescribedClass > > shared_from_this () const
 returns the pointer to this object More...
 
- Public Member Functions inherited from mpqc::detail::virt_base_of_enable_shared_from_this
virtual ~virt_base_of_enable_shared_from_this ()=default
 
bool shared_from_this_possible () const
 
template<typename Target , typename = std::enable_if_t<!std::is_const_v<Target>>>
std::shared_ptr< Target > cast_shared_from_this_to ()
 returns the pointer to this cast to a particular type More...
 
template<typename Target >
std::shared_ptr< std::add_const_t< Target > > cast_shared_from_this_to () const
 returns the pointer to this cast to a particular type More...
 
- Public Member Functions inherited from mpqc::utility::Observer
 Observer ()=default
 
template<typename Observee >
 Observer (Observee *observee, std::function< void()> message)
 
 Observer (const Observer &other)=delete
 
Observeroperator= (const Observer &other)=delete
 
 Observer (Observer &&other)=default
 
Observeroperator= (Observer &&other)=default
 
virtual ~Observer ()
 

Protected Member Functions

 SD (const mpqc::KeyVal &kv)
 
virtual ~SD ()=default
 
virtual void init (const KeyVal &)=0
 
virtual void solve (double)=0
 
void export_localized_orbitals () const
 
void export_orbitals_molden () const
 This exports the orbitals to Molden files (2 per k point, with real and imaginary components exported separately) More...
 
void print_band_gaps () const
 This prints direct and indirect band gaps. More...
 
- Protected Member Functions inherited from mpqc::Wavefunction
template<typename WfnWorldType >
std::enable_if_t< std::is_base_of< WavefunctionWorld, WfnWorldType >::value, void > rebuild_wfn_world (const KeyVal &kv)
 
const std::string wfn_world_path () const
 
- Protected Member Functions inherited from mpqc::utility::Observer
template<typename Observee >
void register_message (Observee *observee, std::function< void()> message)
 
void clear_messages ()
 

Protected Attributes

MatrixzVec X_
 
double energy_
 
int64_t docc_
 
const KeyVal kv_
 
bool print_detail_
 
int64_t print_max_item_
 
int64_t maxiter_
 
double max_condition_num_
 
double fmix_
 
int64_t iter_
 
std::string diis_
 
unsigned int diis_start_
 
unsigned int diis_num_vecs_
 
double diis_damping_
 
double diis_damping_attenuation_
 
double diis_mixing_
 
unsigned int diis_num_iters_group_
 
unsigned int diis_num_extrap_group_
 
std::string export_orbitals_
 
bool localize_orbitals_
 
std::string pm_update_factor_
 
double pm_convergence_threshold_
 
std::size_t pm_max_iter_
 
std::string pm_initial_W_
 
bool read_rhf_coeffs_
 
bool write_rhf_coeffs_
 
double level_shift_
 
Vector3i R_max_
 
Vector3i RJ_max_
 
Vector3i RD_max_
 
Vector3i K_max_
 
std::shared_ptr< const UnitCellunitcell_
 
std::shared_ptr< const UnitCellk_mesh_unitcell_
 
int64_t R_size_
 
int64_t RJ_size_
 
int64_t RD_size_
 
int64_t k_size_
 
double init_duration_ = 0.0
 
double j_duration_ = 0.0
 
double k_duration_ = 0.0
 
double trans_duration_ = 0.0
 
double d_duration_ = 0.0
 
double scf_duration_ = 0.0
 
- Protected Attributes inherited from mpqc::Wavefunction
bool computed_ = false
 

Additional Inherited Members

- Public Types inherited from mpqc::lcao::PeriodicWavefunction
using MatrixzVec = std::vector< MatrixZ >
 
using VectordVec = std::vector< VectorD >
 
- Public Types inherited from mpqc::DescribedClass
typedef std::shared_ptr< DescribedClass >(* keyval_ctor_wrapper_type) (const KeyVal &)
 
- Static Public Member Functions inherited from mpqc::DescribedClass
static keyval_ctor_wrapper_type type_to_keyval_ctor (const std::string &type_name)
 
template<typename T >
static void register_keyval_ctor ()
 
template<typename T >
static bool is_registered ()
 
template<typename T >
static std::string class_key ()
 
static const keyval_ctor_registry_type & keyval_ctor_registry ()
 returns const ref to the keyval ctor registry More...
 

Constructor & Destructor Documentation

◆ SD()

mpqc::lcao::pbc::SD::SD ( const mpqc::KeyVal kv)
inlineprotected

◆ ~SD()

mpqc::lcao::SD< Tile, Policy >::~SD ( )
protectedvirtualdefault

Member Function Documentation

◆ can_evaluate()

bool mpqc::lcao::SD< Tile, Policy >::can_evaluate ( Energy energy)
inlineoverride

◆ evaluate()

void mpqc::lcao::SD< Tile, Policy >::evaluate ( Energy result)
inlineoverride

◆ export_localized_orbitals()

void mpqc::lcao::pbc::SD::export_localized_orbitals ( ) const
protected

◆ export_orbitals_molden()

void mpqc::lcao::pbc::SD::export_orbitals_molden ( ) const
protected

This exports the orbitals to Molden files (2 per k point, with real and imaginary components exported separately)

◆ init()

void mpqc::lcao::SD< Tile, Policy >::init ( const KeyVal kv)
protectedpure virtual

◆ k_size()

int64_t mpqc::lcao::pbc::SD::k_size ( )
inline
Returns
the cardinal number of k points

◆ nocc()

auto mpqc::lcao::pbc::SD::nocc ( ) const
inline
Returns
the number of doubly-occupied bands

◆ print_band_gaps()

void mpqc::lcao::pbc::SD::print_band_gaps ( ) const
protected

This prints direct and indirect band gaps.

◆ solve()

void mpqc::lcao::SD< Tile, Policy >::solve ( double  )
protectedpure virtual

Member Data Documentation

◆ d_duration_

double mpqc::lcao::pbc::SD::d_duration_ = 0.0
protected

◆ diis_

std::string mpqc::lcao::pbc::SD::diis_
protected

◆ diis_damping_

double mpqc::lcao::pbc::SD::diis_damping_
protected

◆ diis_damping_attenuation_

double mpqc::lcao::pbc::SD::diis_damping_attenuation_
protected

◆ diis_mixing_

double mpqc::lcao::pbc::SD::diis_mixing_
protected

◆ diis_num_extrap_group_

unsigned int mpqc::lcao::pbc::SD::diis_num_extrap_group_
protected

◆ diis_num_iters_group_

unsigned int mpqc::lcao::pbc::SD::diis_num_iters_group_
protected

◆ diis_num_vecs_

unsigned int mpqc::lcao::pbc::SD::diis_num_vecs_
protected

◆ diis_start_

unsigned int mpqc::lcao::pbc::SD::diis_start_
protected

◆ docc_

int64_t mpqc::lcao::pbc::SD::docc_
protected

◆ energy_

double mpqc::lcao::pbc::SD::energy_
protected

◆ export_orbitals_

std::string mpqc::lcao::pbc::SD::export_orbitals_
protected

◆ fmix_

double mpqc::lcao::pbc::SD::fmix_
protected

◆ init_duration_

double mpqc::lcao::pbc::SD::init_duration_ = 0.0
protected

◆ iter_

int64_t mpqc::lcao::pbc::SD::iter_
protected

◆ j_duration_

double mpqc::lcao::pbc::SD::j_duration_ = 0.0
protected

◆ k_duration_

double mpqc::lcao::pbc::SD::k_duration_ = 0.0
protected

◆ K_max_

Vector3i mpqc::lcao::pbc::SD::K_max_
protected

◆ k_mesh_unitcell_

std::shared_ptr<const UnitCell> mpqc::lcao::pbc::SD::k_mesh_unitcell_
protected

◆ k_size_

int64_t mpqc::lcao::pbc::SD::k_size_
protected

◆ kv_

const KeyVal mpqc::lcao::pbc::SD::kv_
protected

◆ level_shift_

double mpqc::lcao::pbc::SD::level_shift_
protected

◆ localize_orbitals_

bool mpqc::lcao::pbc::SD::localize_orbitals_
protected

◆ max_condition_num_

double mpqc::lcao::pbc::SD::max_condition_num_
protected

◆ maxiter_

int64_t mpqc::lcao::pbc::SD::maxiter_
protected

◆ pm_convergence_threshold_

double mpqc::lcao::pbc::SD::pm_convergence_threshold_
protected

◆ pm_initial_W_

std::string mpqc::lcao::pbc::SD::pm_initial_W_
protected

◆ pm_max_iter_

std::size_t mpqc::lcao::pbc::SD::pm_max_iter_
protected

◆ pm_update_factor_

std::string mpqc::lcao::pbc::SD::pm_update_factor_
protected

◆ print_detail_

bool mpqc::lcao::pbc::SD::print_detail_
protected

◆ print_max_item_

int64_t mpqc::lcao::pbc::SD::print_max_item_
protected

◆ R_max_

Vector3i mpqc::lcao::pbc::SD::R_max_
protected

◆ R_size_

int64_t mpqc::lcao::pbc::SD::R_size_
protected

◆ RD_max_

Vector3i mpqc::lcao::pbc::SD::RD_max_
protected

◆ RD_size_

int64_t mpqc::lcao::pbc::SD::RD_size_
protected

◆ read_rhf_coeffs_

bool mpqc::lcao::pbc::SD::read_rhf_coeffs_
protected

◆ RJ_max_

Vector3i mpqc::lcao::pbc::SD::RJ_max_
protected

◆ RJ_size_

int64_t mpqc::lcao::pbc::SD::RJ_size_
protected

◆ scf_duration_

double mpqc::lcao::pbc::SD::scf_duration_ = 0.0
protected

◆ trans_duration_

double mpqc::lcao::pbc::SD::trans_duration_ = 0.0
protected

◆ unitcell_

std::shared_ptr<const UnitCell> mpqc::lcao::pbc::SD::unitcell_
protected

◆ write_rhf_coeffs_

bool mpqc::lcao::pbc::SD::write_rhf_coeffs_
protected

◆ X_

MatrixzVec mpqc::lcao::pbc::SD::X_
protected

The documentation for this class was generated from the following files:
  • mpqc/chemistry/qc/lcao/scf/pbc/sd.h
  • mpqc/chemistry/qc/lcao/scf/pbc/sd.cpp
  • mpqc/chemistry/qc/lcao/scf/sd.ipp