#include <math.h>
#include "moldyn.h"
-#include "posic.h"
/* potential */
#include "potentials/harmonic_oscillator.h"
#define INJ_OFFSET (ALBE_LC_SI/8.0)
#define RELAX_S 20
-#define LCNTX 5
-#define LCNTY 5
-#define LCNTZ 5
+#define LCNTX 9
+#define LCNTY 9
+#define LCNTZ 9
#define PRERUN 10
-#define POSTRUN 2000
+#define POSTRUN 4000
#define R_TITLE "Silicon self-interstitial"
#define LOG_E 10
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;
for(j=0;j<NR_ATOMS;j++) {
run=1;
while(run) {
- r.x=(rand_get_double(&(md->random))-0.5)*INJ_LENX;
+ r.x=1.0/8.0*ALBE_LC_SI;
+ r.y=-1.0/8.0*ALBE_LC_SI;
+ r.z=-1.0/8.0*ALBE_LC_SI;
+ //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=(rand_get_double(&(md->random))-0.5)*INJ_LENY;
r.y+=INJ_OFFSET;
- r.z=(rand_get_double(&(md->random))-0.5)*INJ_LENZ;
+ //r.z=(rand_get_double(&(md->random))-0.5)*INJ_LENZ;
r.z+=INJ_OFFSET;
/* assume valid coordinates */
run=0;
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]);