Main Page | Modules | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members
amberStretch.h
00001 // -*- Mode: C++; tab-width: 2; -*- 00002 // vi: set ts=2: 00003 // 00004 // $Id: amberStretch.h,v 1.24.18.1 2007-03-25 21:23:47 oliver Exp $ 00005 // 00006 00007 // Molecular Mechanics: Amber force field, bond stretch component 00008 00009 #ifndef BALL_MOLMEC_AMBER_AMBERSTRETCH_H 00010 #define BALL_MOLMEC_AMBER_AMBERSTRETCH_H 00011 00012 #ifndef BALL_COMMON_H 00013 # include <BALL/common.h> 00014 #endif 00015 00016 #ifndef BALL_MOLMEC_COMMON_FORCEFIELDCOMPONENT_H 00017 # include <BALL/MOLMEC/COMMON/forceFieldComponent.h> 00018 #endif 00019 00020 #ifndef BALL_MOLMEC_COMMON_FORCEFIELD_H 00021 # include <BALL/MOLMEC/COMMON/forceField.h> 00022 #endif 00023 00024 #ifndef BALL_MOLMEC_PARAMETER_QUADRATICBONDSTRETCH_H 00025 # include <BALL/MOLMEC/PARAMETER/quadraticBondStretch.h> 00026 #endif 00027 00028 namespace BALL 00029 { 00034 class BALL_EXPORT AmberStretch 00035 : public ForceFieldComponent 00036 { 00037 public: 00038 00040 #define AMBER_STRETCH_ENABLED "enable Stretches" 00041 00045 00046 BALL_CREATE(AmberStretch) 00047 00048 00050 AmberStretch(); 00051 00054 AmberStretch(ForceField& force_field); 00055 00058 AmberStretch(const AmberStretch& amber_stretch); 00059 00062 virtual ~AmberStretch(); 00063 00065 00068 00071 virtual bool setup() 00072 throw(Exception::TooManyErrors); 00073 00075 00078 00081 virtual double updateEnergy(); 00082 00085 virtual void updateForces(); 00086 00089 virtual void update() 00090 throw(Exception::TooManyErrors); 00091 00093 00094 private: 00095 00096 /*_ @name Private Attributes 00097 */ 00098 //_@{ 00099 00100 /*_ 00101 */ 00102 std::vector<QuadraticBondStretch::Data> stretch_; 00103 00104 /*_ The stretch parameters section 00105 */ 00106 QuadraticBondStretch stretch_parameters_; 00107 00108 //_@} 00109 00110 }; 00111 } // namespace BALL 00112 00113 #endif // BALL_MOLMEC_AMBER_AMBERSTRETCH_H