safety checkin
[physik/posic.git] / mdrun.h
diff --git a/mdrun.h b/mdrun.h
index ed9d88e..be8e2a4 100644 (file)
--- a/mdrun.h
+++ b/mdrun.h
 #endif
 
 /*
- * datatypes
+ * datatypes & definitions
  */
 
 typedef struct s_stage {
        u8 type;
-       u8 attr;
-       int runs;
+       void *params;
+       u8 executed;
 } t_stage;
 
+#define STAGE_INSERT_ATOMS                     0x01
+#define STAGE_CONTINUE                         0x02
+#define STAGE_ANNEAL                           0x03
+#define STAGE_CHAATTR                          0x04
+#define STAGE_CHSATTR                          0x05
+
 typedef struct s_mdrun {
        char cfile[128];                        // config file
+
        u8 intalgo;                             // integration algorithm
        double timestep;                        // timestep
+
        u8 potential;                           // potential
+
        double cutoff;                          // cutoff radius
        t_3dvec dim;                            // simulation volume
        u8 pbcx;                                // periodic boundary conditions
        u8 pbcy;
        u8 pbcz;
+
        int element1;                           // element 1
        double m1;
        int element2;                           // element 2
@@ -58,13 +68,19 @@ typedef struct s_mdrun {
        int lx;                                 // amount of lc units
        int ly;
        int lz;
-       u8 aattrib;                             // atom attributes
        u8 lattice;                             // type of lattice
+
+       u8 sattr;                               // system attributes
        double temperature;                     // temperature
        double pressure;                        // pressure
        double p_tau;                           // pressure tau
        double t_tau;                           // temperature tau
+       double dp;                              // delta p fpr pctrl
+       double dt;                              // delta t for tctrl
+       int relax_steps;                        // amount of relaxation steps
+
        int prerun;                             // amount of loops in first run
+
        int elog;                               // logging
        int tlog;
        int plog;
@@ -74,9 +90,65 @@ typedef struct s_mdrun {
        u8 vis;
        int avgskip;                            // average skip
        char sdir[128];                         // save root
-       t_list stage;                           // list of stages
+
+       t_list *stage;                          // stages
+       int s_cnt;                              // stage counter
 } t_mdrun;
 
+#define SATTR_PRELAX                           0x01
+#define SATTR_TRELAX                           0x02
+#define SATTR_AVGRST                           0x04
+
+typedef struct s_insert_atoms_params {
+       u8 type;
+       double x0,y0,z0,x1,y1,z1;
+       double cr;
+       int ins_steps;
+       int cnt_steps;
+       int ins_atoms;
+       int element;
+       u8 brand;
+       u8 aattr;
+} t_insert_atoms_params;
+
+#define INS_TOTAL                              0x01
+#define INS_REGION                             0x02
+
+typedef struct s_continue_params {
+       int runs;
+} t_continue_params;
+
+typedef struct s_anneal_params {
+       int runs;
+       int count;
+       double dt;
+} t_anneal_params;
+
+typedef struct s_chaattr_params {
+       u8 type;
+       double x0,y0,z0;
+       double x1,y1,z1;
+       int element;
+       u8 attr;
+} t_chaattr_params;
+
+#define CHAATTR_TOTALV                         0x01
+#define CHAATTR_REGION                         0x02
+#define CHAATTR_ELEMENT                                0x04
+
+typedef struct s_chsattr_params {
+       u8 type;
+       double tau;
+       u8 ctrl;
+       double delta;
+} t_chsattr_params;
+
+#define CHSATTR_PCTRL                          0x01
+#define CHSATTR_TCTRL                          0x02
+#define CHSATTR_PRELAX                         0x04
+#define CHSATTR_TRELAX                         0x08
+#define CHSATTR_AVGRST                         0x10
+
 /*
  * function prototypes
  */