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/timestep.c | 36 ++++++++++++++++++++++++------------ 1 files changed, 24 insertions(+), 12 deletions(-) diff --git a/src/timestep.c b/src/timestep.c index f2fb478..9f30dda 100644 --- a/src/timestep.c +++ b/src/timestep.c @@ -1,3 +1,4 @@ +/* vim: set ts=4 sts=4 sw=4 noet : */ #include<stdlib.h> #include<stdio.h> #include<math.h> @@ -14,23 +15,27 @@ #include "vesicle.h" #include<gsl/gsl_complex.h> #include<gsl/gsl_complex_math.h> - +#include<string.h> ts_bool run_simulation(ts_vesicle *vesicle, ts_uint mcsweeps, ts_uint inititer, ts_uint iterations, ts_uint start_iteration){ ts_uint i, j,k,l,m; - ts_double r0,kc1,kc2,kc3,kc4; - ts_double l1,l2,l3,volume=0.0,area=0.0,vmsr,bfsr, vmsrt, bfsrt; + ts_double r0,kc1=0,kc2=0,kc3=0,kc4=0; + ts_double l1,l2,l3,vmsr,bfsr, vmsrt, bfsrt; ts_ulong epochtime; FILE *fd1,*fd2=NULL; -// char filename[255]; - FILE *fd=fopen("statistics.csv","w"); + char filename[10000]; + strcpy(filename,command_line_args.path); + strcat(filename,"statistics.csv"); + FILE *fd=fopen(filename,"w"); if(fd==NULL){ fatal("Cannot open statistics.csv file for writing",1); } fprintf(fd, "Epoch OuterLoop VertexMoveSucessRate BondFlipSuccessRate Volume Area lamdba1 lambda2 lambda3 Kc(2-9) Kc(6-9) Kc(2-end) Kc(3-6)\n"); if(vesicle->sphHarmonics!=NULL){ - fd2=fopen("ulm2.csv","w"); + strcpy(filename,command_line_args.path); + strcat(filename,"ulm2.csv"); + fd2=fopen(filename,"w"); if(fd2==NULL){ fatal("Cannot open ulm2.csv file for writing",1); } @@ -45,6 +50,12 @@ centermass(vesicle); cell_occupation(vesicle); vesicle_volume(vesicle); //needed for constant volume at this moment + vesicle_area(vesicle); //needed for constant area at this moment + V0=vesicle->volume; + A0=vesicle->area; + epsvol=4.0*sqrt(2.0*M_PI)/pow(3.0,3.0/4.0)*V0/pow(vesicle->tlist->n,3.0/2.0); + epsarea=A0/(ts_double)vesicle->tlist->n; + // fprintf(stderr, "DVol=%1.16f (%1.16f), V0=%1.16f\n", epsvol,0.003e-2*V0,V0); if(start_iteration<inititer) ts_fprintf(stdout, "Starting simulation (first %d x %d MC sweeps will not be recorded on disk)\n", inititer, mcsweeps); for(i=start_iteration;i<inititer+iterations;i++){ vmsr=0.0; @@ -67,11 +78,11 @@ dump_state(vesicle,i); if(i>=inititer){ write_vertex_xml_file(vesicle,i-inititer); - write_master_xml_file("test.pvd"); + write_master_xml_file(command_line_args.output_fullfilename); epochtime=get_epoch(); gyration_eigen(vesicle, &l1, &l2, &l3); - vesicle_volume(vesicle); //calculates just volume. Area is not added to ts_vesicle yet! - get_area_volume(vesicle, &area,&volume); //that's why I must recalculate area (and volume for no particular reason). + vesicle_volume(vesicle); //calculates just volume. + vesicle_area(vesicle); //calculates area. r0=getR0(vesicle); if(vesicle->sphHarmonics!=NULL){ preparationSh(vesicle,r0); @@ -83,8 +94,9 @@ kc2=calculateKc(vesicle, 6,9); kc3=calculateKc(vesicle, 2,vesicle->sphHarmonics->l); kc4=calculateKc(vesicle, 3,6); - - fd1=fopen("state.dat","w"); + strcpy(filename,command_line_args.path); + strcat(filename,"state.dat"); + fd1=fopen(filename,"w"); fprintf(fd1,"%e %e\n",vesicle->volume, getR0(vesicle)); for(k=0;k<vesicle->vlist->n;k++){ fprintf(fd1,"%e %e %e %e %e\n", @@ -109,7 +121,7 @@ } - fprintf(fd, "%lu %u %e %e %1.16e %1.16e %1.16e %1.16e %1.16e %1.16e %1.16e %1.16e %1.16e\n",epochtime,i,vmsr,bfsr,volume, area,l1,l2,l3,kc1, kc2, kc3,kc4); + fprintf(fd, "%lu %u %e %e %1.16e %1.16e %1.16e %1.16e %1.16e %1.16e %1.16e %1.16e %1.16e\n",epochtime,i,vmsr,bfsr,vesicle->volume, vesicle->area,l1,l2,l3,kc1, kc2, kc3,kc4); fflush(fd); // sprintf(filename,"timestep-%05d.pov",i-inititer); -- Gitblit v1.9.3