Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
tools
Torsion.h
Go to the documentation of this file.
1
/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2
Copyright (c) 2013 The plumed team
3
(see the PEOPLE file at the root of the distribution for a list of names)
4
5
See http://www.plumed-code.org for more information.
6
7
This file is part of plumed, version 2.0.
8
9
plumed is free software: you can redistribute it and/or modify
10
it under the terms of the GNU Lesser General Public License as published by
11
the Free Software Foundation, either version 3 of the License, or
12
(at your option) any later version.
13
14
plumed is distributed in the hope that it will be useful,
15
but WITHOUT ANY WARRANTY; without even the implied warranty of
16
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
GNU Lesser General Public License for more details.
18
19
You should have received a copy of the GNU Lesser General Public License
20
along with plumed. If not, see <http://www.gnu.org/licenses/>.
21
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
22
#ifndef __PLUMED_tools_Torsion_h
23
#define __PLUMED_tools_Torsion_h
24
25
#include "
Vector.h
"
26
27
namespace
PLMD
{
28
29
/// \ingroup TOOLBOX
30
/// Class to compute torsional angles.
31
/// I define it as a class even if it does not contain anything. The reason
32
/// is that in the future I would like to extend it to contain options about
33
/// how the calculation should be done. So, for now use it as
34
/// Torsion t;
35
/// double angle=t.compute(v1,v2,v3);
36
/// I know it is a bit misleading. If we really do not need to store "options"
37
/// inside the Torsion class, we can remove it later and write compute as
38
/// a static function.
39
class
Torsion
{
40
// still empty, but may accomodate some options in the future
41
public
:
42
/// Compute the angle between the projections of v1 and v3 on the plane orthogonal
43
/// to v2. To have a "normal" definition (= plumed1), use it as
44
/// compute(r01,r12,r23);
45
/// See ColvarTorsion for a practical usage...
46
double
compute
(
const
Vector
& v1,
const
Vector
& v2,
const
Vector
& v3)
const
;
47
/// This is the version which also computes the derivatives wrt the arguments.
48
double
compute
(
const
Vector
& v1,
const
Vector
& v2,
const
Vector
& v3,
Vector
& d1,
Vector
& d2,
Vector
& d3)
const
;
49
};
50
51
}
52
53
#endif
PLMD::Torsion
Class to compute torsional angles.
Definition:
Torsion.h:39
PLMD::Torsion::compute
double compute(const Vector &v1, const Vector &v2, const Vector &v3) const
Compute the angle between the projections of v1 and v3 on the plane orthogonal to v2...
Definition:
Torsion.cpp:30
PLMD::VectorGeneric
Class implementing fixed size vectors of doubles.
Definition:
Vector.h:74
Vector.h
PLMD
Definition:
Analysis.cpp:30
Hosted by GitHub
1.8.8