Trisurf Monte Carlo simulator
Samo Penic
2016-06-21 eb95833ea5316a0dcfff4e5144e6fd7bbbd261f2
src/io.c
@@ -862,7 +862,7 @@
   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=\"scalars\">\n<DataArray type=\"Int64\" Name=\"scalars\" format=\"ascii\">");
    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);
    }
@@ -886,7 +886,64 @@
      }
   }
    fprintf(fh,"</DataArray>\n</PointData>\n<CellData>\n</CellData>\n<Points>\n<DataArray type=\"Float64\" Name=\"Koordinate tock\" NumberOfComponents=\"3\" format=\"ascii\">\n");
       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++){
      fprintf(fh,"%.17e %.17e %.17e\n",vtx[i]->x,vtx[i]->y, vtx[i]->z);
   }
@@ -1083,6 +1140,9 @@
        CFG_SIMPLE_INT("cluster_nodes",&tape->brezveze1),
        CFG_SIMPLE_INT("distributed_processes",&tape->brezveze2),
   CFG_SIMPLE_INT("spherical_harmonics_coefficients",&tape->shc),
   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_END()
    };
    cfg_t *cfg;