int moldyn_init(t_moldyn *moldyn,int argc,char **argv) {
+ printf("[moldyn] init\n");
+
memset(moldyn,0,sizeof(t_moldyn));
rand_init(&(moldyn->random),NULL,1);
int moldyn_shutdown(t_moldyn *moldyn) {
printf("[moldyn] shutdown\n");
+
moldyn_log_shutdown(moldyn);
link_cell_shutdown(moldyn);
rand_close(&(moldyn->random));
int set_int_alg(t_moldyn *moldyn,u8 algo) {
+ printf("[moldyn] integration algorithm: ");
+
switch(algo) {
case MOLDYN_INTEGRATE_VERLET:
moldyn->integrate=velocity_verlet;
+ printf("velocity verlet\n");
break;
default:
printf("unknown integration algorithm: %02x\n",algo);
+ printf("unknown\n");
return -1;
}
moldyn->cutoff=cutoff;
+ printf("[moldyn] cutoff [A]: %f\n",moldyn->cutoff);
+
return 0;
}
moldyn->t_ref=t_ref;
+ printf("[moldyn] temperature: %f\n",moldyn->t_ref);
+
return 0;
}
moldyn->p_ref=p_ref;
+ printf("[moldyn] pressure: %f\n",moldyn->p_ref);
+
return 0;
}
moldyn->t_tc=ttc;
moldyn->p_tc=ptc;
+ printf("[moldyn] p/t scaling:\n");
+
+ printf(" p: %s",ptype?"yes":"no ");
+ if(ptype)
+ printf(" | type: %02x | factor: %f",ptype,ptc);
+ printf("\n");
+
+ printf(" t: %s",ttype?"yes":"no ");
+ if(ttype)
+ printf(" | type: %02x | factor: %f",ttype,ttc);
+ printf("\n");
+
return 0;
}
printf(" y: %f\n",moldyn->dim.y);
printf(" z: %f\n",moldyn->dim.z);
printf(" volume: %f\n",moldyn->volume);
- printf(" visualize simulation box: %s\n",visualize?"on":"off");
+ printf(" visualize simulation box: %s\n",visualize?"yes":"no");
return 0;
}
int set_pbc(t_moldyn *moldyn,u8 x,u8 y,u8 z) {
+ printf("[moldyn] periodic boundary conditions:\n");
+
if(x)
moldyn->status|=MOLDYN_STAT_PBX;
if(z)
moldyn->status|=MOLDYN_STAT_PBZ;
+ printf(" x: %s\n",x?"yes":"no");
+ printf(" y: %s\n",y?"yes":"no");
+ printf(" z: %s\n",z?"yes":"no");
+
return 0;
}
char filename[128];
int ret;
+ printf("[moldyn] set log: ");
+
switch(type) {
case LOG_TOTAL_ENERGY:
moldyn->ewrite=timer;
return moldyn->efd;
}
dprintf(moldyn->efd,"# total energy log file\n");
+ printf("total energy (%d)\n",timer);
break;
case LOG_TOTAL_MOMENTUM:
moldyn->mwrite=timer;
return moldyn->mfd;
}
dprintf(moldyn->efd,"# total momentum log file\n");
+ printf("total momentum (%d)\n",timer);
break;
case SAVE_STEP:
moldyn->swrite=timer;
+ printf("save file (%d)\n",timer);
break;
case VISUAL_STEP:
moldyn->vwrite=timer;
printf("[moldyn] visual init failure\n");
return ret;
}
+ printf("visual file (%d)\n",timer);
break;
default:
- printf("[moldyn] unknown log mechanism: %02x\n",type);
+ printf("unknown log type: %02x\n",type);
return -1;
}
atom=moldyn->atom;
random=&(moldyn->random);
+ printf("[moldyn] thermal init (equi init: %s)\n",equi_init?"yes":"no");
+
/* gaussian distribution of velocities */
v3_zero(&p_total);
for(i=0;i<moldyn->count;i++) {
schedule->tau=ptr;
schedule->tau[count-1]=tau;
+ printf("[moldyn] schedule added:\n");
+ printf(" number: %d | runs: %d | tau: %f\n",count-1,runs,tau);
+
+
return 0;
}
-int moldyn_set_schedule_hook(t_moldyn *moldyn,void *hook,void *hook_params) {
+int moldyn_set_schedule_hook(t_moldyn *moldyn,set_hook hook,void *hook_params) {
moldyn->schedule.hook=hook;
moldyn->schedule.hook_params=hook_params;
/* debugging, ignore */
moldyn->debug=0;
+ /* tell the world */
+ printf("[moldyn] integration start, go get a coffee ...\n");
+
/* executing the schedule */
for(sched->count=0;sched->count<sched->total_sched;sched->count++) {
for(i=0;i<count;i++)
moldyn->vt2-=v3_scalar_product(&(itom[i].r),&(itom[i].f));
-printf("compare: vt1: %f vt2: %f\n",moldyn->vt1,moldyn->vt2);
+//printf("compare: vt1: %f vt2: %f\n",moldyn->vt1,moldyn->vt2);
-pressure_calc(moldyn);
+//pressure_calc(moldyn);
return 0;
}