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 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 _psi_src_lib_libmints_moindexspace_h_
30 #define _psi_src_lib_libmints_moindexspace_h_
31 
32 #include <string>
33 #include "typedefs.h"
35 
36 namespace psi {
37 class BasisSet;
38 class IntegralFactory;
39 
49 {
51  std::string id_;
53  std::string name_;
56 
58  std::shared_ptr<Vector> evals_;
59 
61  std::shared_ptr<BasisSet> basis_;
63  std::shared_ptr<IntegralFactory> ints_;
64 
66  Dimension dim_; // dim_.n() better equal nirrep_
67 
69  OrbitalSpace();
70 
71 public:
72  OrbitalSpace(const std::string& id,
73  const std::string& name,
74  const SharedMatrix& full_C,
75  const std::shared_ptr<Vector>& evals,
76  const std::shared_ptr<BasisSet>& basis,
77  const std::shared_ptr<IntegralFactory>& ints);
78 
79  OrbitalSpace(const std::string& id,
80  const std::string& name,
81  const SharedMatrix& full_C,
82  const std::shared_ptr<BasisSet>& basis,
83  const std::shared_ptr<IntegralFactory>& ints);
84 
85  OrbitalSpace(const std::string& id,
86  const std::string& name,
87  const std::shared_ptr<Wavefunction>& wave);
88 
89  int nirrep() const;
90  const std::string& id() const;
91  const std::string& name() const;
92 
94  const SharedMatrix& C() const;
95 
97  const std::shared_ptr<Vector>& evals() const;
98 
100  const std::shared_ptr<BasisSet>& basisset() const;
101 
103  const std::shared_ptr<IntegralFactory>& integral() const;
104 
106  const Dimension& dim() const;
107 
109  void print() const;
110 
113  static OrbitalSpace transform(const OrbitalSpace& from, const std::shared_ptr<BasisSet>& to);
114 
120  static SharedMatrix overlap(const OrbitalSpace& space1, const OrbitalSpace& space2);
124  static SharedMatrix overlap(const std::shared_ptr<BasisSet>& basis1,
125  const std::shared_ptr<BasisSet>& basis2);
126 
133  const OrbitalSpace& orb_space,
134  const OrbitalSpace& ri_space,
135  double linear_tol);
136 
144  static OrbitalSpace build_ri_space(const std::shared_ptr<Molecule>& molecule, const std::string& obs_key, const std::string& aux_key, double lindep_tol);
145 
151  static OrbitalSpace build_abs_space(std::shared_ptr<BasisSet> aux_bs, std::shared_ptr<IntegralFactory> ints, double lindep_tol);
152 
153 };
154 
155 namespace SpaceBuilder
156 {
157 }
158 
159 }
160 
161 #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:134
std::shared_ptr< BasisSet > basis
Definition: dx_write.cc:59
const std::shared_ptr< IntegralFactory > & integral() const
Integral factory used to create C.
Definition: orbitalspace.cc:124
const std::string & id() const
Definition: orbitalspace.cc:99
SharedMatrix C_
AO-&gt;MO transformation matrix (ao x mo) or SO-&gt;MO transformation matrix.
Definition: orbitalspace.h:55
int nirrep() const
Definition: orbitalspace.cc:94
const Dimension & dim() const
MO dimensionality.
Definition: orbitalspace.cc:129
void print() const
Print information about the orbital space.
Definition: orbitalspace.cc:216
OrbitalSpace()
No default constructor.
static OrbitalSpace build_cabs_space(const OrbitalSpace &orb_space, const OrbitalSpace &ri_space, double linear_tol)
Definition: orbitalspace.cc:326
const std::shared_ptr< BasisSet > & basisset() const
The AO basis set used to create C.
Definition: orbitalspace.cc:119
std::string id_
Unique identifier.
Definition: orbitalspace.h:51
const std::shared_ptr< Vector > & evals() const
&quot;Eigenvalues&quot; of the C matrix
Definition: orbitalspace.cc:114
Definition: dimension.h:38
std::shared_ptr< Molecule > molecule
Definition: dx_write.cc:58
Dimension dim_
MO Dimensionality.
Definition: orbitalspace.h:66
std::shared_ptr< BasisSet > basis_
AO basis set.
Definition: orbitalspace.h:61
const SharedMatrix & C() const
C - transformation matrix (AO x MO)
Definition: orbitalspace.cc:109
std::shared_ptr< Matrix > SharedMatrix
Definition: adc.h:49
std::shared_ptr< Vector > evals_
MO &quot;eigenvalues&quot;.
Definition: orbitalspace.h:58
std::shared_ptr< IntegralFactory > ints_
Integral factory that as.
Definition: orbitalspace.h:63
const std::string & name() const
Definition: orbitalspace.cc:104
The OrbitalSpace class.
Definition: orbitalspace.h:48
std::string name_
Name of the orbital space.
Definition: orbitalspace.h:53
static SharedMatrix overlap(const OrbitalSpace &space1, const OrbitalSpace &space2)
Definition: orbitalspace.cc:182
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:332