+#include "visual/visual.h"
+
+typedef struct s_moldyn {
+ /* atoms, amount, dimensions */
+ int count;
+ t_atom *atom;
+ t_3dvec dim;
+ /* potential, force & parameters */
+ double (*potential)(struct s_moldyn *moldyn);
+ int (*force)(struct s_moldyn *moldyn);
+ void *pot_params;
+ /* cut off radius, verlet list & co */
+ double cutoff;
+ double cutoff_square;
+ double r_verlet;
+ double dr_max1;
+ double dr_max2;
+ /* linked list / cell method */
+ t_linkcell lc;
+ /* temperature */
+ double t;
+ /* integration of newtons equations */
+ int (*integrate)(struct s_moldyn *moldyn);
+ int time_steps;
+ double tau;
+ /* logging & visualization */
+ unsigned char lvstat;
+ unsigned int ewrite;
+ char efb[64];
+ int efd;
+ unsigned int mwrite;
+ char mfb[64];
+ int mfd;
+ unsigned int swrite;
+ char sfb[64];
+ int sfd;
+ unsigned int dwrite;
+ char dfb[64];
+ int dfd;
+ unsigned int vwrite;
+ char vfb[64];
+ void *visual;
+ /* moldyn general status */
+ unsigned char status;
+} t_moldyn;
+
+typedef struct s_ho_params {
+ double spring_constant;
+ double equilibrium_distance;
+} t_ho_params;
+
+typedef struct s_lj_params {
+ double sigma6;
+ double sigma12;
+ double epsilon4;
+} t_lj_params;
+
+/*
+ * defines
+ */
+
+/* general defines */
+
+#define MOLDYN_LVSTAT_TOTAL_E 0x01
+#define MOLDYN_LVSTAT_TOTAL_M 0x02
+#define MOLDYN_LVSTAT_SAVE 0x04
+#define MOLDYN_LVSTAT_DUMP 0x08
+#define MOLDYN_LVSTAT_VISUAL 0x10
+#define MOLDYN_LVSTAT_INITIALIZED 0x80
+
+#define MOLDYN_STAT_POTENTIAL 0x01
+#define MOLDYN_STAT_FORCE 0x02
+
+#define MOLDYN_TEMP 273.0
+#define MOLDYN_TAU 1.0e-15
+#define MOLDYN_RUNS 1000000
+
+/* phsical values */
+
+#define K_BOLTZMANN 1.3807e-27 /* Nm/K */
+#define AMU 1.660540e-27 /* kg */