00001 00009 #ifndef HAINTERMOL_H 00010 #define HAINTERMOL_H 00011 00012 class HaMolecule; 00013 class CWinThread; 00014 00015 #include "hastl.h" 00016 #include "command.h" 00017 #include "haatgroup.h" 00018 #include "hacompmod.h" 00019 #include "hasurface.h" 00020 00021 class HaField3D; 00022 00023 const int NO_ELECTR=0; 00024 const int CONTINUUM_ELECTR = 1; 00025 const int COULOMB_ELECTR = 2; 00026 const int CHARGES_IN_FIELD_ELECTR = 3; 00027 00029 class HaInterMolMod : public HaCompMod 00030 { 00031 public: 00032 HaInterMolMod(HaMolSet* new_phost_mset); 00033 virtual ~HaInterMolMod(); 00034 00035 void SetStdParams(); 00036 00037 bool Initialize(); 00038 00039 double CalculateMMEnergy(); 00040 00041 double CalcElStaticInter(); 00042 00043 double CalcContElectrEne(vector<AtomList*> inter_groups); 00044 00045 bool CalcEffInterEne(); 00046 00047 int RunMCDock(); 00048 int PauseMCDock(); 00049 int ResumeMCDock(); 00050 int StopMCDock(); 00051 00052 int RunMCDocThread(); 00053 00054 00055 CWinThread* mc_dock_thread; 00056 00057 int module_to_init_flag; 00058 int build_nb_contact_list; 00059 00060 int BuildNonBondListInterMol(); 00061 00062 double cur_intermol_ene; 00063 double electr_inter_ene; 00064 double vdw_inter_ene; 00065 double add_eff_ene; 00066 double MC_temp; 00067 double ang_ratio; 00068 double tr_ratio; 00069 int delay_time; 00070 int stop_calc_flag; 00071 int skip_pt_init; 00072 int skip_pt_between; 00073 00074 int play_back_flag; 00075 00076 int dont_calc_ene_flag; 00077 int save_image_seq_gif; 00078 int save_image_seq_pict; 00079 int trace_atoms_flag; 00080 00081 int output_rejected_points; 00082 00083 HaString MC_traj_file_name; 00084 00085 int electr_model; 00086 00087 00088 int InitMolecularFields(); 00089 double CalcChargesInFieldEne(); 00090 00091 int compute_pk; 00092 00093 void SetElectrModel(int new_elecr_model_idx); 00094 00095 int calc_et_rate; 00096 00097 int num_mc_steps; 00098 00099 vector<HaMolecule*> interact_mol; 00100 00101 HaField3D el_pot_field; 00102 HaField3D vdw_pot_field; 00103 00104 AtomList traced_atoms; 00105 protected: 00106 00107 }; 00108 00109 #endif // end if !defined(HAINTERMOL_H)
1.3.6