Fixing Kokkos bugs

git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@15565 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
stamoor
2016-09-12 21:09:35 +00:00
parent a8d7ca367d
commit d913f5e094
3 changed files with 43 additions and 36 deletions

View File

@ -132,7 +132,9 @@ class FixQEqReaxKokkos : public FixQEqReax {
double calculate_H_k(const F_FLOAT &r, const F_FLOAT &shld) const;
struct params_qeq{
KOKKOS_INLINE_FUNCTION
params_qeq(){chi=0;eta=0;gamma=0;};
KOKKOS_INLINE_FUNCTION
params_qeq(int i){chi=0;eta=0;gamma=0;};
F_FLOAT chi, eta, gamma;
};

View File

@ -371,42 +371,42 @@ void PairReaxCKokkos<DeviceType>::init_md()
k_LR.h_view(i,j).m = LR[i][j].m;
k_LR.h_view(i,j).c = LR[i][j].c;
k_LR.h_view(i,j).k_y = tdual_LR_data_1d("lookup:LR[i,j].y",n);
k_LR.h_view(i,j).k_H = tdual_cubic_spline_coef_1d("lookup:LR[i,j].H",n);
k_LR.h_view(i,j).k_vdW = tdual_cubic_spline_coef_1d("lookup:LR[i,j].vdW",n);
k_LR.h_view(i,j).k_CEvd = tdual_cubic_spline_coef_1d("lookup:LR[i,j].CEvd",n);
k_LR.h_view(i,j).k_ele = tdual_cubic_spline_coef_1d("lookup:LR[i,j].ele",n);
k_LR.h_view(i,j).k_CEclmb = tdual_cubic_spline_coef_1d("lookup:LR[i,j].CEclmb",n);
tdual_LR_data_1d k_y = tdual_LR_data_1d("lookup:LR[i,j].y",n);
tdual_cubic_spline_coef_1d k_H = tdual_cubic_spline_coef_1d("lookup:LR[i,j].H",n);
tdual_cubic_spline_coef_1d k_vdW = tdual_cubic_spline_coef_1d("lookup:LR[i,j].vdW",n);
tdual_cubic_spline_coef_1d k_CEvd = tdual_cubic_spline_coef_1d("lookup:LR[i,j].CEvd",n);
tdual_cubic_spline_coef_1d k_ele = tdual_cubic_spline_coef_1d("lookup:LR[i,j].ele",n);
tdual_cubic_spline_coef_1d k_CEclmb = tdual_cubic_spline_coef_1d("lookup:LR[i,j].CEclmb",n);
k_LR.h_view(i,j).d_y = k_LR.h_view(i,j).k_y.d_view;
k_LR.h_view(i,j).d_H = k_LR.h_view(i,j).k_H.d_view;
k_LR.h_view(i,j).d_vdW = k_LR.h_view(i,j).k_vdW.d_view;
k_LR.h_view(i,j).d_CEvd = k_LR.h_view(i,j).k_CEvd.d_view;
k_LR.h_view(i,j).d_ele = k_LR.h_view(i,j).k_ele.d_view;
k_LR.h_view(i,j).d_CEclmb = k_LR.h_view(i,j).k_CEclmb.d_view;
k_LR.h_view(i,j).d_y = k_y.d_view;
k_LR.h_view(i,j).d_H = k_H.d_view;
k_LR.h_view(i,j).d_vdW = k_vdW.d_view;
k_LR.h_view(i,j).d_CEvd = k_CEvd.d_view;
k_LR.h_view(i,j).d_ele = k_ele.d_view;
k_LR.h_view(i,j).d_CEclmb = k_CEclmb.d_view;
for (int k = 0; k < n; k++) {
k_LR.h_view(i,j).k_y.h_view(k) = LR[i][j].y[k];
k_LR.h_view(i,j).k_H.h_view(k) = LR[i][j].H[k];
k_LR.h_view(i,j).k_vdW.h_view(k) = LR[i][j].vdW[k];
k_LR.h_view(i,j).k_CEvd.h_view(k) = LR[i][j].CEvd[k];
k_LR.h_view(i,j).k_ele.h_view(k) = LR[i][j].ele[k];
k_LR.h_view(i,j).k_CEclmb.h_view(k) = LR[i][j].CEclmb[k];
k_y.h_view(k) = LR[i][j].y[k];
k_H.h_view(k) = LR[i][j].H[k];
k_vdW.h_view(k) = LR[i][j].vdW[k];
k_CEvd.h_view(k) = LR[i][j].CEvd[k];
k_ele.h_view(k) = LR[i][j].ele[k];
k_CEclmb.h_view(k) = LR[i][j].CEclmb[k];
}
k_LR.h_view(i,j).k_y.template modify<LMPHostType>();
k_LR.h_view(i,j).k_H.template modify<LMPHostType>();
k_LR.h_view(i,j).k_vdW.template modify<LMPHostType>();
k_LR.h_view(i,j).k_CEvd.template modify<LMPHostType>();
k_LR.h_view(i,j).k_ele.template modify<LMPHostType>();
k_LR.h_view(i,j).k_CEclmb.template modify<LMPHostType>();
k_y.template modify<LMPHostType>();
k_H.template modify<LMPHostType>();
k_vdW.template modify<LMPHostType>();
k_CEvd.template modify<LMPHostType>();
k_ele.template modify<LMPHostType>();
k_CEclmb.template modify<LMPHostType>();
k_LR.h_view(i,j).k_y.template sync<DeviceType>();
k_LR.h_view(i,j).k_H.template sync<DeviceType>();
k_LR.h_view(i,j).k_vdW.template sync<DeviceType>();
k_LR.h_view(i,j).k_CEvd.template sync<DeviceType>();
k_LR.h_view(i,j).k_ele.template sync<DeviceType>();
k_LR.h_view(i,j).k_CEclmb.template sync<DeviceType>();
k_y.template sync<DeviceType>();
k_H.template sync<DeviceType>();
k_vdW.template sync<DeviceType>();
k_CEvd.template sync<DeviceType>();
k_ele.template sync<DeviceType>();
k_CEclmb.template sync<DeviceType>();
}
}
k_LR.template modify<LMPHostType>();

