From 82a8abcddd62838bfcd06b6081042caf4d385a88 Mon Sep 17 00:00:00 2001 From: Samo Penic <samo.penic@gmail.com> Date: Wed, 13 Jul 2016 21:37:13 +0000 Subject: [PATCH] Seems that the bugs are fixed. Pegs are self avoidant now --- src/io.c | 75 +++++++------------------------------ 1 files changed, 14 insertions(+), 61 deletions(-) diff --git a/src/io.c b/src/io.c index f0207ac..a478ca0 100644 --- a/src/io.c +++ b/src/io.c @@ -423,7 +423,7 @@ 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); @@ -861,8 +861,8 @@ 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,"<PointData Scalars=\"vertices_idx\">\n<DataArray type=\"Int64\" Name=\"vertices_idx\" format=\"ascii\">"); + 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=\"scalars\">\n<DataArray type=\"Int64\" Name=\"scalars\" format=\"ascii\">"); for(i=0;i<vlist->n;i++){ fprintf(fh,"%u ",vtx[i]->idx); } @@ -887,61 +887,6 @@ } 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,"%.17e ",vtx[i]->c); - } - //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]->c); - } - } - } - //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]->c); - } - } - } - fprintf(fh,"</DataArray>\n"); - - //here comes additional data. Energy! - fprintf(fh,"<DataArray type=\"Float64\" Name=\"bending_energy\" format=\"ascii\">"); - for(i=0;i<vlist->n;i++){ - fprintf(fh,"%.17e ",vtx[i]->energy*vtx[i]->xk); - } - //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]->energy* vesicle->poly_list->poly[i]->k); - } - } - } - //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]->energy* vesicle->filament_list->poly[i]->k); - } - } - } - 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"); for(i=0;i<vlist->n;i++){ @@ -994,17 +939,24 @@ } } - + 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; @@ -1113,6 +1065,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), -- Gitblit v1.9.3