Psi4
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
psi::DiskDFJK Class Reference

#include <jk.h>

Inheritance diagram for psi::DiskDFJK:
psi::JK psi::CDJK

Public Member Functions

 DiskDFJK (std::shared_ptr< BasisSet > primary, std::shared_ptr< BasisSet > auxiliary)
 
 ~DiskDFJK () override
 Destructor. More...
 
SharedVector iaia (SharedMatrix Ci, SharedMatrix Ca) override
 
void set_condition (double condition)
 
void set_unit (size_t unit)
 
void set_df_ints_io (const std::string &val)
 
void set_df_ints_num_threads (int val)
 
void print_header () const override
 
- Public Member Functions inherited from psi::JK
 JK (std::shared_ptr< BasisSet > primary)
 
virtual ~JK ()
 Destructor. More...
 
void set_cutoff (double cutoff)
 
double get_cutoff () const
 
void set_memory (size_t memory)
 
void set_omp_nthread (int omp_nthread)
 
int get_omp_nthread () const
 
void set_print (int print)
 Print flag (defaults to 1) More...
 
void set_debug (int debug)
 Debug flag (defaults to 0) More...
 
void set_bench (int bench)
 Bench flag (defaults to 0) More...
 
void set_do_J (bool do_J)
 
void set_do_K (bool do_K)
 
void set_do_wK (bool do_wK)
 
void set_omega (double omega)
 
void initialize ()
 
void compute ()
 
void finalize ()
 
std::shared_ptr< BasisSetbasisset ()
 
std::vector< SharedMatrix > & C_left ()
 
std::vector< SharedMatrix > & C_right ()
 
const std::vector< SharedMatrix > & J () const
 
const std::vector< SharedMatrix > & K () const
 
const std::vector< SharedMatrix > & wK () const
 
const std::vector< SharedMatrix > & D () const
 

Protected Member Functions

std::string name () override
 
size_t memory_estimate () override
 
bool C1 () const override
 Do we need to backtransform to C1 under the hood? More...
 
void preiterations () override
 Setup integrals, files, etc. More...
 
void compute_JK () override
 Compute J/K for current C/D. More...
 
void postiterations () override
 Delete integrals, files, etc. More...
 
void common_init ()
 Common initialization. More...
 
bool is_core ()
 
size_t memory_temp () const
 
int max_rows () const
 
int max_nocc () const
 
void initialize_temps ()
 
void free_temps ()
 
void initialize_w_temps ()
 
void free_w_temps ()
 
virtual void initialize_JK_core ()
 
virtual void initialize_JK_disk ()
 
virtual void manage_JK_core ()
 
virtual void manage_JK_disk ()
 
virtual void block_J (double **Qmnp, int naux)
 
virtual void block_K (double **Qmnp, int naux)
 
virtual void initialize_wK_core ()
 
virtual void initialize_wK_disk ()
 
virtual void manage_wK_core ()
 
virtual void manage_wK_disk ()
 
virtual void block_wK (double **Qlmnp, double **Qrmnp, int naux)
 
virtual void rebuild_wK_disk ()
 
- Protected Member Functions inherited from psi::JK
void compute_D ()
 Build the pseudo-density D_, before compute_JK() More...
 
void USO2AO ()
 Transform current C_left_/C_right_/D_ to C_left_ao_/C_right_ao_/D_ao_, before compute_JK() More...
 
void AO2USO ()
 Transform finished J_ao_/K_ao_ to J_/K_, after compute_JK() More...
 
void allocate_JK ()
 Allocate J_/K_ should we be using SOs. More...
 
void common_init ()
 
size_t memory_overhead () const
 Memory (doubles) used to hold J/K/wK/C/D and ao versions, at current moment. More...
 

Protected Attributes

std::shared_ptr< BasisSetauxiliary_
 Auxiliary basis set. More...
 
std::shared_ptr< PSIOpsio_
 PSIO object. More...
 
std::string df_ints_io_
 Cache action for three-index integrals. More...
 
int df_ints_num_threads_
 Number of threads for DF integrals. More...
 
double condition_
 Condition cutoff in fitting metric, defaults to 1.0E-12. More...
 
size_t unit_
 File number for (Q|mn) tensor. More...
 
bool is_core_
 Core or disk? More...
 
int max_rows_
 Maximum number of rows to handle at a time. More...
 
int max_nocc_
 Maximum number of nocc in C vectors. More...
 
std::shared_ptr< ERISievesieve_
 Sieve, must be static throughout the life of the object. More...
 
SharedMatrix Qmn_
 Main (Q|mn) Tensor (or chunk for disk-based) More...
 
SharedMatrix Qlmn_
 (Q|P)^-1 (P|mn) for wK (or chunk for disk-based) More...
 
SharedMatrix Qrmn_
 (Q|w|mn) for wK (or chunk for disk-based) More...
 
std::shared_ptr< VectorJ_temp_
 
std::shared_ptr< VectorD_temp_
 
std::shared_ptr< Vectord_temp_
 
SharedMatrix E_left_
 
