From 314f2dd60176b0f378baa66f5a5514fb15dddabc Mon Sep 17 00:00:00 2001 From: Samo Penic <samo.penic@gmail.com> Date: Thu, 23 Feb 2012 19:29:55 +0000 Subject: [PATCH] Debugging, but not finished yet! There are still problems in vertex move and extreme points that remain sharp edged. --- src/main.c | 16 +++++++++++++--- src/io.c | 6 ++++++ src/initial_distribution.c | 6 ++++++ src/vertexmove.c | 12 ++++++------ 4 files changed, 31 insertions(+), 9 deletions(-) diff --git a/src/initial_distribution.c b/src/initial_distribution.c index a7a8202..382750b 100644 --- a/src/initial_distribution.c +++ b/src/initial_distribution.c @@ -14,8 +14,14 @@ ts_fprintf(stderr,"Starting initial_distribution on vesicle with %u shells!...\n",nshell); ts_bool retval; ts_uint no_vertices=5*nshell*nshell+2; + + ts_vesicle *vesicle=init_vesicle(no_vertices,ncmax1,ncmax2,ncmax3,stepsize); + +//TODO: debugging only. Please remove ASAP! + vesicle->bending_rigidity=25.0; + vesicle->nshell=nshell; retval = vtx_set_global_values(vesicle); retval = pentagonal_dipyramid_vertex_distribution(vesicle->vlist); diff --git a/src/io.c b/src/io.c index 7421f0d..f993e72 100644 --- a/src/io.c +++ b/src/io.c @@ -296,6 +296,8 @@ ts_bool parsetape(ts_vesicle *vesicle,ts_uint *iterations){ long int nshell=17,ncxmax=60, ncymax=60, nczmax=60; // THIS IS DUE TO CONFUSE BUG! + char buf[255]; + long int brezveze=1; ts_double xk0=25.0, dmax=1.67,stepsize=0.15; *iterations=1000; cfg_opt_t opts[] = { @@ -308,6 +310,10 @@ CFG_SIMPLE_INT("nzmax", &nczmax), CFG_SIMPLE_INT("iterations",iterations), CFG_SIMPLE_BOOL("quiet",&quiet), + CFG_SIMPLE_STR("multiprocessing",buf), + CFG_SIMPLE_INT("smp_cores",&brezveze), + CFG_SIMPLE_INT("cluster_nodes",&brezveze), + CFG_SIMPLE_INT("distributed_processes",&brezveze), CFG_END() }; cfg_t *cfg; diff --git a/src/main.c b/src/main.c index b846658..9112278 100644 --- a/src/main.c +++ b/src/main.c @@ -60,13 +60,23 @@ vtx_list_free(vlist1); printf("Tests complete.\n"); -vesicle=initial_distribution_dipyramid(17,60,60,60,0.15); +vesicle=initial_distribution_dipyramid(8,60,60,60,0.15); +//parsetape(vesicle,&i); + +//these four must come from parsetype! +vesicle->dmax=1.67; +vesicle->stepsize=0.15; +vesicle->clist->max_occupancy=8; +vesicle->bending_rigidity=25.0; +fprintf(stderr,"xk=%f",vesicle->bending_rigidity); centermass(vesicle); cell_occupation(vesicle); -for(i=0;i<100;i++){ +for(i=0;i<10000;i++){ single_timestep(vesicle); -write_vertex_xml_file(vesicle,i); +if(i%100==0){ +write_vertex_xml_file(vesicle,i/100); +} } write_master_xml_file("test.pvd"); write_dout_fcompat_file(vesicle,"dout"); diff --git a/src/vertexmove.c b/src/vertexmove.c index c8ce697..c62aeda 100644 --- a/src/vertexmove.c +++ b/src/vertexmove.c @@ -16,16 +16,15 @@ *rn){ ts_uint i; ts_double dist; - ts_vertex *tvtx=(ts_vertex *)calloc(1,sizeof(ts_vertex)); -// tvtx->data=init_vertex_data(); ts_bool retval; ts_uint cellidx; ts_double xold,yold,zold; ts_double delta_energy,oenergy; ts_vertex *ovtx; + ts_vertex *tvtx=(ts_vertex *)calloc(1,sizeof(ts_vertex)); //randomly we move the temporary vertex - tvtx->x=vtx->x+vesicle->stepsize*(2.0*rn[0]-1.0); + tvtx->x=vtx->x+vesicle->stepsize*(2.0*rn[0]-1.0); tvtx->y=vtx->y+vesicle->stepsize*(2.0*rn[1]-1.0); tvtx->z=vtx->z+vesicle->stepsize*(2.0*rn[2]-1.0); //check we if some length to neighbours are too much @@ -33,16 +32,17 @@ dist=vtx_distance_sq(tvtx,vtx->neigh[i]); if(dist<1.0 || dist>vesicle->dmax) { vtx_free(tvtx); +// fprintf(stderr,"Fail 1, dist=%f, vesicle->dmax=%f\n", dist, vesicle->dmax); return TS_FAIL; } } -//fprintf(stderr,"Was here!\n"); //self avoidance check with distant vertices cellidx=vertex_self_avoidance(vesicle, tvtx); //check occupation number retval=cell_occupation_number_and_internal_proximity(vesicle->clist,cellidx,vtx,tvtx); if(retval==TS_FAIL){ vtx_free(tvtx); +// fprintf(stderr,"Fail 2\n"); return TS_FAIL; } @@ -68,7 +68,7 @@ energy_vertex(vtx->neigh[i]); delta_energy+=vtx->neigh[i]->xk*(vtx->neigh[i]->energy-oenergy); } -// fprintf(stderr, "DE=%f\n",delta_energy); +// fprintf(stderr, "DE=%f\n",delta_energy); //MONTE CARLOOOOOOOO if(delta_energy>=0){ #ifdef TS_DOUBLE_DOUBLE @@ -101,7 +101,7 @@ //END MONTE CARLOOOOOOO //TODO: change cell occupation if necessary! - +// fprintf(stderr,"Success!!\n"); free(ovtx->bond_length); free(ovtx->bond_length_dual); free(ovtx); -- Gitblit v1.9.3