projects
/
physik
/
posic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
d888d2a
)
well, no more segfaults -> now its getting hard to debug ...
author
hackbard
<hackbard>
Tue, 28 Nov 2006 15:37:00 +0000
(15:37 +0000)
committer
hackbard
<hackbard>
Tue, 28 Nov 2006 15:37:00 +0000
(15:37 +0000)
moldyn.c
patch
|
blob
|
history
moldyn.h
patch
|
blob
|
history
sic.c
patch
|
blob
|
history
diff --git
a/moldyn.c
b/moldyn.c
index
509a45d
..
505f496
100644
(file)
--- a/
moldyn.c
+++ b/
moldyn.c
@@
-156,7
+156,7
@@
int moldyn_set_log(t_moldyn *moldyn,u8 type,char *fb,int timer) {
strncpy(moldyn->sfb,fb,63);
break;
case VISUAL_STEP:
strncpy(moldyn->sfb,fb,63);
break;
case VISUAL_STEP:
- moldyn->
m
write=timer;
+ moldyn->
v
write=timer;
strncpy(moldyn->vfb,fb,63);
visual_init(&(moldyn->vis),fb);
break;
strncpy(moldyn->vfb,fb,63);
visual_init(&(moldyn->vis),fb);
break;
@@
-234,7
+234,7
@@
int create_lattice(t_moldyn *moldyn,u8 type,double lc,int element,double mass,
}
int add_atom(t_moldyn *moldyn,int element,double mass,u8 bnum,u8 attr,
}
int add_atom(t_moldyn *moldyn,int element,double mass,u8 bnum,u8 attr,
- t_3dvec
r,t_3dvec
v) {
+ t_3dvec
*r,t_3dvec *
v) {
t_atom *atom;
void *ptr;
t_atom *atom;
void *ptr;
@@
-248,10
+248,11
@@
int add_atom(t_moldyn *moldyn,int element,double mass,u8 bnum,u8 attr,
perror("[moldyn] realloc (add atom)");
return -1;
}
perror("[moldyn] realloc (add atom)");
return -1;
}
-
- atom=ptr;
- atom->r=r;
- atom->v=v;
+ moldyn->atom=ptr;
+
+ atom=moldyn->atom;
+ atom->r=*r;
+ atom->v=*v;
atom->element=element;
atom->bnum=bnum;
atom->attr=attr;
atom->element=element;
atom->bnum=bnum;
atom->attr=attr;
@@
-404,6
+405,9
@@
int link_cell_init(t_moldyn *moldyn) {
t_linkcell *lc;
int i;
t_linkcell *lc;
int i;
+ int fd;
+
+ fd=open("/dev/null",O_WRONLY);
lc=&(moldyn->lc);
lc=&(moldyn->lc);
@@
-418,10
+422,11
@@
int link_cell_init(t_moldyn *moldyn) {
lc->cells=lc->nx*lc->ny*lc->nz;
lc->subcell=malloc(lc->cells*sizeof(t_list));
lc->cells=lc->nx*lc->ny*lc->nz;
lc->subcell=malloc(lc->cells*sizeof(t_list));
- printf("initializing linked cells (%d)\n",lc->cells);
+ printf("
[moldyn]
initializing linked cells (%d)\n",lc->cells);
for(i=0;i<lc->cells;i++)
for(i=0;i<lc->cells;i++)
- list_init(&(lc->subcell[i]),1);
+ //list_init(&(lc->subcell[i]),1);
+ list_init(&(lc->subcell[i]),fd);
link_cell_update(moldyn);
link_cell_update(moldyn);
@@
-541,6
+546,7
@@
int moldyn_add_schedule(t_moldyn *moldyn,int runs,double tau) {
perror("[moldyn] realloc (runs)");
return -1;
}
perror("[moldyn] realloc (runs)");
return -1;
}
+ moldyn->schedule.runs=ptr;
moldyn->schedule.runs[count-1]=runs;
ptr=realloc(schedule->tau,count*sizeof(double));
moldyn->schedule.runs[count-1]=runs;
ptr=realloc(schedule->tau,count*sizeof(double));
@@
-548,6
+554,7
@@
int moldyn_add_schedule(t_moldyn *moldyn,int runs,double tau) {
perror("[moldyn] realloc (tau)");
return -1;
}
perror("[moldyn] realloc (tau)");
return -1;
}
+ moldyn->schedule.tau=ptr;
moldyn->schedule.tau[count-1]=tau;
return 0;
moldyn->schedule.tau[count-1]=tau;
return 0;
@@
-650,12
+657,13
@@
int moldyn_integrate(t_moldyn *moldyn) {
}
if(v) {
if(!(i%v)) {
}
if(v) {
if(!(i%v)) {
- visual_atoms(
moldyn->visual,i*moldyn->tau
,
+ visual_atoms(
&(moldyn->vis),moldyn->time
,
moldyn->atom,moldyn->count);
moldyn->atom,moldyn->count);
- printf("\rs
teps: %d"
,i);
+ printf("\rs
ched: %d, steps: %d",sched
,i);
fflush(stdout);
}
}
fflush(stdout);
}
}
+
}
/* check for hooks */
}
/* check for hooks */
@@
-695,15
+703,11
@@
int velocity_verlet(t_moldyn *moldyn) {
}
/* neighbour list update */
}
/* neighbour list update */
-printf("list update ...\n");
link_cell_update(moldyn);
link_cell_update(moldyn);
-printf("done\n");
/* forces depending on chosen potential */
/* forces depending on chosen potential */
-printf("calc potential/force ...\n");
potential_force_calc(moldyn);
//moldyn->potential_force_function(moldyn);
potential_force_calc(moldyn);
//moldyn->potential_force_function(moldyn);
-printf("done\n");
for(i=0;i<count;i++) {
/* again velocities */
for(i=0;i<count;i++) {
/* again velocities */
diff --git
a/moldyn.h
b/moldyn.h
index
ae133f7
..
58302fb
100644
(file)
--- a/
moldyn.h
+++ b/
moldyn.h
@@
-296,7
+296,7
@@
int moldyn_log_shutdown(t_moldyn *moldyn);
int create_lattice(t_moldyn *moldyn,u8 type,double lc,int element,double mass,
u8 attr,u8 bnum,int a,int b,int c);
int add_atom(t_moldyn *moldyn,int element,double mass,u8 bnum,u8 attr,
int create_lattice(t_moldyn *moldyn,u8 type,double lc,int element,double mass,
u8 attr,u8 bnum,int a,int b,int c);
int add_atom(t_moldyn *moldyn,int element,double mass,u8 bnum,u8 attr,
- t_3dvec
r,t_3dvec
v);
+ t_3dvec
*r,t_3dvec *
v);
int destroy_atoms(t_moldyn *moldyn);
int thermal_init(t_moldyn *moldyn);
int destroy_atoms(t_moldyn *moldyn);
int thermal_init(t_moldyn *moldyn);
diff --git
a/sic.c
b/sic.c
index
47ba596
..
9c98857
100644
(file)
--- a/
sic.c
+++ b/
sic.c
@@
-31,23
+31,26
@@
int main(int argc,char **argv) {
t_3dvec r,v;
/* initialize moldyn */
t_3dvec r,v;
/* initialize moldyn */
+ printf("[sic] moldyn init\n");
moldyn_init(&md,argc,argv);
/* choose integration algorithm */
moldyn_init(&md,argc,argv);
/* choose integration algorithm */
+ printf("[sic] setting integration algorithm\n");
set_int_alg(&md,MOLDYN_INTEGRATE_VERLET);
/* choose potential */
set_int_alg(&md,MOLDYN_INTEGRATE_VERLET);
/* choose potential */
- //set_potential(&md,MOLDYN_1BP,tersoff_mult_1bp,&tp);
- //set_potential(&md,MOLDYN_2BP,tersoff_mult_2bp,&tp);
- //set_potential(&md,MOLDYN_3BP,tersoff_mult_3bp,&tp);
- set_potential(&md,MOLDYN_2BP,lennard_jones,&lj);
+ printf("[sic] selecting potential\n");
+ //set_potential1b(&md,tersoff_mult_1bp,&tp);
+ //set_potential2b(&md,tersoff_mult_2bp,&tp);
+ //set_potential3b(&md,tersoff_mult_3bp,&tp);
+ set_potential2b(&md,lennard_jones,&lj);
/*
* potential parameters
*/
/* lennard jones */
/*
* potential parameters
*/
/* lennard jones */
- lj.sigma6=LJ_SIGMA_SI*LJ_SIGMA_SI*LJ_SIGMA;
+ lj.sigma6=LJ_SIGMA_SI*LJ_SIGMA_SI*LJ_SIGMA
_SI
;
lj.sigma6*=lj.sigma6;
lj.sigma12=lj.sigma6*lj.sigma6;
lj.epsilon4=4.0*LJ_EPSILON_SI;
lj.sigma6*=lj.sigma6;
lj.sigma12=lj.sigma6*lj.sigma6;
lj.epsilon4=4.0*LJ_EPSILON_SI;
@@
-57,15
+60,19
@@
int main(int argc,char **argv) {
ho.spring_constant=1;
/* cutoff radius */
ho.spring_constant=1;
/* cutoff radius */
+ printf("[sic] setting cutoff radius\n");
set_cutoff(&md,LC_SI);
/* set (initial) dimensions of simulation volume */
set_cutoff(&md,LC_SI);
/* set (initial) dimensions of simulation volume */
+ printf("[sic] setting dimensions\n");
set_dim(&md,10*LC_SI,10*LC_SI,10*LC_SI,TRUE);
/* set periodic boundary conditions in all directions */
set_dim(&md,10*LC_SI,10*LC_SI,10*LC_SI,TRUE);
/* set periodic boundary conditions in all directions */
+ printf("[sic] setting periodic boundary conditions\n");
set_pbc(&md,TRUE,TRUE,TRUE);
/* create the lattice / place atoms */
set_pbc(&md,TRUE,TRUE,TRUE);
/* create the lattice / place atoms */
+ printf("[sic] creating atoms\n");
memset(&v,0,sizeof(t_3dvec));
r.y=0;
r.z=0;
memset(&v,0,sizeof(t_3dvec));
r.y=0;
r.z=0;
@@
-75,13
+82,21
@@
int main(int argc,char **argv) {
add_atom(&md,SI,M_SI,0,ATOM_ATTR_2BP,&r,&v);
/* set temperature */
add_atom(&md,SI,M_SI,0,ATOM_ATTR_2BP,&r,&v);
/* set temperature */
+ printf("[sic] setting temperature\n");
set_temperature(&md,0.0);
/* initial thermal fluctuations of particles */
set_temperature(&md,0.0);
/* initial thermal fluctuations of particles */
+ printf("[sic] thermal init\n");
thermal_init(&md);
/* create the simulation schedule */
thermal_init(&md);
/* create the simulation schedule */
- moldyn_add_schedule(&md,10000,1.0e-15);
+ printf("[sic] adding schedule\n");
+ moldyn_add_schedule(&md,1000,1.0e-15);
+
+ /* activate logging */
+ printf("[sic] activate logging\n");
+ moldyn_set_log(&md,LOG_TOTAL_ENERGY,"saves/test-energy",100);
+ moldyn_set_log(&md,VISUAL_STEP,"saves/test-visual",50);
/*
* let's do the actual md algorithm now
/*
* let's do the actual md algorithm now
@@
-89,12
+104,12
@@
int main(int argc,char **argv) {
* integration of newtons equations
*/
* integration of newtons equations
*/
+ printf("[sic] integration start, go get a coffee ...\n");
moldyn_integrate(&md);
/* close */
moldyn_integrate(&md);
/* close */
- link_cell_shutdown(&md);
-
+ printf("[sic] shutdown\n");
moldyn_shutdown(&md);
return 0;
moldyn_shutdown(&md);
return 0;