+ /* reset 3bp sums */
+ exchange->sum1_3bp=0.0;
+ exchange->sum2_3bp=0.0;
+ v3_zero(&(exchange->db_ij));
+
+ return 0;
+}
+
+/* tersoff 2 body post part */
+
+int tersoff_mult_post_2bp(t_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc) {
+
+ /* here we have to allow for the 3bp sums */
+
+ t_tersoff_mult_params *params;
+ t_tersoff_exchange *exchange;
+
+ t_3dvec force,temp,*db_ij,*dist_ij;
+ double db_ij_scale1,db_ij_scale2;
+ double b_ij;
+ double f_c,df_c,f_a,df_a;
+ double chi,betan;
+ double help;
+ double n;
+
+ params=moldyn->pot2b_params;
+ exchange=&(params->exchange);
+
+ db_ij=&(exchange->db_ij);
+ f_c=exchange->f_c;
+ df_c=exchange->df_c;
+ f_a=exchange->f_a;
+ df_a=exchange->df_a;
+ betan=exchange->betan;
+ n=*(exchange->n);
+ dist_ij=&(exchange->dist_ij);
+
+ db_ij_scale1=(1+betan*exchange->sum1_3bp);
+ db_ij_scale2=(exchange->n_betan*exchange->sum2_3bp);
+ help=pow(db_ij_scale1,-1.0/(2*n)-1);
+ b_ij=chi*db_ij_scale1*help;
+ db_ij_scale1=-chi/(2*n)*help;
+
+ v3_scale(db_ij,db_ij,(db_ij_scale1*db_ij_scale2));
+ v3_scale(db_ij,db_ij,f_a);
+
+ v3_scale(&temp,dist_ij,b_ij*df_a);
+
+ v3_add(&force,&temp,db_ij);
+ v3_scale(&force,&force,f_c);
+
+ v3_scale(&temp,dist_ij,f_a*b_ij*df_c);
+
+ /* add energy of 3bp sum */
+ moldyn->energy+=(0.5*f_c*b_ij*f_a);
+ /* add force of 3bp calculation */
+ v3_add(&(ai->f),&temp,&force);
+