| | |
| | | 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; |
| | | 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); |
| | |
| | | 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; |
| | |
| | | fprintf(fh, "<?xml version=\"1.0\"?>\n<VTKFile type=\"UnstructuredGrid\" version=\"0.1\" byte_order=\"LittleEndian\" compressor=\"vtkZLibDataCompressor\">\n"); |
| | | xml_trisurf_data(fh,vesicle); |
| | | fprintf(fh, " <UnstructuredGrid>\n"); |
| | | fprintf(fh, "<Piece NumberOfPoints=\"%u\" NumberOfCells=\"%u\">\n",vlist->n+monono*polyno+fonono*filno, blist->n+monono*polyno+filno*(fonono-1)); |
| | | fprintf(fh, "<Piece NumberOfPoints=\"%u\" NumberOfCells=\"%u\">\n",vlist->n+monono*polyno+fonono*filno, blist->n+monono*polyno+filno*(fonono-1)+vesicle->tlist->n); |
| | | fprintf(fh,"<PointData Scalars=\"vertices_idx\">\n<DataArray type=\"Int64\" Name=\"vertices_idx\" format=\"ascii\">"); |
| | | for(i=0;i<vlist->n;i++){ |
| | | fprintf(fh,"%u ",vtx[i]->idx); |
| | |
| | | } |
| | | |
| | | 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++){ |
| | |
| | | } |
| | | } |
| | | fprintf(fh,"</DataArray>\n"); |
| | | |
| | | |
| | | |
| | | |
| | |
| | | } |
| | | |
| | | } |
| | | |
| | | for(i=0;i<vesicle->tlist->n;i++){ |
| | | fprintf(fh,"%u %u %u\n", vesicle->tlist->tria[i]->vertex[0]->idx, vesicle->tlist->tria[i]->vertex[1]->idx, vesicle->tlist->tria[i]->vertex[2]->idx); |
| | | } |
| | | fprintf(fh,"</DataArray>\n<DataArray type=\"Int64\" Name=\"offsets\" format=\"ascii\">"); |
| | | for (i=2;i<(blist->n+monono*polyno+(fonono-1)*filno)*2+1;i+=2){ |
| | | fprintf(fh,"%u ",i); |
| | | } |
| | | for(j=i+1;j<i+3*(vesicle->tlist->n);j+=3){ //let's continue counting from where we left of |
| | | fprintf(fh,"%u ", j); |
| | | } |
| | | fprintf(fh,"\n"); |
| | | fprintf(fh,"</DataArray>\n<DataArray type=\"UInt8\" Name=\"types\" format=\"ascii\">\n"); |
| | | for (i=0;i<blist->n+monono*polyno+fonono*filno;i++){ |
| | | for (i=0;i<blist->n+monono*polyno+(fonono-1)*filno;i++){ |
| | | fprintf(fh,"3 "); |
| | | } |
| | | |
| | | for(i=0;i<vesicle->tlist->n;i++){ |
| | | fprintf(fh,"5 "); |
| | | } |
| | | fprintf(fh,"</DataArray>\n</Cells>\n</Piece>\n</UnstructuredGrid>\n</VTKFile>\n"); |
| | | fclose(fh); |
| | | return TS_SUCCESS; |
| | |
| | | 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), |
| | |
| | | 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), |
| | | CFG_END() |
| | | }; |
| | | cfg_t *cfg; |