View File

@ -54,11 +54,6 @@ struct LR_lookup_table_kk
double m;
double c;
tdual_LR_data_1d k_y;
tdual_cubic_spline_coef_1d k_H;
tdual_cubic_spline_coef_1d k_vdW, k_CEvd;
tdual_cubic_spline_coef_1d k_ele, k_CEclmb;
t_LR_data_1d d_y;
t_cubic_spline_coef_1d d_H;
t_cubic_spline_coef_1d d_vdW, d_CEvd;
@ -251,8 +246,10 @@ class PairReaxCKokkos : public PairReaxC {
void operator()(PairReaxComputeHydrogen<NEIGHFLAG,EVFLAG>, const int&) const;
struct params_sing{
KOKKOS_INLINE_FUNCTION
params_sing(){mass=0;chi=0;eta=0;r_s=0;r_pi=0;r_pi2=0;valency=0;valency_val=0;valency_e=0;valency_boc=0;nlp_opt=0;
p_lp2=0;p_ovun2=0;p_ovun5=0;p_val3=0;p_val5=0;p_hbond=0;};
KOKKOS_INLINE_FUNCTION
params_sing(int i){mass=0;chi=0;eta=0;r_s=0;r_pi=0;r_pi2=0;valency=0;valency_val=0;valency_e=0;valency_boc=0;nlp_opt=0;
p_lp2=0;p_ovun2=0;p_ovun5=0;p_val3=0;p_val5=0;p_hbond=0;};
F_FLOAT mass,chi,eta,r_s,r_pi,r_pi2,valency,valency_val,valency_e,valency_boc,nlp_opt,
@ -260,10 +257,12 @@ class PairReaxCKokkos : public PairReaxC {
};
struct params_twbp{
KOKKOS_INLINE_FUNCTION
params_twbp(){gamma=0;gamma_w=0;alpha=0;r_vdw=0;epsilon=0;acore=0;ecore=0;rcore=0;lgre=0;lgcij=0;
r_s=0;r_pi=0;r_pi2=0;p_bo1=0;p_bo2=0;p_bo3=0;p_bo4=0;p_bo5=0;p_bo6=0;ovc=0;v13cor=0;
p_boc3=0;p_boc4=0;p_boc5=0;p_be1=0,p_be2=0,De_s=0,De_p=0;De_pp=0;
p_ovun1=0;};
KOKKOS_INLINE_FUNCTION
params_twbp(int i){gamma=0;gamma_w=0;alpha=0;r_vdw=0;epsilon=0;acore=0;ecore=0;rcore=0;lgre=0;lgcij=0;
r_s=0;r_pi=0;r_pi2=0;p_bo1=0;p_bo2=0;p_bo3=0;p_bo4=0;p_bo5=0;p_bo6=0;ovc=0;v13cor=0;
p_boc3=0;p_boc4=0;p_boc5=0;p_be1=0,p_be2=0,De_s=0,De_p=0;De_pp=0;
@ -275,19 +274,25 @@ class PairReaxCKokkos : public PairReaxC {
};
struct params_thbp{
KOKKOS_INLINE_FUNCTION
params_thbp(){cnt=0;theta_00=0;p_val1=0;p_val2=0;p_val4=0;p_val7=0;p_pen1=0;p_coa1=0;};
KOKKOS_INLINE_FUNCTION
params_thbp(int i){cnt=0;theta_00=0;p_val1=0;p_val2=0;p_val4=0;p_val7=0;p_pen1=0;p_coa1=0;};
F_FLOAT cnt, theta_00, p_val1, p_val2, p_val4, p_val7, p_pen1, p_coa1;
};
struct params_fbp{
KOKKOS_INLINE_FUNCTION
params_fbp(){p_tor1=0;p_cot1=0;V1=0;V2=0;V3=0;};
KOKKOS_INLINE_FUNCTION
params_fbp(int i){p_tor1=0;p_cot1=0;V1=0;V2=0;V3=0;};
F_FLOAT p_tor1, p_cot1, V1, V2, V3;
};
struct params_hbp{
KOKKOS_INLINE_FUNCTION
params_hbp(){p_hb1=0;p_hb2=0;p_hb3=0;r0_hb=0;};
KOKKOS_INLINE_FUNCTION
params_hbp(int i){p_hb1=0;p_hb2=0;p_hb3=0;r0_hb=0;};
F_FLOAT p_hb1, p_hb2, p_hb3, r0_hb;
};