BALL  1.4.1
charmmImproperTorsion.h
Go to the documentation of this file.
00001 // -*- Mode: C++; tab-width: 2; -*-
00002 // vi: set ts=2:
00003 //
00004 
00005 // Molecular Mechanics: Charmm force field, bond stretch component
00006 
00007 #ifndef BALL_MOLMEC_CHARMM_CHARMMIMPROPERTORSION_H
00008 #define BALL_MOLMEC_CHARMM_CHARMMIMPROPERTORSION_H
00009 
00010 #ifndef BALL_COMMON_H
00011 # include <BALL/common.h>
00012 #endif
00013 
00014 #ifndef BALL_MOLMEC_PARAMETER_QUADRATICIMPROPERTORSION_H
00015 # include <BALL/MOLMEC/PARAMETER/quadraticImproperTorsion.h>
00016 #endif
00017 
00018 #ifndef BALL_MOLMEC_PARAMETER_RESIDUETORSIONS_H
00019 # include <BALL/MOLMEC/PARAMETER/residueTorsions.h>
00020 #endif
00021 
00022 #ifndef BALL_MOLMEC_COMMON_FORCEFIELDCOMPONENT_H
00023 # include <BALL/MOLMEC/COMMON/forceFieldComponent.h>
00024 #endif
00025 
00026 #ifndef BALL_MOLMEC_COMMON_FORCEFIELD_H
00027 # include <BALL/MOLMEC/COMMON/forceField.h>
00028 #endif
00029 
00030 namespace BALL 
00031 {
00045   class BALL_EXPORT CharmmImproperTorsion 
00046     : public ForceFieldComponent
00047   {
00048     public:
00049 
00051     #define CHARMM_IMPROPER_TORSIONS_ENABLED "enable IT"
00052 
00056 
00057     BALL_CREATE(CharmmImproperTorsion)
00058 
00059     
00061     CharmmImproperTorsion();
00062 
00065     CharmmImproperTorsion(ForceField& force_field);
00066 
00069     CharmmImproperTorsion(const CharmmImproperTorsion& charmm_stretch);
00070 
00073     virtual ~CharmmImproperTorsion();
00074 
00076 
00079 
00082     virtual bool setup()
00083       throw(Exception::TooManyErrors);
00084 
00086 
00089 
00092     virtual double updateEnergy();
00093 
00096     virtual void updateForces();
00097 
00099 
00100     private:
00101 
00102     /*_ @name Private Attributes
00103     */
00104     //_@{
00105 
00106     /*_ array with the torsions
00107     */
00108     vector<QuadraticImproperTorsion::Data>  impropers_;
00109 
00110     QuadraticImproperTorsion                improper_parameters_;
00111 
00112     ResidueTorsions                         improper_atoms_;
00113 
00114     //_@}
00115    
00116   };
00117 } // namespace BALL 
00118 
00119 #endif // BALL_MOLMEC_CHARMM_CHARMMIMPROPERTORSION_H
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines