tchange VERSION to double - slidergrid - grid of elastic sliders on a frictional surface (HTM) git clone git://src.adamsgaard.dk/slidergrid (DIR) Log (DIR) Files (DIR) Refs (DIR) README (DIR) LICENSE --- (DIR) commit faff3bde365e55629dc9c2414e30d2dcbf96d3ef (DIR) parent d5eaf125740490f062884823edb1fead98f8efbb (HTM) Author: Anders Damsgaard <anders.damsgaard@geo.au.dk> 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(-) --- (DIR) 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) (DIR) 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 (DIR) diff --git a/slidergrid/simulation.c b/slidergrid/simulation.c t@@ -152,7 +152,7 @@ int save_general_state_to_file(const simulation* sim, const char* filename) } 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, const char* filename) 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 handle * the file upon import. See VTK-file-formats.pdf for documentation on the file