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

#include <jk.h>

Inheritance diagram for psi::MemDFJK:
psi::JK

Public Member Functions

 MemDFJK (std::shared_ptr< BasisSet > primary, std::shared_ptr< BasisSet > auxiliary)
 
virtual ~MemDFJK ()
 Destructor. More...
 
void set_condition (double condition)
 
void set_df_ints_num_threads (int val)
 
virtual void print_header () const
 
- Public Member Functions inherited from psi::JK
 JK (std::shared_ptr< BasisSet > primary)
 
virtual ~JK ()
 Destructor. More...
 
void set_cutoff (double cutoff)
 
void set_memory (size_t memory)
 
void set_omp_nthread (int omp_nthread)
 
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 ()
 
virtual SharedVector iaia (SharedMatrix Ci, SharedMatrix Ca)
 
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

int max_nocc () const
 
virtual bool C1 () const
 Do we need to backtransform to C1 under the hood? More...
 
virtual void preiterations ()
 
virtual void compute_JK ()
 Compute J/K for current C/D. More...
 
virtual void postiterations ()
 Delete integrals, files, etc. More...
 
void common_init ()
 Common initialization. More...
 
- 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< DFHelperdfh_
 This class wraps a DFHelper object. More...
 
std::shared_ptr< BasisSetauxiliary_
 Auxiliary basis set. More...
 
int df_ints_num_threads_
 Number of threads for DF integrals. More...
 
double condition_ = 1.0E-12
 Condition cutoff in fitting metric, defaults to 1.0E-12. More...
 
- 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 MemDFJK

JK implementation using sieved, threaded density-fitted technology under slightly different paradigm than DiskDFJK wraps lib3index/DFHelper class

Constructor & Destructor Documentation

psi::MemDFJK::MemDFJK ( std::shared_ptr< BasisSet primary,
std::shared_ptr< BasisSet auxiliary 
)
Parameters
primaryprimary basis set for this system.
auxiliaryauxiliary basis set for this system.
psi::MemDFJK::~MemDFJK ( )
virtual

Destructor.

Member Function Documentation

virtual bool psi::MemDFJK::C1 ( ) const
inlineprotectedvirtual

Do we need to backtransform to C1 under the hood?

Implements psi::JK.

void psi::MemDFJK::common_init ( void  )
protected

Common initialization.

void psi::MemDFJK::compute_JK ( )
protectedvirtual

Compute J/K for current C/D.

Implements psi::JK.

int psi::MemDFJK::max_nocc ( ) const
protected
void psi::MemDFJK::postiterations ( )
protectedvirtual

Delete integrals, files, etc.

Implements psi::JK.

void psi::MemDFJK::preiterations ( )
protectedvirtual

Setup integrals, files, etc calls initialize(), JK_blocking

Implements psi::JK.

void psi::MemDFJK::print_header ( ) const
virtual

Print header information regarding JK type on output file

Implements psi::JK.

void psi::MemDFJK::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::MemDFJK::set_df_ints_num_threads ( int  val)
inline

What number of threads to compute integrals on

Parameters
vala positive integer

Member Data Documentation

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

Auxiliary basis set.

double psi::MemDFJK::condition_ = 1.0E-12
protected

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

int psi::MemDFJK::df_ints_num_threads_
protected

Number of threads for DF integrals.

std::shared_ptr<DFHelper> psi::MemDFJK::dfh_
protected

This class wraps a DFHelper object.


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