00001 // -*- Mode: C++; tab-width: 2; -*- 00002 // vi: set ts=2: 00003 // 00004 00005 // Molecular Mechanics Parameter: class describing parameters needed 00006 // for the EEF1 solvation component in the CHARMM force field 00007 00008 #ifndef BALL_MOLMEC_PARAMETER_CHARMMEEF1_H 00009 #define BALL_MOLMEC_PARAMETER_CHARMMEEF1_H 00010 00011 #ifndef BALL_FORMAT_PARAMETERSECTION_H 00012 # include <BALL/FORMAT/parameterSection.h> 00013 #endif 00014 00015 #ifndef BALL_MOLMEC_PARAMETER_ATOMTYPES_H 00016 # include <BALL/MOLMEC/PARAMETER/atomTypes.h> 00017 #endif 00018 00019 namespace BALL 00020 { 00028 class BALL_EXPORT CharmmEEF1 00029 : public ParameterSection 00030 { 00031 public: 00032 00035 struct Values 00036 { 00038 float V; 00040 float dG_ref; 00042 float dG_free; 00044 float r_min; 00046 float sig_w; 00048 float dH_ref; 00050 float Cp_ref; 00051 }; 00052 00055 struct Data 00056 { 00058 Atom* atom; 00060 Values values; 00061 }; 00062 00063 00067 00070 CharmmEEF1() ; 00071 00074 CharmmEEF1(const CharmmEEF1& charmm_EEF1) ; 00075 00078 virtual ~CharmmEEF1() ; 00079 00082 virtual void clear() ; 00083 00085 00092 virtual bool extractSection(ForceFieldParameters& parameters, 00093 const String& section_name) ; 00094 00097 virtual bool extractSection(Parameters& parameters, 00098 const String& section_name) ; 00099 00102 bool hasParameters(Atom::Type I) const ; 00103 00106 CharmmEEF1::Values getParameters(Atom::Type I) const ; 00107 00112 bool assignParameters(CharmmEEF1::Values& parameters, Atom::Type I) 00113 const ; 00114 00118 00121 const CharmmEEF1& operator = (const CharmmEEF1& charmm_EEF1) ; 00122 00124 00127 00130 bool operator == (const CharmmEEF1& charmm_EEF1) const ; 00131 00133 00134 protected: 00135 00136 //_ ????? 00137 Size number_of_atom_types_; 00138 00139 //_ ????? 00140 float* V_; 00141 00142 //_ ????? 00143 float* dG_ref_; 00144 00145 //_ ????? 00146 float* dG_free_; 00147 00148 //_ ????? 00149 float* dH_ref_; 00150 00151 //_ ????? 00152 float* Cp_ref_; 00153 00154 //_ ????? 00155 float* sig_w_; 00156 00157 //_ ????? 00158 float* R_min_; 00159 00160 //_ ????? 00161 bool* is_defined_; 00162 }; 00163 } // namespace BALL 00164 00165 #endif // BALL_MOLMEC_PARAMETER_CHARMMEEF1_H