Psi4
sointegral_onebody.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 program is free software; you can redistribute it and/or modify
12  * it under the terms of the GNU General Public License as published by
13  * the Free Software Foundation; either version 2 of the License, or
14  * (at your option) any later version.
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  * GNU General Public License for more details.
20  *
21  * You should have received a copy of the GNU General Public License along
22  * with this program; if not, write to the Free Software Foundation, Inc.,
23  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
24  *
25  * @END LICENSE
26  */
27 
28 #ifndef _psi_src_lib_libmints_sointegral_onebody_h
29 #define _psi_src_lib_libmints_sointegral_onebody_h
30 
31 #include "psi4/libmints/typedefs.h"
32 
33 namespace psi {
34 class SOBasisSet;
35 class CdSalcList;
36 class OneBodyAOInt;
37 class IntegralFactory;
38 
40 {
41 protected:
42  std::shared_ptr<OneBodyAOInt> ob_;
44  int deriv_;
45 
46  std::shared_ptr<SOBasisSet> b1_;
47  std::shared_ptr<SOBasisSet> b2_;
48 
49  void common_init();
50 
51 public:
52  OneBodySOInt(const std::shared_ptr<OneBodyAOInt>&,
53  const std::shared_ptr<IntegralFactory> &);
54  OneBodySOInt(const std::shared_ptr<OneBodyAOInt>&,
55  const IntegralFactory*);
56  virtual ~OneBodySOInt();
57 
58  std::shared_ptr<SOBasisSet> basis() const;
59  std::shared_ptr<SOBasisSet> basis1() const;
60  std::shared_ptr<SOBasisSet> basis2() const;
61 
65  std::shared_ptr<OneBodyAOInt> ob() const;
66 
73  virtual void compute(SharedMatrix result);
74 
81  virtual void compute(std::vector<SharedMatrix > results);
82 
90  virtual void compute_deriv1(std::vector<SharedMatrix > result,
91  const CdSalcList& cdsalcs);
92 };
93 
94 
95 } // end namespace
96 
97 #endif
std::shared_ptr< SOBasisSet > basis() const
Definition: sointegral.cc:79
const IntegralFactory * integral_
Definition: sointegral_onebody.h:43
std::shared_ptr< SOBasisSet > basis2() const
Definition: sointegral.cc:89
Definition: cdsalclist.h:124
std::shared_ptr< OneBodyAOInt > ob() const
Definition: sointegral.cc:94
virtual void compute_deriv1(std::vector< SharedMatrix > result, const CdSalcList &cdsalcs)
Definition: sointegral.cc:214
std::shared_ptr< SOBasisSet > basis1() const
Definition: sointegral.cc:84
Definition: sointegral_onebody.h:39
virtual void compute(SharedMatrix result)
Definition: sointegral.cc:99
OneBodySOInt(const std::shared_ptr< OneBodyAOInt > &, const std::shared_ptr< IntegralFactory > &)
Definition: sointegral.cc:48
int deriv_
Definition: sointegral_onebody.h:44
Definition: integral.h:385
std::shared_ptr< Matrix > SharedMatrix
Definition: adc.h:50
void common_init()
Definition: sointegral.cc:67
virtual ~OneBodySOInt()
Definition: sointegral.cc:63
std::shared_ptr< OneBodyAOInt > ob_
Definition: sointegral_onebody.h:42
std::shared_ptr< SOBasisSet > b2_
Definition: sointegral_onebody.h:47
std::shared_ptr< SOBasisSet > b1_
Definition: sointegral_onebody.h:46