new fix wall/gran/region command, REBO bug fix, new example log files
This commit is contained in:
@ -16,6 +16,7 @@
|
||||
#include "update.h"
|
||||
#include "fix.h"
|
||||
#include "compute.h"
|
||||
#include "kokkos.h"
|
||||
|
||||
using namespace LAMMPS_NS;
|
||||
|
||||
@ -43,13 +44,17 @@ void ModifyKokkos::setup(int vflag)
|
||||
if (update->whichflag == 1)
|
||||
for (int i = 0; i < nfix; i++) {
|
||||
atomKK->sync(fix[i]->execution_space,fix[i]->datamask_read);
|
||||
if (!fix[i]->kokkosable) lmp->kokkos->auto_sync = 1;
|
||||
fix[i]->setup(vflag);
|
||||
lmp->kokkos->auto_sync = 0;
|
||||
atomKK->modified(fix[i]->execution_space,fix[i]->datamask_modify);
|
||||
}
|
||||
else if (update->whichflag == 2)
|
||||
for (int i = 0; i < nfix; i++) {
|
||||
atomKK->sync(fix[i]->execution_space,fix[i]->datamask_read);
|
||||
if (!fix[i]->kokkosable) lmp->kokkos->auto_sync = 1;
|
||||
fix[i]->min_setup(vflag);
|
||||
lmp->kokkos->auto_sync = 0;
|
||||
atomKK->modified(fix[i]->execution_space,fix[i]->datamask_modify);
|
||||
}
|
||||
}
|
||||
@ -65,7 +70,9 @@ void ModifyKokkos::setup_pre_exchange()
|
||||
for (int i = 0; i < n_pre_exchange; i++) {
|
||||
atomKK->sync(fix[list_pre_exchange[i]]->execution_space,
|
||||
fix[list_pre_exchange[i]]->datamask_read);
|
||||
if (!fix[list_pre_exchange[i]]->kokkosable) lmp->kokkos->auto_sync = 1;
|
||||
fix[list_pre_exchange[i]]->setup_pre_exchange();
|
||||
lmp->kokkos->auto_sync = 0;
|
||||
atomKK->modified(fix[list_pre_exchange[i]]->execution_space,
|
||||
fix[list_pre_exchange[i]]->datamask_modify);
|
||||
}
|
||||
@ -73,7 +80,9 @@ void ModifyKokkos::setup_pre_exchange()
|
||||
for (int i = 0; i < n_min_pre_exchange; i++) {
|
||||
atomKK->sync(fix[list_min_pre_exchange[i]]->execution_space,
|
||||
fix[list_min_pre_exchange[i]]->datamask_read);
|
||||
if (!fix[list_min_pre_exchange[i]]->kokkosable) lmp->kokkos->auto_sync = 1;
|
||||
fix[list_min_pre_exchange[i]]->min_setup_pre_exchange();
|
||||
lmp->kokkos->auto_sync = 0;
|
||||
atomKK->modified(fix[list_min_pre_exchange[i]]->execution_space,
|
||||
fix[list_min_pre_exchange[i]]->datamask_modify);
|
||||
}
|
||||
@ -90,7 +99,9 @@ void ModifyKokkos::setup_pre_neighbor()
|
||||
for (int i = 0; i < n_pre_neighbor; i++) {
|
||||
atomKK->sync(fix[list_pre_neighbor[i]]->execution_space,
|
||||
fix[list_pre_neighbor[i]]->datamask_read);
|
||||
if (!fix[list_pre_neighbor[i]]->kokkosable) lmp->kokkos->auto_sync = 1;
|
||||
fix[list_pre_neighbor[i]]->setup_pre_neighbor();
|
||||
lmp->kokkos->auto_sync = 0;
|
||||
atomKK->modified(fix[list_pre_neighbor[i]]->execution_space,
|
||||
fix[list_pre_neighbor[i]]->datamask_modify);
|
||||
}
|
||||
@ -98,7 +109,9 @@ void ModifyKokkos::setup_pre_neighbor()
|
||||
for (int i = 0; i < n_min_pre_neighbor; i++) {
|
||||
atomKK->sync(fix[list_min_pre_neighbor[i]]->execution_space,
|
||||
fix[list_min_pre_neighbor[i]]->datamask_read);
|
||||
if (!fix[list_min_pre_neighbor[i]]->kokkosable) lmp->kokkos->auto_sync = 1;
|
||||
fix[list_min_pre_neighbor[i]]->min_setup_pre_neighbor();
|
||||
lmp->kokkos->auto_sync = 0;
|
||||
atomKK->modified(fix[list_min_pre_neighbor[i]]->execution_space,
|
||||
fix[list_min_pre_neighbor[i]]->datamask_modify);
|
||||
}
|
||||
@ -115,7 +128,9 @@ void ModifyKokkos::setup_pre_force(int vflag)
|
||||
for (int i = 0; i < n_pre_force; i++) {
|
||||
atomKK->sync(fix[list_pre_force[i]]->execution_space,
|
||||
fix[list_pre_force[i]]->datamask_read);
|
||||
if (!fix[list_pre_force[i]]->kokkosable) lmp->kokkos->auto_sync = 1;
|
||||
fix[list_pre_force[i]]->setup_pre_force(vflag);
|
||||
lmp->kokkos->auto_sync = 0;
|
||||
atomKK->modified(fix[list_pre_force[i]]->execution_space,
|
||||
fix[list_pre_force[i]]->datamask_modify);
|
||||
}
|
||||
@ -123,7 +138,9 @@ void ModifyKokkos::setup_pre_force(int vflag)
|
||||
for (int i = 0; i < n_min_pre_force; i++) {
|
||||
atomKK->sync(fix[list_min_pre_force[i]]->execution_space,
|
||||
fix[list_min_pre_force[i]]->datamask_read);
|
||||
if (!fix[list_min_pre_force[i]]->kokkosable) lmp->kokkos->auto_sync = 1;
|
||||
fix[list_min_pre_force[i]]->min_setup_pre_force(vflag);
|
||||
lmp->kokkos->auto_sync = 0;
|
||||
atomKK->modified(fix[list_min_pre_force[i]]->execution_space,
|
||||
fix[list_min_pre_force[i]]->datamask_modify);
|
||||
}
|
||||
@ -138,7 +155,9 @@ void ModifyKokkos::initial_integrate(int vflag)
|
||||
for (int i = 0; i < n_initial_integrate; i++) {
|
||||
atomKK->sync(fix[list_initial_integrate[i]]->execution_space,
|
||||
fix[list_initial_integrate[i]]->datamask_read);
|
||||
if (!fix[list_initial_integrate[i]]->kokkosable) lmp->kokkos->auto_sync = 1;
|
||||
fix[list_initial_integrate[i]]->initial_integrate(vflag);
|
||||
lmp->kokkos->auto_sync = 0;
|
||||
atomKK->modified(fix[list_initial_integrate[i]]->execution_space,
|
||||
fix[list_initial_integrate[i]]->datamask_modify);
|
||||
}
|
||||
@ -153,7 +172,9 @@ void ModifyKokkos::post_integrate()
|
||||
for (int i = 0; i < n_post_integrate; i++) {
|
||||
atomKK->sync(fix[list_post_integrate[i]]->execution_space,
|
||||
fix[list_post_integrate[i]]->datamask_read);
|
||||
if (!fix[list_post_integrate[i]]->kokkosable) lmp->kokkos->auto_sync = 1;
|
||||
fix[list_post_integrate[i]]->post_integrate();
|
||||
lmp->kokkos->auto_sync = 0;
|
||||
atomKK->modified(fix[list_post_integrate[i]]->execution_space,
|
||||
fix[list_post_integrate[i]]->datamask_modify);
|
||||
}
|
||||
@ -168,7 +189,9 @@ void ModifyKokkos::pre_exchange()
|
||||
for (int i = 0; i < n_pre_exchange; i++) {
|
||||
atomKK->sync(fix[list_pre_exchange[i]]->execution_space,
|
||||
fix[list_pre_exchange[i]]->datamask_read);
|
||||
if (!fix[list_pre_exchange[i]]->kokkosable) lmp->kokkos->auto_sync = 1;
|
||||
fix[list_pre_exchange[i]]->pre_exchange();
|
||||
lmp->kokkos->auto_sync = 0;
|
||||
atomKK->modified(fix[list_pre_exchange[i]]->execution_space,
|
||||
fix[list_pre_exchange[i]]->datamask_modify);
|
||||
}
|
||||
@ -183,7 +206,9 @@ void ModifyKokkos::pre_neighbor()
|
||||
for (int i = 0; i < n_pre_neighbor; i++) {
|
||||
atomKK->sync(fix[list_pre_neighbor[i]]->execution_space,
|
||||
fix[list_pre_neighbor[i]]->datamask_read);
|
||||
if (!fix[list_pre_neighbor[i]]->kokkosable) lmp->kokkos->auto_sync = 1;
|
||||
fix[list_pre_neighbor[i]]->pre_neighbor();
|
||||
lmp->kokkos->auto_sync = 0;
|
||||
atomKK->modified(fix[list_pre_neighbor[i]]->execution_space,
|
||||
fix[list_pre_neighbor[i]]->datamask_modify);
|
||||
}
|
||||
@ -198,7 +223,9 @@ void ModifyKokkos::pre_force(int vflag)
|
||||
for (int i = 0; i < n_pre_force; i++) {
|
||||
atomKK->sync(fix[list_pre_force[i]]->execution_space,
|
||||
fix[list_pre_force[i]]->datamask_read);
|
||||
if (!fix[list_pre_force[i]]->kokkosable) lmp->kokkos->auto_sync = 1;
|
||||
fix[list_pre_force[i]]->pre_force(vflag);
|
||||
lmp->kokkos->auto_sync = 0;
|
||||
atomKK->modified(fix[list_pre_force[i]]->execution_space,
|
||||
fix[list_pre_force[i]]->datamask_modify);
|
||||
}
|
||||
@ -213,7 +240,9 @@ void ModifyKokkos::post_force(int vflag)
|
||||
for (int i = 0; i < n_post_force; i++) {
|
||||
atomKK->sync(fix[list_post_force[i]]->execution_space,
|
||||
fix[list_post_force[i]]->datamask_read);
|
||||
if (!fix[list_post_force[i]]->kokkosable) lmp->kokkos->auto_sync = 1;
|
||||
fix[list_post_force[i]]->post_force(vflag);
|
||||
lmp->kokkos->auto_sync = 0;
|
||||
atomKK->modified(fix[list_post_force[i]]->execution_space,
|
||||
fix[list_post_force[i]]->datamask_modify);
|
||||
}
|
||||
@ -228,7 +257,9 @@ void ModifyKokkos::final_integrate()
|
||||
for (int i = 0; i < n_final_integrate; i++) {
|
||||
atomKK->sync(fix[list_final_integrate[i]]->execution_space,
|
||||
fix[list_final_integrate[i]]->datamask_read);
|
||||
if (!fix[list_final_integrate[i]]->kokkosable) lmp->kokkos->auto_sync = 1;
|
||||
fix[list_final_integrate[i]]->final_integrate();
|
||||
lmp->kokkos->auto_sync = 0;
|
||||
atomKK->modified(fix[list_final_integrate[i]]->execution_space,
|
||||
fix[list_final_integrate[i]]->datamask_modify);
|
||||
}
|
||||
@ -245,7 +276,9 @@ void ModifyKokkos::end_of_step()
|
||||
if (update->ntimestep % end_of_step_every[i] == 0) {
|
||||
atomKK->sync(fix[list_end_of_step[i]]->execution_space,
|
||||
fix[list_end_of_step[i]]->datamask_read);
|
||||
if (!fix[list_end_of_step[i]]->kokkosable) lmp->kokkos->auto_sync = 1;
|
||||
fix[list_end_of_step[i]]->end_of_step();
|
||||
lmp->kokkos->auto_sync = 0;
|
||||
atomKK->modified(fix[list_end_of_step[i]]->execution_space,
|
||||
fix[list_end_of_step[i]]->datamask_modify);
|
||||
}
|
||||
@ -263,7 +296,9 @@ double ModifyKokkos::thermo_energy()
|
||||
for (int i = 0; i < n_thermo_energy; i++) {
|
||||
atomKK->sync(fix[list_thermo_energy[i]]->execution_space,
|
||||
fix[list_thermo_energy[i]]->datamask_read);
|
||||
if (!fix[list_thermo_energy[i]]->kokkosable) lmp->kokkos->auto_sync = 1;
|
||||
energy += fix[list_thermo_energy[i]]->compute_scalar();
|
||||
lmp->kokkos->auto_sync = 0;
|
||||
atomKK->modified(fix[list_thermo_energy[i]]->execution_space,
|
||||
fix[list_thermo_energy[i]]->datamask_modify);
|
||||
}
|
||||
@ -279,7 +314,9 @@ void ModifyKokkos::post_run()
|
||||
for (int i = 0; i < nfix; i++) {
|
||||
atomKK->sync(fix[i]->execution_space,
|
||||
fix[i]->datamask_read);
|
||||
if (!fix[i]->kokkosable) lmp->kokkos->auto_sync = 1;
|
||||
fix[i]->post_run();
|
||||
lmp->kokkos->auto_sync = 0;
|
||||
atomKK->modified(fix[i]->execution_space,
|
||||
fix[i]->datamask_modify);
|
||||
}
|
||||
@ -294,7 +331,9 @@ void ModifyKokkos::setup_pre_force_respa(int vflag, int ilevel)
|
||||
for (int i = 0; i < n_pre_force; i++) {
|
||||
atomKK->sync(fix[list_pre_force[i]]->execution_space,
|
||||
fix[list_pre_force[i]]->datamask_read);
|
||||
if (!fix[list_pre_force[i]]->kokkosable) lmp->kokkos->auto_sync = 1;
|
||||
fix[list_pre_force[i]]->setup_pre_force_respa(vflag,ilevel);
|
||||
lmp->kokkos->auto_sync = 0;
|
||||
atomKK->modified(fix[list_pre_force[i]]->execution_space,
|
||||
fix[list_pre_force[i]]->datamask_modify);
|
||||
}
|
||||
@ -309,8 +348,10 @@ void ModifyKokkos::initial_integrate_respa(int vflag, int ilevel, int iloop)
|
||||
for (int i = 0; i < n_initial_integrate_respa; i++) {
|
||||
atomKK->sync(fix[list_initial_integrate_respa[i]]->execution_space,
|
||||
fix[list_initial_integrate_respa[i]]->datamask_read);
|
||||
if (!fix[list_initial_integrate_respa[i]]->kokkosable) lmp->kokkos->auto_sync = 1;
|
||||
fix[list_initial_integrate_respa[i]]->
|
||||
initial_integrate_respa(vflag,ilevel,iloop);
|
||||
lmp->kokkos->auto_sync = 0;
|
||||
atomKK->modified(fix[list_initial_integrate_respa[i]]->execution_space,
|
||||
fix[list_initial_integrate_respa[i]]->datamask_modify);
|
||||
}
|
||||
@ -325,7 +366,9 @@ void ModifyKokkos::post_integrate_respa(int ilevel, int iloop)
|
||||
for (int i = 0; i < n_post_integrate_respa; i++) {
|
||||
atomKK->sync(fix[list_post_integrate_respa[i]]->execution_space,
|
||||
fix[list_post_integrate_respa[i]]->datamask_read);
|
||||
if (!fix[list_post_integrate_respa[i]]->kokkosable) lmp->kokkos->auto_sync = 1;
|
||||
fix[list_post_integrate_respa[i]]->post_integrate_respa(ilevel,iloop);
|
||||
lmp->kokkos->auto_sync = 0;
|
||||
atomKK->modified(fix[list_post_integrate_respa[i]]->execution_space,
|
||||
fix[list_post_integrate_respa[i]]->datamask_modify);
|
||||
}
|
||||
@ -340,7 +383,9 @@ void ModifyKokkos::pre_force_respa(int vflag, int ilevel, int iloop)
|
||||
for (int i = 0; i < n_pre_force_respa; i++) {
|
||||
atomKK->sync(fix[list_pre_force_respa[i]]->execution_space,
|
||||
fix[list_pre_force_respa[i]]->datamask_read);
|
||||
if (!fix[list_pre_force_respa[i]]->kokkosable) lmp->kokkos->auto_sync = 1;
|
||||
fix[list_pre_force_respa[i]]->pre_force_respa(vflag,ilevel,iloop);
|
||||
lmp->kokkos->auto_sync = 0;
|
||||
atomKK->modified(fix[list_pre_force_respa[i]]->execution_space,
|
||||
fix[list_pre_force_respa[i]]->datamask_modify);
|
||||
}
|
||||
@ -355,7 +400,9 @@ void ModifyKokkos::post_force_respa(int vflag, int ilevel, int iloop)
|
||||
for (int i = 0; i < n_post_force_respa; i++) {
|
||||
atomKK->sync(fix[list_post_force_respa[i]]->execution_space,
|
||||
fix[list_post_force_respa[i]]->datamask_read);
|
||||
if (!fix[list_post_force_respa[i]]->kokkosable) lmp->kokkos->auto_sync = 1;
|
||||
fix[list_post_force_respa[i]]->post_force_respa(vflag,ilevel,iloop);
|
||||
lmp->kokkos->auto_sync = 0;
|
||||
atomKK->modified(fix[list_post_force_respa[i]]->execution_space,
|
||||
fix[list_post_force_respa[i]]->datamask_modify);
|
||||
}
|
||||
@ -370,7 +417,9 @@ void ModifyKokkos::final_integrate_respa(int ilevel, int iloop)
|
||||
for (int i = 0; i < n_final_integrate_respa; i++) {
|
||||
atomKK->sync(fix[list_final_integrate_respa[i]]->execution_space,
|
||||
fix[list_final_integrate_respa[i]]->datamask_read);
|
||||
if (!fix[list_final_integrate_respa[i]]->kokkosable) lmp->kokkos->auto_sync = 1;
|
||||
fix[list_final_integrate_respa[i]]->final_integrate_respa(ilevel,iloop);
|
||||
lmp->kokkos->auto_sync = 0;
|
||||
atomKK->modified(fix[list_final_integrate_respa[i]]->execution_space,
|
||||
fix[list_final_integrate_respa[i]]->datamask_modify);
|
||||
}
|
||||
@ -385,7 +434,9 @@ void ModifyKokkos::min_pre_exchange()
|
||||
for (int i = 0; i < n_min_pre_exchange; i++) {
|
||||
atomKK->sync(fix[list_min_pre_exchange[i]]->execution_space,
|
||||
fix[list_min_pre_exchange[i]]->datamask_read);
|
||||
if (!fix[list_min_pre_exchange[i]]->kokkosable) lmp->kokkos->auto_sync = 1;
|
||||
fix[list_min_pre_exchange[i]]->min_pre_exchange();
|
||||
lmp->kokkos->auto_sync = 0;
|
||||
atomKK->modified(fix[list_min_pre_exchange[i]]->execution_space,
|
||||
fix[list_min_pre_exchange[i]]->datamask_modify);
|
||||
}
|
||||
@ -400,7 +451,9 @@ void ModifyKokkos::min_pre_neighbor()
|
||||
for (int i = 0; i < n_min_pre_neighbor; i++) {
|
||||
atomKK->sync(fix[list_min_pre_neighbor[i]]->execution_space,
|
||||
fix[list_min_pre_neighbor[i]]->datamask_read);
|
||||
if (!fix[list_min_pre_neighbor[i]]->kokkosable) lmp->kokkos->auto_sync = 1;
|
||||
fix[list_min_pre_neighbor[i]]->min_pre_neighbor();
|
||||
lmp->kokkos->auto_sync = 0;
|
||||
atomKK->modified(fix[list_min_pre_neighbor[i]]->execution_space,
|
||||
fix[list_min_pre_neighbor[i]]->datamask_modify);
|
||||
}
|
||||
@ -415,7 +468,9 @@ void ModifyKokkos::min_pre_force(int vflag)
|
||||
for (int i = 0; i < n_min_pre_force; i++) {
|
||||
atomKK->sync(fix[list_min_pre_force[i]]->execution_space,
|
||||
fix[list_min_pre_force[i]]->datamask_read);
|
||||
if (!fix[list_min_pre_force[i]]->kokkosable) lmp->kokkos->auto_sync = 1;
|
||||
fix[list_min_pre_force[i]]->min_pre_force(vflag);
|
||||
lmp->kokkos->auto_sync = 0;
|
||||
atomKK->modified(fix[list_min_pre_force[i]]->execution_space,
|
||||
fix[list_min_pre_force[i]]->datamask_modify);
|
||||
}
|
||||
@ -430,7 +485,9 @@ void ModifyKokkos::min_post_force(int vflag)
|
||||
for (int i = 0; i < n_min_post_force; i++) {
|
||||
atomKK->sync(fix[list_min_post_force[i]]->execution_space,
|
||||
fix[list_min_post_force[i]]->datamask_read);
|
||||
if (!fix[list_min_post_force[i]]->kokkosable) lmp->kokkos->auto_sync = 1;
|
||||
fix[list_min_post_force[i]]->min_post_force(vflag);
|
||||
lmp->kokkos->auto_sync = 0;
|
||||
atomKK->modified(fix[list_min_post_force[i]]->execution_space,
|
||||
fix[list_min_post_force[i]]->datamask_modify);
|
||||
}
|
||||
@ -450,8 +507,10 @@ double ModifyKokkos::min_energy(double *fextra)
|
||||
for (int i = 0; i < n_min_energy; i++) {
|
||||
ifix = list_min_energy[i];
|
||||
atomKK->sync(fix[ifix]->execution_space,fix[ifix]->datamask_read);
|
||||
if (!fix[ifix]->kokkosable) lmp->kokkos->auto_sync = 1;
|
||||
eng += fix[ifix]->min_energy(&fextra[index]);
|
||||
index += fix[ifix]->min_dof();
|
||||
lmp->kokkos->auto_sync = 0;
|
||||
atomKK->modified(fix[ifix]->execution_space,fix[ifix]->datamask_modify);
|
||||
}
|
||||
return eng;
|
||||
@ -466,7 +525,9 @@ void ModifyKokkos::min_store()
|
||||
for (int i = 0; i < n_min_energy; i++) {
|
||||
atomKK->sync(fix[list_min_energy[i]]->execution_space,
|
||||
fix[list_min_energy[i]]->datamask_read);
|
||||
if (!fix[list_min_energy[i]]->kokkosable) lmp->kokkos->auto_sync = 1;
|
||||
fix[list_min_energy[i]]->min_store();
|
||||
lmp->kokkos->auto_sync = 0;
|
||||
atomKK->modified(fix[list_min_energy[i]]->execution_space,
|
||||
fix[list_min_energy[i]]->datamask_modify);
|
||||
}
|
||||
@ -481,7 +542,9 @@ void ModifyKokkos::min_clearstore()
|
||||
for (int i = 0; i < n_min_energy; i++) {
|
||||
atomKK->sync(fix[list_min_energy[i]]->execution_space,
|
||||
fix[list_min_energy[i]]->datamask_read);
|
||||
if (!fix[list_min_energy[i]]->kokkosable) lmp->kokkos->auto_sync = 1;
|
||||
fix[list_min_energy[i]]->min_clearstore();
|
||||
lmp->kokkos->auto_sync = 0;
|
||||
atomKK->modified(fix[list_min_energy[i]]->execution_space,
|
||||
fix[list_min_energy[i]]->datamask_modify);
|
||||
}
|
||||
@ -492,7 +555,9 @@ void ModifyKokkos::min_pushstore()
|
||||
for (int i = 0; i < n_min_energy; i++) {
|
||||
atomKK->sync(fix[list_min_energy[i]]->execution_space,
|
||||
fix[list_min_energy[i]]->datamask_read);
|
||||
if (!fix[list_min_energy[i]]->kokkosable) lmp->kokkos->auto_sync = 1;
|
||||
fix[list_min_energy[i]]->min_pushstore();
|
||||
lmp->kokkos->auto_sync = 0;
|
||||
atomKK->modified(fix[list_min_energy[i]]->execution_space,
|
||||
fix[list_min_energy[i]]->datamask_modify);
|
||||
}
|
||||
@ -503,7 +568,9 @@ void ModifyKokkos::min_popstore()
|
||||
for (int i = 0; i < n_min_energy; i++) {
|
||||
atomKK->sync(fix[list_min_energy[i]]->execution_space,
|
||||
fix[list_min_energy[i]]->datamask_read);
|
||||
if (!fix[list_min_energy[i]]->kokkosable) lmp->kokkos->auto_sync = 1;
|
||||
fix[list_min_energy[i]]->min_popstore();
|
||||
lmp->kokkos->auto_sync = 0;
|
||||
atomKK->modified(fix[list_min_energy[i]]->execution_space,
|
||||
fix[list_min_energy[i]]->datamask_modify);
|
||||
}
|
||||
@ -521,8 +588,10 @@ void ModifyKokkos::min_step(double alpha, double *hextra)
|
||||
for (int i = 0; i < n_min_energy; i++) {
|
||||
ifix = list_min_energy[i];
|
||||
atomKK->sync(fix[ifix]->execution_space,fix[ifix]->datamask_read);
|
||||
if (!fix[ifix]->kokkosable) lmp->kokkos->auto_sync = 1;
|
||||
fix[ifix]->min_step(alpha,&hextra[index]);
|
||||
index += fix[ifix]->min_dof();
|
||||
lmp->kokkos->auto_sync = 0;
|
||||
atomKK->modified(fix[ifix]->execution_space,fix[ifix]->datamask_modify);
|
||||
}
|
||||
}
|
||||
@ -540,9 +609,11 @@ double ModifyKokkos::max_alpha(double *hextra)
|
||||
for (int i = 0; i < n_min_energy; i++) {
|
||||
ifix = list_min_energy[i];
|
||||
atomKK->sync(fix[ifix]->execution_space,fix[ifix]->datamask_read);
|
||||
if (!fix[ifix]->kokkosable) lmp->kokkos->auto_sync = 1;
|
||||
double alpha_one = fix[ifix]->max_alpha(&hextra[index]);
|
||||
alpha = MIN(alpha,alpha_one);
|
||||
index += fix[ifix]->min_dof();
|
||||
lmp->kokkos->auto_sync = 0;
|
||||
atomKK->modified(fix[ifix]->execution_space,fix[ifix]->datamask_modify);
|
||||
}
|
||||
return alpha;
|
||||
@ -558,7 +629,9 @@ int ModifyKokkos::min_dof()
|
||||
for (int i = 0; i < n_min_energy; i++) {
|
||||
atomKK->sync(fix[list_min_energy[i]]->execution_space,
|
||||
fix[list_min_energy[i]]->datamask_read);
|
||||
if (!fix[list_min_energy[i]]->kokkosable) lmp->kokkos->auto_sync = 1;
|
||||
ndof += fix[list_min_energy[i]]->min_dof();
|
||||
lmp->kokkos->auto_sync = 0;
|
||||
atomKK->modified(fix[list_min_energy[i]]->execution_space,
|
||||
fix[list_min_energy[i]]->datamask_modify);
|
||||
}
|
||||
@ -576,7 +649,9 @@ int ModifyKokkos::min_reset_ref()
|
||||
for (int i = 0; i < n_min_energy; i++) {
|
||||
atomKK->sync(fix[list_min_energy[i]]->execution_space,
|
||||
fix[list_min_energy[i]]->datamask_read);
|
||||
if (!fix[list_min_energy[i]]->kokkosable) lmp->kokkos->auto_sync = 1;
|
||||
itmp = fix[list_min_energy[i]]->min_reset_ref();
|
||||
lmp->kokkos->auto_sync = 0;
|
||||
if (itmp) itmpall = 1;
|
||||
atomKK->modified(fix[list_min_energy[i]]->execution_space,
|
||||
fix[list_min_energy[i]]->datamask_modify);
|
||||
|
||||
Reference in New Issue
Block a user