X-Git-Url: https://www.hackdaworld.org/gitweb/?a=blobdiff_plain;f=sic.c;h=05de728c9e9cdd4be50bf73a1e1a51fd6956d195;hb=b5b47daaa3718c4dec2056fe5147668023575b8e;hp=7855cc2e38eb81ab935c2bbd38c1746b10e2e52a;hpb=0d2926a23ea7bbf7654da88770c827ad041357a5;p=physik%2Fposic.git diff --git a/sic.c b/sic.c index 7855cc2..05de728 100644 --- a/sic.c +++ b/sic.c @@ -8,7 +8,6 @@ #include #include "moldyn.h" -#include "posic.h" /* potential */ #include "potentials/harmonic_oscillator.h" @@ -37,11 +36,11 @@ #define INJ_OFFSET (ALBE_LC_SI/8.0) #define RELAX_S 20 -#define LCNTX 5 -#define LCNTY 5 -#define LCNTZ 5 -#define PRERUN 10 -#define POSTRUN 2000 +#define LCNTX 9 +#define LCNTY 9 +#define LCNTZ 9 +#define PRERUN 40 +#define POSTRUN 3000 #define R_TITLE "Silicon self-interstitial" #define LOG_E 10 @@ -57,7 +56,21 @@ typedef struct s_hp { char **argv; /* args */ } t_hp; -int hook(void *moldyn,void *hook_params) { +int hook_del_atom(void *moldyn,void *hook_params) { + + t_moldyn *md; + t_hp *hp; + + md=moldyn; + hp=hook_params; + + set_pt_scale(md,0,0,T_SCALE_BERENDSEN,100.0); + del_atom(md,2); + + return 0; +} + +int hook_add_atom(void *moldyn,void *hook_params) { t_moldyn *md; t_3dvec r,v,dist; @@ -97,11 +110,35 @@ int hook(void *moldyn,void *hook_params) { for(j=0;jatom[4372].r.x=(-0.5+0.125+0.125)*ALBE_LC_SI; + md->atom[4372].r.y=(-0.5+0.125+0.125)*ALBE_LC_SI; + */ + // random + /* r.x=(rand_get_double(&(md->random))-0.5)*INJ_LENX; - r.x+=INJ_OFFSET; r.y=(rand_get_double(&(md->random))-0.5)*INJ_LENY; - r.y+=INJ_OFFSET; r.z=(rand_get_double(&(md->random))-0.5)*INJ_LENZ; + */ + // offset + r.x+=INJ_OFFSET; + r.y+=INJ_OFFSET; r.z+=INJ_OFFSET; /* assume valid coordinates */ run=0; @@ -111,6 +148,7 @@ int hook(void *moldyn,void *hook_params) { d=v3_absolute_square(&dist); /* reject coordinates */ if(da_count+=NR_ATOMS; @@ -182,12 +220,14 @@ int main(int argc,char **argv) { set_potential_params(&md,&tp); #endif - /* cutoff radius */ + /* cutoff radius & bondlen */ #ifdef ALBE set_cutoff(&md,ALBE_S_SI); + set_bondlen(&md,ALBE_S_SI,ALBE_S_C,ALBE_S_SIC); //set_cutoff(&md,ALBE_S_C); #else set_cutoff(&md,TM_S_SI); + set_bondlen(&md,TM_S_SI,TM_S_C,-1.0); //set_cutoff(&md,TM_S_C); #endif @@ -282,6 +322,7 @@ int main(int argc,char **argv) { set_pbc(&md,TRUE,TRUE,TRUE); /* create the lattice / place atoms */ + // #ifdef ALBE create_lattice(&md,DIAMOND,ALBE_LC_SI,SI,M_SI, //create_lattice(&md,DIAMOND,ALBE_LC_C,C,M_C, @@ -292,6 +333,7 @@ int main(int argc,char **argv) { // ATOM_ATTR_2BP|ATOM_ATTR_HB, 0,LCNTX,LCNTY,LCNTZ,NULL); // 1,LCNTX,LCNTY,LCNTZ,NULL); + // /* create zinkblende structure */ /* @@ -375,7 +417,9 @@ int main(int argc,char **argv) { memset(&hookparam,0,sizeof(t_hp)); hookparam.argc=argc; hookparam.argv=argv; - moldyn_set_schedule_hook(&md,&hook,&hookparam); + moldyn_set_schedule_hook(&md,&hook_add_atom,&hookparam); + //moldyn_set_schedule_hook(&md,&hook_del_atom,&hookparam); + //moldyn_add_schedule(&md,POSTRUN,1.0); /* activate logging */ moldyn_set_log_dir(&md,argv[1]);