From bd826de2f539f2e48c8c01d2d7f9f34c7e97104a Mon Sep 17 00:00:00 2001 From: Samo Penic <samo.penic@gmail.com> Date: Fri, 13 May 2016 07:43:27 +0000 Subject: [PATCH] Fix in trisurf output, inhibiting print of successful reconstruction. Multiple fixes and improvements in python module. Added symlinking of tapes into the running directories and dumping tapes from snapshots into tape files. --- src/vesicle.c | 44 +++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 43 insertions(+), 1 deletions(-) diff --git a/src/vesicle.c b/src/vesicle.c index d6c29e1..4d9e5cd 100644 --- a/src/vesicle.c +++ b/src/vesicle.c @@ -1,3 +1,4 @@ +/* vim: set ts=4 sts=4 sw=4 noet : */ #include<general.h> #include "vesicle.h" #include "vertex.h" @@ -5,10 +6,13 @@ #include "bond.h" #include "cell.h" #include "stdlib.h" +#include "poly.h" +#include "sh.h" +#include "shcomplex.h" ts_vesicle *init_vesicle(ts_uint N, ts_uint ncmax1, ts_uint ncmax2, ts_uint ncmax3, ts_double stepsize){ - ts_vesicle *vesicle=(ts_vesicle *)malloc(sizeof(ts_vesicle)); + ts_vesicle *vesicle=(ts_vesicle *)calloc(1,sizeof(ts_vesicle)); vesicle->vlist=init_vertex_list(N); vesicle->blist=init_bond_list(); vesicle->tlist=init_triangle_list(); @@ -33,6 +37,44 @@ bond_list_free(vesicle->blist); triangle_list_free(vesicle->tlist); cell_list_free(vesicle->clist); + poly_list_free(vesicle->poly_list); + complex_sph_free(vesicle->sphHarmonics); free(vesicle); return TS_SUCCESS; } + +/* @brief Function makes a sum of partial volumes of each triangle. Volumes of + * + * Partial volumes are calculated when we calculate normals of triangles. It is + * relatively easy to calculate the volume of vesicle if we take into account + * that the volume of the whole vertex is simply sum of all partial volumes of + * all the triangles. + */ +ts_bool vesicle_volume(ts_vesicle *vesicle){ + ts_double volume; + ts_uint i; + ts_triangle **tria=vesicle->tlist->tria; + volume=0; + for(i=0; i<vesicle->tlist->n;i++){ + volume=volume+tria[i]->volume; + } + vesicle->volume=volume; + return TS_SUCCESS; +} + +/* @brief Function makes a sum of partial areas of each triangle. + * + * + * + */ +ts_bool vesicle_area(ts_vesicle *vesicle){ + ts_double area; + ts_uint i; + ts_triangle **tria=vesicle->tlist->tria; + area=0; + for(i=0;i<vesicle->tlist->n;i++){ + area=area+tria[i]->area; + } + vesicle->area=area; + return TS_SUCCESS; +} -- Gitblit v1.9.3