MPQC 3.0.0-alpha
Loading...
Searching...
No Matches
scfops.h
1//
2// scfden.h
3//
4// Copyright (C) 1996 Limit Point Systems, Inc.
5//
6// Author: Edward Seidl <seidl@janed.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_scfops_h
29#define _chemistry_qc_scf_scfops_h
30
31#include <math/scmat/elemop.h>
32#include <math/scmat/blocked.h>
33
34#include <chemistry/qc/scf/scf.h>
35
36namespace sc {
37
38class SCFEnergy : public SCElementOp2 {
39 private:
40 double eelec;
41 int deferred_;
42
43 public:
44 SCFEnergy();
45 ~SCFEnergy();
46
47 int has_collect();
48 void defer_collect(int h);
49 void collect(const Ref<MessageGrp>&grp);
50 double result();
51 void reset();
52
53 void process(SCMatrixBlockIter&i, SCMatrixBlockIter&j);
54};
55
57 protected:
58 SCF *scf_;
59 double shift;
60
61 public:
64
66 void set_shift(double);
67
69};
70
71class ALevelShift : public LevelShift {
72 public:
76};
77
78class BLevelShift : public LevelShift {
79 public:
83};
84
85// MO lagrangian
86// c o v
87// c |FC|FC| 0|
88// ----------
89// o |FC|FO| 0|
90// ----------
91// v | 0| 0| 0|
92//
94 private:
95 SCF *scf_;
96
97 public:
98 MOLagrangian(SCF* s);
100
101 int has_side_effects();
102
103 void process(SCMatrixBlockIter& bi1, SCMatrixBlockIter& bi2);
104};
105
106}
107
108#endif
109
110// Local Variables:
111// mode: c++
112// c-file-style: "ETS"
113// End:
Definition scfops.h:71
void process(SCMatrixBlockIter &)
This is the fallback routine to process blocks and is called by process_spec members that are not ove...
Definition scfops.h:78
void process(SCMatrixBlockIter &)
This is the fallback routine to process blocks and is called by process_spec members that are not ove...
Definition blocked.h:354
Definition blocked.h:344
Definition scfops.h:56
int has_side_effects()
By default this returns nonzero.
void process(SCMatrixBlockIter &)
This is the fallback routine to process blocks and is called by process_spec members that are not ove...
Definition scfops.h:93
A template class that maintains references counts.
Definition ref.h:361
The SCElementOp2 class is very similar to the SCElementOp class except that pairs of blocks are treat...
Definition elemop.h:159
Definition scfops.h:38
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
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.