示例#1
0
文件: forces.c 项目: zhang-b/PuReMD
void Compute_NonBonded_Forces(reax_system *system, control_params *control,
		simulation_data *data, static_storage *workspace, list** lists,
		output_controls *out_control) {
	real t_start, t_elapsed;
#ifdef TEST_ENERGY
	fprintf( out_control->evdw, "step: %d\n%6s%6s%12s%12s%12s\n",
			data->step, "atom1", "atom2", "r12", "evdw", "total" );
	fprintf( out_control->ecou, "step: %d\n%6s%6s%12s%12s%12s%12s%12s\n",
			data->step, "atom1", "atom2", "r12", "q1", "q2", "ecou", "total" );
#endif

	t_start = Get_Time();
        if (control->qeq)
	    QEq(system, control, data, workspace, lists[FAR_NBRS], out_control);
	t_elapsed = Get_Timing_Info(t_start);
	data->timing.QEq += t_elapsed;
#if defined(DEBUG_FOCUS)
	fprintf( stderr, "qeq - " );
#endif

	if (control->tabulate == 0)
		vdW_Coulomb_Energy(system, control, data, workspace, lists, out_control);
	else
		Tabulated_vdW_Coulomb_Energy(system, control, data, workspace, lists,
				out_control);
#if defined(DEBUG_FOCUS)
	fprintf( stderr, "nonb forces - " );
#endif

#ifdef TEST_FORCES
	Print_vdW_Coulomb_Forces( system, control, data, workspace,
			lists, out_control );
#endif
}
示例#2
0
void Compute_NonBonded_Forces( reax_system *system, control_params *control,
                               simulation_data *data, storage *workspace,
                               reax_list **lists, output_controls *out_control,
                               MPI_Comm comm )
{

  /* van der Waals and Coulomb interactions */
  if( control->tabulate == 0 )
    vdW_Coulomb_Energy( system, control, data, workspace,
                        lists, out_control );
  else
    Tabulated_vdW_Coulomb_Energy( system, control, data, workspace,
                                  lists, out_control );
}
示例#3
0
void Compute_NonBonded_Forces( reax_system *system, control_params *control,
                               simulation_data *data, storage *workspace,
                               reax_list **lists, output_controls *out_control,
                               MPI_Comm comm )
{
  /* Mark beginning of a new timestep in nonbonded energy files */
#if defined(TEST_ENERGY)
  Debug_Marker_Nonbonded( out_control, data->step );
#endif

  /* van der Waals and Coulomb interactions */
  if( control->tabulate == 0 )
    vdW_Coulomb_Energy( system, control, data, workspace,
                        lists, out_control );
  else
    Tabulated_vdW_Coulomb_Energy( system, control, data, workspace,
                                  lists, out_control );

#if defined(DEBUG)
  fprintf( stderr, "p%d: nonbonded forces done\n", system->my_rank );
  MPI_Barrier( comm );
#endif
}