MPQC 3.0.0-alpha
Loading...
Searching...
No Matches
effh.h
1//
2// effh.h --- definition of the effective fock builder classes
3//
4// Copyright (C) 1996 Limit Point Systems, Inc.
5//
6// Author: Curtis Janssen <cljanss@limitpt.com>
7// Maintainer: LPS
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 _chemistry_qc_scf_effh_h
29#define _chemistry_qc_scf_effh_h
30
31#include <math/scmat/blkiter.h>
32#include <math/scmat/blocked.h>
33#include <chemistry/qc/scf/scf.h>
34
35namespace sc {
36
38 protected:
39 SCF *scf_;
40 double coef_[18];
41
42 virtual void init() =0;
43
44 // hindex is 0 for the closed and 1 for the open shell fock matrix
45 // shelli and shellj are 0 for closed, 1 for open, and 2 for virtual
46 int index(int hindex, int shelli, int shellj);
47
48 // converts an occupation number to a shell number
49 int shell(double);
50
51 double& coef(int i, int j, int k) { return coef_[index(i,j,k)]; }
52
53 public:
55 virtual ~AccumEffectiveH();
56
57 virtual void process(SCMatrixBlockIter&,SCMatrixBlockIter&);
58};
59
60// Guest & Saunders general form
61// C O V
62// ----------
63// | |
64// C | fc |
65// | |
66// -------------------
67// | | |
68// O | 2fc-fo | fc |
69// | | |
70// ----------------------------
71// | | | |
72// V | fc | fo | fc |
73// | | | |
74// ----------------------------
76 protected:
77 void init();
78
79 public:
82};
83
84// Guest & Saunders' form for high spin
85// C O V
86// ----------
87// | |
88// C | 2fc-fo |
89// | |
90// -------------------
91// | | |
92// O | 2fc-fo | 2fc-fo |
93// | | |
94// ----------------------------
95// | | | |
96// V | fc | fo | 2fc-fo |
97// | | | |
98// ----------------------------
100 protected:
101 void init();
102
103 public:
106};
107
108// test form
109// C O V
110// ----------
111// | |
112// C | fo |
113// | |
114// -------------------
115// | | |
116// O | 2fc-fo | fo |
117// | | |
118// ----------------------------
119// | | | |
120// V | fc | fo | fo |
121// | | | |
122// ----------------------------
124 protected:
125 void init();
126
127 public:
128 TestEffH(SCF*);
129 ~TestEffH();
130};
131
132// form for converged wavefunction
133// C O V
134// ----------
135// | |
136// C | fc |
137// | |
138// -------------------
139// | | |
140// O | 2fc-fo | fo |
141// | | |
142// ----------------------------
143// | | | |
144// V | fc | fo | fo |
145// | | | |
146// ----------------------------
148 protected:
149 void init();
150
151 public:
152 PsiEffH(SCF*);
153 ~PsiEffH();
154};
155
156}
157
158#endif
159
160// Local Variables:
161// mode: c++
162// c-file-style: "ETS"
163// End:
Definition effh.h:37
Definition blocked.h:354
Definition effh.h:75
Definition effh.h:99
Definition effh.h:147
The SCF class is the base for all classes that use a self-consistent field procedure to solve an effe...
Definition scf.h:51
The SCMatrixBlockIter class is used to described iterates that loop through the elements in a block.
Definition blkiter.h:46
Definition effh.h:123
Contains all MPQC code up to version 3.
Definition mpqcin.h:14

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