Psi4
jk.h
Go to the documentation of this file.
1 /*
2  * @BEGIN LICENSE
3  *
4  * Psi4: an open-source quantum chemistry software package
5  *
6  * Copyright (c) 2007-2017 The Psi4 Developers.
7  *
8  * The copyrights for code used from other parties are included in
9  * the corresponding files.
10  *
11  * This file is part of Psi4.
12  *
13  * Psi4 is free software; you can redistribute it and/or modify
14  * it under the terms of the GNU Lesser General Public License as published by
15  * the Free Software Foundation, version 3.
16  *
17  * Psi4 is distributed in the hope that it will be useful,
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20  * GNU Lesser General Public License for more details.
21  *
22  * You should have received a copy of the GNU Lesser General Public License along
23  * with Psi4; if not, write to the Free Software Foundation, Inc.,
24  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
25  *
26  * @END LICENSE
27  */
28 
29 #ifndef JK_H
30 #define JK_H
31 
32 #include <vector>
33  #include "psi4/pragma.h"
34  PRAGMA_WARNING_PUSH
35  PRAGMA_WARNING_IGNORE_DEPRECATED_DECLARATIONS
36  #include <memory>
38 #include "psi4/libmints/typedefs.h"
40 
41 namespace psi {
42 class MinimalInterface;
43 class BasisSet;
44 class Matrix;
45 class ERISieve;
46 class TwoBodyAOInt;
47 class Options;
48 class PSIO;
49 
50 namespace pk {
51 class PKManager;
52 }
53 
54 // => BASE CLASS <= //
55 
226 class JK {
227 
228 protected:
229 
230  // => Utility Variables <= //
231 
233  int print_;
235  int debug_;
237  int bench_;
239  unsigned long int memory_;
243  double cutoff_;
245  std::vector<bool> input_symmetry_cast_map_;
246 
247  // => Tasks <= //
248 
250  bool do_J_;
252  bool do_K_;
254  bool do_wK_;
255 
257  double omega_;
258 
261 
262  // => Architecture-Level State Variables (Spatial Symmetry) <= //
263 
265  std::vector<SharedMatrix> C_left_;
267  std::vector<SharedMatrix> C_right_;
269  std::vector<SharedMatrix> D_;
271  std::vector<SharedMatrix> J_;
273  std::vector<SharedMatrix> K_;
275  std::vector<SharedMatrix> wK_;
276 
277  // => Microarchitecture-Level State Variables (No Spatial Symmetry) <= //
278 
280  std::shared_ptr<BasisSet> primary_;
284  std::vector<SharedMatrix> C_left_ao_;
286  std::vector<SharedMatrix> C_right_ao_;
288  std::vector<SharedMatrix> D_ao_;
290  std::vector<SharedMatrix> J_ao_;
292  std::vector<SharedMatrix> K_ao_;
294  std::vector<SharedMatrix> wK_ao_;
295 
296  // => Per-Iteration Setup/Finalize Routines <= //
297 
299  void compute_D();
301  void USO2AO();
303  void AO2USO();
305  void allocate_JK();
317  void common_init();
318 
319  // => Required Algorithm-Specific Methods <= //
320 
322  virtual void preiterations() = 0;
324  virtual void compute_JK() = 0;
326  virtual void postiterations() = 0;
327 
328  // => Helper Routines <= //
329 
331  unsigned long int memory_overhead() const;
332 
333 public:
334  // => Constructors <= //
335 
349  JK(std::shared_ptr<BasisSet> primary);
350 
352  virtual ~JK();
353 
354 
362  static std::shared_ptr<JK> build_JK(std::shared_ptr<BasisSet> primary, std::shared_ptr<BasisSet> auxiliary,
363  Options& options);
364  static std::shared_ptr<JK> build_JK(std::shared_ptr<BasisSet> primary, std::shared_ptr<BasisSet> auxiliary,
365  Options& options, std::string jk_type);
366 
367 
369  virtual bool C1() const = 0;
370 
371 
372  // => Knobs <= //
373 
381  void set_cutoff(double cutoff) { cutoff_ = cutoff; }
387  void set_memory(unsigned long int memory) { memory_ = memory; }
397  void set_omp_nthread(int omp_nthread) { omp_nthread_ = omp_nthread; }
399  void set_print(int print) { print_ = print; }
401  void set_debug(int debug) { debug_ = debug; }
403  void set_bench(int bench) { bench_ = bench; }
409  void set_do_J(bool do_J) { do_J_ = do_J; }
415  void set_do_K(bool do_K) { do_K_ = do_K; }
421  void set_do_wK(bool do_wK) { do_wK_ = do_wK; }
426  void set_omega(double omega) { omega_ = omega; }
427 
428  // => Computers <= //
429 
435  void initialize();
443  void compute();
450  void finalize();
451 
459 
460  // => Accessors <= //
461 
466  std::vector<SharedMatrix >& C_left() { return C_left_; }
472  std::vector<SharedMatrix >& C_right() { return C_right_; }
473 
482  const std::vector<SharedMatrix >& J() const { return J_; }
491  const std::vector<SharedMatrix >& K() const { return K_; }
500  const std::vector<SharedMatrix >& wK() const { return wK_; }
509  const std::vector<SharedMatrix >& D() const { return D_; }
510 
515  virtual void print_header() const = 0;
516 };
517 
518 // => APPLIED CLASSES <= //
519 
526 class DiskJK : public JK {
527 
529  int* so2index_;
532 
535 
537  virtual bool C1() const { return false; }
539  virtual void preiterations();
541  virtual void compute_JK();
543  virtual void postiterations();
544 
546  void common_init();
547 
548 public:
549  // => Constructors < = //
550 
558  DiskJK(std::shared_ptr<BasisSet> primary, Options& options);
560  virtual ~DiskJK();
561 
562  // => Accessors <= //
563 
568  virtual void print_header() const;
569 };
570 
577 class PKJK : public JK {
578 
580  std::shared_ptr<PSIO> psio_;
581 
584 
586  int pk_file_;
587 
590 
592  std::shared_ptr<pk::PKManager> PKmanager_;
593 
595  virtual bool C1() const;
597  virtual void preiterations();
599  virtual void compute_JK();
601  virtual void postiterations();
602 
604  void common_init();
605 
607  int nso_;
609  int nirrep_;
612 
613 public:
614  // => Constructors < = //
615 
624  PKJK(std::shared_ptr<BasisSet> primary, Options& options);
626  virtual ~PKJK();
627 
628  // => Accessors <= //
629 
634  virtual void print_header() const;
635 };
636 
648 class DirectJK : public JK {
649 
650 protected:
651 
655  std::shared_ptr<ERISieve> sieve_;
656 
657  // => Required Algorithm-Specific Methods <= //
658 
660  virtual bool C1() const { return true; }
662  virtual void preiterations();
664  virtual void compute_JK();
666  virtual void postiterations();
667 
669  void build_JK(std::vector<std::shared_ptr<TwoBodyAOInt> >& ints,
670  std::vector<std::shared_ptr<Matrix> >& D,
671  std::vector<std::shared_ptr<Matrix> >& J,
672  std::vector<std::shared_ptr<Matrix> >& K);
673 
675  void common_init();
676 
677 public:
678  // => Constructors < = //
679 
687  DirectJK(std::shared_ptr<BasisSet> primary);
689  virtual ~DirectJK();
690 
691  // => Knobs <= //
692 
698 
699  // => Accessors <= //
700 
705  virtual void print_header() const;
706 };
707 
721 class GTFockJK: public JK{
722  private:
724  std::shared_ptr<MinimalInterface> Impl_;
725  int NMats_ = 0;
726 
727  protected:
729  virtual bool C1() const { return true; }
731  virtual void preiterations(){}
733  virtual void compute_JK();
735  virtual void postiterations(){}
737  virtual void print_header() const{}
738  public:
752  GTFockJK(std::shared_ptr<psi::BasisSet> Primary,
753  size_t NMats,
754  bool AreSymm);
759  GTFockJK(std::shared_ptr<psi::BasisSet> Primary);
760 };
761 
768 class DFJK : public JK {
769 
770 protected:
771 
772  // => DF-Specific stuff <= //
773 
775  std::shared_ptr<BasisSet> auxiliary_;
777  std::shared_ptr<PSIO> psio_;
779  std::string df_ints_io_;
783  double condition_;
785  unsigned int unit_;
787  bool is_core_;
793  std::shared_ptr<ERISieve> sieve_;
794 
801 
802  // => Temps (built/destroyed in compute_JK) <= //
803  std::shared_ptr<Vector> J_temp_;
804  std::shared_ptr<Vector> D_temp_;
805  std::shared_ptr<Vector> d_temp_;
806 
809  std::vector<SharedMatrix > C_temp_;
810  std::vector<SharedMatrix > Q_temp_;
811 
812  // => Required Algorithm-Specific Methods <= //
813 
815  virtual bool C1() const { return true; }
817  virtual void preiterations();
819  virtual void compute_JK();
821  virtual void postiterations();
822 
824  void common_init();
825 
826  bool is_core() const;
827  unsigned long int memory_temp() const;
828  int max_rows() const;
829  int max_nocc() const;
830  void initialize_temps();
831  void free_temps();
832  void initialize_w_temps();
833  void free_w_temps();
834 
835  // => J <= //
836  virtual void initialize_JK_core();
837  virtual void initialize_JK_disk();
838  virtual void manage_JK_core();
839  virtual void manage_JK_disk();
840  virtual void block_J(double** Qmnp, int naux);
841  virtual void block_K(double** Qmnp, int naux);
842 
843  // => wK <= //
844  virtual void initialize_wK_core();
845  virtual void initialize_wK_disk();
846  virtual void manage_wK_core();
847  virtual void manage_wK_disk();
848  virtual void block_wK(double** Qlmnp, double** Qrmnp, int naux);
849  virtual void rebuild_wK_disk();
850 
851 public:
852  // => Constructors < = //
853 
862  DFJK( std::shared_ptr<BasisSet> primary,
863  std::shared_ptr<BasisSet> auxiliary);
864 
866  virtual ~DFJK();
867 
875 
876  // => Knobs <= //
877 
885  void set_condition(double condition) { condition_ = condition; }
890  void set_unit(unsigned int unit) { unit_ = unit; }
895  void set_df_ints_io(const std::string& val) { df_ints_io_ = val; }
901 
902  // => Accessors <= //
903 
908  virtual void print_header() const;
909 };
916 class CDJK : public DFJK {
917 
918 protected:
919  // the number of cholesky vectors
920  long int ncholesky_;
921 
922  // => Required Algorithm-Specific Methods <= //
923 
924  virtual bool is_core() { return true; }
925 
926  // => J <= //
927  virtual void initialize_JK_core();
928  virtual void initialize_JK_disk();
929  virtual void manage_JK_core();
930 
932 
933  // => Accessors <= //
934 
939  virtual void print_header() const;
940 
941 public:
942  // => Constructors < = //
943 
952  CDJK( std::shared_ptr<BasisSet> primary, double cholesky_tolerance);
953 
955  virtual ~CDJK();
956 
957 };
958 
959 }
960 #endif
virtual void initialize_JK_core()
Definition: CDJK.cc:68
virtual void compute_JK()
Compute J/K for current C/D.
Definition: PKJK.cc:130
std::shared_ptr< ERISieve > sieve_
Sieve, must be static throughout the life of the object.
Definition: jk.h:793
int nso_
Total number of SOs.
Definition: jk.h:607
std::shared_ptr< BasisSet > primary_
Primary basis set.
Definition: jk.h:280
PKJK(std::shared_ptr< BasisSet > primary, Options &options)
Definition: PKJK.cc:56
int debug_
Debug flag, defaults to 0.
Definition: jk.h:235
void set_print(int print)
Print flag (defaults to 1)
Definition: jk.h:399
virtual SharedVector iaia(SharedMatrix Ci, SharedMatrix Ca)
Definition: DFJK.cc:77
double cholesky_tolerance_
Definition: jk.h:931
virtual void initialize_JK_disk()
Definition: CDJK.cc:63
Definition: jk.h:526
void common_init()
Definition: jk.cc:169
int * so2index_
Absolute AO index to relative SO index.
Definition: jk.h:529
unsigned long int memory_overhead() const
Memory (doubles) used to hold J/K/wK/C/D and ao versions, at current moment.
Definition: jk.cc:193
Derived class extending the JK object to GTFock.
Definition: jk.h:721
std::vector< SharedMatrix > C_left_
Pseudo-occupied C matrices, left side.
Definition: jk.h:265
int pk_file_
The pk file to use for storing the pk batches.
Definition: jk.h:586
void set_omega(double omega)
Definition: jk.h:426
void set_do_wK(bool do_wK)
Definition: jk.h:421
std::vector< SharedMatrix > & C_right()
Definition: jk.h:472
std::vector< SharedMatrix > Q_temp_
Definition: jk.h:810
unsigned long int memory_temp() const
Definition: DFJK.cc:294
void set_memory(unsigned long int memory)
Definition: jk.h:387
virtual void manage_JK_core()
Definition: CDJK.cc:131
const std::vector< SharedMatrix > & K() const
Definition: jk.h:491
int max_rows_
Maximum number of rows to handle at a time.
Definition: jk.h:789
virtual ~DirectJK()
Destructor.
Definition: DirectJK.cc:66
virtual ~JK()
Destructor.
Definition: jk.cc:66
virtual void postiterations()
Delete integrals, files, etc.
Definition: DiskJK.cc:598
virtual void print_header() const =0
int max_nocc_
Maximum number of nocc in C vectors.
Definition: jk.h:791
Dimension nsopi_
Number of so per irrep.
Definition: jk.h:611
void set_omp_nthread(int omp_nthread)
Definition: jk.h:397
CDJK(std::shared_ptr< BasisSet > primary, double cholesky_tolerance)
Definition: CDJK.cc:56
virtual bool is_core()
Definition: jk.h:924
virtual void print_header() const
Definition: DiskJK.cc:66
DFJK(std::shared_ptr< BasisSet > primary, std::shared_ptr< BasisSet > auxiliary)
Definition: DFJK.cc:56
double omega_
Omega, defaults to 0.0.
Definition: jk.h:257
virtual void initialize_JK_core()
Definition: DFJK.cc:474
std::vector< SharedMatrix > C_right_
Pseudo-occupied C matrices, right side.
Definition: jk.h:267
SharedMatrix E_left_
Definition: jk.h:807
std::vector< SharedMatrix > C_temp_
Definition: jk.h:809
void set_unit(unsigned int unit)
Definition: jk.h:890
void set_cutoff(double cutoff)
Definition: jk.h:381
int NMats_
Definition: jk.h:725
virtual bool C1() const
Do we need to backtransform to C1 under the hood?
Definition: jk.h:729
bool do_wK_
Do wK matrices? Defaults to false.
Definition: jk.h:254
std::shared_ptr< Vector > D_temp_
Definition: jk.h:804
std::shared_ptr< pk::PKManager > PKmanager_
Class handling the PK integrals.
Definition: jk.h:592
const std::vector< SharedMatrix > & J() const
Definition: jk.h:482
std::shared_ptr< MinimalInterface > Impl_
The actual instance that does the implementing.
Definition: jk.h:724
void set_bench(int bench)
Bench flag (defaults to 0)
Definition: jk.h:403
unsigned int unit_
File number for (Q|mn) tensor.
Definition: jk.h:785
virtual void compute_JK()
Compute J/K for current C/D.
std::vector< SharedMatrix > C_right_ao_
Pseudo-occupied C matrices, right side.
Definition: jk.h:286
virtual void preiterations()
Setup integrals, files, etc.
Definition: DFJK.cc:414
std::vector< bool > input_symmetry_cast_map_
Whether to all desymmetrization, for cases when it&#39;s already been performed elsewhere.
Definition: jk.h:245
Definition: PKmanagers.h:87
void allocate_JK()
Allocate J_/K_ should we be using SOs.
Definition: jk.cc:274
std::vector< SharedMatrix > D_
Pseudo-density matrices .
Definition: jk.h:269
void common_init()
Common initialization.
Definition: DiskJK.cc:63
std::shared_ptr< Vector > d_temp_
Definition: jk.h:805
std::shared_ptr< PSIO > psio_
PSIO object.
Definition: jk.h:777
int bench_
Bench flag, defaults to 0.
Definition: jk.h:237
double cutoff_
Integral cutoff (defaults to 0.0)
Definition: jk.h:243
virtual void rebuild_wK_disk()
Definition: DFJK.cc:1596
std::vector< SharedMatrix > wK_
wK matrices:
Definition: jk.h:275
virtual bool C1() const =0
Do we need to backtransform to C1 under the hood?
virtual void manage_JK_core()
Definition: DFJK.cc:1723
virtual void compute_JK()=0
Compute J/K for current C/D.
void set_df_ints_num_threads(int val)
Definition: jk.h:697
int df_ints_num_threads_
Number of threads for DF integrals TODO: DF_INTS_NUM_THREADS.
Definition: jk.h:653
Definition: pointgrp.h:114
virtual bool C1() const
Do we need to backtransform to C1 under the hood?
Definition: jk.h:537
Definition: jk.h:768
void finalize()
Definition: jk.cc:614
virtual bool C1() const
Do we need to backtransform to C1 under the hood?
Definition: PKJK.cc:76
const std::vector< SharedMatrix > & wK() const
Definition: jk.h:500
const std::vector< SharedMatrix > & D() const
Definition: jk.h:509
int print_
Print flag, defaults to 1.
Definition: jk.h:233
Options & options_
Options object.
Definition: jk.h:534
virtual bool C1() const
Do we need to backtransform to C1 under the hood?
Definition: jk.h:660
void set_condition(double condition)
Definition: jk.h:885
DiskJK(std::shared_ptr< BasisSet > primary, Options &options)
Definition: DiskJK.cc:55
SharedMatrix Qrmn_
(Q|w|mn) for wK (or chunk for disk-based)
Definition: jk.h:800
void compute()
Definition: jk.cc:526
virtual void initialize_wK_core()
Definition: DFJK.cc:1000
void common_init()
Common initialization.
Definition: DFJK.cc:65
void set_debug(int debug)
Debug flag (defaults to 0)
Definition: jk.h:401
unsigned long int memory_
Memory available, in doubles, defaults to 256 MB (32 M doubles)
Definition: jk.h:239
virtual void preiterations()
Setup integrals, files, etc.
Definition: jk.h:731
void compute_D()
Build the pseudo-density D_, before compute_JK()
Definition: jk.cc:232
virtual void manage_wK_disk()
Definition: DFJK.cc:1778
int nthreads_
The number of threads to be used for integral computation.
Definition: jk.h:589
Options & options_
Options object.
Definition: jk.h:583
Definition: jk.h:577
virtual void compute_JK()
Compute J/K for current C/D.
Definition: DiskJK.cc:104
virtual ~DFJK()
Destructor.
Definition: DFJK.cc:62
std::vector< SharedMatrix > & C_left()
Definition: jk.h:466
Definition: jk.h:648
SharedMatrix AO2USO_
AO2USO transformation matrix.
Definition: jk.h:282
virtual void print_header() const
Definition: DirectJK.cc:76
virtual void preiterations()
Setup integrals, files, etc.
Definition: DirectJK.cc:91
virtual void block_J(double **Qmnp, int naux)
Definition: DFJK.cc:1808
std::vector< SharedMatrix > C_left_ao_
Pseudo-occupied C matrices, left side.
Definition: jk.h:284
void AO2USO()
Transform finished J_ao_/K_ao_ to J_/K_, after compute_JK()
Definition: jk.cc:465
SharedMatrix E_right_
Definition: jk.h:808
PRAGMA_WARNING_PUSH PRAGMA_WARNING_IGNORE_DEPRECATED_DECLARATIONS PRAGMA_WARNING_POP
Definition: integraliter.cc:43
std::string df_ints_io_
Cache action for three-index integrals.
Definition: jk.h:779
virtual ~DiskJK()
Destructor.
Definition: DiskJK.cc:60
bool do_J_
Do J matrices? Defaults to true.
Definition: jk.h:250
bool is_core_
Core or disk?
Definition: jk.h:787
Definition: dimension.h:38
void common_init()
Common initialization.
Definition: DirectJK.cc:69
virtual void print_header() const
I don&#39;t fell the need to further clutter the output...
Definition: jk.h:737
void initialize_w_temps()
Definition: DFJK.cc:370
std::shared_ptr< BasisSet > auxiliary_
Auxiliary basis set.
Definition: jk.h:775
void set_do_J(bool do_J)
Definition: jk.h:409
bool do_K_
Do K matrices? Defaults to true.
Definition: jk.h:252
std::vector< SharedMatrix > K_
K matrices: .
Definition: jk.h:273
std::shared_ptr< ERISieve > sieve_
ERI Sieve.
Definition: jk.h:655
int max_nocc() const
Definition: DFJK.cc:330
Definition: liboptions.h:360
void common_init()
Common initialization.
Definition: PKJK.cc:67
virtual void preiterations()
Setup integrals, files, etc.
Definition: PKJK.cc:96
void initialize()
Definition: jk.cc:525
static std::shared_ptr< JK > build_JK(std::shared_ptr< BasisSet > primary, std::shared_ptr< BasisSet > auxiliary, Options &options)
Definition: jk.cc:162
void build_JK(std::vector< std::shared_ptr< TwoBodyAOInt > > &ints, std::vector< std::shared_ptr< Matrix > > &D, std::vector< std::shared_ptr< Matrix > > &J, std::vector< std::shared_ptr< Matrix > > &K)
Build the J and K matrices for this integral class.
Definition: DirectJK.cc:147
virtual void postiterations()
Delete integrals, files, etc.
Definition: DFJK.cc:468
std::vector< SharedMatrix > wK_ao_
wK matrices: wK_mn = (ml|w|ns) C_li^left C_si^right
Definition: jk.h:294
std::vector< SharedMatrix > J_ao_
J matrices: J_mn = (mn|ls) C_li^left C_si^right.
Definition: jk.h:290
int omp_nthread_
Number of OpenMP threads (defaults to 1 in no OpenMP, Process::environment.get_n_threads() otherwise)...
Definition: jk.h:241
virtual ~CDJK()
Destructor.
Definition: CDJK.cc:60
virtual bool C1() const
Do we need to backtransform to C1 under the hood?
Definition: jk.h:815
JK(std::shared_ptr< BasisSet > primary)
Definition: jk.cc:61
std::shared_ptr< Matrix > SharedMatrix
Definition: adc.h:49
SharedMatrix Qlmn_
(Q|P)^-1 (P|mn) for wK (or chunk for disk-based)
Definition: jk.h:798
Definition: jk.h:916
void free_temps()
Definition: DFJK.cc:397
virtual void preiterations()=0
Setup integrals, files, etc.
GTFockJK(std::shared_ptr< psi::BasisSet > Primary, size_t NMats, bool AreSymm)
Your public interface to GTFock.
bool is_core() const
Definition: DFJK.cc:278
virtual void preiterations()
Setup integrals, files, etc.
Definition: DiskJK.cc:80
virtual void initialize_JK_disk()
Definition: DFJK.cc:679
int max_rows() const
Definition: DFJK.cc:305
Definition: jk.h:226
virtual void postiterations()
Delete integrals, files, etc.
Definition: DirectJK.cc:143
virtual void initialize_wK_disk()
Definition: DFJK.cc:1167
virtual void postiterations()
Delete integrals, files, etc.
Definition: PKJK.cc:154
std::vector< SharedMatrix > D_ao_
Pseudo-density matrices.
Definition: jk.h:288
virtual void block_wK(double **Qlmnp, double **Qrmnp, int naux)
Definition: DFJK.cc:1936
DirectJK(std::shared_ptr< BasisSet > primary)
Definition: DirectJK.cc:61
virtual void compute_JK()
Compute J/K for current C/D.
Definition: DFJK.cc:439
virtual void block_K(double **Qmnp, int naux)
Definition: DFJK.cc:1841
void USO2AO()
Transform current C_left_/C_right_/D_ to C_left_ao_/C_right_ao_/D_ao_, before compute_JK() ...
Definition: jk.cc:315
std::shared_ptr< PSIO > psio_
The PSIO instance to use for I/O.
Definition: jk.h:580
virtual ~PKJK()
Destructor.
Definition: PKJK.cc:62
std::vector< SharedMatrix > K_ao_
K matrices: K_mn = (ml|ns) C_li^left C_si^right.
Definition: jk.h:292
int df_ints_num_threads_
Number of threads for DF integrals.
Definition: jk.h:781
int nirrep_
Number of irreps.
Definition: jk.h:609
virtual void print_header() const
Definition: PKJK.cc:80
virtual SharedVector iaia(SharedMatrix Ci, SharedMatrix Ca)
Definition: jk.cc:166
virtual void postiterations()=0
Delete integrals, files, etc.
void set_df_ints_io(const std::string &val)
Definition: jk.h:895
void set_df_ints_num_threads(int val)
Definition: jk.h:900
virtual void print_header() const
Definition: DFJK.cc:256
virtual void manage_JK_disk()
Definition: DFJK.cc:1739
virtual void print_header() const
Definition: CDJK.cc:147
double condition_
Condition cutoff in fitting metric, defaults to 1.0E-12.
Definition: jk.h:783
int * so2symblk_
Absolute AO index to irrep.
Definition: jk.h:531
void set_do_K(bool do_K)
Definition: jk.h:415
SharedMatrix Qmn_
Main (Q|mn) Tensor (or chunk for disk-based)
Definition: jk.h:796
void initialize_temps()
Definition: DFJK.cc:338
bool lr_symmetric_
Left-right symmetric? Determined in each call of compute()
Definition: jk.h:260
long int ncholesky_
Definition: jk.h:920
std::shared_ptr< Vector > SharedVector
Definition: adc.h:51
virtual void compute_JK()
Compute J/K for current C/D.
Definition: DirectJK.cc:95
std::vector< SharedMatrix > J_
J matrices: .
Definition: jk.h:271
virtual void manage_wK_core()
Definition: DFJK.cc:1766
void free_w_temps()
Definition: DFJK.cc:407
std::shared_ptr< Vector > J_temp_
Definition: jk.h:803
virtual void postiterations()
Delete integrals, files, etc.
Definition: jk.h:735