charmmEEF1.h

Go to the documentation of this file.
00001 // -*- Mode: C++; tab-width: 2; -*-
00002 // vi: set ts=2:
00003 //
00004 // $Id: charmmEEF1.h,v 1.18 2005/12/23 17:01:54 amoll Exp $
00005 //
00006 
00007 // Molecular Mechanics Parameter: class describing parameters needed 
00008 // for the EEF1 solvation component in the CHARMM force field
00009  
00010 #ifndef BALL_MOLMEC_PARAMETER_CHARMMEEF1_H
00011 #define BALL_MOLMEC_PARAMETER_CHARMMEEF1_H
00012 
00013 #ifndef BALL_FORMAT_PARAMETERSECTION_H
00014 # include <BALL/FORMAT/parameterSection.h>
00015 #endif
00016 
00017 #ifndef BALL_MOLMEC_PARAMETER_ATOMTYPES_H
00018 # include <BALL/MOLMEC/PARAMETER/atomTypes.h>
00019 #endif
00020 
00021 namespace BALL 
00022 {
00030   class BALL_EXPORT CharmmEEF1 
00031     : public ParameterSection
00032   {
00033     public:
00034 
00037     struct Values 
00038     {
00040       float V;
00042       float dG_ref;
00044       float dG_free;
00046       float r_min;
00048       float sig_w;
00050       float dH_ref;
00052       float Cp_ref;
00053     };
00054 
00057     struct Data
00058     {
00060       Atom*   atom;
00062       Values  values;
00063     };
00064 
00065 
00069 
00072     CharmmEEF1() ;
00073 
00076     CharmmEEF1(const CharmmEEF1& charmm_EEF1) ;
00077 
00080     virtual ~CharmmEEF1() ;
00081 
00084     virtual void clear() ;
00085 
00087 
00094     virtual bool extractSection(ForceFieldParameters& parameters, 
00095         const String& section_name) ;
00096 
00099     virtual bool extractSection(Parameters& parameters, 
00100         const String& section_name) ;
00101 
00104     bool hasParameters(Atom::Type I) const ;
00105     
00108     CharmmEEF1::Values getParameters(Atom::Type I) const ;
00109     
00114     bool assignParameters(CharmmEEF1::Values& parameters, Atom::Type I)
00115       const ;
00116 
00120 
00123     const CharmmEEF1& operator = (const CharmmEEF1& charmm_EEF1) ;
00124 
00126 
00129 
00132     bool operator == (const CharmmEEF1& charmm_EEF1) const ;
00133 
00135 
00136     protected:
00137 
00138     //_ ?????
00139     Size          number_of_atom_types_;
00140 
00141     //_ ?????
00142     float*        V_;
00143     
00144     //_ ?????
00145     float*        dG_ref_;
00146     
00147     //_ ?????
00148     float*        dG_free_;
00149 
00150     //_ ?????
00151     float*        dH_ref_;
00152 
00153     //_ ?????
00154     float*        Cp_ref_;
00155 
00156     //_ ?????
00157     float*        sig_w_;
00158 
00159     //_ ?????
00160     float*        R_min_;
00161     
00162     //_ ?????
00163     bool*         is_defined_;
00164   };
00165 } // namespace BALL
00166 
00167 #endif // BALL_MOLMEC_PARAMETER_CHARMMEEF1_H