MPQC  3.0.0-alpha
domain.h
1 
2 /*
3  * Copyright 2009 Sandia Corporation. Under the terms of Contract
4  * DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government
5  * retains certain rights in this software.
6  *
7  * This file is a part of the MPQC LMP2 library.
8  *
9  * The MPQC LMP2 library is free software: you can redistribute it
10  * and/or modify it under the terms of the GNU Lesser General Public
11  * License as published by the Free Software Foundation, either
12  * version 3 of the License, or (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful, but
15  * WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17  * Lesser General Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public
20  * License along with this program. If not, see
21  * <http://www.gnu.org/licenses/>.
22  *
23  */
24 
25 #ifndef _chemistry_qc_lmp2_domain_h
26 #define _chemistry_qc_lmp2_domain_h
27 
28 #include <chemistry/qc/wfn/obwfn.h>
29 #include <vector>
30 #include <map>
31 #include <set>
32 #include <chemistry/qc/lmp2/sma.h>
33 
34 namespace sc {
35 
36 typedef std::set<int> domainmapvirbs_t;
37 typedef std::map<std::pair<int,int>, domainmapvirbs_t > domainmap_t;
38 
39 
41 void
43  const sc::RefSCMatrix &scf_local,
44  std::vector<std::vector<int> > &domains, domainmap_t &domainmap,
45  double distance_threshold, double completeness_threshold,
46  bool all_nondist_pairs,
47  std::vector<double>& interdomain_distances,
48  sma2::Array<2> &S_ao, sma2::Array<2> &L,
49  double bound, const sc::Ref<sc::MessageGrp> &msg);
50 
51 
54 void
56  const sc::RefSCMatrix &scf_local,
57  std::vector<std::vector<int> > &domains,
58  domainmap_t &domainmap, double distance_threshold,
59  double completeness_threshold,
60  domainmap_t &weak_pair_domainmap, double weak_pair_distance_threshold,
61  bool all_nondist_pairs, std::vector<double>& interdomain_distances,
62  sma2::Array<2> &S_ao, sma2::Array<2> &L,
63  double bound, const sc::Ref<sc::MessageGrp> &msg);
64 
65 }
66 
67 #endif
sc::RefSCMatrix
The RefSCMatrix class is a smart pointer to an SCMatrix specialization.
Definition: matrix.h:135
sc::Ref< sc::OneBodyWavefunction >
sc::create_domains
void create_domains(const sc::Ref< sc::OneBodyWavefunction > &wfn, int nfzc, const sc::RefSCMatrix &scf_local, std::vector< std::vector< int > > &domains, domainmap_t &domainmap, double distance_threshold, double completeness_threshold, bool all_nondist_pairs, std::vector< double > &interdomain_distances, sma2::Array< 2 > &S_ao, sma2::Array< 2 > &L, double bound, const sc::Ref< sc::MessageGrp > &msg)
Create maps of occupied orbital pairs to atoms in their domain.
sc
Contains all MPQC code up to version 3.
Definition: mpqcin.h:14

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