SharedMatrix E_right_
 
std::vector< SharedMatrixC_temp_
 
std::vector< SharedMatrixQ_temp_
 
- Protected Attributes inherited from psi::JK
int print_
 Print flag, defaults to 1. More...
 
int debug_
 Debug flag, defaults to 0. More...
 
int bench_
 Bench flag, defaults to 0. More...
 
size_t memory_
 Memory available, in doubles, defaults to 256 MB (32 M doubles) More...
 
int omp_nthread_
 Number of OpenMP threads (defaults to 1 in no OpenMP, Process::environment.get_n_threads() otherwise) More...
 
double cutoff_
 Integral cutoff (defaults to 0.0) More...
 
std::vector< bool > input_symmetry_cast_map_
 Whether to all desymmetrization, for cases when it's already been performed elsewhere. More...
 
bool do_J_
 Do J matrices? Defaults to true. More...
 
bool do_K_
 Do K matrices? Defaults to true. More...
 
bool do_wK_
 Do wK matrices? Defaults to false. More...
 
double omega_
 Omega, defaults to 0.0. More...
 
bool lr_symmetric_
 Left-right symmetric? Determined in each call of compute() More...
 
std::vector< SharedMatrixC_left_
 Pseudo-occupied C matrices, left side. More...
 
std::vector< SharedMatrixC_right_
 Pseudo-occupied C matrices, right side. More...
 
std::vector< SharedMatrixD_
 Pseudo-density matrices $D_{ls}=C_{li}^{left}C_{si}^{right}$. More...
 
std::vector< SharedMatrixJ_
 J matrices: $J_{mn}=(mn|ls)C_{li}^{left}C_{si}^{right}$. More...
 
std::vector< SharedMatrixK_
 K matrices: $K_{mn}=(ml|ns)C_{li}^{left}C_{si}^{right}$. More...
 
std::vector< SharedMatrixwK_
 wK matrices: $K_{mn}(\omega)=(ml|\omega|ns)C_{li}^{left}C_{si}^{right}$ More...
 
std::shared_ptr< BasisSetprimary_
 Primary basis set. More...
 
SharedMatrix AO2USO_
 AO2USO transformation matrix. More...
 
std::vector< SharedMatrixC_left_ao_
 Pseudo-occupied C matrices, left side. More...
 
std::vector< SharedMatrixC_right_ao_
 Pseudo-occupied C matrices, right side. More...
 
std::vector< SharedMatrixD_ao_
 Pseudo-density matrices. More...
 
std::vector< SharedMatrixJ_ao_
 J matrices: J_mn = (mn|ls) C_li^left C_si^right. More...
 
std::vector< SharedMatrixK_ao_
 K matrices: K_mn = (ml|ns) C_li^left C_si^right. More...
 
std::vector< SharedMatrixwK_ao_
 wK matrices: wK_mn = (ml|w|ns) C_li^left C_si^right More...
 

Additional Inherited Members

- Static Public Member Functions inherited from psi::JK
static std::shared_ptr< JKbuild_JK (std::shared_ptr< BasisSet > primary, std::shared_ptr< BasisSet > auxiliary, Options &options)
 
static std::shared_ptr< JKbuild_JK (std::shared_ptr< BasisSet > primary, std::shared_ptr< BasisSet > auxiliary, Options &options, std::string jk_type)
 
static std::shared_ptr< JKbuild_JK (std::shared_ptr< BasisSet > primary, std::shared_ptr< BasisSet > auxiliary, Options &options, bool do_wK, size_t doubles)
 

Detailed Description

Class DiskDFJK

JK implementation using sieved, threaded density-fitted technology

Constructor & Destructor Documentation

psi::DiskDFJK::DiskDFJK ( std::shared_ptr< BasisSet primary,
std::shared_ptr< BasisSet auxiliary 
)
Parameters
primaryprimary basis set for this system. AO2USO transforms will be built with the molecule contained in this basis object, so the incoming C matrices must have the same spatial symmetry structure as this molecule
auxiliaryauxiliary basis set for this system.
psi::DiskDFJK::~DiskDFJK ( )
override

Destructor.

Member Function Documentation

void psi::DiskDFJK::block_J ( double **  Qmnp,
int  naux 
)
protectedvirtual
void psi::DiskDFJK::block_K ( double **  Qmnp,
int  naux 
)
protectedvirtual
void psi::DiskDFJK::block_wK ( double **  Qlmnp,
double **  Qrmnp,
int  naux 
)
protectedvirtual
bool psi::DiskDFJK::C1 ( ) const
inlineoverrideprotectedvirtual

Do we need to backtransform to C1 under the hood?

Implements psi::JK.

void psi::DiskDFJK::common_init ( )
protected

Common initialization.

void psi::DiskDFJK::compute_JK ( )
overrideprotectedvirtual

Compute J/K for current C/D.

Implements psi::JK.

void psi::DiskDFJK::free_temps ( )
protected
void psi::DiskDFJK::free_w_temps ( )
protected
SharedVector psi::DiskDFJK::iaia ( SharedMatrix  Ci,
SharedMatrix  Ca 
)
overridevirtual

