Psi4
Public Member Functions | Private Member Functions | Private Attributes | List of all members
psi::PKJK Class Reference

#include <jk.h>

Inheritance diagram for psi::PKJK:
psi::JK

Public Member Functions

 PKJK (std::shared_ptr< BasisSet > primary, Options &options)
 
 ~PKJK () override
 Destructor. More...
 
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 ()
 
virtual SharedVector iaia (SharedMatrix Ci, SharedMatrix Ca)
 
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
 

Private 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...
 

Private Attributes

std::shared_ptr< PSIOpsio_
 The PSIO instance to use for I/O. More...
 
Optionsoptions_
 Options object. More...
 
int pk_file_
 The pk file to use for storing the pk batches. More...
 
int nthreads_
 The number of threads to be used for integral computation. More...
 
std::shared_ptr< pk::PKManagerPKmanager_
 Class handling the PK integrals. More...
 
int nso_
 Total number of SOs. More...
 
int nirrep_
 Number of irreps. More...
 
Dimension nsopi_
 Number of so per irrep. 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)
 
- 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 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...
 

Detailed Description

Class PKJK

JK implementation using disk-based integral technology

Constructor & Destructor Documentation

psi::PKJK::PKJK ( std::shared_ptr< BasisSet primary,
Options options 
)

Symmetric Constructor

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
psi::PKJK::~PKJK ( )
override

Destructor.

Member Function Documentation

bool psi::PKJK::C1 ( ) const
overrideprivatevirtual

Do we need to backtransform to C1 under the hood?

Implements psi::JK.

void psi::PKJK::common_init ( )
private

Common initialization.

void psi::PKJK::compute_JK ( )
overrideprivatevirtual

Compute J/K for current C/D.

Implements psi::JK.

size_t psi::PKJK::memory_estimate ( )
overrideprivatevirtual

Implements psi::JK.

std::string psi::PKJK::name ( )
inlineoverrideprivatevirtual

Implements psi::JK.

void psi::PKJK::postiterations ( )
overrideprivatevirtual

Delete integrals, files, etc.

Implements psi::JK.

void psi::PKJK::preiterations ( )
overrideprivatevirtual

Setup integrals, files, etc.

Implements psi::JK.

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

Print header information regarding JK type on output file

Implements psi::JK.

Member Data Documentation

int psi::PKJK::nirrep_
private

Number of irreps.

int psi::PKJK::nso_
private

Total number of SOs.

Dimension psi::PKJK::nsopi_
private

Number of so per irrep.

int psi::PKJK::nthreads_
private

The number of threads to be used for integral computation.

Options& psi::PKJK::options_
private

Options object.

int psi::PKJK::pk_file_
private

The pk file to use for storing the pk batches.

std::shared_ptr<pk::PKManager> psi::PKJK::PKmanager_
private

Class handling the PK integrals.

std::shared_ptr<PSIO> psi::PKJK::psio_
private

The PSIO instance to use for I/O.


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