From 2a1e3d528265c3d366dab9ad4b0c4d3d65e1c4ed Mon Sep 17 00:00:00 2001 From: Samo Penic <samo.penic@gmail.com> Date: Mon, 13 Apr 2020 12:13:50 +0000 Subject: [PATCH] Storing previously debugged version --- src/io.c | 106 ++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 81 insertions(+), 25 deletions(-) diff --git a/src/io.c b/src/io.c index 7066657..8fa652c 100644 --- a/src/io.c +++ b/src/io.c @@ -1,3 +1,4 @@ + /* vim: set ts=4 sts=4 sw=4 noet : */ #include "general.h" #include<stdio.h> @@ -423,7 +424,8 @@ vesicle->tape=parsetape(command_line_args.tape_fullfilename); // recreating space for cells // vesicle->clist=init_cell_list(vesicle->tape->ncxmax, vesicle->tape->ncymax, vesicle->tape->nczmax, vesicle->tape->stepsize); - vesicle->clist->max_occupancy=8; +//THIS IS HARDCODED IN CELL.C NOW +// vesicle->clist->max_occupancy=16; // vesicle->tape=(ts_tape *)malloc(sizeof(ts_tape)); // retval=fread(vesicle->tape, sizeof(ts_tape),1,fh); retval=fread(iteration,sizeof(ts_uint),1,fh); @@ -749,22 +751,6 @@ } -ts_bool write_dout_fcompat_file(ts_vesicle *vesicle, ts_char *filename){ - FILE *fh; - fh=fopen(filename, "w"); - if(fh==NULL){ - err("Cannot open file %s for writing"); - return TS_FAIL; - } - fprintf(fh,"%.17E\n%.17E\n",vesicle->stepsize,vesicle->dmax); - fprint_vertex_list(fh,vesicle->vlist); - fprint_tristar(fh,vesicle); - fprint_triangle_list(fh,vesicle); - fprint_vertex_data(fh,vesicle->vlist); - fprint_bonds(fh,vesicle); - fclose(fh); - return TS_SUCCESS; -} ts_bool read_tape_fcompat_file(ts_vesicle *vesicle, ts_char *filename){ FILE *fh; @@ -820,11 +806,12 @@ return TS_SUCCESS; } -ts_bool write_vertex_xml_file(ts_vesicle *vesicle, ts_uint timestepno){ +ts_bool write_vertex_xml_file(ts_vesicle *vesicle, ts_uint timestepno, ts_cluster_list *cstlist){ ts_vertex_list *vlist=vesicle->vlist; ts_bond_list *blist=vesicle->blist; ts_vertex **vtx=vlist->vtx; ts_uint i,j; + //ts_double senergy=0.0; char filename[10000]; char just_name[255]; FILE *fh; @@ -843,7 +830,8 @@ ts_uint monono=0, polyno=0, poly_idx=0, filno=0, fonono=0; ts_bool poly=0, fil=0; if(vesicle->poly_list!=NULL){ - if(vesicle->poly_list->poly[0]!=NULL){ + if(vesicle->poly_list->n!=0){ + //if(vesicle->poly_list->poly[0]!=NULL){ polyno=vesicle->poly_list->n; monono=vesicle->poly_list->poly[0]->vlist->n; poly=1; @@ -851,7 +839,8 @@ } if(vesicle->filament_list!=NULL){ - if(vesicle->filament_list->poly[0]!=NULL){ + if(vesicle->filament_list->n!=0){ + //if(vesicle->filament_list->poly[0]!=NULL){ filno=vesicle->filament_list->n; fonono=vesicle->filament_list->poly[0]->vlist->n; fil=1; @@ -887,7 +876,40 @@ } fprintf(fh,"</DataArray>\n"); - + if(cstlist!=NULL){ + fprintf(fh,"<DataArray type=\"Int64\" Name=\"vertices_in_cluster\" format=\"ascii\">"); + for(i=0;i<vlist->n;i++){ + if(vtx[i]->cluster!=NULL){ + fprintf(fh,"%u ",vtx[i]->cluster->nvtx); + } else { + fprintf(fh,"-1 "); + } + } + //polymeres + if(poly){ + poly_idx=vlist->n; + for(i=0;i<vesicle->poly_list->n;i++){ + for(j=0;j<vesicle->poly_list->poly[i]->vlist->n;j++,poly_idx++){ + fprintf(fh,"-1 "); + } + } + } + //filaments + if(fil){ + poly_idx=vlist->n+monono*polyno; + for(i=0;i<vesicle->filament_list->n;i++){ + for(j=0;j<vesicle->filament_list->poly[i]->vlist->n;j++,poly_idx++){ + // fprintf(stderr,"was here\n"); + fprintf(fh,"-1 "); + } + } + } + + fprintf(fh,"</DataArray>\n"); + + + } + //here comes additional data as needed. Currently only spontaneous curvature fprintf(fh,"<DataArray type=\"Float64\" Name=\"spontaneous_curvature\" format=\"ascii\">"); for(i=0;i<vlist->n;i++){ @@ -940,9 +962,26 @@ } fprintf(fh,"</DataArray>\n"); - - fprintf(fh,"</PointData>\n<CellData>\n</CellData>\n<Points>\n<DataArray type=\"Float64\" Name=\"Koordinate tock\" NumberOfComponents=\"3\" format=\"ascii\">\n"); + fprintf(fh,"</PointData>\n<CellData>\n"); + + if(vesicle->tape->stretchswitch==1){ + fprintf(fh,"<DataArray type=\"Float64\" Name=\"stretching_energy\" format=\"ascii\">"); + for(i=0;i<blist->n;i++){ + fprintf(fh, "0.0 "); + } + for(i=0;i<monono*polyno+filno*(fonono-1);i++){ + fprintf(fh,"0.0 "); + } + for(i=0;i<vesicle->tlist->n;i++){ + fprintf(fh,"%.17e ",vesicle->tlist->tria[i]->energy); + } + fprintf(fh,"</DataArray>\n"); + } + + + + fprintf(fh,"</CellData>\n<Points>\n<DataArray type=\"Float64\" Name=\"Koordinate tock\" NumberOfComponents=\"3\" format=\"ascii\">\n"); for(i=0;i<vlist->n;i++){ fprintf(fh,"%.17e %.17e %.17e\n",vtx[i]->x,vtx[i]->y, vtx[i]->z); } @@ -1119,6 +1158,7 @@ CFG_SIMPLE_INT("nmono", &tape->nmono), CFG_SIMPLE_INT("nfil",&tape->nfil), CFG_SIMPLE_INT("nfono",&tape->nfono), + CFG_SIMPLE_INT("internal_poly",&tape->internal_poly), CFG_SIMPLE_INT("R_nucleus",&tape->R_nucleus), CFG_SIMPLE_FLOAT("R_nucleusX",&tape->R_nucleusX), CFG_SIMPLE_FLOAT("R_nucleusY",&tape->R_nucleusY), @@ -1130,6 +1170,8 @@ CFG_SIMPLE_INT("constvolswitch",&tape->constvolswitch), CFG_SIMPLE_INT("constareaswitch",&tape->constareaswitch), CFG_SIMPLE_FLOAT("constvolprecision",&tape->constvolprecision), + CFG_SIMPLE_INT("stretchswitch",&tape->stretchswitch), + CFG_SIMPLE_FLOAT("xkA0",&tape->xkA0), CFG_SIMPLE_FLOAT("pressure",&tape->pressure), CFG_SIMPLE_FLOAT("k_spring",&tape->kspring), CFG_SIMPLE_FLOAT("xi",&tape->xi), @@ -1140,8 +1182,8 @@ CFG_SIMPLE_INT("iterations",&tape->iterations), CFG_SIMPLE_INT("mcsweeps",&tape->mcsweeps), CFG_SIMPLE_INT("inititer", &tape->inititer), - CFG_SIMPLE_BOOL("quiet",&tape->quiet), - CFG_SIMPLE_STR("multiprocessing",tape->multiprocessing), + CFG_SIMPLE_BOOL("quiet",(cfg_bool_t *)&tape->quiet), + CFG_SIMPLE_STR("multiprocessing",&tape->multiprocessing), CFG_SIMPLE_INT("smp_cores",&tape->brezveze0), CFG_SIMPLE_INT("cluster_nodes",&tape->brezveze1), CFG_SIMPLE_INT("distributed_processes",&tape->brezveze2), @@ -1149,12 +1191,24 @@ CFG_SIMPLE_INT("number_of_vertices_with_c0", &tape->number_of_vertices_with_c0), CFG_SIMPLE_FLOAT("c0",&tape->c0), CFG_SIMPLE_FLOAT("w",&tape->w), + CFG_SIMPLE_FLOAT("F",&tape->F), +/* Variables related to plane confinement */ + CFG_INT("plane_confinement_switch", 0, CFGF_NONE), + CFG_FLOAT("plane_d", 15, CFGF_NONE), + CFG_FLOAT("plane_F", 1000, CFGF_NONE), +/* Variables related to stretching */ +// CFG_FLOAT("stretchswitch", 0, CFGF_NONE), +// CFG_FLOAT("xkA0",0,CFGF_NONE), CFG_END() }; cfg_t *cfg; ts_uint retval; cfg = cfg_init(opts, 0); retval=cfg_parse_buf(cfg, buffer); + tape->plane_confinement_switch=cfg_getint(cfg,"plane_confinement_switch"); + tape->plane_d=cfg_getfloat(cfg,"plane_d"); + tape->plane_F=cfg_getfloat(cfg,"plane_F"); + if(retval==CFG_FILE_ERROR){ fatal("No tape file.",100); } @@ -1183,6 +1237,8 @@ ts_bool getcmdline_tape(cfg_t *cfg, char *opts){ char *commands, *backup, *saveptr, *saveopptr, *command, *operator[2]; + operator[0]=0; + operator[1]=0; ts_uint i,j; commands=(char *)malloc(10000*sizeof(char)); backup=commands; //since the pointer to commands will be lost, we acquire a pointer that will serve as backup. -- Gitblit v1.9.3