From c854bf8109ddce134fc0e6fc5c27e7e648bc7734 Mon Sep 17 00:00:00 2001 From: Samo Penic <samo.penic@gmail.com> Date: Sat, 19 May 2018 17:16:50 +0000 Subject: [PATCH] Merge branch 'stretching-devel' of ssh://git.penic.eu:29418/trisurf-ng into stretching-devel --- src/spherical_trisurf.c | 68 +++++++++++++++++++-------------- 1 files changed, 39 insertions(+), 29 deletions(-) diff --git a/src/spherical_trisurf.c b/src/spherical_trisurf.c index feba26a..06a84f4 100644 --- a/src/spherical_trisurf.c +++ b/src/spherical_trisurf.c @@ -1,3 +1,4 @@ +/* vim: set ts=4 sts=4 sw=4 noet : */ #include<stdio.h> #include<math.h> #include "general.h" @@ -19,11 +20,14 @@ */ ts_bool saveAvgUlm2(ts_vesicle *vesicle); int main(int argv, char *argc[]){ -ts_uint i,j; +ts_uint i,j,k; ts_vesicle *vesicle; ts_double r0; vesicle=initial_distribution_dipyramid(17,60,60,60,0.15); //parsetape(vesicle,&i); + +//similar to nmax in fortran code +ts_uint nmax; //these four must come from parsetype! vesicle->dmax=1.67*1.67; @@ -33,6 +37,21 @@ //fprintf(stderr,"xk=%f",vesicle->bending_rigidity); centermass(vesicle); +cell_occupation(vesicle); + +//test if the structure is internally organized into cells correctly +ts_uint cind; +for(i=0;i<vesicle->vlist->n;i++){ + cind=vertex_self_avoidance(vesicle, vesicle->vlist->vtx[i]); + + if(vesicle->clist->cell[cind]==vesicle->vlist->vtx[i]->cell){ + //fprintf(stdout,"(T) Idx match!\n"); + } else { + fprintf(stderr,"(T) ***** Idx don't match!\n"); + + } +} +//end test vesicle->sphHarmonics=sph_init(vesicle->vlist, 21); vesicle_volume(vesicle); @@ -42,14 +61,26 @@ calculateYlmi(vesicle); calculateUlm(vesicle); - - -for(i=0;i<10000;i++){ +//preloop: +ts_double vmsr, bfsr; +for(i=0;i<1000;i++){ cell_occupation(vesicle); for(j=0;j<1000;j++){ - single_timestep(vesicle); + single_timestep(vesicle, &vmsr, &bfsr); } centermass(vesicle); + fprintf(stderr, "Preloop %d completed.\n",i+1); +} + +nmax=1000; +for(i=0;i<nmax;i++){ + for(j=0;j<200;j++){ + cell_occupation(vesicle); + for(k=0;k<5;k++){ + single_timestep(vesicle, &vmsr, &bfsr); + } + centermass(vesicle); + } vesicle_volume(vesicle); r0=getR0(vesicle); @@ -61,8 +92,10 @@ saveAvgUlm2(vesicle); write_vertex_xml_file(vesicle,i); - fprintf(stderr, "Loop %d completed.\n",i+1); + fprintf(stderr, "Loop %d out of %d completed.\n",i+1,nmax); + } + write_master_xml_file("test.pvd"); write_dout_fcompat_file(vesicle,"dout"); vesicle_free(vesicle); @@ -72,26 +105,3 @@ -ts_bool saveAvgUlm2(ts_vesicle *vesicle){ - - FILE *fh; - - fh=fopen("sph2out.dat", "w"); - if(fh==NULL){ - err("Cannot open file %s for writing"); - return TS_FAIL; - } - - ts_spharm *sph=vesicle->sphHarmonics; - ts_int i,j; - fprintf(fh,"l,\tm,\tulm^2avg\n"); - for(i=0;i<sph->l;i++){ - for(j=0;j<2*i+1;j++){ - fprintf(fh,"%d,\t%d,\t%e\n", i, j-i, sph->sumUlm2[i][j]/(ts_double)sph->N); - - } - fprintf(fh,"\n"); - } - fclose(fh); - return TS_SUCCESS; -} -- Gitblit v1.9.3