1 /* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 Copyright (c) 2011-2021 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.org for more information. 6 7 This file is part of plumed, version 2. 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_Angle_h 23 #define __PLUMED_tools_Angle_h 24 25 #include "Vector.h" 26 27 namespace PLMD { 28 29 /// \ingroup TOOLBOX 30 /// Class to compute 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 /// Angle a; 35 /// double angle=a.compute(v1,v2); 36 /// I know it is a bit misleading. If we really do not need to store "options" 37 /// inside the Angle class, we can remove it later and write compute as 38 /// a static function. 39 class Angle { 40 // still empty, but may accommodate some options in the future 41 public: 42 /// Compute the angle between vectors v1 and v2 43 double compute(const Vector& v1,const Vector& v2)const; 44 /// Compute the angle between vectors v1 and v2 and its derivatives wrt v1 and v2 45 double compute(const Vector& v1,const Vector& v2,Vector& d1,Vector& d2)const; 46 }; 47 48 } 49 50 #endif 51