amberStretch.h

Go to the documentation of this file.
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