Introduction
Introduction Statistics Contact Development Disclaimer Help
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…
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.