Method to provide (ia|ia) integrals for SO-basis C_mi and C_na matrices in O(N^4) or less Only available in DF-type JK integrals Throws by default

Reimplemented from psi::JK.

void psi::DiskDFJK::initialize_JK_core ( )
protectedvirtual

Reimplemented in psi::CDJK.

void psi::DiskDFJK::initialize_JK_disk ( )
protectedvirtual

Reimplemented in psi::CDJK.

void psi::DiskDFJK::initialize_temps ( )
protected
void psi::DiskDFJK::initialize_w_temps ( )
protected
void psi::DiskDFJK::initialize_wK_core ( )
protectedvirtual
void psi::DiskDFJK::initialize_wK_disk ( )
protectedvirtual
bool psi::DiskDFJK::is_core ( )
protected
void psi::DiskDFJK::manage_JK_core ( )
protectedvirtual

Reimplemented in psi::CDJK.

void psi::DiskDFJK::manage_JK_disk ( )
protectedvirtual
void psi::DiskDFJK::manage_wK_core ( )
protectedvirtual
void psi::DiskDFJK::manage_wK_disk ( )
protectedvirtual
int psi::DiskDFJK::max_nocc ( ) const
protected
int psi::DiskDFJK::max_rows ( ) const
protected
size_t psi::DiskDFJK::memory_estimate ( )
overrideprotectedvirtual

Implements psi::JK.

Reimplemented in psi::CDJK.

size_t psi::DiskDFJK::memory_temp ( ) const
protected
std::string psi::DiskDFJK::name ( )
inlineoverrideprotectedvirtual

Implements psi::JK.

Reimplemented in psi::CDJK.

void psi::DiskDFJK::postiterations ( )
overrideprotectedvirtual

Delete integrals, files, etc.

Implements psi::JK.

void psi::DiskDFJK::preiterations ( )
overrideprotectedvirtual

Setup integrals, files, etc.

Implements psi::JK.

void psi::DiskDFJK::print_header ( ) const
overridevirtual

Print header information regarding JK type on output file

Implements psi::JK.

Reimplemented in psi::CDJK.

void psi::DiskDFJK::rebuild_wK_disk ( )
protectedvirtual
void psi::DiskDFJK::set_condition ( double  condition)
inline

Minimum relative eigenvalue to retain in fitting inverse All eigenvectors with < condition * will be discarded

Parameters
conditionminimum relative eigenvalue allowed, defaults to 1.0E-12
void psi::DiskDFJK::set_df_ints_io ( const std::string &  val)
inline

What action to take for caching three-index integrals

Parameters
valOne of NONE, LOAD, or SAVE
void psi::DiskDFJK::set_df_ints_num_threads ( int  val)
inline

What number of threads to compute integrals on

Parameters
vala positive integer
void psi::DiskDFJK::set_unit ( size_t  unit)
inline

Which file number should the (Q|mn) integrals go in

Parameters
unitUnit number

Member Data Documentation

std::shared_ptr<BasisSet> psi::DiskDFJK::auxiliary_
protected

Auxiliary basis set.

std::vector<SharedMatrix> psi::DiskDFJK::C_temp_
protected
double psi::DiskDFJK::condition_
protected

Condition cutoff in fitting metric, defaults to 1.0E-12.

std::shared_ptr<Vector> psi::DiskDFJK::D_temp_
protected
std::shared_ptr<Vector> psi::DiskDFJK::d_temp_
protected
std::string psi::DiskDFJK::df_ints_io_
protected

Cache action for three-index integrals.

int psi::DiskDFJK::df_ints_num_threads_
protected

Number of threads for DF integrals.

SharedMatrix psi::DiskDFJK::E_left_
protected
SharedMatrix psi::DiskDFJK::E_right_
protected
bool psi::DiskDFJK::is_core_
protected

Core or disk?

std::shared_ptr<Vector> psi::DiskDFJK::J_temp_
protected
int psi::DiskDFJK::max_nocc_
protected

Maximum number of nocc in C vectors.

int psi::DiskDFJK::max_rows_
protected

Maximum number of rows to handle at a time.

std::shared_ptr<PSIO> psi::DiskDFJK::psio_
protected

PSIO object.

std::vector<SharedMatrix> psi::DiskDFJK::Q_temp_
protected
SharedMatrix psi::DiskDFJK::Qlmn_
protected

(Q|P)^-1 (P|mn) for wK (or chunk for disk-based)

SharedMatrix psi::DiskDFJK::Qmn_
protected

Main (Q|mn) Tensor (or chunk for disk-based)

SharedMatrix psi::DiskDFJK::Qrmn_
protected

(Q|w|mn) for wK (or chunk for disk-based)

std::shared_ptr<ERISieve> psi::DiskDFJK::sieve_
protected

Sieve, must be static throughout the life of the object.

size_t psi::DiskDFJK::unit_
protected

File number for (Q|mn) tensor.


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