MPQC  3.0.0-alpha
gengine_base.hpp
1 //
2 // gfactory.hpp
3 //
4 // Copyright (C) 2014 Drew Lewis
5 //
6 // Authors: Drew Lewis
7 // Maintainer: Drew Lewis and Edward Valeev
8 //
9 // This file is part of the MPQC Toolkit.
10 //
11 // The MPQC Toolkit is free software; you can redistribute it and/or modify
12 // it under the terms of the GNU Library General Public License as published by
13 // the Free Software Foundation; either version 2, or (at your option)
14 // any later version.
15 //
16 // The MPQC Toolkit 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 Library General Public License for more details.
20 //
21 // You should have received a copy of the GNU Library General Public License
22 // along with the MPQC Toolkit; see the file COPYING.LIB. If not, write to
23 // the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
24 //
25 // The U.S. Government is granted a limited license as per AL 91-7.
26 //
27 
28 #ifndef MPQC_CHEMISTRY_QC_SCF_GENGINE_HPP
29 #define MPQC_CHEMISTRY_QC_SCF_GENGINE_HPP
30 
31 //#include <tiledarray_fwd.h> can't use until fwd gets fixed if possible
32 #include <tiledarray.h>
33 #include <vector>
34 #include <utility>
35 #include <util/class/class.h>
36 
37 // Expression Foward Declaration
38 namespace TiledArray {
39  namespace expressions {
40  template <typename>
42  } // namespace expressions
43 } // namespace TiledArray
44 
45 namespace mpqc {
46  namespace TA {
47 
48  class GEngineBase : virtual public sc:: DescribedClass {
49  public:
50  typedef TiledArray::Array<double,2> TAMatrix;
51 
52  GEngineBase() = default;
53  virtual ~GEngineBase() = default;
54 
55  virtual // Ensure that the user can set the densities
56  void
57  set_densities(std::vector<TAMatrix*>) = 0;
58 
59  virtual // Return true if the densities have been set
60  bool
61  densities_set() = 0;
62 
63  virtual
64  void
65  set_coefficients(std::vector<TAMatrix*>) = 0;
66 
67  virtual // Return true if the coefficients have been set
68  bool
69  coefficients_set() = 0;
70 
71  // If using coefficients for contractions
72  virtual
73  bool
74  using_coeff() = 0;
75 
76  // If using densities for contraction
77  virtual
78  bool
79  using_density() = 0;
80 
81  virtual
82  TAMatrix
83  operator()(const std::string v) = 0;
84 
85  private:
86  static sc::ClassDesc class_desc_;
87 
88  }; // class GEngine
89 
90  } // namespace TA
91 } // namespace mpqc
92 
93 #endif /* MPQC_CHEMISTRY_QC_SCF_GENGINE_HPP */
mpqc
Contains new MPQC code since version 3.
Definition: integralenginepool.hpp:37
sc::ClassDesc
This class is used to contain information about classes.
Definition: class.h:147
TiledArray::expressions::TensorExpression
Definition: gengine_base.hpp:41
sc
Contains all MPQC code up to version 3.
Definition: mpqcin.h:14
mpqc::TA::GEngineBase
Definition: gengine_base.hpp:48

Generated at Sun Jan 26 2020 23:23:59 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.8.16.