Psi4
fdds_disp.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-2018 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 FDDS_DISP_H
30 #define FDDS_DISP_H
31 
32 #include "psi4/libmints/typedefs.h"
33 
34 namespace psi {
35 
36 class BasisSet;
37 class DFHelper;
38 
39 namespace sapt {
40 
42  protected:
43  // BasisSets
44  std::shared_ptr<BasisSet> primary_;
45  std::shared_ptr<BasisSet> auxiliary_;
46 
47  // Coulomb metric inverse
49 
50  // Coulomb metric
52 
53  // Auxiliary overlap matrix
55 
56  // DFHelper object
57  std::shared_ptr<DFHelper> dfh_;
58 
59  // Cache map
60  std::map<std::string, SharedMatrix> matrix_cache_;
61  std::map<std::string, SharedVector> vector_cache_;
62 
63  public:
71  FDDS_Dispersion(std::shared_ptr<BasisSet> primary, std::shared_ptr<BasisSet> auxiliary,
72  std::map<std::string, SharedMatrix> matrix_cache, std::map<std::string, SharedVector> vector_cache);
73 
75 
81  std::vector<SharedMatrix> project_densities(std::vector<SharedMatrix> dens);
82 
89  SharedMatrix form_unc_amplitude(std::string monomer, double omega);
90 
95  SharedMatrix metric() { return metric_; }
96 
102 
108 
109 }; // End FDDS_Dispersion
110 }
111 } // End namespace
112 
113 #endif
~FDDS_Dispersion()
Definition: fdds_disp.cc:177
SharedMatrix metric_inv()
Definition: fdds_disp.h:101
SharedMatrix aux_overlap()
Definition: fdds_disp.h:107
std::map< std::string, SharedMatrix > matrix_cache_
Definition: fdds_disp.h:60
SharedMatrix form_unc_amplitude(std::string monomer, double omega)
Definition: fdds_disp.cc:379
FDDS_Dispersion(std::shared_ptr< BasisSet > primary, std::shared_ptr< BasisSet > auxiliary, std::map< std::string, SharedMatrix > matrix_cache, std::map< std::string, SharedVector > vector_cache)
Definition: fdds_disp.cc:54
Definition: fdds_disp.h:41
std::shared_ptr< BasisSet > primary_
Definition: fdds_disp.h:44
SharedMatrix metric_inv_
Definition: fdds_disp.h:48
std::map< std::string, SharedVector > vector_cache_
Definition: fdds_disp.h:61
std::shared_ptr< DFHelper > dfh_
Definition: fdds_disp.h:57
SharedMatrix metric_
Definition: fdds_disp.h:51
std::shared_ptr< Matrix > SharedMatrix
Definition: adc.h:49
std::shared_ptr< BasisSet > auxiliary_
Definition: fdds_disp.h:45
SharedMatrix aux_overlap_
Definition: fdds_disp.h:54
PsiReturnType sapt(SharedWavefunction, SharedWavefunction, SharedWavefunction, Options &)
Definition: sapt/wrapper.cc:48
std::vector< SharedMatrix > project_densities(std::vector< SharedMatrix > dens)
Definition: fdds_disp.cc:179
SharedMatrix metric()
Definition: fdds_disp.h:95