Psi4
orthog.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 ORTHOG_H
30 #define ORTHOG_H
31 
32 #include "typedefs.h"
34 
35 namespace psi {
36 
38 {
39 public:
42 
43 private:
44  int debug_;
45 
48 
53  double lindep_tol_;
55  int nlindep_;
58  // The orthogonalization matrices
61 
63 
73 
74  void compute_overlap_eig(Matrix& overlap_eigvec,
75  Vector& isqrt_eigval,
76  Vector& sqrt_eigval);
79  void compute_gs_orthog();
80  void compute_orthog_trans();
81 
83 
84 public:
87  double lindep_tolerance,
88  int debug = 0);
89 
90  double min_orthog_res() const { return min_orthog_res_; }
91  double max_orthog_res() const { return max_orthog_res_; }
92 
94 
95  double lindep_tol() const { return lindep_tol_; }
96 
107 
112 
115 
116  Dimension dim();
118 
119  int nlindep();
120 };
121 
122 } // namespace psi
123 
124 #endif // ORTHOG_H
void compute_gs_orthog()
Definition: orthog.cc:204
void compute_orthog_trans()
Definition: orthog.cc:209
double min_orthog_res() const
Definition: orthog.h:90
double max_orthog_res_
Definition: orthog.h:71
double lindep_tol() const
Definition: orthog.h:95
OrthogMethod orthog_method_
The orthogonalization method.
Definition: orthog.h:57
int nlindep_
The number of linearly dependent functions.
Definition: orthog.h:55
OverlapOrthog(OrthogMethod method, SharedMatrix overlap, double lindep_tolerance, int debug=0)
Definition: orthog.cc:50
SharedMatrix basis_to_orthog_basis()
Definition: orthog.cc:229
Dimension orthog_dim_
Definition: orthog.h:47
SharedMatrix orthog_trans_
Definition: orthog.h:59
void compute_canonical_orthog()
Definition: orthog.cc:183
Definition: orthog.h:37
int debug_
Definition: orthog.h:44
Definition: dimension.h:38
Makes using matrices just a little easier.
Definition: libmints/matrix.h:70
OrthogMethod orthog_method() const
Definition: orthog.h:93
OrthogMethod
An enum for the types of orthogonalization.
Definition: orthog.h:41
double lindep_tol_
Definition: orthog.h:53
SharedMatrix overlap_inverse()
Return an $S^{-1}$.
SharedMatrix orthog_trans_inverse_
Definition: orthog.h:60
void overlap(int C_irr, int current)
Definition: cceom/overlap.cc:49
std::shared_ptr< Matrix > SharedMatrix
Definition: adc.h:49
void compute_overlap_eig(Matrix &overlap_eigvec, Vector &isqrt_eigval, Vector &sqrt_eigval)
Definition: orthog.cc:64
double max_orthog_res() const
Definition: orthog.h:91
double min_orthog_res_
Definition: orthog.h:70
int nlindep()
Definition: orthog.cc:258
Definition: orthog.h:41
Definition: orthog.h:41
Definition: orthog.h:41
Dimension dim_
Definition: orthog.h:46
Dimension dim()
Definition: orthog.cc:245
SharedMatrix basis_to_orthog_basis_inverse()
Definition: orthog.cc:237
Dimension orthog_dim()
Definition: orthog.cc:250
Definition: vector.h:50
SharedMatrix overlap_
Definition: orthog.h:82
void compute_symmetric_orthog()
Definition: orthog.cc:156