Fixed bugs with zero local atoms (similar to what has been done to PPPM interp)

This commit is contained in:
Trung Nguyen
2021-09-16 17:27:44 -05:00
parent 98c1a0178c
commit c0b967054e
2 changed files with 23 additions and 11 deletions

View File

@ -342,13 +342,15 @@ void PPPMT::interp(const grdtyp qqrd2e_scale) {
vd_brick.update_device(true);
time_in.stop();
int ainum=this->ans->inum();
if (ainum==0)
return;
time_interp.start();
// Compute the block size and grid size to keep all cores busy
int BX=this->block_size();
int GX=static_cast<int>(ceil(static_cast<double>(this->ans->inum())/BX));
int ainum=this->ans->inum();
k_interp.set_size(GX,BX);
k_interp.run(&atom->x, &atom->q, &ainum, &vd_brick, &d_rho_coeff,
&_npts_x, &_npts_yx, &_brick_x, &_brick_y, &_brick_z, &_delxinv,