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-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 _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 
40 class OneBodySOInt {
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>&, const std::shared_ptr<IntegralFactory>&);
53  OneBodySOInt(const std::shared_ptr<OneBodyAOInt>&, const IntegralFactory*);
54  virtual ~OneBodySOInt();
55 
56  std::shared_ptr<SOBasisSet> basis() const;
57  std::shared_ptr<SOBasisSet> basis1() const;
58  std::shared_ptr<SOBasisSet> basis2() const;
59 
63  std::shared_ptr<OneBodyAOInt> ob() const;
64 
71  virtual void compute(SharedMatrix result);
72 
79  virtual void compute(std::vector<SharedMatrix> results);
80 
88  virtual void compute_deriv1(std::vector<SharedMatrix> result, const CdSalcList& cdsalcs);
89 };
90 
91 } // namespace psi
92 
93 #endif
std::shared_ptr< SOBasisSet > basis() const
Definition: sointegral.cc:73
const IntegralFactory * integral_
Definition: sointegral_onebody.h:43
std::shared_ptr< SOBasisSet > basis2() const
Definition: sointegral.cc:77
Definition: cdsalclist.h:121
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:44
Definition: integral.h:374
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:42
std::shared_ptr< SOBasisSet > b2_
Definition: sointegral_onebody.h:47
std::shared_ptr< SOBasisSet > b1_
Definition: sointegral_onebody.h:46