| | |
| | | |
| | | |
| | | |
| | | ts_bool write_pov_file(ts_vesicle *vesicle, char *filename){ |
| | | FILE *fh; |
| | | ts_uint i; |
| | | |
| | | fh=fopen(filename, "w"); |
| | | if(fh==NULL){ |
| | | err("Cannot open file %s for writing"); |
| | | return TS_FAIL; |
| | | } |
| | | |
| | | for(i=0;i<vesicle->tlist->n;i++){ |
| | | |
| | | fprintf(fh,"\ttriangle {"); |
| | | fprintf(fh,"\t<%e,%e,%e> <%e,%e,%e> <%e,%e,%e> }\n", |
| | | vesicle->tlist->tria[i]->vertex[0]->x, |
| | | vesicle->tlist->tria[i]->vertex[0]->y, |
| | | vesicle->tlist->tria[i]->vertex[0]->z, |
| | | |
| | | vesicle->tlist->tria[i]->vertex[1]->x, |
| | | vesicle->tlist->tria[i]->vertex[1]->y, |
| | | vesicle->tlist->tria[i]->vertex[1]->z, |
| | | |
| | | vesicle->tlist->tria[i]->vertex[2]->x, |
| | | vesicle->tlist->tria[i]->vertex[2]->y, |
| | | vesicle->tlist->tria[i]->vertex[2]->z |
| | | ); |
| | | } |
| | | |
| | | fclose(fh); |
| | | return TS_SUCCESS; |
| | | } |
| | | |
| | | |
| | | ts_tape *parsetape(char *filename){ |
| | | // long int nshell=17,ncxmax=60, ncymax=60, nczmax=60, npoly=10, nmono=20, pswitch=0; // THIS IS DUE TO CONFUSE BUG! |
| | | ts_tape *tape=(ts_tape *)calloc(1,sizeof(ts_tape)); |
| | |
| | | ts_bool write_vertex_vtk_file(ts_vesicle *vesicle,ts_char *filename, ts_char *text); |
| | | ts_bool write_vertex_xml_file(ts_vesicle *vesicle, ts_uint timestepno); |
| | | ts_bool write_master_xml_file(ts_char *filename); |
| | | ts_bool write_pov_file(ts_vesicle *vesicle, char *filename); |
| | | |
| | | ts_tape *parsetape(char *filename); |
| | | ts_bool tape_free(ts_tape *tape); |
| | | |
| | |
| | | vesicle->dmax=tape->dmax*tape->dmax; |
| | | poly_assign_filament_xi(vesicle,tape); |
| | | |
| | | if(command_line_args.reset_iteration_count) start_iteration=tape->inititer-1; |
| | | if(command_line_args.reset_iteration_count) start_iteration=tape->inititer; |
| | | else start_iteration++; |
| | | |
| | | if(start_iteration>=tape->iterations){ |
| | |
| | | |
| | | ts_bool run_simulation(ts_vesicle *vesicle, ts_uint mcsweeps, ts_uint inititer, ts_uint iterations, ts_uint start_iteration){ |
| | | ts_uint i, j; |
| | | char filename[255]; |
| | | |
| | | centermass(vesicle); |
| | | cell_occupation(vesicle); |
| | |
| | | dump_state(vesicle,i); |
| | | if(i>=inititer){ |
| | | write_vertex_xml_file(vesicle,i-inititer); |
| | | // sprintf(filename,"timestep-%05d.pov",i-inititer); |
| | | write_pov_file(vesicle,filename); |
| | | } |
| | | } |
| | | return TS_SUCCESS; |