Psi4
integralparameters.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 LIBMINTS_INTEGRALPARAMETERS_H
30 #define LIBMINTS_INTEGRALPARAMETERS_H
31 
32 namespace psi {
33 
34 class Vector;
35 
37  private:
38  size_t nparam_;
39 
40  public:
42  virtual ~IntegralParameters() {}
43 
44  size_t nparam() const { return nparam_; }
45 };
46 
48  private:
49  double *coeff_;
50  double *exponent_;
51 
52  public:
53  CorrelationFactor(size_t nparam);
54  CorrelationFactor(std::shared_ptr<Vector> coeff, std::shared_ptr<Vector> exponent);
55  virtual ~CorrelationFactor();
56 
57  virtual double slater_exponent() const { return 1.0; }
58  void set_params(std::shared_ptr<Vector> coeff, std::shared_ptr<Vector> exponent);
59  double *exponent() const { return exponent_; }
60  double *coeff() const { return coeff_; }
61 };
62 
64  private:
66 
67  public:
68  virtual double slater_exponent() const { return slater_exponent_; }
69 
71  double exponent() { return slater_exponent_; }
72 };
73 
74 } // namespace psi
75 
76 #endif // INTEGRALPARAMETERS_H
double exponent()
Definition: integralparameters.h:71
virtual double slater_exponent() const
Definition: integralparameters.h:68
Definition: integralparameters.h:36
Definition: integralparameters.h:47
FittedSlaterCorrelationFactor(double exponent)
Definition: integralparameters.cc:59
size_t nparam_
Definition: integralparameters.h:38
virtual double slater_exponent() const
Definition: integralparameters.h:57
CorrelationFactor(size_t nparam)
Definition: integralparameters.cc:35
virtual ~CorrelationFactor()
Definition: integralparameters.cc:42
virtual ~IntegralParameters()
Definition: integralparameters.h:42
double * coeff_
Definition: integralparameters.h:49
double * coeff() const
Definition: integralparameters.h:60
IntegralParameters(size_t nparam=0)
Definition: integralparameters.h:41
double * exponent_
Definition: integralparameters.h:50
double * exponent() const
Definition: integralparameters.h:59
double slater_exponent_
Definition: integralparameters.h:65
void set_params(std::shared_ptr< Vector > coeff, std::shared_ptr< Vector > exponent)
Definition: integralparameters.cc:47
Definition: integralparameters.h:63
size_t nparam() const
Definition: integralparameters.h:44