MPQC
2.3.1
Main Page
Related Pages
Classes
Files
File List
src
lib
chemistry
molecule
taylor.h
1
//
2
// taylor.h
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_molecule_taylor_h
29
#define _chemistry_molecule_taylor_h
30
31
#ifdef __GNUC__
32
#pragma interface
33
#endif
34
35
#include <chemistry/molecule/energy.h>
36
#include <chemistry/molecule/coor.h>
37
38
namespace
sc {
39
40
// the molecular energy as a taylor expansion
41
class
TaylorMolecularEnergy
:
public
MolecularEnergy
{
42
private
:
43
// the coordinates
44
Ref<SetIntCoor>
coordinates_;
45
46
// The force constants (only the unique ones are given) to arbitrary
47
// order. If nonunique force constants are put here, then the answer
48
// will be wrong
49
std::vector<std::vector<int> > force_constant_index_;
50
std::vector<double> force_constant_value_;
51
52
// the dimension of coordinates_;
53
RefSCDimension
dim_;
54
55
// the expansion point
56
RefSCVector
expansion_point_;
57
58
// the energy at the expansion point
59
double
e0_;
60
61
// the maximum order derivative that can be computed
62
int
maxorder_;
63
public
:
64
TaylorMolecularEnergy
(
const
Ref<KeyVal>
&);
65
TaylorMolecularEnergy
(
StateIn
&);
66
~
TaylorMolecularEnergy
();
67
void
save_data_state
(
StateOut
&);
68
void
print
(std::ostream& =
ExEnv::out0
())
const
;
69
void
compute
();
70
int
value_implemented
()
const
;
71
int
gradient_implemented()
const
;
72
int
hessian_implemented()
const
;
73
};
74
75
}
76
77
#endif
78
79
// Local Variables:
80
// mode: c++
81
// c-file-style: "CLJ"
82
// End:
Generated at Mon Aug 12 2013 12:47:24 for
MPQC
2.3.1 using the documentation package
Doxygen
1.8.3.1.