Merge branch 'leadoff'
[physik/posic.git] / msd_calc.c
diff --git a/msd_calc.c b/msd_calc.c
new file mode 100644 (file)
index 0000000..80388d8
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * calculation of mean square displacement
+ *
+ * author: frank.zirkelbach@physik.uni-augsburg.de
+ *
+ */
+
+#define _GNU_SOURCE
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+
+#include "moldyn.h"
+
+int usage(char *prog) {
+
+       printf("\nusage:\n");
+       printf("  %s <save file>\n\n",prog);
+
+       return -1;
+}
+
+int main(int argc,char **argv) {
+
+       t_moldyn moldyn;
+       int ret;
+       double msd[3];
+
+       if(argc!=2) {
+               usage(argv[0]);
+               return -1;
+       }
+
+       memset(&moldyn,0,sizeof(t_moldyn));
+
+       printf("[msd calc] reading save file ...\n");
+       ret=moldyn_read_save_file(&moldyn,argv[1]);
+       if(ret) {
+               printf("[msd calc] exit!\n");
+               return ret;
+       }
+
+       calculate_msd(&moldyn,msd);
+       
+       printf("MSD - %f ps: %.10f %.10f %.10f\n",moldyn.time,
+              msd[0],msd[1],msd[2]);
+
+       return 0;
+}
+