~ubuntu-branches/ubuntu/karmic/psicode/karmic

« back to all changes in this revision

Viewing changes to src/lib/libchkpt/lagr.cc

  • Committer: Bazaar Package Importer
  • Author(s): Michael Banck, Michael Banck, Daniel Leidert
  • Date: 2009-02-23 00:12:02 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20090223001202-rutldoy3dimfpesc
Tags: 3.4.0-1
* New upstream release.

[ Michael Banck ]
* debian/patches/01_DESTDIR.dpatch: Refreshed.
* debian/patches/02_FHS.dpatch: Removed, applied upstream.
* debian/patches/03_debian_docdir: Likewise.
* debian/patches/04_man.dpatch: Likewise.
* debian/patches/06_466828_fix_gcc_43_ftbfs.dpatch: Likewise.
* debian/patches/07_464867_move_executables: Fixed and refreshed.
* debian/patches/00list: Adjusted.
* debian/control: Improved description.
* debian/patches-held: Removed.
* debian/rules (install/psi3): Do not ship the ruby bindings for now.

[ Daniel Leidert ]
* debian/rules: Fix txtdir via DEB_MAKE_INSTALL_TARGET.
* debian/patches/01_DESTDIR.dpatch: Refreshed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*!
 
2
  \file
 
3
  \ingroup CHKPT
 
4
*/
 
5
 
 
6
#include <cstdio>
 
7
#include <cstdlib>
 
8
#include <psifiles.h>
 
9
#include <libpsio/psio.hpp>
 
10
extern "C" {
 
11
        #include <libchkpt/chkpt.h>
 
12
}
 
13
#include <libchkpt/chkpt.hpp>
 
14
 
 
15
using namespace psi;
 
16
 
 
17
double **Chkpt::rd_lagr(void)
 
18
{
 
19
        int nmo;
 
20
        double **lagr;
 
21
        char *keyword;
 
22
        keyword = build_keyword("MO Lagrangian");
 
23
 
 
24
        nmo = rd_nmo();
 
25
 
 
26
        lagr = matrix<double>(nmo,nmo);
 
27
 
 
28
        psio->read_entry(PSIF_CHKPT, keyword, (char *) lagr[0], 
 
29
                nmo*nmo*sizeof(double));
 
30
 
 
31
        free(keyword);
 
32
        return lagr;
 
33
}
 
34
 
 
35
void Chkpt::wt_lagr(double **lagr)
 
36
{
 
37
        int nmo;
 
38
        char *keyword;
 
39
        keyword = build_keyword("MO Lagrangian");
 
40
 
 
41
        nmo = rd_nmo();
 
42
 
 
43
        psio->write_entry(PSIF_CHKPT, keyword, (char *) lagr[0],
 
44
                nmo*nmo*sizeof(double));
 
45
 
 
46
        free(keyword);
 
47
}
 
48
 
 
49
double **Chkpt::rd_alpha_lagr(void)
 
50
{
 
51
        int nmo;
 
52
        double **lagr;
 
53
        char *keyword;
 
54
        keyword = build_keyword("Alpha MO Lagrangian");
 
55
 
 
56
        nmo = rd_nmo();
 
57
 
 
58
        lagr = matrix<double>(nmo,nmo);
 
59
 
 
60
        psio->read_entry(PSIF_CHKPT, keyword, (char *) lagr[0], 
 
61
                nmo*nmo*sizeof(double));
 
62
 
 
63
        free(keyword);
 
64
        return lagr;
 
65
}
 
66
 
 
67
void Chkpt::wt_alpha_lagr(double **lagr)
 
68
{
 
69
        int nmo;
 
70
        char *keyword;
 
71
        keyword = build_keyword("Alpha MO Lagrangian");
 
72
 
 
73
        nmo = rd_nmo();
 
74
 
 
75
        psio->write_entry(PSIF_CHKPT, keyword, (char *) lagr[0], 
 
76
                nmo*nmo*sizeof(double));
 
77
 
 
78
        free(keyword);
 
79
}
 
80
 
 
81
double **Chkpt::rd_beta_lagr(void)
 
