Psi4
sapt2p3.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 SAPT2p3_H
30 #define SAPT2p3_H
31 
32 #include "sapt2p.h"
33 
34 namespace psi { namespace sapt {
35 
36 class SAPT2p3 : public SAPT2p {
37 private:
38  virtual void print_header();
39  virtual void print_results();
40 
42 
43 protected:
44  double e_elst13_;
45  double e_ind30_;
46  double e_exch_ind30_;
47  double e_ind30r_;
49  double e_ind_disp30_;
51  double e_disp30_;
53  double e_sapt2pp3_;
54  double e_sapt2p3_;
57 
58  void Y3(int, const char *, const char *, const char *, int, const char *,
59  const char *, const char *, const char *, const char *, const char *,
60  int, int, int, double *, int, const char *);
61  void Y3_1(double **, int, const char *, const char *, int, const char *,
62  int, int, int);
63  void Y3_2(double **, int, const char *, const char *, int, const char *,
64  int, int, int);
65  void Y3_3(double **, int, const char *, const char *, const char *, int,
66  const char *, int, int, int);
67  void Y3_4(double **, int, const char *, const char *, const char *, int,
68  const char *, int, int, int);
69 
70  double elst130(double **, double **, double **, int, const char *,
71  const char *, const char *, int, int, int);
72 
73  void ind30_amps(int, const char *, int, const char *, double **, double **,
74  double **, double **, int, int, double *, int, int, double *, int,
75  const char *);
76 
77  void inddisp30_amps();
78  void inddisp30_ov(int, const char *, const char *, int, const char *,
79  int, int, int, double *, int, const char *);
80  void inddisp30_ovov();
81 
82  double disp30_1(int, const char *, int, const char *, int, const char *,
83  int, int, int, int, int, int);
84  double disp30_2(int, const char *, int, const char *, const char *, int,
85  const char *, const char *, int, int, int, int, int, int);
86 
87  void disp30_amps(int, const char *, int, const char *, const char *,
88  int, const char *, const char *, int, int, int, double *,
89  int, int, int, double *, int, const char *);
90 
91  double exch_ind30_1(double **, double **);
92  double exch_ind30_2(double **);
93  double exch_ind30_3(double **);
94 
95  double exch_ind_disp30_21(double **);
96  double exch_ind_disp30_12(double **);
97 
98  double exch_disp30_20();
99  double exch_disp30_02();
100  double exch_disp30_22();
101 
102  double ind30r_1(double **, double **, double **, double **, int,
103  const char *, const char *, const char *, int, const char *, int,
104  int, int, int);
105 
106 public:
109  std::shared_ptr<PSIO>psio);
110  virtual ~SAPT2p3();
111 
112  virtual double compute_energy();
113 
114  virtual void amplitudes();
115 
116  void elst13();
117  void ind30();
118  void ind30r();
119  void exch_ind30();
120  void ind_disp30();
121  void exch_ind_disp30();
122  void disp30();
123  void exch_disp30();
124 
125 };
126 
127 }}
128 
129 #endif
double disp30_2(int, const char *, int, const char *, const char *, int, const char *, const char *, int, int, int, int, int, int)
Definition: disp30.cc:155
Options & options() const
Definition: wavefunction.cc:412
virtual void amplitudes()
Definition: amplitudes.cc:798
void disp30_amps(int, const char *, int, const char *, const char *, int, const char *, const char *, int, int, int, double *, int, int, int, double *, int, const char *)
Definition: amplitudes.cc:1432
std::shared_ptr< PSIO > psio() const
Definition: wavefunction.cc:407
double exch_ind30_3(double **)
Definition: exch-ind30.cc:242
void exch_disp30()
Definition: exch-disp30.cc:35
double e_ind30_
Definition: sapt2p3.h:45
void Y3(int, const char *, const char *, const char *, int, const char *, const char *, const char *, const char *, const char *, const char *, int, int, int, double *, int, const char *)
Definition: amplitudes.cc:926
virtual void print_results()
Definition: sapt2p3.cc:230
double elst130(double **, double **, double **, int, const char *, const char *, const char *, int, int, int)
Definition: elst13.cc:59
virtual void print_header()
Definition: sapt2p3.cc:164
double e_ind30r_
Definition: sapt2p3.h:47
double exch_disp30_22()
Definition: exch-disp30.cc:334
Definition: sapt2p.h:36
bool third_order_
Definition: sapt2p3.h:41
double e_disp30_
Definition: sapt2p3.h:51
void inddisp30_ov(int, const char *, const char *, int, const char *, int, int, int, double *, int, const char *)
Definition: amplitudes.cc:1287
double exch_disp30_02()
Definition: exch-disp30.cc:207
void ind_disp30()
Definition: ind-disp30.cc:35
virtual double compute_energy()
Compute energy. Subclasses override this function to compute its energy.
Definition: sapt2p3.cc:60
double e_sapt2pp3_ccd_
Definition: sapt2p3.h:55
double exch_ind_disp30_21(double **)
Definition: exch-ind-disp30.cc:118
void ind30r()
Definition: ind30.cc:67
Definition: sapt2p3.h:36
double exch_ind30_1(double **, double **)
Definition: exch-ind30.cc:98
void Y3_2(double **, int, const char *, const char *, int, const char *, int, int, int)
Definition: amplitudes.cc:1004
void exch_ind_disp30()
Definition: exch-ind-disp30.cc:35
double e_sapt2p3_ccd_
Definition: sapt2p3.h:56
void Y3_3(double **, int, const char *, const char *, const char *, int, const char *, int, int, int)
Definition: amplitudes.cc:1070
SAPT2p3(SharedWavefunction Dimer, SharedWavefunction MonomerA, SharedWavefunction MonomerB, Options &options, std::shared_ptr< PSIO >psio)
Definition: sapt2p3.cc:35
void ind30()
Definition: ind30.cc:35
double exch_disp30_20()
Definition: exch-disp30.cc:76
double exch_ind_disp30_12(double **)
Definition: exch-ind-disp30.cc:556
double e_exch_disp30_
Definition: sapt2p3.h:52
void inddisp30_amps()
Definition: amplitudes.cc:1276
Definition: liboptions.h:355
void Y3_1(double **, int, const char *, const char *, int, const char *, int, int, int)
Definition: amplitudes.cc:952
void disp30()
Definition: disp30.cc:33
double e_exch_ind_disp30_
Definition: sapt2p3.h:50
void exch_ind30()
Definition: exch-ind30.cc:35
double disp30_1(int, const char *, int, const char *, int, const char *, int, int, int, int, int, int)
Definition: disp30.cc:75
void ind30_amps(int, const char *, int, const char *, double **, double **, double **, double **, int, int, double *, int, int, double *, int, const char *)
Definition: amplitudes.cc:1206
double exch_ind30_2(double **)
Definition: exch-ind30.cc:149
virtual ~SAPT2p3()
Definition: sapt2p3.cc:56
double e_elst13_
Definition: sapt2p3.h:44
PsiReturnType sapt(SharedWavefunction, SharedWavefunction, SharedWavefunction, Options &)
Definition: sapt/wrapper.cc:48
double e_sapt2p3_
Definition: sapt2p3.h:54
std::shared_ptr< Wavefunction > SharedWavefunction
Definition: typedefs.h:54
void inddisp30_ovov()
Definition: amplitudes.cc:1325
double e_sapt2pp3_
Definition: sapt2p3.h:53
void elst13()
Definition: elst13.cc:33
void Y3_4(double **, int, const char *, const char *, const char *, int, const char *, int, int, int)
Definition: amplitudes.cc:1143
double e_ind_disp30_
Definition: sapt2p3.h:49
double e_exch_ind30r_
Definition: sapt2p3.h:48
double ind30r_1(double **, double **, double **, double **, int, const char *, const char *, const char *, int, const char *, int, int, int, int)
Definition: ind30.cc:89
double e_exch_ind30_
Definition: sapt2p3.h:46