Introduction
Introduction Statistics Contact Development Disclaimer Help
tscript to interpret and plot consolidation curves - sphere - GPU-based 3D disc…
git clone git://src.adamsgaard.dk/sphere
Log
Files
Refs
LICENSE
---
commit 0e8957887ab4ae4b2a08669f4a7e5898164ccd49
parent b520cff0a79ba8565828b298c2d1daa3e35fe21b
Author: Anders Damsgaard <[email protected]>
Date: Thu, 21 Aug 2014 11:04:00 +0200
script to interpret and plot consolidation curves
Diffstat:
A python/consolidation-curve.py | 83 +++++++++++++++++++++++++++++…
1 file changed, 83 insertions(+), 0 deletions(-)
---
diff --git a/python/consolidation-curve.py b/python/consolidation-curve.py
t@@ -0,0 +1,83 @@
+#!/usr/bin/env python
+import matplotlib
+matplotlib.use('Agg')
+matplotlib.rcParams.update({'font.size': 18, 'font.family': 'serif'})
+import os
+
+import sphere
+import numpy
+import matplotlib.pyplot as plt
+
+c_phi = 1.0
+c_grad_p_list = [1.0, 0.1, 0.01]
+#sigma0 = 10.0e3
+sigma0 = 5.0e3
+
+t = [[], [], []]
+H = [[], [], []]
+
+c = 0
+for c_grad_p in c_grad_p_list:
+
+ sim = sphere.sim('cons-sigma0=' + str(sigma0) + '-c_phi=' + \
+ str(c_phi) + '-c_grad_p=' + str(c_grad_p), fluid=True)
+ t[c] = numpy.empty(sim.status())
+ H[c] = numpy.empty(sim.status())
+
+ #sim.visualize('walls')
+ #sim.writeVTKall()
+
+ #sim.plotLoadCurve()
+ #sim.readfirst(verbose=True)
+ for i in numpy.arange(1, sim.status()+1):
+ sim.readstep(i, verbose=True)
+ print(sim.c_grad_p[0])
+ t[c][i-1] = sim.time_current[0]
+ H[c][i-1] = sim.w_x[0]
+
+ '''
+ # find consolidation parameters
+ self.H0 = H[0]
+ self.H100 = H[-1]
+ self.H50 = (self.H0 + self.H100)/2.0
+ T50 = 0.197 # case I
+
+ # find the time where 50% of the consolidation (H50) has happened by
+ # linear interpolation. The values in H are expected to be
+ # monotonically decreasing. See Numerical Recipies p. 115
+ i_lower = 0
+ i_upper = self.status()-1
+ while (i_upper - i_lower > 1):
+ i_midpoint = int((i_upper + i_lower)/2)
+ if (self.H50 < H[i_midpoint]):
+ i_lower = i_midpoint
+ else:
+ i_upper = i_midpoint
+ self.t50 = t[i_lower] + (t[i_upper] - t[i_lower]) * \
+ (self.H50 - H[i_lower])/(H[i_upper] - H[i_lower])
+
+ self.c_v = T50*self.H50**2.0/(self.t50)
+ if self.fluid == True:
+ e = numpy.mean(sb.phi[:,:,3:-8]) # ignore boundaries
+ else:
+ e = sb.voidRatio()
+ '''
+
+ H[c] -= H[c][0]
+
+ c += 1
+
+
+plt.xlabel('Time [s]')
+plt.ylabel('Thickness change [m]')
+#plt.ticklabel_format(style='sci', axis='y', scilimits=(0,0))
+for c in range(len(c_grad_p_list)):
+ plt.semilogx(t[c], H[c], 'o-', label='$c$ = %.2f' % (c_grad_p_list[c]))
+plt.grid()
+plt.legend(loc=0)
+
+plt.tight_layout()
+filename = 'cons-curves.pdf'
+plt.savefig(filename)
+print(os.getcwd() + '/' + filename)
+plt.savefig(filename)
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.