From d43116b7d609fa9cabae4068d037c1af3a20dae8 Mon Sep 17 00:00:00 2001
From: Samo Penic <samo.penic@gmail.com>
Date: Thu, 08 Aug 2019 17:42:46 +0000
Subject: [PATCH] An attempt to fix polymer error while recreating vesicle from vtu.
---
src/poly.c | 14 +++++++++++++-
src/initial_distribution.c | 4 +++-
src/restore.c | 9 ++++-----
src/poly.h | 1 +
4 files changed, 21 insertions(+), 7 deletions(-)
diff --git a/src/initial_distribution.c b/src/initial_distribution.c
index 4956900..87cfb68 100644
--- a/src/initial_distribution.c
+++ b/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);
diff --git a/src/poly.c b/src/poly.c
index bcf01e5..cf416b5 100644
--- a/src/poly.c
+++ b/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;
+}
diff --git a/src/poly.h b/src/poly.h
index 33f3be8..4a5e1fd 100644
--- a/src/poly.h
+++ b/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
diff --git a/src/restore.c b/src/restore.c
index 989a87b..6e12c1e 100644
--- a/src/restore.c
+++ b/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;
}
--
Gitblit v1.8.0