--- trunk/mdtools/md_code/Verlet.cpp 2003/01/27 18:28:11 247 +++ trunk/mdtools/md_code/Verlet.cpp 2003/01/27 19:28:21 248 @@ -30,12 +30,14 @@ extern "C"{ } -Verlet::Verlet( SimInfo &info ){ +Verlet::Verlet( SimInfo &info, ForceField* the_ff ){ // get what information we need from the SimInfo object entry_plug = &info; + myFF = the_ff; + c_natoms = info.n_atoms; c_atoms = info.atoms; c_sr_interactions = info.sr_interactions; @@ -123,89 +125,6 @@ Verlet::~Verlet(){ } - -void Verlet::integrate_b( double time_length, double dt, - int n_bond_0, int n_bond_f, - int n_bend_0, int n_bend_f, - int n_torsion_0, int n_torsion_f, - bool do_bonds, bool do_bends, bool do_torsions, - bool do_LRI ){ - -// double percent_tolerance = 0.001; -// int max_iterations = 10000; - - int i, j; /* loop counters */ - double n_loops = time_length / dt; - - // the first time integrate is called, the forces need to be initialized - - if(is_first){ - is_first = 0; - - for(i = 0; i < c_natoms; i++){ - c_atoms[i]->zeroForces(); - } - - if( do_bonds ){ - for(i = n_bond_0; i <= n_bond_f; i++){ - c_sr_interactions[i]->calc_forces(); - } - } - - if( do_bends ){ - for(i = n_bend_0; i <= n_bend_f; i++){ - c_sr_interactions[i]->calc_forces(); - } - } - - if( do_torsions ){ - for(i = n_torsion_0; i <= n_torsion_f; i++){ - c_sr_interactions[i]->calc_forces(); - } - } - - if( do_LRI ) longRange->calc_forces(); - } - - for(i = 0; i < n_loops; i++){ - - move_a( dt ); - - // calculate the forces - - for(j = 0; j < c_natoms; j++){ - c_atoms[j]->zeroForces(); - } - - - if( do_bonds ){ - for(i = n_bond_0; i <= n_bond_f; i++){ - c_sr_interactions[i]->calc_forces(); - } - } - - if( do_bends ){ - for(i = n_bend_0; i <= n_bend_f; i++){ - c_sr_interactions[i]->calc_forces(); - } - } - - if( do_torsions ){ - for(i = n_torsion_0; i <= n_torsion_f; i++){ - c_sr_interactions[i]->calc_forces(); - } - } - - if( do_LRI ) longRange->calc_forces(); - - - // complete the verlet move - - move_b( dt ); - } -} - - void Verlet::integrate( void ){ int i, j; /* loop counters */ @@ -245,16 +164,8 @@ void Verlet::integrate( void ){ // the first time integrate is called, the forces need to be initialized - for(i = 0; i < c_natoms; i++){ - c_atoms[i]->zeroForces(); - } + myFF->doForces(); - for(i = 0; i < c_n_SRI; i++){ - c_sr_interactions[i]->calc_forces(); - } - - longRange->calc_forces(); - if( entry_plug->setTemp ){ tStats->velocitize(); } @@ -302,16 +213,8 @@ void Verlet::integrate( void ){ // calculate the forces - for(j = 0; j < c_natoms; j++){ - c_atoms[j]->zeroForces(); - } + myFF->doForces(); - for(j = 0; j < c_n_SRI; j++){ - c_sr_interactions[j]->calc_forces(); - } - - longRange->calc_forces(); - // finish the constrain move ( same as above. ) for( j=0; jzeroForces(); - } - - for(j = 0; j < c_n_SRI; j++){ - c_sr_interactions[j]->calc_forces(); - } - - longRange->calc_forces(); + myFF->doForces(); // complete the verlet move