Trisurf Monte Carlo simulator
Samo Penic
2016-06-07 5c64e2bc9d28240b5308882af2e6cf7505d444b6
Fixed energy calculations
3 files modified
39 ■■■■ changed files
src/io.c 29 ●●●●● patch | view | raw | blame | history
src/tape 6 ●●●●● patch | view | raw | blame | history
src/timestep.c 4 ●●●● patch | view | raw | blame | history
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);
    }
@@ -914,6 +914,33 @@
        }
    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");
src/tape
@@ -21,7 +21,7 @@
constvolprecision=1e-14
#Constant area constraint (0 disable constant area, 2 enable constant area with epsarea)
constareaswitch=2
constareaswitch=0
####### Polymer (brush) definitions ###########
# npoly is a number of polymers attached to npoly distinct vertices on vesicle
@@ -37,7 +37,7 @@
# nfono is a number of monomers in each filament
nfono=300
# Persistence lenght of the filaments (in units l_min)
xi=0
xi=100
####### Nucleus (inside the vesicle) ###########
# Radius of an impenetrable hard sphere inside the vesicle
@@ -70,6 +70,8 @@
#shut up if we are using cluster!!!
quiet=false
#what type of multiprocessing? (*none, smp, cluster, distributed, cuda, auto)
#currently only none makes sense.
multiprocessing=none
src/timestep.c
@@ -61,9 +61,9 @@
    epochtime=get_epoch();            
    srand48(epochtime);
/*Nir Gov: randomly add spontaneous curvature for some vertices */
    for(i=0;i<200;i++){
    for(i=0;i<20;i++){
        int b=rand() % vesicle->vlist->n;
        vesicle->vlist->vtx[b]->c=-0.1;
        vesicle->vlist->vtx[b]->c=-0.5;
    }
    centermass(vesicle);
    cell_occupation(vesicle);