X-Git-Url: https://hackdaworld.org/gitweb/?a=blobdiff_plain;f=sic.c;h=be75aad2692ecfccf9a67b3411b34cf04e7013cf;hb=e67bb08cb64bf21a6d4e7e8275007bdc5e769154;hp=6dc00274419ea5eb5e333bcae3e780e2e0651f4f;hpb=5db010c4414a56e61298c7a42c7b7ca7ca46d40e;p=physik%2Fposic.git diff --git a/sic.c b/sic.c index 6dc0027..be75aad 100644 --- a/sic.c +++ b/sic.c @@ -21,15 +21,19 @@ #include "potentials/tersoff.h" #endif -#define INJECT 1600 +#define INJECT 1 #define NR_ATOMS 1 -#define R_C 2.0 +#define R_C 1.0 #define T_C 10.0 -#define LCNT 20 +#define LCNT 5 +#define PRERUN 500 +#define POSTRUN 1000 typedef struct s_hp { int a_count; /* atom count */ u8 quit; /* quit mark */ + int argc; /* arg count */ + char **argv; /* args */ } t_hp; int hook(void *moldyn,void *hook_params) { @@ -56,7 +60,7 @@ int hook(void *moldyn,void *hook_params) { /* last schedule add if there is enough carbon inside */ if(hp->a_count==(INJECT*NR_ATOMS)) { hp->quit=1; - moldyn_add_schedule(md,5000,1.0); + moldyn_add_schedule(md,POSTRUN,1.0); return 0; } @@ -72,9 +76,17 @@ int hook(void *moldyn,void *hook_params) { for(j=0;jrandom))-0.5)*md->dim.x*0.37; r.y=(rand_get_double(&(md->random))-0.5)*md->dim.y*0.37; r.z=(rand_get_double(&(md->random))-0.5)*md->dim.z*0.37; + r.x=(1.0*atoi(hp->argv[3])-4.5)/9.0*ALBE_LC_SI; + r.y=(1.0*atoi(hp->argv[4])-4.5)/9.0*ALBE_LC_SI; + r.z=(1.0*atoi(hp->argv[5])-4.5)/9.0*ALBE_LC_SI; + */ + r.x=(rand_get_double(&(md->random))-0.5)*LC_SI; + r.y=(rand_get_double(&(md->random))-0.5)*LC_SI; + r.z=(rand_get_double(&(md->random))-0.5)*LC_SI; /* assume valid coordinates */ run=0; for(i=0;icount;i++) { @@ -104,10 +116,10 @@ int hook(void *moldyn,void *hook_params) { int main(int argc,char **argv) { /* check argv */ - if(argc!=3) { - printf("[sic] usage: %s \n",argv[0]); - return -1; - } + //if(argc!=3) { + // printf("[sic] usage: %s \n",argv[0]); + // return -1; + //} /* main moldyn structure */ t_moldyn md; @@ -119,9 +131,6 @@ int main(int argc,char **argv) { t_tersoff_mult_params tp; t_albe_mult_params ap; - /* atom injection counter */ - int inject; - /* testing location & velocity vector */ t_3dvec r,v; memset(&r,0,sizeof(t_3dvec)); @@ -325,7 +334,7 @@ int main(int argc,char **argv) { set_pressure(&md,BAR); /* set amount of steps to skip before average calc */ - set_avg_skip(&md,1000); + set_avg_skip(&md,PRERUN); /* set p/t scaling */ //set_pt_scale(&md,0,0,T_SCALE_BERENDSEN,100.0); @@ -338,20 +347,12 @@ int main(int argc,char **argv) { thermal_init(&md,TRUE); /* create the simulation schedule */ - moldyn_add_schedule(&md,1000,1.0); - //moldyn_add_schedule(&md,1000,1.0); - //moldyn_add_schedule(&md,1000,1.0); - //moldyn_add_schedule(&md,1000,1.0); - //moldyn_add_schedule(&md,1000,1.0); - //moldyn_add_schedule(&md,1000,1.0); - /* adding atoms */ - //for(inject=0;inject