| | |
| | | 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=16; |
| | | //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); |
| | |
| | | } |
| | | |
| | | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | } |
| | | |
| | | 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; |
| | |
| | | } |
| | | 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); |
| | | } |
| | |
| | | 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); |
| | | } |