commit | author | age
|
d7639a
|
1 |
#include<stdio.h> |
SP |
2 |
#include<math.h> |
|
3 |
#include "general.h" |
|
4 |
#include "vertex.h" |
a10dd5
|
5 |
#include "bond.h" |
a2a676
|
6 |
#include "triangle.h" |
bb77ca
|
7 |
#include "cell.h" |
7958e9
|
8 |
#include "vesicle.h" |
a6b1b5
|
9 |
#include "io.h" |
7958e9
|
10 |
#include "initial_distribution.h" |
dac2e5
|
11 |
#include "frame.h" |
aec47d
|
12 |
#include "timestep.h" |
d7639a
|
13 |
|
SP |
14 |
/** Entrance function to the program |
|
15 |
* @param argv is a number of parameters used in program call (including the program name |
|
16 |
* @param argc is a pointer to strings (character arrays) which holds the arguments |
|
17 |
* @returns returns 0 on success, any other number on fail. |
|
18 |
*/ |
|
19 |
|
|
20 |
int main(int argv, char *argc[]){ |
|
21 |
ts_bool retval; |
aec47d
|
22 |
ts_uint i; |
3131dc
|
23 |
ts_vertex_list *vlist=init_vertex_list(5); |
b01cc1
|
24 |
ts_vertex_list *vlist1; |
a10dd5
|
25 |
ts_bond_list *blist=init_bond_list(); |
a2a676
|
26 |
ts_triangle_list *tlist=init_triangle_list(); |
bb77ca
|
27 |
ts_cell_list *clist=init_cell_list(3,3,3,0.3); |
7958e9
|
28 |
ts_vesicle *vesicle; |
d7639a
|
29 |
|
a10dd5
|
30 |
retval=vtx_add_cneighbour(blist,vlist->vtx[1],vlist->vtx[0]); |
d7639a
|
31 |
if(retval==TS_FAIL) printf("1. already a member or vertex is null!\n"); |
a10dd5
|
32 |
|
SP |
33 |
retval=vtx_add_cneighbour(blist,vlist->vtx[0],vlist->vtx[1]); |
d7639a
|
34 |
if(retval==TS_FAIL) printf("2. already a member or vertex is null!\n"); |
a10dd5
|
35 |
|
9802f1
|
36 |
retval=vtx_remove_neighbour(vlist->vtx[0],vlist->vtx[1]); |
SP |
37 |
vtx_add_neighbour(vlist->vtx[0],vlist->vtx[1]); |
|
38 |
|
8f6a69
|
39 |
vlist->vtx[0]->x=1.0; |
SP |
40 |
vlist->vtx[0]->x=1.1; |
b01cc1
|
41 |
vlist1=vertex_list_copy(vlist); |
a10dd5
|
42 |
bond_add(blist, vlist->vtx[1],vlist->vtx[0]); |
a2a676
|
43 |
triangle_add(tlist,vlist->vtx[1],vlist->vtx[2],vlist->vtx[3]); |
a10dd5
|
44 |
|
a2a676
|
45 |
triangle_add(tlist,vlist->vtx[1],vlist->vtx[2],vlist->vtx[3]); |
SP |
46 |
|
34d3de
|
47 |
printf("Cell idx=1 has vertices=%u\n",clist->cell[0]->nvertex); |
bb77ca
|
48 |
cell_add_vertex(clist->cell[0], vlist->vtx[0]); |
34d3de
|
49 |
printf("Cell idx=1 has vertices=%u\n",clist->cell[0]->nvertex); |
8f6a69
|
50 |
printf("Cell idx=1 has vertex[0] has x coordinate=%e\n",clist->cell[0]->vertex[0]->x); |
bb77ca
|
51 |
cell_list_cell_occupation_clear(clist); |
34d3de
|
52 |
printf("Cell idx=1 has vertices=%u\n",clist->cell[0]->nvertex); |
bb77ca
|
53 |
cell_add_vertex(clist->cell[0], vlist->vtx[0]); |
SP |
54 |
|
|
55 |
|
a2a676
|
56 |
triangle_list_free(tlist); |
a10dd5
|
57 |
bond_list_free(blist); |
73f967
|
58 |
vtx_list_free(vlist); |
bb77ca
|
59 |
cell_list_free(clist); |
7958e9
|
60 |
|
b01cc1
|
61 |
vtx_list_free(vlist1); |
SP |
62 |
printf("Tests complete.\n"); |
83b03a
|
63 |
vesicle=initial_distribution_dipyramid(17,60,60,60,0.15); |
314f2d
|
64 |
//parsetape(vesicle,&i); |
SP |
65 |
|
|
66 |
//these four must come from parsetype! |
83b03a
|
67 |
vesicle->dmax=1.67*1.67; |
314f2d
|
68 |
vesicle->stepsize=0.15; |
SP |
69 |
vesicle->clist->max_occupancy=8; |
|
70 |
vesicle->bending_rigidity=25.0; |
|
71 |
fprintf(stderr,"xk=%f",vesicle->bending_rigidity); |
dac2e5
|
72 |
|
SP |
73 |
centermass(vesicle); |
|
74 |
cell_occupation(vesicle); |
314f2d
|
75 |
for(i=0;i<10000;i++){ |
aec47d
|
76 |
single_timestep(vesicle); |
314f2d
|
77 |
if(i%100==0){ |
SP |
78 |
write_vertex_xml_file(vesicle,i/100); |
|
79 |
} |
41a035
|
80 |
} |
a6b1b5
|
81 |
write_master_xml_file("test.pvd"); |
3131dc
|
82 |
write_dout_fcompat_file(vesicle,"dout"); |
7958e9
|
83 |
vesicle_free(vesicle); |
SP |
84 |
|
d7639a
|
85 |
return 0; //program finished perfectly ok. We return 0. |
SP |
86 |
} |