MPQC  3.0.0-alpha
am05.h
1 //
2 // am05.h -- derived from:
3 // functional.h --- definition of the dft functional
4 //
5 // Copyright (C) 1997 Limit Point Systems, Inc.
6 //
7 // Author: Curtis Janssen <cljanss@limitpt.com>
8 // Maintainer: LPS
9 //
10 // This file is part of the SC Toolkit.
11 //
12 // The SC Toolkit is free software; you can redistribute it and/or modify
13 // it under the terms of the GNU Library General Public License as published by
14 // the Free Software Foundation; either version 2, or (at your option)
15 // any later version.
16 //
17 // The SC Toolkit 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 Library General Public License for more details.
21 //
22 // You should have received a copy of the GNU Library General Public License
23 // along with the SC Toolkit; see the file COPYING.LIB. If not, write to
24 // the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
25 //
26 // The U.S. Government is granted a limited license as per AL 91-7.
27 //
28 
29 #ifndef _chemistry_qc_dft_am05_h
30 #define _chemistry_qc_dft_am05_h
31 
32 #include <chemistry/qc/dft/functional.h>
33 
34 namespace sc {
35 
45  protected:
46  void am05xc(double rho,double gam,
47  double &fxc,double &dfxcdrho,double &dfxcdgamma);
48  double am05_lambertw(double z);
49  void xs(double rho,double &ex, double &vx);
50  void pw(double rhoa,double rhob,
51  double &ec,double &vca,double &vcb);
52  void cpbe_lsd(double rhoa,double rhob,
53  double &eps,double &vca,double &vcb);
54  void pbe_gcor(double a,double a1,
55  double b1,double b2,double b3,double b4,
56  double rtrs,
57  double &gg,double &ggrs);
58  public:
60  AM05Functional(const Ref<KeyVal> &);
62  ~AM05Functional();
63  void save_data_state(StateOut &);
64  int need_density_gradient();
65  int need_density_hessian();
66  void point(const PointInputData&, PointOutputData&);
67  void set_spin_polarized(int);
68 };
69 
70 }
71 
72 #endif
73 
74 // Local Variables:
75 // mode: c++
76 // c-file-style: "CLJ"
77 // End:
sc::AM05Functional
Implements the Perdew-Burke-Ernzerhof (PBE) correlation functional.
Definition: am05.h:44
sc::PointOutputData
Contains data generated at each point by a DenFunctional.
Definition: functional.h:79
sc::Ref
A template class that maintains references counts.
Definition: ref.h:361
sc::DenFunctional
An abstract base class for density functionals.
Definition: functional.h:97
sc::PointInputData
Contains data needed at each point by a DenFunctional.
Definition: functional.h:39
sc::StateIn
Definition: statein.h:79
sc::StateOut
Definition: stateout.h:71
sc::AM05Functional::save_data_state
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
sc
Contains all MPQC code up to version 3.
Definition: mpqcin.h:14

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