Psi4
scf_grad.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 SCF_GRAD_H
30 #define SCF_GRAD_H
31 
33 #include "psi4/libmints/typedefs.h"
34 
35 namespace psi {
36 class SuperFunctional;
37 class VBase;
38 
39 namespace scfgrad {
40 
41 class SCFGrad : public Wavefunction {
42 
43 protected:
44 
46  void common_init();
47  std::shared_ptr<SuperFunctional> functional_;
48  std::shared_ptr<VBase> potential_;
49  std::map<std::string, SharedMatrix> gradients_;
50 
51 public:
53  virtual ~SCFGrad();
54 
55  double compute_energy() { throw PSIEXCEPTION("SCFGrad needs a rehash, call Rob."); }
56 
58 
60 
62 };
63 
64 }} // Namespaces
65 
66 #endif
Definition: scf_grad.h:41
Options & options() const
Definition: wavefunction.cc:396
std::map< std::string, SharedMatrix > gradients_
Definition: scf_grad.h:49
std::shared_ptr< SuperFunctional > functional_
Definition: scf_grad.h:47
virtual ~SCFGrad()
Definition: scf_grad.cc:74
SharedMatrix compute_hessian()
Compute Hessian. Subclasses override this function to compute the Hessian.
Definition: scf_grad.cc:760
SharedMatrix compute_gradient()
Compute gradient. Subclasses override this function to compute the gradient.
Definition: scf_grad.cc:92
SharedMatrix scfgrad(SharedWavefunction, Options &)
Definition: scfgrad/wrapper.cc:38
Definition: liboptions.h:360
std::shared_ptr< Matrix > SharedMatrix
Definition: adc.h:49
Simple wavefunction base class.
Definition: wavefunction.h:84
void common_init()
Common initialization.
Definition: scf_grad.cc:77
SharedMatrix rhf_hessian_response()
Definition: response.cc:63
std::shared_ptr< Wavefunction > SharedWavefunction
Definition: typedefs.h:52
std::shared_ptr< VBase > potential_
Definition: scf_grad.h:48
SCFGrad(SharedWavefunction ref_wfn, Options &options)
Definition: scf_grad.cc:61
double compute_energy()
Compute energy. Subclasses override this function to compute its energy.
Definition: scf_grad.h:55
#define PSIEXCEPTION(message)
Definition: exception.h:48