tchange VERSION to double - slidergrid - grid of elastic sliders on a frictiona… | |
git clone git://src.adamsgaard.dk/slidergrid | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit faff3bde365e55629dc9c2414e30d2dcbf96d3ef | |
parent d5eaf125740490f062884823edb1fead98f8efbb | |
Author: Anders Damsgaard <[email protected]> | |
Date: Mon, 4 Apr 2016 15:16:42 -0700 | |
change VERSION to double | |
Diffstat: | |
M postprocessing.py | 50 +++++++++++++++++------------… | |
M slidergrid/constants.h | 2 +- | |
M slidergrid/simulation.c | 17 ++++++++++++++++- | |
3 files changed, 45 insertions(+), 24 deletions(-) | |
--- | |
diff --git a/postprocessing.py b/postprocessing.py | |
t@@ -2,10 +2,11 @@ | |
import sys | |
import getopt | |
import os | |
+import csv | |
import numpy as np | |
import matplotlib.pyplot as plt | |
-VERSION = '0.1-beta' | |
+VERSION = '0.01' | |
SCRIPTNAME = sys.argv[0] | |
t@@ -47,16 +48,18 @@ class sgvis: | |
def read_general(self, filename): | |
self.general_filename = filename | |
- raw = np.loadtxt(self.folder + '/' + self.general_filename) | |
- self.version = raw[0] | |
- self.id = raw[1] | |
- self.N = raw[2] | |
- self.time = raw[3] | |
- self.time_end = raw[4] | |
- self.dt = raw[5] | |
- self.file_interval = raw[6] | |
- self.iteration = raw[7] | |
- self.bond_length_limit = raw[8] | |
+ with open(self.folder + '/' + self.general_filename, 'r') as f: | |
+ reader = csv.reader(f, delimiter='\t') | |
+ for raw in reader: | |
+ self.version = float(raw[0]) | |
+ self.sid = raw[1] | |
+ self.N = int(raw[2]) | |
+ self.time = float(raw[3]) | |
+ self.time_end = float(raw[4]) | |
+ self.dt = float(raw[5]) | |
+ self.file_interval = float(raw[6]) | |
+ self.iteration = int(raw[7]) | |
+ self.bond_length_limit = float(raw[8]) | |
def plot_sliders(self): | |
plt.plot(self.pos[:, 0], self.pos[:, 1], '+') | |
t@@ -75,7 +78,7 @@ class sgvis: | |
self.plot_sliders() | |
def current_time(self): | |
- return 0.0 | |
+ return self.time | |
def current_kinetic_energy(self): | |
E_t = 0.0 | |
t@@ -94,23 +97,26 @@ class sgvis: | |
* np.sqrt(np.dot(self.angvel[idx, :], self.angvel[idx, :]))**2 | |
def plot_kinetic_energy(self): | |
- t = [] | |
- E_t_series = [] | |
- E_r_series = [] | |
+ self.t_series = [] | |
+ self.E_t_series = [] | |
+ self.E_r_series = [] | |
for filename in os.listdir(self.folder): | |
if 'sliders' in filename \ | |
and '.txt' in filename \ | |
- and '.pdf' in filename \ | |
+ and '.pdf' not in filename \ | |
and '.png' not in filename: | |
self.read_sliders(filename) | |
self.read_general(filename.replace('sliders', 'general')) | |
- t.append(self.current_time) | |
+ self.t_series.append(self.time) | |
E_t, E_r = self.current_kinetic_energy() | |
- E_t_series.append(E_t) | |
- E_r_series.append(E_r) | |
- | |
- plt.plot(t, E_t_series) | |
- plt.plot(t, E_r_series) | |
+ self.E_t_series.append(E_t) | |
+ self.E_r_series.append(E_r) | |
+ | |
+ sorted_idx = np.argsort(self.t_series) | |
+ print(sorted_idx) | |
+ t_sorted = np.sort(self.t_series, order=sorted_idx) | |
+ plt.plot(t_sorted, self.E_t_series) | |
+ plt.plot(self.t_series[sorted_idx], self.E_r_series[sorted_idx]) | |
outfile = self.folder + '/E_kin.pdf' | |
print(outfile) | |
plt.savefig(outfile) | |
diff --git a/slidergrid/constants.h b/slidergrid/constants.h | |
t@@ -1,6 +1,6 @@ | |
#ifndef CONSTANTS_H_ | |
#define CONSTANTS_H_ | |
-static const char* VERSION = "beta-0.1"; | |
+static const double VERSION = 0.01; | |
#endif | |
diff --git a/slidergrid/simulation.c b/slidergrid/simulation.c | |
t@@ -152,7 +152,7 @@ int save_general_state_to_file(const simulation* sim, cons… | |
} | |
fprintf(f, | |
- "%s\t" // VERSION | |
+ "%f\t" // VERSION | |
"%s\t" // sim->id | |
"%d\t" // sim->N | |
"%f\t" // sim->time | |
t@@ -177,6 +177,21 @@ int save_general_state_to_file(const simulation* sim, con… | |
return 0; | |
} | |
+/* save all simulation information to binary format */ | |
+int save_binary_file(const simulation* sim, const char* filename) | |
+{ | |
+ FILE* f = fopen(filename, "wb"); | |
+ if (f == NULL) { | |
+ fprintf(stderr, "Error: Could not open output file %s.", filename); | |
+ return 1; | |
+ } | |
+ | |
+ | |
+ | |
+ fclose(f); | |
+ return 0; | |
+} | |
+ | |
/* save slider information as an unstructured grid to a VTK xml file. The | |
* filename extension should be '.vtu' in order for Paraview to correctly hand… | |
* the file upon import. See VTK-file-formats.pdf for documentation on the fil… |