00001 // $Id: vanDerWaals.h,v 1.3 2006/05/21 17:35:26 anker Exp $ 00002 // Molecular Mechanics: SLICK force field, modified van-der-Waals term 00003 00004 #ifndef BALL_SCORING_COMPONENTS_VANDERWAALS_H 00005 #define BALL_SCORING_COMPONENTS_VANDERWAALS_H 00006 00007 #include <BALL/SCORING/COMMON/scoringComponent.h> 00008 #include <BALL/MOLMEC/AMBER/amberNonBonded.h> 00009 #include <BALL/MOLMEC/PARAMETER/lennardJones.h> 00010 #include <BALL/MOLMEC/COMMON/atomVector.h> 00011 #include <BALL/MOLMEC/COMMON/forceField.h> 00012 00013 namespace BALL 00014 { 00018 class VanDerWaals 00019 : public ScoringComponent 00020 { 00021 00022 public: 00023 00025 enum CalculationMethod 00026 { 00028 CALCULATION__FULL_LJ_POTENTIAL, 00029 00031 CALCULATION__SOFTENED_LJ_POTENTIAL_SIMPLE, 00032 00034 CALCULATION__SOFTENED_LJ_POTENTIAL_LOG 00035 00036 }; 00037 00038 00040 struct Option 00041 { 00042 00044 static const String VERBOSITY; 00045 00047 static const String VDW_METHOD; 00048 00050 static const String VDW_CUT_ON; 00051 00053 static const String VDW_CUT_OFF; 00054 00056 static const String VDW_SOFTENING_LIMIT; 00057 00059 static const String LENNARD_JONES_FILE; 00060 00061 }; 00062 00063 00064 struct Default 00065 { 00066 00068 static const Size VERBOSITY; 00069 00071 static const Size VDW_METHOD; 00072 00074 static const float VDW_CUT_ON; 00075 00077 static const float VDW_CUT_OFF; 00078 00080 static const float VDW_SOFTENING_LIMIT; 00081 00083 static const String LENNARD_JONES_FILE; 00084 00085 }; 00086 00087 00088 00090 VanDerWaals() 00091 ; 00092 00094 VanDerWaals(ScoringFunction& sf) 00095 ; 00096 00098 VanDerWaals(ScoringComponent& sc) 00099 ; 00100 00102 virtual ~VanDerWaals() 00103 ; 00104 00106 virtual void clear() 00107 ; 00108 00110 virtual bool setup() 00111 ; 00112 00114 virtual double calculateScore() 00115 ; 00116 00117 00118 protected: 00119 00120 //_ 00121 std::vector<LennardJones::Data> non_bonded_; 00122 00123 //_ 00124 std::vector<bool> is_hydrogen_bond_; 00125 00126 Size number_of_1_4_; 00127 Size number_of_h_bonds_; 00128 00129 LennardJones lennard_jones_; 00130 Potential1210 hydrogen_bond_; 00131 00132 00133 private: 00134 00135 //_ 00136 System vdw_system_; 00137 00138 //_ 00139 Molecule* vdw_receptor_; 00140 00141 //_ 00142 Molecule* vdw_ligand_; 00143 00144 //_ 00145 Size calculation_method_; 00146 00147 //_ 00148 float cut_on_vdw_; 00149 00150 //_ 00151 float cut_off_vdw_; 00152 00153 //_ 00154 float scaling_vdw_1_4_; 00155 00156 //_ 00157 float softening_limit_; 00158 00159 //_ 00160 double calculateVDWEnergy_(const AtomVector& atom_vector) 00161 ; 00162 00163 //_ 00164 Size createNonBondedList_(const ForceField::PairVector& atom_pair_vector) 00165 ; 00166 00167 //_ Verbosity of the code 00168 Size verbosity_; 00169 00170 }; 00171 00172 } 00173 00174 #endif // BALL_SCORING_COMPONENTS_VANDERWAALS_H