Psi4
orbitalspace.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 program is free software; you can redistribute it and/or modify
12  * it under the terms of the GNU General Public License as published by
13  * the Free Software Foundation; either version 2 of the License, or
14  * (at your option) any later version.
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  * GNU General Public License for more details.
20  *
21  * You should have received a copy of the GNU General Public License along
22  * with this program; if not, write to the Free Software Foundation, Inc.,
23  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
24  *
25  * @END LICENSE
26  */
27 
28 #ifndef _psi_src_lib_libmints_moindexspace_h_
29 #define _psi_src_lib_libmints_moindexspace_h_
30 
31 #include <string>
32 #include "typedefs.h"
34 
35 namespace psi {
36 class BasisSet;
37 class IntegralFactory;
38 
48 {
50  std::string id_;
52  std::string name_;
55 
57  std::shared_ptr<Vector> evals_;
58 
60  std::shared_ptr<BasisSet> basis_;
62  std::shared_ptr<IntegralFactory> ints_;
63 
65  Dimension dim_; // dim_.n() better equal nirrep_
66 
68  OrbitalSpace();
69 
70 public:
71  OrbitalSpace(const std::string& id,
72  const std::string& name,
73  const SharedMatrix& full_C,
74  const std::shared_ptr<Vector>& evals,
75  const std::shared_ptr<BasisSet>& basis,
76  const std::shared_ptr<IntegralFactory>& ints);
77 
78  OrbitalSpace(const std::string& id,
79  const std::string& name,
80  const SharedMatrix& full_C,
81  const std::shared_ptr<BasisSet>& basis,
82  const std::shared_ptr<IntegralFactory>& ints);
83 
84  OrbitalSpace(const std::string& id,
85  const std::string& name,
86  const std::shared_ptr<Wavefunction>& wave);
87 
88  int nirrep() const;
89  const std::string& id() const;
90  const std::string& name() const;
91 
93  const SharedMatrix& C() const;
94 
96  const std::shared_ptr<Vector>& evals() const;
97 
99  const std::shared_ptr<BasisSet>& basisset() const;
100 
102  const std::shared_ptr<IntegralFactory>& integral() const;
103 
105  const Dimension& dim() const;
106 
108  void print() const;
109 
112  static OrbitalSpace transform(const OrbitalSpace& from, const std::shared_ptr<BasisSet>& to);
113 
119  static SharedMatrix overlap(const OrbitalSpace& space1, const OrbitalSpace& space2);
123  static SharedMatrix overlap(const std::shared_ptr<BasisSet>& basis1,
124  const std::shared_ptr<BasisSet>& basis2);
125 
132  const OrbitalSpace& orb_space,
133  const OrbitalSpace& ri_space,
134  double linear_tol);
135 
143  static OrbitalSpace build_ri_space(const std::shared_ptr<Molecule>& molecule, const std::string& obs_key, const std::string& aux_key, double lindep_tol);
144 
150  static OrbitalSpace build_abs_space(std::shared_ptr<BasisSet> aux_bs, std::shared_ptr<IntegralFactory> ints, double lindep_tol);
151 
152 };
153 
154 namespace SpaceBuilder
155 {
156 }
157 
158 }
159 
160 #endif // _psi_src_lib_libmints_moindexspace_h_
static OrbitalSpace build_abs_space(std::shared_ptr< BasisSet > aux_bs, std::shared_ptr< IntegralFactory > ints, double lindep_tol)
static OrbitalSpace transform(const OrbitalSpace &from, const std::shared_ptr< BasisSet > &to)
Definition: orbitalspace.cc:131
std::shared_ptr< BasisSet > basis
Definition: dx_write.cc:58
const std::shared_ptr< IntegralFactory > & integral() const
Integral factory used to create C.
Definition: orbitalspace.cc:121
const std::string & id() const
Definition: orbitalspace.cc:96
SharedMatrix C_
AO-&gt;MO transformation matrix (ao x mo) or SO-&gt;MO transformation matrix.
Definition: orbitalspace.h:54
int nirrep() const
Definition: orbitalspace.cc:91
const Dimension & dim() const
MO dimensionality.
Definition: orbitalspace.cc:126
void print() const
Print information about the orbital space.
Definition: orbitalspace.cc:213
OrbitalSpace()
No default constructor.
static OrbitalSpace build_cabs_space(const OrbitalSpace &orb_space, const OrbitalSpace &ri_space, double linear_tol)
Definition: orbitalspace.cc:325
const std::shared_ptr< BasisSet > & basisset() const
The AO basis set used to create C.
Definition: orbitalspace.cc:116
std::string id_
Unique identifier.
Definition: orbitalspace.h:50
const std::shared_ptr< Vector > & evals() const
&quot;Eigenvalues&quot; of the C matrix
Definition: orbitalspace.cc:111
Definition: dimension.h:39
std::shared_ptr< Molecule > molecule
Definition: dx_write.cc:57
Dimension dim_
MO Dimensionality.
Definition: orbitalspace.h:65
std::shared_ptr< BasisSet > basis_
AO basis set.
Definition: orbitalspace.h:60
const SharedMatrix & C() const
C - transformation matrix (AO x MO)
Definition: orbitalspace.cc:106
std::shared_ptr< Matrix > SharedMatrix
Definition: adc.h:50
std::shared_ptr< Vector > evals_
MO &quot;eigenvalues&quot;.
Definition: orbitalspace.h:57
std::shared_ptr< IntegralFactory > ints_
Integral factory that as.
Definition: orbitalspace.h:62
const std::string & name() const
Definition: orbitalspace.cc:101
The OrbitalSpace class.
Definition: orbitalspace.h:47
std::string name_
Name of the orbital space.
Definition: orbitalspace.h:52
static SharedMatrix overlap(const OrbitalSpace &space1, const OrbitalSpace &space2)
Definition: orbitalspace.cc:179
static OrbitalSpace build_ri_space(const std::shared_ptr< Molecule > &molecule, const std::string &obs_key, const std::string &aux_key, double lindep_tol)
Definition: orbitalspace.cc:331