MPQC  3.0.0-alpha
orbitalspace_utils.timpl.h
1 //
2 // orbitalspace_utils.timpl.h
3 //
4 // Copyright (C) 2009 Edward Valeev
5 //
6 // Author: Edward Valeev <evaleev@vt.edu>
7 // Maintainer: EV
8 //
9 // This file is part of the SC Toolkit.
10 //
11 // The SC Toolkit is free software; you can redistribute it and/or modify
12 // it under the terms of the GNU Library General Public License as published by
13 // the Free Software Foundation; either version 2, or (at your option)
14 // any later version.
15 //
16 // The SC Toolkit 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 Library General Public License for more details.
20 //
21 // You should have received a copy of the GNU Library General Public License
22 // along with the SC Toolkit; see the file COPYING.LIB. If not, write to
23 // the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
24 //
25 // The U.S. Government is granted a limited license as per AL 91-7.
26 //
27 
28 #ifndef _mpqc_src_lib_chemistry_qc_mbptr12_orbitalspace_utils_timpl_h
29 #define _mpqc_src_lib_chemistry_qc_mbptr12_orbitalspace_utils_timpl_h
30 
31 #include <chemistry/qc/basis/obintfactory.h>
32 
33 namespace sc {
34 
36  template <IntegralOneBodyMethod IntMethod>
37  RefSymmSCMatrix
39  Ref<Integral> ints = space->integral()->clone();
40  ints->set_basis(space->basis());
41  Ref<PetiteList> plist = ints->petite_list();
42  RefSymmSCMatrix O_so = compute_onebody_matrix<IntMethod>(plist);
43  RefSymmSCMatrix O_ao = plist->to_AO_basis(O_so);
44  RefSCMatrix C = space->coefs();
45  RefSymmSCMatrix O = O_so.kit()->symmmatrix(C.coldim());
46  O.assign(0.0);
47  O.accumulate_transform(C, O_ao, SCMatrix::TransposeTransform);
48  return O;
49  }
50 
52  template <IntegralOneBodyMethod IntMethod>
53  RefSCMatrix
54  compute_obints(const Ref<OrbitalSpace>& space_bra, const Ref<OrbitalSpace>& space_ket) {
55  throw ProgrammingError("compute_obints not yet implemented",
56  __FILE__, __LINE__);
57  }
58 
59 } // end of namespace sc
60 
61 #endif // end of header guard
62 
63 
64 // Local Variables:
65 // mode: c++
66 // c-file-style: "CLJ-CONDENSED"
67 // End:
sc::RefSymmSCMatrix
The RefSymmSCMatrix class is a smart pointer to an SCSymmSCMatrix specialization.
Definition: matrix.h:265
sc::RefSCMatrix
The RefSCMatrix class is a smart pointer to an SCMatrix specialization.
Definition: matrix.h:135
sc::Ref
A template class that maintains references counts.
Definition: ref.h:361
sc::OrbitalSpace::coefs
const RefSCMatrix & coefs() const
Returns the coefficient matrix.
sc::Integral::set_basis
virtual void set_basis(const Ref< GaussianBasisSet > &b1, const Ref< GaussianBasisSet > &b2=0, const Ref< GaussianBasisSet > &b3=0, const Ref< GaussianBasisSet > &b4=0)
Set the basis set for each center.
sc::OrbitalSpace::integral
const Ref< Integral > & integral() const
Returns the integral factory used to instantiate the coefficient matrix.
sc::compute_obints
RefSCMatrix compute_obints(const Ref< OrbitalSpace > &space_bra, const Ref< OrbitalSpace > &space_ket)
compute one-body integral matrix in the space of space_bra and space_ket (space_bra !...
Definition: orbitalspace_utils.timpl.h:54
sc::Integral::petite_list
Ref< PetiteList > petite_list()
Return the PetiteList object.
sc::PetiteList::to_AO_basis
RefSymmSCMatrix to_AO_basis(const RefSymmSCMatrix &O_so)
converts an operator matrix from SO to AO basis.
sc::RefSymmSCMatrix::accumulate_transform
void accumulate_transform(const RefSCMatrix &a, const RefSymmSCMatrix &b, SCMatrix::Transform=SCMatrix::NormalTransform) const
Add a * b * a.t() to this.
sc::ProgrammingError
This is thrown when a situations arises that should be impossible.
Definition: scexception.h:92
sc
Contains all MPQC code up to version 3.
Definition: mpqcin.h:14
sc::OrbitalSpace::basis
const Ref< GaussianBasisSet > & basis() const
Returns the AO basis set.

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