source: ThirdParty/mpqc_open/src/lib/chemistry/cca/MPQC_Chemistry_QC_Model_Impl.hh

Candidate_v1.6.1
Last change on this file was 860145, checked in by Frederik Heber <heber@…>, 8 years ago

Merge commit '0b990dfaa8c6007a996d030163a25f7f5fc8a7e7' as 'ThirdParty/mpqc_open'

  • Property mode set to 100644
File size: 7.2 KB
Line 
1//
2// File: MPQC_Chemistry_QC_Model_Impl.hh
3// Symbol: MPQC.Chemistry_QC_Model-v0.2
4// Symbol Type: class
5// Babel Version: 0.10.2
6// Description: Server-side implementation for MPQC.Chemistry_QC_Model
7//
8// WARNING: Automatically generated; only changes within splicers preserved
9//
10// babel-version = 0.10.2
11//
12
13#ifndef included_MPQC_Chemistry_QC_Model_Impl_hh
14#define included_MPQC_Chemistry_QC_Model_Impl_hh
15
16#ifndef included_sidl_cxx_hh
17#include "sidl_cxx.hh"
18#endif
19#ifndef included_MPQC_Chemistry_QC_Model_IOR_h
20#include "MPQC_Chemistry_QC_Model_IOR.h"
21#endif
22//
23// Includes for all method dependencies.
24//
25#ifndef included_Chemistry_Molecule_hh
26#include "Chemistry_Molecule.hh"
27#endif
28#ifndef included_MPQC_Chemistry_QC_Model_hh
29#include "MPQC_Chemistry_QC_Model.hh"
30#endif
31#ifndef included_sidl_BaseException_hh
32#include "sidl_BaseException.hh"
33#endif
34#ifndef included_sidl_BaseInterface_hh
35#include "sidl_BaseInterface.hh"
36#endif
37#ifndef included_sidl_ClassInfo_hh
38#include "sidl_ClassInfo.hh"
39#endif
40
41
42// DO-NOT-DELETE splicer.begin(MPQC.Chemistry_QC_Model._includes)
43#include <chemistry/qc/wfn/wfn.h>
44#include "Chemistry_Chemistry_Molecule.hh"
45// DO-NOT-DELETE splicer.end(MPQC.Chemistry_QC_Model._includes)
46
47namespace MPQC {
48
49 /**
50 * Symbol "MPQC.Chemistry_QC_Model" (version 0.2)
51 */
52 class Chemistry_QC_Model_impl
53 // DO-NOT-DELETE splicer.begin(MPQC.Chemistry_QC_Model._inherits)
54
55 /** Chemistry_QC_Model_impl implements a component interface for
56 quanutm chemistry models.
57
58 This is an implementation of a SIDL interface.
59 The stub code is generated by the Babel tool. Do not make
60 modifications outside of splicer blocks, as these will be lost.
61 This is a server implementation for a Babel class, the Babel
62 client code is provided by the cca-chem-generic package.
63 */
64
65 // Put additional inheritance here...
66 // DO-NOT-DELETE splicer.end(MPQC.Chemistry_QC_Model._inherits)
67 {
68
69 private:
70 // Pointer back to IOR.
71 // Use this to dispatch back through IOR vtable.
72 Chemistry_QC_Model self;
73
74 // DO-NOT-DELETE splicer.begin(MPQC.Chemistry_QC_Model._implementation)
75 sc::Ref<sc::Wavefunction> wfn_;
76 Chemistry::Chemistry_Molecule molecule_;
77 // DO-NOT-DELETE splicer.end(MPQC.Chemistry_QC_Model._implementation)
78
79 private:
80 // private default constructor (required)
81 Chemistry_QC_Model_impl()
82 {}
83
84 public:
85 // sidl constructor (required)
86 // Note: alternate Skel constructor doesn't call addref()
87 // (fixes bug #275)
88 Chemistry_QC_Model_impl( struct MPQC_Chemistry_QC_Model__object * s ) :
89 self(s,true) { _ctor(); }
90
91 // user defined construction
92 void _ctor();
93
94 // virtual destructor (required)
95 virtual ~Chemistry_QC_Model_impl() { _dtor(); }
96
97 // user defined destruction
98 void _dtor();
99
100 // static class initializer
101 static void _load();
102
103 public:
104
105 /**
106 * user defined non-static method.
107 */
108 void
109 initialize_parsedkeyval (
110 /* in */ const ::std::string& keyword,
111 /* in */ const ::std::string& input
112 )
113 throw ()
114 ;
115
116 /**
117 * user defined non-static method.
118 */
119 void
120 initialize_parsedkeyval_file (
121 /* in */ const ::std::string& keyword,
122 /* in */ const ::std::string& filename
123 )
124 throw ()
125 ;
126
127 /**
128 * user defined non-static method.
129 */
130 void
131 initialize_aggregatekeyval (
132 /* in */ const ::std::string& keyword,
133 /* in */ const ::std::string& input,
134 /* in */ void* describedclass
135 )
136 throw ()
137 ;
138
139 /**
140 * user defined non-static method.
141 */
142 void
143 initialize_pointer (
144 /* in */ void* ptr
145 )
146 throw ()
147 ;
148
149
150 /**
151 * Set the molecule. @param molecule The new molecule.
152 */
153 void
154 set_molecule (
155 /* in */ ::Chemistry::Molecule molecule
156 )
157 throw ()
158 ;
159
160
161 /**
162 * Returns the molecule. @return The Molecule object.
163 */
164 ::Chemistry::Molecule
165 get_molecule() throw ()
166 ;
167 /**
168 * user defined non-static method.
169 */
170 double
171 get_energy() throw (
172 ::sidl::BaseException
173 );
174
175 /**
176 * Sets the accuracy for subsequent energy calculations.
177 * @param acc The new accuracy.
178 */
179 void
180 set_energy_accuracy (
181 /* in */ double acc
182 )
183 throw ()
184 ;
185
186
187 /**
188 * Returns the accuracy to which the energy is already computed.
189 * The result is undefined if the energy has not already been computed.
190 * @return The energy accuracy.
191 */
192 double
193 get_energy_accuracy() throw ()
194 ;
195
196 /**
197 * This allows a programmer to request that if any result is computed,
198 * then the energy is computed too. This allows, say, for a request
199 * for a gradient to cause the energy to be computed. This computed
200 * energy is cached and returned when the get_energy() member is called.
201 * @param doit Whether or not to compute the energy.
202 */
203 void
204 set_do_energy (
205 /* in */ bool doit
206 )
207 throw ()
208 ;
209
210
211 /**
212 * Returns the Cartesian gradient.
213 */
214 ::sidl::array<double>
215 get_gradient() throw (
216 ::sidl::BaseException
217 );
218
219 /**
220 * Sets the accuracy for subsequent gradient calculations
221 * @param acc The new accuracy for gradients.
222 */
223 void
224 set_gradient_accuracy (
225 /* in */ double acc
226 )
227 throw ()
228 ;
229
230
231 /**
232 * Returns the accuracy to which the gradient is already computed.
233 * The result is undefined if the gradient has not already been computed.
234 * @return The current gradient accuracy.
235 */
236 double
237 get_gradient_accuracy() throw ()
238 ;
239
240 /**
241 * Returns the Cartesian Hessian. @return The Hessian.
242 */
243 ::sidl::array<double>
244 get_hessian() throw (
245 ::sidl::BaseException
246 );
247
248 /**
249 * Sets the accuracy for subsequent Hessian calculations.
250 * @param acc The new accuracy for Hessians.
251 */
252 void
253 set_hessian_accuracy (
254 /* in */ double acc
255 )
256 throw ()
257 ;
258
259
260 /**
261 * Returns the accuracy to which the Hessian is already computed.
262 * The result is undefined if the Hessian has not already been computed.
263 */
264 double
265 get_hessian_accuracy() throw ()
266 ;
267
268 /**
269 * Returns a Cartesian guess Hessian.
270 */
271 ::sidl::array<double>
272 get_guess_hessian() throw (
273 ::sidl::BaseException
274 );
275
276 /**
277 * Sets the accuracy for subsequent guess Hessian calculations.
278 * @param acc The new accuracy for guess Hessians.
279 */
280 void
281 set_guess_hessian_accuracy (
282 /* in */ double acc
283 )
284 throw ()
285 ;
286
287
288 /**
289 * Returns the accuracy to which the guess Hessian is already computed.
290 * The result is undefined if the guess Hessian has not already been computed.
291 * @return The guess hessian accuracy.
292 */
293 double
294 get_guess_hessian_accuracy() throw ()
295 ;
296
297 /**
298 * This can be called when this Model object is no longer needed. No other
299 * members may be called after finalize.
300 */
301 int32_t
302 finalize() throw ()
303 ;
304 }; // end class Chemistry_QC_Model_impl
305
306} // end namespace MPQC
307
308// DO-NOT-DELETE splicer.begin(MPQC.Chemistry_QC_Model._misc)
309// Put miscellaneous things here...
310// DO-NOT-DELETE splicer.end(MPQC.Chemistry_QC_Model._misc)
311
312#endif
Note: See TracBrowser for help on using the repository browser.