Adding ubuf union to Kokkos atom_vec styles
This commit is contained in:
@ -714,18 +714,18 @@ struct AtomVecAngleKokkos_PackBorder {
|
||||
_buf(i,0) = _x(j,0);
|
||||
_buf(i,1) = _x(j,1);
|
||||
_buf(i,2) = _x(j,2);
|
||||
_buf(i,3) = _tag(j);
|
||||
_buf(i,4) = _type(j);
|
||||
_buf(i,5) = _mask(j);
|
||||
_buf(i,6) = _molecule(j);
|
||||
_buf(i,3) = d_ubuf(_tag(j)).d;
|
||||
_buf(i,4) = d_ubuf(_type(j)).d;
|
||||
_buf(i,5) = d_ubuf(_mask(j)).d;
|
||||
_buf(i,6) = d_ubuf(_molecule(j)).d;
|
||||
} else {
|
||||
_buf(i,0) = _x(j,0) + _dx;
|
||||
_buf(i,1) = _x(j,1) + _dy;
|
||||
_buf(i,2) = _x(j,2) + _dz;
|
||||
_buf(i,3) = _tag(j);
|
||||
_buf(i,4) = _type(j);
|
||||
_buf(i,5) = _mask(j);
|
||||
_buf(i,6) = _molecule(j);
|
||||
_buf(i,3) = d_ubuf(_tag(j)).d;
|
||||
_buf(i,4) = d_ubuf(_type(j)).d;
|
||||
_buf(i,5) = d_ubuf(_mask(j)).d;
|
||||
_buf(i,6) = d_ubuf(_molecule(j)).d;
|
||||
}
|
||||
}
|
||||
};
|
||||
@ -957,10 +957,10 @@ struct AtomVecAngleKokkos_UnpackBorder {
|
||||
_x(i+_first,0) = _buf(i,0);
|
||||
_x(i+_first,1) = _buf(i,1);
|
||||
_x(i+_first,2) = _buf(i,2);
|
||||
_tag(i+_first) = static_cast<tagint> (_buf(i,3));
|
||||
_type(i+_first) = static_cast<int> (_buf(i,4));
|
||||
_mask(i+_first) = static_cast<int> (_buf(i,5));
|
||||
_molecule(i+_first) = static_cast<tagint> (_buf(i,6));
|
||||
_tag(i+_first) = (tagint) d_ubuf(_buf(i,3)).i;
|
||||
_type(i+_first) = (int) d_ubuf(_buf(i,4)).i;
|
||||
_mask(i+_first) = (int) d_ubuf(_buf(i,5)).i;
|
||||
_molecule(i+_first) = (tagint) d_ubuf(_buf(i,6)).i;
|
||||
|
||||
}
|
||||
};
|
||||
@ -1165,28 +1165,28 @@ struct AtomVecAngleKokkos_PackExchangeFunctor {
|
||||
_buf(mysend,m++) = _v(i,0);
|
||||
_buf(mysend,m++) = _v(i,1);
|
||||
_buf(mysend,m++) = _v(i,2);
|
||||
_buf(mysend,m++) = _tag(i);
|
||||
_buf(mysend,m++) = _type(i);
|
||||
_buf(mysend,m++) = _mask(i);
|
||||
_buf(mysend,m++) = _image(i);
|
||||
_buf(mysend,m++) = _molecule(i);
|
||||
_buf(mysend,m++) = _num_bond(i);
|
||||
_buf(mysend,m++) = d_ubuf(_tag(i)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_type(i)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_mask(i)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_image(i)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_molecule(i)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_num_bond(i)).d;
|
||||
for (k = 0; k < _num_bond(i); k++) {
|
||||
_buf(mysend,m++) = _bond_type(i,k);
|
||||
_buf(mysend,m++) = _bond_atom(i,k);
|
||||
_buf(mysend,m++) = d_ubuf(_bond_type(i,k)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_bond_atom(i,k)).d;
|
||||
}
|
||||
_buf(mysend,m++) = _num_angle(i);
|
||||
_buf(mysend,m++) = d_ubuf(_num_angle(i)).d;
|
||||
for (k = 0; k < _num_angle(i); k++) {
|
||||
_buf(mysend,m++) = _angle_type(i,k);
|
||||
_buf(mysend,m++) = _angle_atom1(i,k);
|
||||
_buf(mysend,m++) = _angle_atom2(i,k);
|
||||
_buf(mysend,m++) = _angle_atom3(i,k);
|
||||
_buf(mysend,m++) = d_ubuf(_angle_type(i,k)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_angle_atom1(i,k)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_angle_atom2(i,k)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_angle_atom3(i,k)).d;
|
||||
}
|
||||
_buf(mysend,m++) = _nspecial(i,0);
|
||||
_buf(mysend,m++) = _nspecial(i,1);
|
||||
_buf(mysend,m++) = _nspecial(i,2);
|
||||
_buf(mysend,m++) = d_ubuf(_nspecial(i,0)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_nspecial(i,1)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_nspecial(i,2)).d;
|
||||
for (k = 0; k < _nspecial(i,2); k++)
|
||||
_buf(mysend,m++) = _special(i,k);
|
||||
_buf(mysend,m++) = d_ubuf(_special(i,k)).d;
|
||||
|
||||
const int j = _copylist(mysend);
|
||||
|
||||
@ -1366,30 +1366,30 @@ struct AtomVecAngleKokkos_UnpackExchangeFunctor {
|
||||
_v(i,0) = _buf(myrecv,m++);
|
||||
_v(i,1) = _buf(myrecv,m++);
|
||||
_v(i,2) = _buf(myrecv,m++);
|
||||
_tag(i) = _buf(myrecv,m++);
|
||||
_type(i) = _buf(myrecv,m++);
|
||||
_mask(i) = _buf(myrecv,m++);
|
||||
_image(i) = _buf(myrecv,m++);
|
||||
_tag(i) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_type(i) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_mask(i) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_image(i) = (imageint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
|
||||
_molecule(i) = _buf(myrecv,m++);
|
||||
_num_bond(i) = _buf(myrecv,m++);
|
||||
_molecule(i) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_num_bond(i) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
int k;
|
||||
for (k = 0; k < _num_bond(i); k++) {
|
||||
_bond_type(i,k) = _buf(myrecv,m++);
|
||||
_bond_atom(i,k) = _buf(myrecv,m++);
|
||||
_bond_type(i,k) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_bond_atom(i,k) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
}
|
||||
_num_angle(i) = _buf(myrecv,m++);
|
||||
_num_angle(i) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
for (k = 0; k < _num_angle(i); k++) {
|
||||
_angle_type(i,k) = _buf(myrecv,m++);
|
||||
_angle_atom1(i,k) = _buf(myrecv,m++);
|
||||
_angle_atom2(i,k) = _buf(myrecv,m++);
|
||||
_angle_atom3(i,k) = _buf(myrecv,m++);
|
||||
_angle_type(i,k) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_angle_atom1(i,k) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_angle_atom2(i,k) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_angle_atom3(i,k) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
}
|
||||
_nspecial(i,0) = _buf(myrecv,m++);
|
||||
_nspecial(i,1) = _buf(myrecv,m++);
|
||||
_nspecial(i,2) = _buf(myrecv,m++);
|
||||
_nspecial(i,0) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_nspecial(i,1) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_nspecial(i,2) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
for (k = 0; k < _nspecial(i,2); k++)
|
||||
_special(i,k) = _buf(myrecv,m++);
|
||||
_special(i,k) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@ -619,16 +619,16 @@ struct AtomVecAtomicKokkos_PackBorder {
|
||||
_buf(i,0) = _x(j,0);
|
||||
_buf(i,1) = _x(j,1);
|
||||
_buf(i,2) = _x(j,2);
|
||||
_buf(i,3) = _tag(j);
|
||||
_buf(i,4) = _type(j);
|
||||
_buf(i,5) = _mask(j);
|
||||
_buf(i,3) = d_ubuf(_tag(j)).d;
|
||||
_buf(i,4) = d_ubuf(_type(j)).d;
|
||||
_buf(i,5) = d_ubuf(_mask(j)).d;
|
||||
} else {
|
||||
_buf(i,0) = _x(j,0) + _dx;
|
||||
_buf(i,1) = _x(j,1) + _dy;
|
||||
_buf(i,2) = _x(j,2) + _dz;
|
||||
_buf(i,3) = _tag(j);
|
||||
_buf(i,4) = _type(j);
|
||||
_buf(i,5) = _mask(j);
|
||||
_buf(i,3) = d_ubuf(_tag(j)).d;
|
||||
_buf(i,4) = d_ubuf(_type(j)).d;
|
||||
_buf(i,5) = d_ubuf(_mask(j)).d;
|
||||
}
|
||||
}
|
||||
};
|
||||
@ -836,9 +836,9 @@ struct AtomVecAtomicKokkos_UnpackBorder {
|
||||
_x(i+_first,0) = _buf(i,0);
|
||||
_x(i+_first,1) = _buf(i,1);
|
||||
_x(i+_first,2) = _buf(i,2);
|
||||
_tag(i+_first) = static_cast<tagint> (_buf(i,3));
|
||||
_type(i+_first) = static_cast<int> (_buf(i,4));
|
||||
_mask(i+_first) = static_cast<int> (_buf(i,5));
|
||||
_tag(i+_first) = (tagint) d_ubuf(_buf(i,3)).i;
|
||||
_type(i+_first) = (int) d_ubuf(_buf(i,4)).i;
|
||||
_mask(i+_first) = (int) d_ubuf(_buf(i,5)).i;
|
||||
// printf("%i %i %lf %lf %lf %i BORDER\n",_tag(i+_first),i+_first,_x(i+_first,0),_x(i+_first,1),_x(i+_first,2),_type(i+_first));
|
||||
}
|
||||
};
|
||||
@ -977,10 +977,10 @@ struct AtomVecAtomicKokkos_PackExchangeFunctor {
|
||||
_buf(mysend,4) = _v(i,0);
|
||||
_buf(mysend,5) = _v(i,1);
|
||||
_buf(mysend,6) = _v(i,2);
|
||||
_buf(mysend,7) = _tag[i];
|
||||
_buf(mysend,8) = _type[i];
|
||||
_buf(mysend,9) = _mask[i];
|
||||
_buf(mysend,10) = _image[i];
|
||||
_buf(mysend,7) = d_ubuf(_tag[i]).d;
|
||||
_buf(mysend,8) = d_ubuf(_type[i]).d;
|
||||
_buf(mysend,9) = d_ubuf(_mask[i]).d;
|
||||
_buf(mysend,10) = d_ubuf(_image[i]).d;
|
||||
const int j = _copylist(mysend);
|
||||
|
||||
if(j>-1) {
|
||||
@ -1091,10 +1091,10 @@ struct AtomVecAtomicKokkos_UnpackExchangeFunctor {
|
||||
_v(i,0) = _buf(myrecv,4);
|
||||
_v(i,1) = _buf(myrecv,5);
|
||||
_v(i,2) = _buf(myrecv,6);
|
||||
_tag[i] = _buf(myrecv,7);
|
||||
_type[i] = _buf(myrecv,8);
|
||||
_mask[i] = _buf(myrecv,9);
|
||||
_image[i] = _buf(myrecv,10);
|
||||
_tag[i] = (tagint) d_ubuf(_buf(myrecv,7)).i;
|
||||
_type[i] = (int) d_ubuf(_buf(myrecv,8)).i;
|
||||
_mask[i] = (int) d_ubuf(_buf(myrecv,9)).i;
|
||||
_image[i] = (imageint) d_ubuf(_buf(myrecv,10)).i;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@ -662,18 +662,18 @@ struct AtomVecBondKokkos_PackBorder {
|
||||
_buf(i,0) = _x(j,0);
|
||||
_buf(i,1) = _x(j,1);
|
||||
_buf(i,2) = _x(j,2);
|
||||
_buf(i,3) = _tag(j);
|
||||
_buf(i,4) = _type(j);
|
||||
_buf(i,5) = _mask(j);
|
||||
_buf(i,6) = _molecule(j);
|
||||
_buf(i,3) = d_ubuf(_tag(j)).d;
|
||||
_buf(i,4) = d_ubuf(_type(j)).d;
|
||||
_buf(i,5) = d_ubuf(_mask(j)).d;
|
||||
_buf(i,6) = d_ubuf(_molecule(j)).d;
|
||||
} else {
|
||||
_buf(i,0) = _x(j,0) + _dx;
|
||||
_buf(i,1) = _x(j,1) + _dy;
|
||||
_buf(i,2) = _x(j,2) + _dz;
|
||||
_buf(i,3) = _tag(j);
|
||||
_buf(i,4) = _type(j);
|
||||
_buf(i,5) = _mask(j);
|
||||
_buf(i,6) = _molecule(j);
|
||||
_buf(i,3) = d_ubuf(_tag(j)).d;
|
||||
_buf(i,4) = d_ubuf(_type(j)).d;
|
||||
_buf(i,5) = d_ubuf(_mask(j)).d;
|
||||
_buf(i,6) = d_ubuf(_molecule(j)).d;
|
||||
}
|
||||
}
|
||||
};
|
||||
@ -905,10 +905,10 @@ struct AtomVecBondKokkos_UnpackBorder {
|
||||
_x(i+_first,0) = _buf(i,0);
|
||||
_x(i+_first,1) = _buf(i,1);
|
||||
_x(i+_first,2) = _buf(i,2);
|
||||
_tag(i+_first) = static_cast<tagint> (_buf(i,3));
|
||||
_type(i+_first) = static_cast<int> (_buf(i,4));
|
||||
_mask(i+_first) = static_cast<int> (_buf(i,5));
|
||||
_molecule(i+_first) = static_cast<tagint> (_buf(i,6));
|
||||
_tag(i+_first) = (tagint) d_ubuf(_buf(i,3)).i;
|
||||
_type(i+_first) = (int) d_ubuf(_buf(i,4)).i;
|
||||
_mask(i+_first) = (int) d_ubuf(_buf(i,5)).i;
|
||||
_molecule(i+_first) = (tagint) d_ubuf(_buf(i,6)).i;
|
||||
|
||||
}
|
||||
};
|
||||
@ -1095,21 +1095,21 @@ struct AtomVecBondKokkos_PackExchangeFunctor {
|
||||
_buf(mysend,m++) = _v(i,0);
|
||||
_buf(mysend,m++) = _v(i,1);
|
||||
_buf(mysend,m++) = _v(i,2);
|
||||
_buf(mysend,m++) = _tag(i);
|
||||
_buf(mysend,m++) = _type(i);
|
||||
_buf(mysend,m++) = _mask(i);
|
||||
_buf(mysend,m++) = _image(i);
|
||||
_buf(mysend,m++) = _molecule(i);
|
||||
_buf(mysend,m++) = _num_bond(i);
|
||||
_buf(mysend,m++) = d_ubuf(_tag(i)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_type(i)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_mask(i)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_image(i)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_molecule(i)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_num_bond(i)).d;
|
||||
for (k = 0; k < _num_bond(i); k++) {
|
||||
_buf(mysend,m++) = _bond_type(i,k);
|
||||
_buf(mysend,m++) = _bond_atom(i,k);
|
||||
_buf(mysend,m++) = d_ubuf(_bond_type(i,k)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_bond_atom(i,k)).d;
|
||||
}
|
||||
_buf(mysend,m++) = _nspecial(i,0);
|
||||
_buf(mysend,m++) = _nspecial(i,1);
|
||||
_buf(mysend,m++) = _nspecial(i,2);
|
||||
_buf(mysend,m++) = d_ubuf(_nspecial(i,0)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_nspecial(i,1)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_nspecial(i,2)).d;
|
||||
for (k = 0; k < _nspecial(i,2); k++)
|
||||
_buf(mysend,m++) = _special(i,k);
|
||||
_buf(mysend,m++) = d_ubuf(_special(i,k)).d;
|
||||
|
||||
const int j = _copylist(mysend);
|
||||
|
||||
@ -1267,23 +1267,23 @@ struct AtomVecBondKokkos_UnpackExchangeFunctor {
|
||||
_v(i,0) = _buf(myrecv,m++);
|
||||
_v(i,1) = _buf(myrecv,m++);
|
||||
_v(i,2) = _buf(myrecv,m++);
|
||||
_tag(i) = _buf(myrecv,m++);
|
||||
_type(i) = _buf(myrecv,m++);
|
||||
_mask(i) = _buf(myrecv,m++);
|
||||
_image(i) = _buf(myrecv,m++);
|
||||
_tag(i) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_type(i) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_mask(i) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_image(i) = (imageint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
|
||||
_molecule(i) = _buf(myrecv,m++);
|
||||
_num_bond(i) = _buf(myrecv,m++);
|
||||
_molecule(i) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_num_bond(i) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
int k;
|
||||
for (k = 0; k < _num_bond(i); k++) {
|
||||
_bond_type(i,k) = _buf(myrecv,m++);
|
||||
_bond_atom(i,k) = _buf(myrecv,m++);
|
||||
_bond_type(i,k) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_bond_atom(i,k) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
}
|
||||
_nspecial(i,0) = _buf(myrecv,m++);
|
||||
_nspecial(i,1) = _buf(myrecv,m++);
|
||||
_nspecial(i,2) = _buf(myrecv,m++);
|
||||
_nspecial(i,0) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_nspecial(i,1) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_nspecial(i,2) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
for (k = 0; k < _nspecial(i,2); k++)
|
||||
_special(i,k) = _buf(myrecv,m++);
|
||||
_special(i,k) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@ -631,17 +631,17 @@ struct AtomVecChargeKokkos_PackBorder {
|
||||
_buf(i,0) = _x(j,0);
|
||||
_buf(i,1) = _x(j,1);
|
||||
_buf(i,2) = _x(j,2);
|
||||
_buf(i,3) = _tag(j);
|
||||
_buf(i,4) = _type(j);
|
||||
_buf(i,5) = _mask(j);
|
||||
_buf(i,3) = d_ubuf(_tag(j)).d;
|
||||
_buf(i,4) = d_ubuf(_type(j)).d;
|
||||
_buf(i,5) = d_ubuf(_mask(j)).d;
|
||||
_buf(i,6) = _q(j);
|
||||
} else {
|
||||
_buf(i,0) = _x(j,0) + _dx;
|
||||
_buf(i,1) = _x(j,1) + _dy;
|
||||
_buf(i,2) = _x(j,2) + _dz;
|
||||
_buf(i,3) = _tag(j);
|
||||
_buf(i,4) = _type(j);
|
||||
_buf(i,5) = _mask(j);
|
||||
_buf(i,3) = d_ubuf(_tag(j)).d;
|
||||
_buf(i,4) = d_ubuf(_type(j)).d;
|
||||
_buf(i,5) = d_ubuf(_mask(j)).d;
|
||||
_buf(i,6) = _q(j);
|
||||
}
|
||||
}
|
||||
@ -872,9 +872,9 @@ struct AtomVecChargeKokkos_UnpackBorder {
|
||||
_x(i+_first,0) = _buf(i,0);
|
||||
_x(i+_first,1) = _buf(i,1);
|
||||
_x(i+_first,2) = _buf(i,2);
|
||||
_tag(i+_first) = static_cast<tagint> (_buf(i,3));
|
||||
_type(i+_first) = static_cast<int> (_buf(i,4));
|
||||
_mask(i+_first) = static_cast<int> (_buf(i,5));
|
||||
_tag(i+_first) = (tagint) d_ubuf(_buf(i,3)).i;
|
||||
_type(i+_first) = (int) d_ubuf(_buf(i,4)).i;
|
||||
_mask(i+_first) = (int) d_ubuf(_buf(i,5)).i;
|
||||
_q(i+_first) = _buf(i,6);
|
||||
}
|
||||
};
|
||||
@ -1039,10 +1039,10 @@ struct AtomVecChargeKokkos_PackExchangeFunctor {
|
||||
_buf(mysend,4) = _v(i,0);
|
||||
_buf(mysend,5) = _v(i,1);
|
||||
_buf(mysend,6) = _v(i,2);
|
||||
_buf(mysend,7) = _tag[i];
|
||||
_buf(mysend,8) = _type[i];
|
||||
_buf(mysend,9) = _mask[i];
|
||||
_buf(mysend,10) = _image[i];
|
||||
_buf(mysend,7) = d_ubuf(_tag[i]).d;
|
||||
_buf(mysend,8) = d_ubuf(_type[i]).d;
|
||||
_buf(mysend,9) = d_ubuf(_mask[i]).d;
|
||||
_buf(mysend,10) = d_ubuf(_image[i]).d;
|
||||
_buf(mysend,11) = _q[i];
|
||||
const int j = _copylist(mysend);
|
||||
|
||||
@ -1163,10 +1163,10 @@ struct AtomVecChargeKokkos_UnpackExchangeFunctor {
|
||||
_v(i,0) = _buf(myrecv,4);
|
||||
_v(i,1) = _buf(myrecv,5);
|
||||
_v(i,2) = _buf(myrecv,6);
|
||||
_tag[i] = _buf(myrecv,7);
|
||||
_type[i] = _buf(myrecv,8);
|
||||
_mask[i] = _buf(myrecv,9);
|
||||
_image[i] = _buf(myrecv,10);
|
||||
_tag[i] = (tagint) d_ubuf(_buf(myrecv,7)).i;
|
||||
_type[i] = (int) d_ubuf(_buf(myrecv,8)).i;
|
||||
_mask[i] = (int) d_ubuf(_buf(myrecv,9)).i;
|
||||
_image[i] = (imageint) d_ubuf(_buf(myrecv,10)).i;
|
||||
_q[i] = _buf(myrecv,11);
|
||||
}
|
||||
}
|
||||
|
||||
@ -761,17 +761,6 @@ void AtomVecFullKokkos::unpack_reverse(int n, int *list, double *buf)
|
||||
|
||||
template<class DeviceType,int PBC_FLAG>
|
||||
struct AtomVecFullKokkos_PackBorder {
|
||||
union ubuf {
|
||||
double d;
|
||||
int64_t i;
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
ubuf(double arg) : d(arg) {}
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
ubuf(int64_t arg) : i(arg) {}
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
ubuf(int arg) : i(arg) {}
|
||||
};
|
||||
|
||||
typedef DeviceType device_type;
|
||||
typedef ArrayTypes<DeviceType> AT;
|
||||
|
||||
@ -808,20 +797,20 @@ struct AtomVecFullKokkos_PackBorder {
|
||||
_buf(i,0) = _x(j,0);
|
||||
_buf(i,1) = _x(j,1);
|
||||
_buf(i,2) = _x(j,2);
|
||||
_buf(i,3) = ubuf(_tag(j)).d;
|
||||
_buf(i,4) = ubuf(_type(j)).d;
|
||||
_buf(i,5) = ubuf(_mask(j)).d;
|
||||
_buf(i,3) = d_ubuf(_tag(j)).d;
|
||||
_buf(i,4) = d_ubuf(_type(j)).d;
|
||||
_buf(i,5) = d_ubuf(_mask(j)).d;
|
||||
_buf(i,6) = _q(j);
|
||||
_buf(i,7) = ubuf(_molecule(j)).d;
|
||||
_buf(i,7) = d_ubuf(_molecule(j)).d;
|
||||
} else {
|
||||
_buf(i,0) = _x(j,0) + _dx;
|
||||
_buf(i,1) = _x(j,1) + _dy;
|
||||
_buf(i,2) = _x(j,2) + _dz;
|
||||
_buf(i,3) = ubuf(_tag(j)).d;
|
||||
_buf(i,4) = ubuf(_type(j)).d;
|
||||
_buf(i,5) = ubuf(_mask(j)).d;
|
||||
_buf(i,3) = d_ubuf(_tag(j)).d;
|
||||
_buf(i,4) = d_ubuf(_type(j)).d;
|
||||
_buf(i,5) = d_ubuf(_mask(j)).d;
|
||||
_buf(i,6) = _q(j);
|
||||
_buf(i,7) = ubuf(_molecule(j)).d;
|
||||
_buf(i,7) = d_ubuf(_molecule(j)).d;
|
||||
}
|
||||
}
|
||||
};
|
||||
@ -1030,17 +1019,6 @@ int AtomVecFullKokkos::pack_border_hybrid(int n, int *list, double *buf)
|
||||
|
||||
template<class DeviceType>
|
||||
struct AtomVecFullKokkos_UnpackBorder {
|
||||
union ubuf {
|
||||
double d;
|
||||
int64_t i;
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
ubuf(double arg) : d(arg) {}
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
ubuf(int64_t arg) : i(arg) {}
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
ubuf(int arg) : i(arg) {}
|
||||
};
|
||||
|
||||
typedef DeviceType device_type;
|
||||
typedef ArrayTypes<DeviceType> AT;
|
||||
|
||||
@ -1072,11 +1050,11 @@ struct AtomVecFullKokkos_UnpackBorder {
|
||||
_x(i+_first,0) = _buf(i,0);
|
||||
_x(i+_first,1) = _buf(i,1);
|
||||
_x(i+_first,2) = _buf(i,2);
|
||||
_tag(i+_first) = (tagint) ubuf(_buf(i,3)).i;
|
||||
_type(i+_first) = (int) ubuf(_buf(i,4)).i;
|
||||
_mask(i+_first) = (int) ubuf(_buf(i,5)).i;
|
||||
_tag(i+_first) = (tagint) d_ubuf(_buf(i,3)).i;
|
||||
_type(i+_first) = (int) d_ubuf(_buf(i,4)).i;
|
||||
_mask(i+_first) = (int) d_ubuf(_buf(i,5)).i;
|
||||
_q(i+_first) = _buf(i,6);
|
||||
_molecule(i+_first) = (tagint) ubuf(_buf(i,7)).i;
|
||||
_molecule(i+_first) = (tagint) d_ubuf(_buf(i,7)).i;
|
||||
|
||||
}
|
||||
};
|
||||
@ -1178,18 +1156,6 @@ int AtomVecFullKokkos::unpack_border_hybrid(int n, int first, double *buf)
|
||||
|
||||
template<class DeviceType>
|
||||
struct AtomVecFullKokkos_PackExchangeFunctor {
|
||||
|
||||
union ubuf {
|
||||
double d;
|
||||
int64_t i;
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
ubuf(double arg) : d(arg) {}
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
ubuf(int64_t arg) : i(arg) {}
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
ubuf(int arg) : i(arg) {}
|
||||
};
|
||||
|
||||
typedef DeviceType device_type;
|
||||
typedef ArrayTypes<DeviceType> AT;
|
||||
typename AT::t_x_array_randomread _x;
|
||||
@ -1344,46 +1310,46 @@ struct AtomVecFullKokkos_PackExchangeFunctor {
|
||||
_buf(mysend,m++) = _v(i,0);
|
||||
_buf(mysend,m++) = _v(i,1);
|
||||
_buf(mysend,m++) = _v(i,2);
|
||||
_buf(mysend,m++) = ubuf(_tag(i)).d;
|
||||
_buf(mysend,m++) = ubuf(_type(i)).d;
|
||||
_buf(mysend,m++) = ubuf(_mask(i)).d;
|
||||
_buf(mysend,m++) = ubuf(_image(i)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_tag(i)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_type(i)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_mask(i)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_image(i)).d;
|
||||
_buf(mysend,m++) = _q(i);
|
||||
_buf(mysend,m++) = ubuf(_molecule(i)).d;
|
||||
_buf(mysend,m++) = ubuf(_num_bond(i)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_molecule(i)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_num_bond(i)).d;
|
||||
for (k = 0; k < _num_bond(i); k++) {
|
||||
_buf(mysend,m++) = ubuf(_bond_type(i,k)).d;
|
||||
_buf(mysend,m++) = ubuf(_bond_atom(i,k)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_bond_type(i,k)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_bond_atom(i,k)).d;
|
||||
}
|
||||
_buf(mysend,m++) = ubuf(_num_angle(i)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_num_angle(i)).d;
|
||||
for (k = 0; k < _num_angle(i); k++) {
|
||||
_buf(mysend,m++) = ubuf(_angle_type(i,k)).d;
|
||||
_buf(mysend,m++) = ubuf(_angle_atom1(i,k)).d;
|
||||
_buf(mysend,m++) = ubuf(_angle_atom2(i,k)).d;
|
||||
_buf(mysend,m++) = ubuf(_angle_atom3(i,k)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_angle_type(i,k)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_angle_atom1(i,k)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_angle_atom2(i,k)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_angle_atom3(i,k)).d;
|
||||
}
|
||||
_buf(mysend,m++) = ubuf(_num_dihedral(i)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_num_dihedral(i)).d;
|
||||
for (k = 0; k < _num_dihedral(i); k++) {
|
||||
_buf(mysend,m++) = ubuf(_dihedral_type(i,k)).d;
|
||||
_buf(mysend,m++) = ubuf(_dihedral_atom1(i,k)).d;
|
||||
_buf(mysend,m++) = ubuf(_dihedral_atom2(i,k)).d;
|
||||
_buf(mysend,m++) = ubuf(_dihedral_atom3(i,k)).d;
|
||||
_buf(mysend,m++) = ubuf(_dihedral_atom4(i,k)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_dihedral_type(i,k)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_dihedral_atom1(i,k)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_dihedral_atom2(i,k)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_dihedral_atom3(i,k)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_dihedral_atom4(i,k)).d;
|
||||
}
|
||||
_buf(mysend,m++) = ubuf(_num_improper(i)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_num_improper(i)).d;
|
||||
for (k = 0; k < _num_improper(i); k++) {
|
||||
_buf(mysend,m++) = ubuf(_improper_type(i,k)).d;
|
||||
_buf(mysend,m++) = ubuf(_improper_atom1(i,k)).d;
|
||||
_buf(mysend,m++) = ubuf(_improper_atom2(i,k)).d;
|
||||
_buf(mysend,m++) = ubuf(_improper_atom3(i,k)).d;
|
||||
_buf(mysend,m++) = ubuf(_improper_atom4(i,k)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_improper_type(i,k)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_improper_atom1(i,k)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_improper_atom2(i,k)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_improper_atom3(i,k)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_improper_atom4(i,k)).d;
|
||||
}
|
||||
|
||||
_buf(mysend,m++) = ubuf(_nspecial(i,0)).d;
|
||||
_buf(mysend,m++) = ubuf(_nspecial(i,1)).d;
|
||||
_buf(mysend,m++) = ubuf(_nspecial(i,2)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_nspecial(i,0)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_nspecial(i,1)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_nspecial(i,2)).d;
|
||||
for (k = 0; k < _nspecial(i,2); k++)
|
||||
_buf(mysend,m++) = ubuf(_special(i,k)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_special(i,k)).d;
|
||||
|
||||
const int j = _copylist(mysend);
|
||||
|
||||
@ -1531,18 +1497,6 @@ int AtomVecFullKokkos::pack_exchange(int i, double *buf)
|
||||
|
||||
template<class DeviceType>
|
||||
struct AtomVecFullKokkos_UnpackExchangeFunctor {
|
||||
|
||||
union ubuf {
|
||||
double d;
|
||||
int64_t i;
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
ubuf(double arg) : d(arg) {}
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
ubuf(int64_t arg) : i(arg) {}
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
ubuf(int arg) : i(arg) {}
|
||||
};
|
||||
|
||||
typedef DeviceType device_type;
|
||||
typedef ArrayTypes<DeviceType> AT;
|
||||
typename AT::t_x_array _x;
|
||||
@ -1633,46 +1587,46 @@ struct AtomVecFullKokkos_UnpackExchangeFunctor {
|
||||
_v(i,0) = _buf(myrecv,m++);
|
||||
_v(i,1) = _buf(myrecv,m++);
|
||||
_v(i,2) = _buf(myrecv,m++);
|
||||
_tag(i) = (tagint) ubuf(_buf(myrecv,m++)).i;
|
||||
_type(i) = (int) ubuf(_buf(myrecv,m++)).i;
|
||||
_mask(i) = (int) ubuf(_buf(myrecv,m++)).i;
|
||||
_image(i) = (imageint) ubuf(_buf(myrecv,m++)).i;
|
||||
_tag(i) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_type(i) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_mask(i) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_image(i) = (imageint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_q(i) = _buf(myrecv,m++);
|
||||
_molecule(i) = (tagint) ubuf(_buf(myrecv,m++)).i;
|
||||
_num_bond(i) = (int) ubuf(_buf(myrecv,m++)).i;
|
||||
_molecule(i) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_num_bond(i) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
int k;
|
||||
for (k = 0; k < _num_bond(i); k++) {
|
||||
_bond_type(i,k) = (int) ubuf(_buf(myrecv,m++)).i;
|
||||
_bond_atom(i,k) = (tagint) ubuf(_buf(myrecv,m++)).i;
|
||||
_bond_type(i,k) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_bond_atom(i,k) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
}
|
||||
_num_angle(i) = (int) ubuf(_buf(myrecv,m++)).i;
|
||||
_num_angle(i) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
for (k = 0; k < _num_angle(i); k++) {
|
||||
_angle_type(i,k) = (int) ubuf(_buf(myrecv,m++)).i;
|
||||
_angle_atom1(i,k) = (tagint) ubuf(_buf(myrecv,m++)).i;
|
||||
_angle_atom2(i,k) = (tagint) ubuf(_buf(myrecv,m++)).i;
|
||||
_angle_atom3(i,k) = (tagint) ubuf(_buf(myrecv,m++)).i;
|
||||
_angle_type(i,k) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_angle_atom1(i,k) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_angle_atom2(i,k) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_angle_atom3(i,k) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
}
|
||||
_num_dihedral(i) = (int) ubuf(_buf(myrecv,m++)).i;
|
||||
_num_dihedral(i) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
for (k = 0; k < _num_dihedral(i); k++) {
|
||||
_dihedral_type(i,k) = (int) ubuf(_buf(myrecv,m++)).i;
|
||||
_dihedral_atom1(i,k) = (tagint) ubuf(_buf(myrecv,m++)).i;
|
||||
_dihedral_atom2(i,k) = (tagint) ubuf(_buf(myrecv,m++)).i;
|
||||
_dihedral_atom3(i,k) = (tagint) ubuf(_buf(myrecv,m++)).i;
|
||||
_dihedral_atom4(i,k) = (tagint) ubuf(_buf(myrecv,m++)).i;
|
||||
_dihedral_type(i,k) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_dihedral_atom1(i,k) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_dihedral_atom2(i,k) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_dihedral_atom3(i,k) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_dihedral_atom4(i,k) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
}
|
||||
_num_improper(i) = (int) ubuf(_buf(myrecv,m++)).i;
|
||||
_num_improper(i) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
for (k = 0; k < _num_improper(i); k++) {
|
||||
_improper_type(i,k) = (int) ubuf(_buf(myrecv,m++)).i;
|
||||
_improper_atom1(i,k) = (tagint) ubuf(_buf(myrecv,m++)).i;
|
||||
_improper_atom2(i,k) = (tagint) ubuf(_buf(myrecv,m++)).i;
|
||||
_improper_atom3(i,k) = (tagint) ubuf(_buf(myrecv,m++)).i;
|
||||
_improper_atom4(i,k) = (tagint) ubuf(_buf(myrecv,m++)).i;
|
||||
_improper_type(i,k) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_improper_atom1(i,k) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_improper_atom2(i,k) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_improper_atom3(i,k) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_improper_atom4(i,k) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
}
|
||||
_nspecial(i,0) = (int) ubuf(_buf(myrecv,m++)).i;
|
||||
_nspecial(i,1) = (int) ubuf(_buf(myrecv,m++)).i;
|
||||
_nspecial(i,2) = (int) ubuf(_buf(myrecv,m++)).i;
|
||||
_nspecial(i,0) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_nspecial(i,1) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_nspecial(i,2) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
for (k = 0; k < _nspecial(i,2); k++)
|
||||
_special(i,k) = (tagint) ubuf(_buf(myrecv,m++)).i;
|
||||
_special(i,k) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@ -20,6 +20,17 @@
|
||||
|
||||
namespace LAMMPS_NS {
|
||||
|
||||
union d_ubuf {
|
||||
double d;
|
||||
int64_t i;
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
d_ubuf(double arg) : d(arg) {}
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
d_ubuf(int64_t arg) : i(arg) {}
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
d_ubuf(int arg) : i(arg) {}
|
||||
};
|
||||
|
||||
class AtomVecKokkos : public AtomVec {
|
||||
public:
|
||||
AtomVecKokkos(class LAMMPS *);
|
||||
|
||||
@ -786,18 +786,18 @@ struct AtomVecMolecularKokkos_PackBorder {
|
||||
_buf(i,0) = _x(j,0);
|
||||
_buf(i,1) = _x(j,1);
|
||||
_buf(i,2) = _x(j,2);
|
||||
_buf(i,3) = _tag(j);
|
||||
_buf(i,4) = _type(j);
|
||||
_buf(i,5) = _mask(j);
|
||||
_buf(i,6) = _molecule(j);
|
||||
_buf(i,3) = d_ubuf(_tag(j)).d;
|
||||
_buf(i,4) = d_ubuf(_type(j)).d;
|
||||
_buf(i,5) = d_ubuf(_mask(j)).d;
|
||||
_buf(i,6) = d_ubuf(_molecule(j)).d;
|
||||
} else {
|
||||
_buf(i,0) = _x(j,0) + _dx;
|
||||
_buf(i,1) = _x(j,1) + _dy;
|
||||
_buf(i,2) = _x(j,2) + _dz;
|
||||
_buf(i,3) = _tag(j);
|
||||
_buf(i,4) = _type(j);
|
||||
_buf(i,5) = _mask(j);
|
||||
_buf(i,6) = _molecule(j);
|
||||
_buf(i,3) = d_ubuf(_tag(j)).d;
|
||||
_buf(i,4) = d_ubuf(_type(j)).d;
|
||||
_buf(i,5) = d_ubuf(_mask(j)).d;
|
||||
_buf(i,6) = d_ubuf(_molecule(j)).d;
|
||||
}
|
||||
}
|
||||
};
|
||||
@ -1029,10 +1029,10 @@ struct AtomVecMolecularKokkos_UnpackBorder {
|
||||
_x(i+_first,0) = _buf(i,0);
|
||||
_x(i+_first,1) = _buf(i,1);
|
||||
_x(i+_first,2) = _buf(i,2);
|
||||
_tag(i+_first) = static_cast<tagint> (_buf(i,3));
|
||||
_type(i+_first) = static_cast<int> (_buf(i,4));
|
||||
_mask(i+_first) = static_cast<int> (_buf(i,5));
|
||||
_molecule(i+_first) = static_cast<tagint> (_buf(i,6));
|
||||
_tag(i+_first) = (tagint) d_ubuf(_buf(i,3)).i;
|
||||
_type(i+_first) = (int) d_ubuf(_buf(i,4)).i;
|
||||
_mask(i+_first) = (int) d_ubuf(_buf(i,5)).i;
|
||||
_molecule(i+_first) = (tagint) d_ubuf(_buf(i,6)).i;
|
||||
|
||||
}
|
||||
};
|
||||
@ -1279,45 +1279,45 @@ struct AtomVecMolecularKokkos_PackExchangeFunctor {
|
||||
_buf(mysend,m++) = _v(i,0);
|
||||
_buf(mysend,m++) = _v(i,1);
|
||||
_buf(mysend,m++) = _v(i,2);
|
||||
_buf(mysend,m++) = _tag(i);
|
||||
_buf(mysend,m++) = _type(i);
|
||||
_buf(mysend,m++) = _mask(i);
|
||||
_buf(mysend,m++) = _image(i);
|
||||
_buf(mysend,m++) = _molecule(i);
|
||||
_buf(mysend,m++) = _num_bond(i);
|
||||
_buf(mysend,m++) = d_ubuf(_tag(i)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_type(i)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_mask(i)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_image(i)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_molecule(i)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_num_bond(i)).d;
|
||||
for (k = 0; k < _num_bond(i); k++) {
|
||||
_buf(mysend,m++) = _bond_type(i,k);
|
||||
_buf(mysend,m++) = _bond_atom(i,k);
|
||||
_buf(mysend,m++) = d_ubuf(_bond_type(i,k)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_bond_atom(i,k)).d;
|
||||
}
|
||||
_buf(mysend,m++) = _num_angle(i);
|
||||
_buf(mysend,m++) = d_ubuf(_num_angle(i)).d;
|
||||
for (k = 0; k < _num_angle(i); k++) {
|
||||
_buf(mysend,m++) = _angle_type(i,k);
|
||||
_buf(mysend,m++) = _angle_atom1(i,k);
|
||||
_buf(mysend,m++) = _angle_atom2(i,k);
|
||||
_buf(mysend,m++) = _angle_atom3(i,k);
|
||||
_buf(mysend,m++) = d_ubuf(_angle_type(i,k)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_angle_atom1(i,k)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_angle_atom2(i,k)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_angle_atom3(i,k)).d;
|
||||
}
|
||||
_buf(mysend,m++) = _num_dihedral(i);
|
||||
_buf(mysend,m++) = d_ubuf(_num_dihedral(i)).d;
|
||||
for (k = 0; k < _num_dihedral(i); k++) {
|
||||
_buf(mysend,m++) = _dihedral_type(i,k);
|
||||
_buf(mysend,m++) = _dihedral_atom1(i,k);
|
||||
_buf(mysend,m++) = _dihedral_atom2(i,k);
|
||||
_buf(mysend,m++) = _dihedral_atom3(i,k);
|
||||
_buf(mysend,m++) = _dihedral_atom4(i,k);
|
||||
_buf(mysend,m++) = d_ubuf(_dihedral_type(i,k)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_dihedral_atom1(i,k)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_dihedral_atom2(i,k)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_dihedral_atom3(i,k)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_dihedral_atom4(i,k)).d;
|
||||
}
|
||||
_buf(mysend,m++) = _num_improper(i);
|
||||
_buf(mysend,m++) = d_ubuf(_num_improper(i)).d;
|
||||
for (k = 0; k < _num_improper(i); k++) {
|
||||
_buf(mysend,m++) = _improper_type(i,k);
|
||||
_buf(mysend,m++) = _improper_atom1(i,k);
|
||||
_buf(mysend,m++) = _improper_atom2(i,k);
|
||||
_buf(mysend,m++) = _improper_atom3(i,k);
|
||||
_buf(mysend,m++) = _improper_atom4(i,k);
|
||||
_buf(mysend,m++) = d_ubuf(_improper_type(i,k)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_improper_atom1(i,k)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_improper_atom2(i,k)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_improper_atom3(i,k)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_improper_atom4(i,k)).d;
|
||||
}
|
||||
|
||||
_buf(mysend,m++) = _nspecial(i,0);
|
||||
_buf(mysend,m++) = _nspecial(i,1);
|
||||
_buf(mysend,m++) = _nspecial(i,2);
|
||||
_buf(mysend,m++) = d_ubuf(_nspecial(i,0)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_nspecial(i,1)).d;
|
||||
_buf(mysend,m++) = d_ubuf(_nspecial(i,2)).d;
|
||||
for (k = 0; k < _nspecial(i,2); k++)
|
||||
_buf(mysend,m++) = _special(i,k);
|
||||
_buf(mysend,m++) = d_ubuf(_special(i,k)).d;
|
||||
|
||||
const int j = _copylist(mysend);
|
||||
|
||||
@ -1552,46 +1552,46 @@ struct AtomVecMolecularKokkos_UnpackExchangeFunctor {
|
||||
_v(i,0) = _buf(myrecv,m++);
|
||||
_v(i,1) = _buf(myrecv,m++);
|
||||
_v(i,2) = _buf(myrecv,m++);
|
||||
_tag(i) = _buf(myrecv,m++);
|
||||
_type(i) = _buf(myrecv,m++);
|
||||
_mask(i) = _buf(myrecv,m++);
|
||||
_image(i) = _buf(myrecv,m++);
|
||||
_tag(i) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_type(i) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_mask(i) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_image(i) = (imageint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
|
||||
_molecule(i) = _buf(myrecv,m++);
|
||||
_num_bond(i) = _buf(myrecv,m++);
|
||||
_molecule(i) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_num_bond(i) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
int k;
|
||||
for (k = 0; k < _num_bond(i); k++) {
|
||||
_bond_type(i,k) = _buf(myrecv,m++);
|
||||
_bond_atom(i,k) = _buf(myrecv,m++);
|
||||
_bond_type(i,k) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_bond_atom(i,k) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
}
|
||||
_num_angle(i) = _buf(myrecv,m++);
|
||||
_num_angle(i) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
for (k = 0; k < _num_angle(i); k++) {
|
||||
_angle_type(i,k) = _buf(myrecv,m++);
|
||||
_angle_atom1(i,k) = _buf(myrecv,m++);
|
||||
_angle_atom2(i,k) = _buf(myrecv,m++);
|
||||
_angle_atom3(i,k) = _buf(myrecv,m++);
|
||||
_angle_type(i,k) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_angle_atom1(i,k) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_angle_atom2(i,k) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_angle_atom3(i,k) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
}
|
||||
_num_dihedral(i) = _buf(myrecv,m++);
|
||||
_num_dihedral(i) = d_ubuf(_buf(myrecv,m++)).i;
|
||||
for (k = 0; k < _num_dihedral(i); k++) {
|
||||
_dihedral_type(i,k) = _buf(myrecv,m++);
|
||||
_dihedral_atom1(i,k) = _buf(myrecv,m++);
|
||||
_dihedral_atom2(i,k) = _buf(myrecv,m++);
|
||||
_dihedral_atom3(i,k) = _buf(myrecv,m++);
|
||||
_dihedral_atom4(i,k) = _buf(myrecv,m++);
|
||||
_dihedral_type(i,k) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_dihedral_atom1(i,k) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_dihedral_atom2(i,k) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_dihedral_atom3(i,k) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_dihedral_atom4(i,k) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
}
|
||||
_num_improper(i) = _buf(myrecv,m++);
|
||||
for (k = 0; k < _num_improper(i); k++) {
|
||||
_improper_type(i,k) = _buf(myrecv,m++);
|
||||
_improper_atom1(i,k) = _buf(myrecv,m++);
|
||||
_improper_atom2(i,k) = _buf(myrecv,m++);
|
||||
_improper_atom3(i,k) = _buf(myrecv,m++);
|
||||
_improper_atom4(i,k) = _buf(myrecv,m++);
|
||||
_num_improper(i) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
for (k = 0; k < (int) _num_improper(i); k++) {
|
||||
_improper_type(i,k) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_improper_atom1(i,k) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_improper_atom2(i,k) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_improper_atom3(i,k) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_improper_atom4(i,k) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
}
|
||||
_nspecial(i,0) = _buf(myrecv,m++);
|
||||
_nspecial(i,1) = _buf(myrecv,m++);
|
||||
_nspecial(i,2) = _buf(myrecv,m++);
|
||||
_nspecial(i,0) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_nspecial(i,1) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
_nspecial(i,2) = (int) d_ubuf(_buf(myrecv,m++)).i;
|
||||
for (k = 0; k < _nspecial(i,2); k++)
|
||||
_special(i,k) = _buf(myrecv,m++);
|
||||
_special(i,k) = (tagint) d_ubuf(_buf(myrecv,m++)).i;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user