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)
 
virtual ~PKJK ()
 Destructor. More...
 
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
 

Private Member Functions

virtual bool C1 () const
 Do we need to backtransform to C1 under the hood? More...
 
virtual void preiterations ()
 Setup integrals, files, etc. More...
 
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...
 

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)
 
- 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 ( )
virtual

Destructor.

Member Function Documentation

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

Do we need to backtransform to C1 under the hood?

Implements psi::JK.

void psi::PKJK::common_init ( void  )
private

Common initialization.

void psi::PKJK::compute_JK ( )
privatevirtual

Compute J/K for current C/D.

Implements psi::JK.

void psi::PKJK::postiterations ( )
privatevirtual

Delete integrals, files, etc.

Implements psi::JK.

void psi::PKJK::preiterations ( )
privatevirtual

Setup integrals, files, etc.

Implements psi::JK.

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

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: