p->S2[0]=p->S[0]*p->S[0];
p->S2[1]=p->S[1]*p->S[1];
p->S2mixed=p->Smixed*p->Smixed;
+ p->c2[0]=p->c[0]*p->c[0];
+ p->c2[1]=p->c[1]*p->c[1];
+ p->c2_mixed=p->c_mixed*p->c_mixed;
+ p->d2[0]=p->d[0]*p->d[0];
+ p->d2[1]=p->d[1]*p->d[1];
+ p->d2_mixed=p->d_mixed*p->d_mixed;
+ p->c2d2[0]=p->c2[0]/p->d2[0];
+ p->c2d2[1]=p->c2[1]/p->d2[1];
+ p->c2d2_m=p->c2_mixed/p->d2_mixed;
printf("[albe] mult parameter info:\n");
printf(" S (A) | %f | %f | %f\n",p->S[0],p->S[1],p->Smixed);
}
/* albe 3 body potential function (first k loop) */
+#ifdef PTHREADS
+void *albe_mult_3bp_k1(void *ptr) {
+#else
int albe_mult_3bp_k1(t_moldyn *moldyn,
t_atom *ai,t_atom *aj,t_atom *ak,u8 bc) {
+#endif
t_albe_mult_params *params;
t_albe_exchange *exchange;
double cos_theta,h_cos,d2_h_cos2,frac,g,dg,s_r,arg;
double f_c_ik,df_c_ik;
int kcount;
+#ifdef PTHREADS
+ t_kdata *kdata;
+ t_moldyn *moldyn;
+ t_atom *ai,*aj,*ak;
+ u8 bc;
+
+ kdata=ptr;
+ moldyn=kdata->moldyn;
+ ai=kdata->ai;
+ aj=kdata->aj;
+ ak=kdata->ak;
+ bc=kdata->bc;
+#endif
params=moldyn->pot_params;
exchange=&(params->exchange);
/* increase k counter */
exchange->kcount++;
+#ifdef PTHREADS
+}
+#else
return 0;
}
+#endif
int albe_mult_3bp_j2(t_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc) {