incorporated visual functions to moldyn api
[physik/posic.git] / sic.c
diff --git a/sic.c b/sic.c
index 7855cc2..6e6369f 100644 (file)
--- a/sic.c
+++ b/sic.c
@@ -8,7 +8,6 @@
 #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
@@ -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,14 @@ int hook(void *moldyn,void *hook_params) {
        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;
@@ -375,7 +391,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]);