Trisurf Monte Carlo simulator
Samo Penic
2019-08-08 d43116b7d609fa9cabae4068d037c1af3a20dae8
An attempt to fix polymer error while recreating vesicle from vtu.
4 files modified
28 ■■■■ changed files
src/initial_distribution.c 4 ●●● patch | view | raw | blame | history
src/poly.c 14 ●●●●● patch | view | raw | blame | history
src/poly.h 1 ●●●● patch | view | raw | blame | history
src/restore.c 9 ●●●●● patch | view | raw | blame | history
src/initial_distribution.c
@@ -43,6 +43,8 @@
    vesicle=initial_distribution_dipyramid(tape->nshell,tape->ncxmax,tape->ncymax,tape->nczmax,tape->stepsize);
        vesicle->tape=tape;
    vesicle->clist->dmin_interspecies = tape->dmin_interspecies*tape->dmin_interspecies;
    vesicle->poly_list=init_poly_list(tape->npoly,tape->nmono, vesicle->vlist, vesicle);
    set_vesicle_values_from_tape(vesicle);
        initial_population_with_c0(vesicle,tape);
    return vesicle;
@@ -59,7 +61,7 @@
    vesicle->clist->dmin_interspecies = tape->dmin_interspecies*tape->dmin_interspecies;
    //Initialize grafted polymers (brush):
    vesicle->poly_list=init_poly_list(tape->npoly,tape->nmono, vesicle->vlist, vesicle);
    //vesicle->poly_list=init_poly_list(tape->npoly,tape->nmono, vesicle->vlist, vesicle);
    vesicle->spring_constant=tape->kspring;
    poly_assign_spring_const(vesicle);
src/poly.c
@@ -126,7 +126,6 @@
                            m++;
                            if(m>1000) {
                                k=9999; //break also ot of the outer loop
                                printf("was here\n");
                                break;
                            }
                        }
@@ -159,6 +158,7 @@
    ts_uint gvtxi;
    ts_bool retval;
    ts_double dphi,dh;
    cell_occupation(vesicle); //needed for evading the membrane
    // Grafting polymers:
    int tries=0;
@@ -303,3 +303,15 @@
    return TS_SUCCESS;
}
ts_poly_list *init_empty_poly_list(ts_uint n_poly, ts_uint n_mono){
    ts_poly_list *poly_list=(ts_poly_list *)calloc(1,sizeof(ts_poly_list));
    poly_list->poly=(ts_poly **)calloc(n_poly,sizeof(ts_poly *));
    ts_uint i;
    for (i=0; i<n_poly;i++){
        poly_list->poly[i]=init_poly(n_mono, NULL);
    }
    poly_list->n = n_poly;
    return poly_list;
}
src/poly.h
@@ -19,4 +19,5 @@
ts_poly *remove_poly_with_index(ts_poly_list *poly_list, ts_uint idx);
ts_bool remove_random_polymeres(ts_poly_list *poly_list, ts_uint number);
ts_poly_list *init_empty_poly_list(ts_uint n_poly, ts_uint n_mono);
#endif
src/restore.c
@@ -79,11 +79,10 @@
        // END Point Position data & Bonds
    cur = cur->next;
    }
    xmlFreeDoc(doc);
//    vesicle->poly_list=init_poly_list(0, 0, vesicle->vlist, vesicle);
    set_vesicle_values_from_tape(vesicle);
    init_normal_vectors(vesicle->tlist);
    mean_curvature_and_energy(vesicle);
    sweep_attraction_bond_energy(vesicle);
@@ -157,7 +156,8 @@
    //fprintf(stderr,"nvtx=%u\n",atoi((char *)nvtx));
    //TODO: check if nvtx is in agreement with nshell from tape
    ts_vesicle *vesicle=init_vesicle(atoi((char *)nvtx),tape->ncxmax,tape->ncymax,tape->nczmax,tape->stepsize);
    //vesicle->poly_list=init_poly_list(atoi((char *)npoly),atoi((char *)nmono), vesicle->vlist, vesicle);
//    vesicle->poly_list=init_poly_list(atoi((char *)npoly),atoi((char *)nmono), vesicle->vlist, vesicle);
    vesicle->poly_list=init_empty_poly_list(atoi((char *)npoly),atoi((char *)nmono));
    xmlFree(nvtx);
    xmlFree(npoly);
    xmlFree(nmono);
@@ -190,9 +190,8 @@
    child = child->next;
    }
    vesicle->tape=tape;
    set_vesicle_values_from_tape(vesicle);
//    set_vesicle_values_from_tape(vesicle);
    return vesicle;
}