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 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 _psi_src_lib_libmints_sointegral_onebody_h
30 #define _psi_src_lib_libmints_sointegral_onebody_h
31 
32 #include "psi4/libmints/typedefs.h"
33 
34 namespace psi {
35 class SOBasisSet;
36 class CdSalcList;
37 class OneBodyAOInt;
38 class IntegralFactory;
39 
41 {
42 protected:
43  std::shared_ptr<OneBodyAOInt> ob_;
45  int deriv_;
46 
47  std::shared_ptr<SOBasisSet> b1_;
48  std::shared_ptr<SOBasisSet> b2_;
49 
50  void common_init();
51 
52 public:
53  OneBodySOInt(const std::shared_ptr<OneBodyAOInt>&,
54  const std::shared_ptr<IntegralFactory> &);
55  OneBodySOInt(const std::shared_ptr<OneBodyAOInt>&,
56  const IntegralFactory*);
57  virtual ~OneBodySOInt();
58 
59  std::shared_ptr<SOBasisSet> basis() const;
60  std::shared_ptr<SOBasisSet> basis1() const;
61  std::shared_ptr<SOBasisSet> basis2() const;
62 
66  std::shared_ptr<OneBodyAOInt> ob() const;
67 
74  virtual void compute(SharedMatrix result);
75 
82  virtual void compute(std::vector<SharedMatrix > results);
83 
91  virtual void compute_deriv1(std::vector<SharedMatrix > result,
92  const CdSalcList& cdsalcs);
93 };
94 
95 
96 } // end namespace
97 
98 #endif
std::shared_ptr< SOBasisSet > basis() const
Definition: sointegral.cc:73
const IntegralFactory * integral_
Definition: sointegral_onebody.h:44
std::shared_ptr< SOBasisSet > basis2() const
Definition: sointegral.cc:77
Definition: cdsalclist.h:124
std::shared_ptr< OneBodyAOInt > ob() const
Definition: sointegral.cc:79
virtual void compute_deriv1(std::vector< SharedMatrix > result, const CdSalcList &cdsalcs)
Definition: sointegral.cc:188
std::shared_ptr< SOBasisSet > basis1() const
Definition: sointegral.cc:75
Definition: sointegral_onebody.h:40
virtual void compute(SharedMatrix result)
Definition: sointegral.cc:81
OneBodySOInt(const std::shared_ptr< OneBodyAOInt > &, const std::shared_ptr< IntegralFactory > &)
Definition: sointegral.cc:50
int deriv_
Definition: sointegral_onebody.h:45
Definition: integral.h:384
std::shared_ptr< Matrix > SharedMatrix
Definition: adc.h:49
void common_init()
Definition: sointegral.cc:62
virtual ~OneBodySOInt()
Definition: sointegral.cc:60
std::shared_ptr< OneBodyAOInt > ob_
Definition: sointegral_onebody.h:43
std::shared_ptr< SOBasisSet > b2_
Definition: sointegral_onebody.h:48
std::shared_ptr< SOBasisSet > b1_
Definition: sointegral_onebody.h:47