From efb615c065452b58799e32735647b0559698163f Mon Sep 17 00:00:00 2001 From: Samo Penic <samo.penic@gmail.com> Date: Mon, 19 Apr 2021 13:42:52 +0000 Subject: [PATCH] Changes in code after some debuggin --- src/tape | 2 +- src/energy.c | 58 +++++++++++++++++++++++++++++++++++++--------------------- 2 files changed, 38 insertions(+), 22 deletions(-) diff --git a/src/energy.c b/src/energy.c index 5913863..efe5911 100644 --- a/src/energy.c +++ b/src/energy.c @@ -144,9 +144,9 @@ Av=0; for(i=0; i<vtx->tristar_no; i++){ - vertex_normal_x=vertex_normal_x + vtx->tristar[i]->xnorm*vtx->tristar[i]->area; - vertex_normal_y=vertex_normal_y + vtx->tristar[i]->ynorm*vtx->tristar[i]->area; - vertex_normal_z=vertex_normal_z + vtx->tristar[i]->znorm*vtx->tristar[i]->area; + vertex_normal_x=(vertex_normal_x - vtx->tristar[i]->xnorm*vtx->tristar[i]->area); + vertex_normal_y=(vertex_normal_y - vtx->tristar[i]->ynorm*vtx->tristar[i]->area); + vertex_normal_z=(vertex_normal_z - vtx->tristar[i]->znorm*vtx->tristar[i]->area); Av+=vtx->tristar[i]->area/3; } temp_length=sqrt(pow(vertex_normal_x,2)+pow(vertex_normal_y,2)+pow(vertex_normal_z,2)); @@ -161,9 +161,10 @@ Pv31=vertex_normal_x*vertex_normal_z; Pv32=vertex_normal_y*vertex_normal_z; - - - +/* if(vtx->idx==0){ + printf("Vertex normal for vertex %d: %f, %f, %f\n",vtx->idx,vertex_normal_x, vertex_normal_y, vertex_normal_z); + } +*/ for(jj=0;jj<vtx->neigh_no;jj++){ edge_vector_x[jj]=vtx->neigh[jj]->x-vtx->x; edge_vector_y[jj]=vtx->neigh[jj]->y-vtx->y; @@ -178,8 +179,11 @@ //end normalization // printf("(%f %f %f)\n", vertex_normal_x, vertex_normal_y, vertex_normal_z); - - +/* + if(vtx->idx==0){ + printf("Edge vector for vertex %d (vector %d): %f, %f, %f\n",vtx->idx,jj,edge_vector_x[jj], edge_vector_y[jj], edge_vector_z[jj]); + } +*/ it=vtx; k=vtx->neigh[jj]; nei=0; @@ -235,19 +239,30 @@ edge_binormal_z[jj]=(edge_normal_x[jj]*edge_vector_y[jj])-(edge_normal_y[jj]*edge_vector_x[jj]); - mprod[jj]=it->x*(k->y*edge_vector_z[jj]-edge_vector_y[jj]*k->z)-it->y*(k->x*edge_vector_z[jj]-k->z*edge_vector_x[jj])+it->z*(k->x*edge_vector_y[jj]-k->y*edge_vector_x[jj]); - phi[jj]=copysign(acos(lm->xnorm*lp->xnorm+lm->ynorm*lp->ynorm+lm->znorm*lp->znorm-1e-15),mprod[jj])+M_PI; + //mprod[jj]=it->x*(k->y*edge_vector_z[jj]-edge_vector_y[jj]*k->z)-it->y*(k->x*edge_vector_z[jj]-k->z*edge_vector_x[jj])+it->z*(k->x*edge_vector_y[jj]-k->y*edge_vector_x[jj]); + mprod[jj]=lm->xnorm*(lp->ynorm*edge_vector_z[jj]-lp->znorm*edge_vector_y[jj]) - lm->ynorm*(lp->xnorm*edge_vector_z[jj]-lp->znorm*edge_vector_z[jj])+ lm->znorm*(lp->xnorm*edge_vector_y[jj]-lp->ynorm*edge_vector_x[jj]); + + phi[jj]=copysign(acos(lm->xnorm*lp->xnorm+lm->ynorm*lp->ynorm+lm->znorm*lp->znorm-1e-10),-mprod[jj])+M_PI; +/* if(vtx->idx==0){ + printf("Angle PHI vertex %d (angle %d): %f\n",vtx->idx,jj,phi[jj]); + } +*/ // printf("ACOS arg=%e\n", lm->xnorm*lp->xnorm+lm->ynorm*lp->ynorm+lm->znorm*lp->znorm); //he was multiplied with 2 before... - he[jj]=sqrt( pow((edge_vector_x[jj]),2) + pow((edge_vector_y[jj]), 2) + pow((edge_vector_z[jj]), 2))*cos(phi[jj]/2.0); +// he[jj]=sqrt( pow((edge_vector_x[jj]),2) + pow((edge_vector_y[jj]), 2) + pow((edge_vector_z[jj]), 2))*cos(phi[jj]/2.0); + he[jj]=temp_length*cos(phi[jj]/2.0); // printf("phi[%d]=%f\n", jj,phi[jj]); - - Se11=edge_binormal_x[jj]*edge_binormal_x[jj]*he[jj]; - Se21=edge_binormal_x[jj]*edge_binormal_y[jj]*he[jj]; - Se22=edge_binormal_y[jj]*edge_binormal_y[jj]*he[jj]; - Se31=edge_binormal_x[jj]*edge_binormal_z[jj]*he[jj]; - Se32=edge_binormal_y[jj]*edge_binormal_z[jj]*he[jj]; - Se33=edge_binormal_z[jj]*edge_binormal_z[jj]*he[jj]; +/* + if(vtx->idx==0){ + printf("H operator of edge vertex %d (edge %d): %f\n",vtx->idx,jj,he[jj]); + } +*/ + Se11=-edge_binormal_x[jj]*edge_binormal_x[jj]*he[jj]; + Se21=-edge_binormal_x[jj]*edge_binormal_y[jj]*he[jj]; + Se22=-edge_binormal_y[jj]*edge_binormal_y[jj]*he[jj]; + Se31=-edge_binormal_x[jj]*edge_binormal_z[jj]*he[jj]; + Se32=-edge_binormal_y[jj]*edge_binormal_z[jj]*he[jj]; + Se33=-edge_binormal_z[jj]*edge_binormal_z[jj]*he[jj]; We=vertex_normal_x*edge_normal_x[jj]+vertex_normal_y*edge_normal_y[jj]+vertex_normal_z*edge_normal_z[jj]; We_Av=We/Av; @@ -266,7 +281,6 @@ // printf("(%f %f %f); (%f %f %f); (%f %f %f)\n", edge_vector_x[jj], edge_vector_y[jj], edge_vector_z[jj], edge_normal_x[jj], edge_normal_y[jj], edge_normal_z[jj], edge_binormal_x[jj], edge_binormal_y[jj], edge_binormal_z[jj]); } // END FOR JJ - gsl_matrix_set(gsl_Sv, 0,0, Sv[0][0]); gsl_matrix_set(gsl_Sv, 0,1, Sv[0][1]); gsl_matrix_set(gsl_Sv, 0,2, Sv[0][2]); @@ -293,8 +307,10 @@ eigenval[2]= gsl_vector_get(Sv_eigen, 2); qsort(eigenval, 3, sizeof(ts_double), cmpfunc); -// printf("Eigenvalues: %f, %f, %f\n", eigenval[0], eigenval[1], eigenval[2] ); - + if(vtx->idx==0){ + printf("Eigenvalues: %f, %f, %f\n", eigenval[0], eigenval[1], eigenval[2] ); +// exit(0); + } vtx->energy=(pow(eigenval[0]+eigenval[1],2))*Av; diff --git a/src/tape b/src/tape index 4e78aff..41bd4da 100644 --- a/src/tape +++ b/src/tape @@ -25,7 +25,7 @@ #Stretching -stretchswitch=1 +stretchswitch=0 xkA0=1.0 ####### Polymer (brush) definitions ########### -- Gitblit v1.9.3