MPQC 3.0.0-alpha
Loading...
Searching...
No Matches
approx_pairs.h
1//
2// approx_pairs.h
3//
4// Copyright (C) 2014 David Hollman
5//
6// Author: David Hollman
7// Maintainer: DSH
8// Created: Jun 6, 2014
9//
10// This file is part of the SC Toolkit.
11//
12// The SC Toolkit is free software; you can redistribute it and/or modify
13// it under the terms of the GNU Library General Public License as published by
14// the Free Software Foundation; either version 2, or (at your option)
15// any later version.
16//
17// The SC Toolkit 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 Library General Public License for more details.
21//
22// You should have received a copy of the GNU Library General Public License
23// along with the SC Toolkit; see the file COPYING.LIB. If not, write to
24// the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
25//
26// The U.S. Government is granted a limited license as per AL 91-7.
27//
28
29#ifndef _chemistry_qc_scf_cadf_approx_pairs_h
30#define _chemistry_qc_scf_cadf_approx_pairs_h
31
32#include "cadfclhf.h"
33
34namespace sc {
35
37 private:
38
39 Ref<CADFCLHF> wfn_;
40
41 std::string filename_;
42
44
45 // Pairs of shell indices to print
46 std::vector<std::pair<int, int>> pairs_;
47
48 Ref<TwoBodyTwoCenterInt> ints2c_ex_;
50
51 std::unordered_map<int, int> shell_map_gbs_;
52 std::unordered_map<int, int> shell_map_dfbs_;
53 std::unordered_map<int, int> shell_map_exbs_;
54 std::vector<std::array<int,4>> pairs_tmp_;
55
56 void initialize();
57
58 bool initialized_ = false;
59
60 void compute_pairs_ex();
61
62 void write_atoms_section(std::ostream &out);
63 void write_gto_section(std::ostream &out);
64 void write_mo_section(std::ostream &out);
65
66 bool normalize_pairs_ = true;
67
68 std::unordered_map<std::pair<int,int>, Eigen::MatrixXd, sc::hash<std::pair<int, int>>> excoefs_;
69
70 enum {
71 GBS_orbs,
72 DFBS_pair,
73 EX_pair
74 };
75
76 void write_mo(std::ostream& out, const Eigen::VectorXd& coefs, int orb_type, const std::string& name);
77
78 public:
79
81
82 void write_pairs();
83
84
85 friend class CADFCLHF;
86 static ClassDesc cd_;
87
88};
89
90} // end namespace sc
91
92#endif /* _chemistry_qc_scf_cadf_approx_pairs_h */
Definition approx_pairs.h:36
A specialization of CLHF that uses concentric atomic density fitting to build fock matrices.
Definition cadfclhf.h:147
This class is used to contain information about classes.
Definition class.h:147
Classes which need runtime information about themselves and their relationship to other classes can v...
Definition class.h:233
A template class that maintains references counts.
Definition ref.h:361
Contains all MPQC code up to version 3.
Definition mpqcin.h:14
Definition hash.h:39

Generated at Wed Sep 25 2024 02:45:30 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.12.0.