82
{
 
83
        int nmo;
 
84
        double **lagr;
 
85
        char *keyword;
 
86
        keyword = build_keyword("Beta MO Lagrangian");
 
87
 
 
88
        nmo = rd_nmo();
 
89
 
 
90
        lagr = matrix<double>(nmo,nmo);
 
91
 
 
92
        psio->read_entry(PSIF_CHKPT, keyword, (char *) lagr[0], 
 
93
                nmo*nmo*sizeof(double));
 
94
 
 
95
        free(keyword);
 
96
        return lagr;
 
97
}
 
98
 
 
99
void Chkpt::wt_beta_lagr(double **lagr)
 
100
{
 
101
        int nmo;
 
102
        char *keyword;
 
103
        keyword = build_keyword("Beta MO Lagrangian");
 
104
 
 
105
        nmo = rd_nmo();
 
106
 
 
107
        psio->write_entry(PSIF_CHKPT, keyword, (char *) lagr[0], 
 
108
                nmo*nmo*sizeof(double));
 
109
 
 
110
        free(keyword);
 
111
}
 
112
 
 
113
extern "C" {
 
114
/*!
 
115
** chkpt_rd_lagr():  Reads in the MO lagrangian matrix for RHF/ROHF.
 
116
**
 
117
** Parameters: none
 
118
**
 
119
** Returns:  
 
120
**   double **lagr, a matrix nmo by nmo.
 
121
**
 
122
** \ingroup CHKPT
 
123
*/
 
124
        double **chkpt_rd_lagr(void)
 
125
        {
 
126
                double **lagr;
 
127
                lagr = _default_chkpt_lib_->rd_lagr();
 
128
                return lagr;
 
129
        }
 
130
 
 
131
 
 
132
/*!
 
133
** chkpt_wt_lagr():  Writes the MO lagrangian matrix for RHF/ROHF.
 
134
**
 
135
** \param lagr = Lagrangian matrix with dimensions nmo by nmo.
 
136
**
 
137
** Returns: none
 
138
** \ingroup CHKPT
 
139
*/
 
140
        void chkpt_wt_lagr(double **lagr)
 
141
        {
 
142
                _default_chkpt_lib_->wt_lagr(lagr);
 
143
        }
 
144
 
 
145
/*!
 
146
** chkpt_rd_alpha_lagr():  Reads in the alpha MO lagrangian matrix for UHF.
 
147
**
 
148
** Parameters: none
 
149
**
 
150
** Returns:   
 
151
**   double **lagr, a matrix nmo by nmo.
 
152
** \ingroup CHKPT 
 
153
*/
 
154
        double **chkpt_rd_alpha_lagr(void)
 
155
        {
 
156
                double **lagr;
 
157
                lagr = _default_chkpt_lib_->rd_alpha_lagr();
 
158
                return lagr;
 
159
        }
 
160
 
 
161
/*!
 
162
** chkpt_wt_alpha_lagr():  Writes the alpha MO lagrangian matrix for UHF.
 
163
**
 
164
** \param lagr = Lagrangian matrix of size nmo by nmo.
 
165
**
 
166
** returns: none
 
167
** \ingroup CHKPT 
 
168
*/
 
169
void chkpt_wt_alpha_lagr(double **lagr)
 
170
{
 
171
        _default_chkpt_lib_->wt_alpha_lagr(lagr);
 
172
}
 
173
 
 
174
 
 
175
/*!
 
176
** chkpt_rd_beta_lagr():  Reads in the beta MO lagrangian matrix for UHF.
 
177
**
 
178
** takes no arguments.
 
179
**
 
180
** returns: 
 
181
**      double **lagr   a matrix nmo by nmo.
 
182
** \ingroup CHKPT
 
183
*/
 
184
        double **chkpt_rd_beta_lagr(void)
 
185
        {
 
186
                double **lagr;
 
187
                lagr = _default_chkpt_lib_->rd_beta_lagr();
 
188
                return lagr;
 
189
        }
 
190
 
 
191
/*!
 
192
** chkpt_wt_beta_lagr():  Writes the beta MO lagrangian matrix for UHF.
 
193
**
 
194
** \param lagr = Lagrangian matrix of size nmo by nmo.
 
195
**
 
196
** returns: none
 
197
** \ingroup CHKPT
 
198
*/
 
199
        void chkpt_wt_beta_lagr(double **lagr)
 
200
        {
 
201
                _default_chkpt_lib_->wt_beta_lagr(lagr);
 
202
        }
 
203
}