vanDerWaals.h

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