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