Trisurf Monte Carlo simulator
Samo Penic
2016-07-13 82a8abcddd62838bfcd06b6081042caf4d385a88
src/poly.c
@@ -135,7 +135,7 @@
               k++;
               if(k>1000){
                  //undo changes to the cell
                  for(l=0;l<j-1;l++){
                  for(l=0;l<j;l++){
                     cellidx=vertex_self_avoidance(vesicle, poly_list->poly[i]->vlist->vtx[l]);
                     cell_remove_vertex(vesicle->clist->cell[cellidx],poly_list->poly[i]->vlist->vtx[l]);
                  }
@@ -161,9 +161,9 @@
   ts_double dphi,dh;
   cell_occupation(vesicle); //needed for evading the membrane
   // Grafting polymers:
   int tries=0;
   if (vlist!=NULL){
      if (n_poly > vlist->n){fatal("Number of polymers larger than numbero f vertices on a vesicle.",310);}
      while(i<n_poly){
         gvtxi = rand() % vlist->n;
         if (vlist->vtx[gvtxi]->grafted_poly == NULL){
@@ -171,10 +171,16 @@
            retval=poly_initial_distribution(poly_list, i, vesicle);
            if(retval==TS_FAIL){
               ts_fprintf(stdout,"Found new potential grafting vertex %d for poly %d\n",gvtxi,i);
               poly_free(poly_list->poly[i]);
               tries++;
            }
            else {
               tries=0;
               i++;
            }
            if(tries>5000){
               fatal("Cannot find space for inner polymeres",1001);
            }
         }
      }
   }