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
>
41
class
TensorExpression
;
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.