Psi4
sad.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-2019 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 LIBSCF_SAD_H
30 #define LIBSCF_SAD_H
31 
32 namespace psi {
33 
34 class BasisSet;
35 class Molecule;
36 
37 namespace scf {
38 
39 class SADGuess {
40  protected:
41  int print_;
42  int debug_;
43 
44  std::shared_ptr<Molecule> molecule_;
45  std::shared_ptr<BasisSet> basis_;
46  std::vector<std::shared_ptr<BasisSet>> atomic_bases_;
47  std::vector<std::shared_ptr<BasisSet>> atomic_fit_bases_;
49 
51 
56 
57  void common_init();
58 
59  void run_atomic_calculations(SharedMatrix& D_AO, SharedMatrix& Huckel_C, SharedVector& Huckel_E);
61  void get_uhf_atomic_density(std::shared_ptr<BasisSet> atomic_basis, std::shared_ptr<BasisSet> fit_basis,
62  SharedVector occ_a, SharedVector occ_b, SharedMatrix D, SharedMatrix Chuckel,
63  SharedVector Ehuckel);
65  SharedVector occ, SharedMatrix D);
66 
67  void form_D();
68  void form_C();
69 
70  public:
71  SADGuess(std::shared_ptr<BasisSet> basis, std::vector<std::shared_ptr<BasisSet>> atomic_bases, Options& options);
72  virtual ~SADGuess();
73 
74  void compute_guess();
75 
76  SharedMatrix Da() const { return Da_; }
77  SharedMatrix Db() const { return Db_; }
78  SharedMatrix Ca() const { return Ca_; }
79  SharedMatrix Cb() const { return Cb_; }
80 
82 
83  void set_atomic_fit_bases(std::vector<std::shared_ptr<BasisSet>> fit_bases) { atomic_fit_bases_ = fit_bases; }
84  void set_print(int print) { print_ = print; }
85  void set_debug(int debug) { debug_ = debug; }
86 };
87 } // namespace scf
88 } // namespace psi
89 
90 #endif
std::vector< std::shared_ptr< BasisSet > > atomic_fit_bases_
Definition: sad.h:47
void set_atomic_fit_bases(std::vector< std::shared_ptr< BasisSet >> fit_bases)
Definition: sad.h:83
void form_C()
Definition: sad.cc:130
void set_debug(int debug)
Definition: sad.h:85
SharedMatrix Db_
Definition: sad.h:53
std::shared_ptr< BasisSet > basis
Definition: dx_write.cc:59
void compute_guess()
Definition: sad.cc:102
double ** scf
Definition: dx_write.cc:57
std::shared_ptr< Molecule > molecule_
Definition: sad.h:44
virtual ~SADGuess()
Definition: sad.cc:89
void set_print(int print)
Definition: sad.h:84
void run_atomic_calculations(SharedMatrix &D_AO, SharedMatrix &Huckel_C, SharedVector &Huckel_E)
Definition: sad.cc:140
SharedMatrix Ca() const
Definition: sad.h:78
void get_uhf_atomic_density(std::shared_ptr< BasisSet > atomic_basis, std::shared_ptr< BasisSet > fit_basis, SharedVector occ_a, SharedVector occ_b, SharedMatrix D, SharedMatrix Chuckel, SharedVector Ehuckel)
Definition: sad.cc:395
void common_init()
Definition: sad.cc:90
SharedMatrix Ca_
Definition: sad.h:54
Definition: sad.h:39
Options & options_
Definition: sad.h:50
Definition: liboptions.h:353
SharedMatrix AO2SO_
Definition: sad.h:48
SharedMatrix huckel_guess()
Definition: sad.cc:701
std::shared_ptr< BasisSet > basis_
Definition: sad.h:45
void form_gradient(SharedMatrix grad, SharedMatrix F, SharedMatrix D, SharedMatrix S, SharedMatrix X)
Definition: sad.cc:640
SharedMatrix Cb_
Definition: sad.h:55
SharedMatrix Cb() const
Definition: sad.h:79
void form_C_and_D(SharedMatrix X, SharedMatrix F, SharedMatrix C, SharedVector E, SharedMatrix Cocc, SharedVector occ, SharedMatrix D)
Definition: sad.cc:665
std::shared_ptr< Matrix > SharedMatrix
Definition: adc.h:49
SharedMatrix Da() const
Definition: sad.h:76
SharedMatrix Db() const
Definition: sad.h:77
std::vector< std::shared_ptr< BasisSet > > atomic_bases_
Definition: sad.h:46
void form_D()
Definition: sad.cc:110
Definition: pointgrp.h:104
SADGuess(std::shared_ptr< BasisSet > basis, std::vector< std::shared_ptr< BasisSet >> atomic_bases, Options &options)
Definition: sad.cc:84
int print_
Definition: sad.h:41
int debug_
Definition: sad.h:42
SharedMatrix Da_
Definition: sad.h:52
std::shared_ptr< Vector > SharedVector
Definition: adc.h:51