MPQC
2.3.1
Main Page
Related Pages
Classes
Files
File List
src
lib
chemistry
qc
scf
uscf.h
1
//
2
// uscf.h --- definition of the UnrestrictedSCF abstract base class
3
//
4
// Copyright (C) 1997 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_uscf_h
29
#define _chemistry_qc_scf_uscf_h
30
31
#ifdef __GNUC__
32
#pragma interface
33
#endif
34
35
#include <chemistry/qc/scf/scf.h>
36
37
namespace
sc {
38
39
// //////////////////////////////////////////////////////////////////////////
40
42
class
UnrestrictedSCF
:
public
SCF
{
43
protected
:
44
Ref<PointGroup>
most_recent_pg_;
45
int
user_occupations_;
46
int
tnalpha_;
47
int
tnbeta_;
48
int
nirrep_;
49
int
*nalpha_;
50
int
*nbeta_;
51
int
*initial_nalpha_;
52
int
*initial_nbeta_;
53
54
AccResultRefSCMatrix
oso_eigenvectors_beta_;
55
AccResultRefDiagSCMatrix
eigenvalues_beta_;
56
ResultRefSymmSCMatrix
focka_;
57
ResultRefSymmSCMatrix
fockb_;
58
59
protected
:
60
Ref<SCExtrapError>
extrap_error();
61
// calculate the scf vector, returning the accuracy
62
double
compute_vector(
double
&,
double
enuclear);
63
void
initial_vector(
int
needv=1);
64
65
public
:
66
UnrestrictedSCF
(
StateIn
&);
67
UnrestrictedSCF
(
const
Ref<KeyVal>
&);
68
~
UnrestrictedSCF
();
69
70
void
save_data_state
(
StateOut
&);
71
72
RefSCMatrix
eigenvectors();
73
RefDiagSCMatrix
eigenvalues
();
74
75
RefSCMatrix
oso_alpha_eigenvectors();
76
RefSCMatrix
alpha_eigenvectors();
77
RefDiagSCMatrix
alpha_eigenvalues();
78
RefSCMatrix
oso_beta_eigenvectors();
79
RefSCMatrix
beta_eigenvectors();
80
RefDiagSCMatrix
beta_eigenvalues();
81
82
RefSymmSCMatrix
alpha_density
();
83
RefSymmSCMatrix
beta_density
();
84
RefSymmSCMatrix
density
();
85
86
void
symmetry_changed
();
87
88
double
occupation
(
int
,
int
);
89
double
alpha_occupation
(
int
,
int
);
90
double
beta_occupation
(
int
,
int
);
91
92
// both return 1
93
int
spin_polarized
();
94
int
spin_unrestricted
();
95
96
void
print
(std::ostream&o=
ExEnv::out0
())
const
;
97
98
int
n_fock_matrices()
const
;
102
RefSymmSCMatrix
fock
(
int
i);
105
RefSymmSCMatrix
effective_fock
();
106
110
void
set_desired_value_accuracy
(
double
eps);
111
112
protected
:
113
// these are temporary data, so they should not be checkpointed
114
Ref<TwoBodyInt>
tbi_;
115
116
RefSymmSCMatrix
densa_;
117
RefSymmSCMatrix
densb_;
118
RefSymmSCMatrix
gmata_;
119
RefSymmSCMatrix
gmatb_;
120
RefSymmSCMatrix
diff_densa_;
121
RefSymmSCMatrix
diff_densb_;
122
123
void
set_occupations(
const
RefDiagSCMatrix
&);
124
void
set_occupations(
const
RefDiagSCMatrix
&,
const
RefDiagSCMatrix
&);
125
126
void
init_vector();
127
void
done_vector();
128
double
new_density();
129
void
reset_density();
130
double
scf_energy();
131
Ref<SCExtrapData>
extrap_data();
132
133
void
init_gradient();
134
void
done_gradient();
135
RefSymmSCMatrix
lagrangian();
136
RefSymmSCMatrix
gradient_density();
137
138
void
init_hessian();
139
void
done_hessian();
140
141
// The Hartree-Fock derivatives
142
void
two_body_deriv_hf(
double
*grad,
double
exchange_fraction);
143
};
144
145
}
146
147
#endif
148
149
// Local Variables:
150
// mode: c++
151
// c-file-style: "ETS"
152
// End:
Generated at Mon Feb 25 2013 02:28:44 for
MPQC
2.3.1 using the documentation package
Doxygen
1.8.3.1.