| | |
| | | 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_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; |
| | |
| | | for(j=0;j<vesicle->filament_list->poly[i]->vlist->n;j++,poly_idx++){ |
| | | // fprintf(stderr,"was here\n"); |
| | | fprintf(fh,"%.17e ", vesicle->filament_list->poly[i]->vlist->vtx[j]->c); |
| | | } |
| | | } |
| | | } |
| | | fprintf(fh,"</DataArray>\n"); |
| | | fprintf(fh,"<DataArray type=\"Float64\" Name=\"direct_interaction_force\" format=\"ascii\">"); |
| | | for(i=0;i<vlist->n;i++){ |
| | | fprintf(fh,"%.17e ",vtx[i]->direct_interaction_force); |
| | | } |
| | | //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,"%.17e ", vesicle->poly_list->poly[i]->vlist->vtx[j]->direct_interaction_force); |
| | | } |
| | | } |
| | | } |
| | | //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,"%.17e ", vesicle->filament_list->poly[i]->vlist->vtx[j]->direct_interaction_force); |
| | | } |
| | | } |
| | | } |
| | |
| | | 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); |
| | | } |