From 97264e53840b3544fef002d30cb80d6e9942139b Mon Sep 17 00:00:00 2001 From: Samo Penic <samo.penic@gmail.com> Date: Wed, 04 Jan 2017 20:26:01 +0000 Subject: [PATCH] Some fixes in python code --- src/energy.c | 29 ++++++++++++++++++++++++++++- 1 files changed, 28 insertions(+), 1 deletions(-) diff --git a/src/energy.c b/src/energy.c index cc5ccde..996fb16 100644 --- a/src/energy.c +++ b/src/energy.c @@ -200,10 +200,37 @@ inline ts_bool attraction_bond_energy(ts_bond *bond, ts_double w){ if(fabs(bond->vtx1->c)>1e-16 && fabs(bond->vtx2->c)>1e-16){ - bond->energy=w; + bond->energy=-w; } else { bond->energy=0.0; } return TS_SUCCESS; } + +ts_double direct_force_energy(ts_vesicle *vesicle, ts_vertex *vtx, ts_vertex *vtx_old){ + if(fabs(vtx->c)<1e-15) return 0.0; +// printf("was here"); + if(fabs(vesicle->tape->F)<1e-15) return 0.0; + + ts_double norml,ddp=0.0; + ts_uint i; + ts_double xnorm=0.0,ynorm=0.0,znorm=0.0; + /*find normal of the vertex as sum of all the normals of the triangles surrounding it. */ + for(i=0;i<vtx->tristar_no;i++){ + xnorm+=vtx->tristar[i]->xnorm; + ynorm+=vtx->tristar[i]->ynorm; + znorm+=vtx->tristar[i]->znorm; + } + /*normalize*/ + norml=sqrt(xnorm*xnorm+ynorm*ynorm+znorm*znorm); + xnorm/=norml; + ynorm/=norml; + znorm/=norml; + /*calculate ddp, perpendicular displacement*/ + ddp=xnorm*(vtx->x-vtx_old->x)+ynorm*(vtx->y-vtx_old->y)+znorm*(vtx->z-vtx_old->z); + /*calculate dE*/ +// printf("ddp=%e",ddp); + return vesicle->tape->F*ddp; + +} -- Gitblit v1.9.3