diff --git a/src/KOKKOS/pair_reaxc_kokkos.cpp b/src/KOKKOS/pair_reaxc_kokkos.cpp index d5f83f45373d9e4d32d6032f0fe343489077e885..1131cb787fc2e5e1978803a39336a10900ac001f 100644 --- a/src/KOKKOS/pair_reaxc_kokkos.cpp +++ b/src/KOKKOS/pair_reaxc_kokkos.cpp @@ -1448,6 +1448,8 @@ void PairReaxCKokkos<DeviceType>::operator()(PairReaxBuildListsFull, const int & } } + if (rsq > cut_bosq) continue; + // bond_list const F_FLOAT rij = sqrt(rsq); const F_FLOAT p_bo1 = paramstwbp(itype,jtype).p_bo1; @@ -1635,6 +1637,8 @@ void PairReaxCKokkos<DeviceType>::operator()(PairReaxBuildListsHalf<NEIGHFLAG>, } } + if (rsq > cut_bosq) continue; + // bond_list const F_FLOAT rij = sqrt(rsq); const F_FLOAT p_bo1 = paramstwbp(itype,jtype).p_bo1; @@ -1856,6 +1860,8 @@ void PairReaxCKokkos<DeviceType>::operator()(PairReaxBuildListsHalf_LessAtomics< } } + if (rsq > cut_bosq) continue; + // bond_list const F_FLOAT rij = sqrt(rsq); const F_FLOAT p_bo1 = paramstwbp(itype,jtype).p_bo1; diff --git a/src/USER-OMP/reaxc_forces_omp.cpp b/src/USER-OMP/reaxc_forces_omp.cpp index 6fec7a7e4d614a1c50306d528bce63af8255df13..321d104b00921e9af51f691191fad4402aea0213 100644 --- a/src/USER-OMP/reaxc_forces_omp.cpp +++ b/src/USER-OMP/reaxc_forces_omp.cpp @@ -601,44 +601,17 @@ void Compute_ForcesOMP( reax_system *system, control_params *control, MPI_Comm comm = mpi_data->world; // Init Forces -#if defined(LOG_PERFORMANCE) - double t_start = 0; - if( system->my_rank == MASTER_NODE ) - t_start = Get_Time( ); -#endif - Init_Forces_noQEq_OMP( system, control, data, workspace, - lists, out_control, comm ); - -#if defined(LOG_PERFORMANCE) - //MPI_Barrier( comm ); - if( system->my_rank == MASTER_NODE ) - Update_Timing_Info( &t_start, &(data->timing.init_forces) ); -#endif + lists, out_control, comm ); // Bonded Interactions Compute_Bonded_ForcesOMP( system, control, data, workspace, lists, out_control, mpi_data->world ); -#if defined(LOG_PERFORMANCE) - if( system->my_rank == MASTER_NODE ) - Update_Timing_Info( &t_start, &(data->timing.bonded) ); -#endif - // Nonbonded Interactions Compute_NonBonded_ForcesOMP( system, control, data, workspace, lists, out_control, mpi_data->world ); -#if defined(LOG_PERFORMANCE) - if( system->my_rank == MASTER_NODE ) - Update_Timing_Info( &t_start, &(data->timing.nonb) ); -#endif - // Total Force Compute_Total_ForceOMP( system, control, data, workspace, lists, mpi_data ); - -#if defined(LOG_PERFORMANCE) - if( system->my_rank == MASTER_NODE ) - Update_Timing_Info( &t_start, &(data->timing.bonded) ); -#endif } diff --git a/src/USER-REAXC/pair_reaxc.cpp b/src/USER-REAXC/pair_reaxc.cpp index 0f4bd49cc855c7e78cc4cd69b3c66b69964b572f..7c135463add0c68cc3a7fb2a036a601bf75c7928 100644 --- a/src/USER-REAXC/pair_reaxc.cpp +++ b/src/USER-REAXC/pair_reaxc.cpp @@ -697,7 +697,7 @@ int PairReaxC::write_reax_lists() int itr_i, itr_j, i, j; int num_nbrs; int *ilist, *jlist, *numneigh, **firstneigh; - double d_sqr; + double d_sqr, cutoff_sqr; rvec dvec; double *dist, **x; reax_list *far_nbrs; @@ -712,6 +712,7 @@ int PairReaxC::write_reax_lists() far_list = far_nbrs->select.far_nbr_list; num_nbrs = 0; + int inum = list->inum; dist = (double*) calloc( system->N, sizeof(double) ); int numall = list->inum + list->gnum; @@ -721,12 +722,17 @@ int PairReaxC::write_reax_lists() jlist = firstneigh[i]; Set_Start_Index( i, num_nbrs, far_nbrs ); + if (i < inum) + cutoff_sqr = control->nonb_cut*control->nonb_cut; + else + cutoff_sqr = control->bond_cut*control->bond_cut; + for( itr_j = 0; itr_j < numneigh[i]; ++itr_j ){ j = jlist[itr_j]; j &= NEIGHMASK; get_distance( x[j], x[i], &d_sqr, &dvec ); - if( d_sqr <= (control->nonb_cut*control->nonb_cut) ){ + if( d_sqr <= (cutoff_sqr) ){ dist[j] = sqrt( d_sqr ); set_far_nbr( &far_list[num_nbrs], j, dist[j], dvec ); ++num_nbrs;