timprove combined plots - sphere - GPU-based 3D discrete element method algorithm with optional fluid coupling
(HTM) git clone git://src.adamsgaard.dk/sphere
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) LICENSE
---
(DIR) commit 6394a6f0706f80ffa04cf577586d3f09e15854e5
(DIR) parent 7b817e012fbba2d79bee61e00254b40e3e4591a1
(HTM) Author: Anders Damsgaard <anders.damsgaard@geo.au.dk>
Date: Wed, 27 May 2015 15:42:55 +0200
improve combined plots
Diffstat:
M python/halfshear-darcy-combined-or… | 61 ++++++++++++++++++-------------
M python/halfshear-darcy-combined.py | 12 ++++++------
M python/halfshear-darcy-rate-depend… | 6 +++++-
3 files changed, 47 insertions(+), 32 deletions(-)
---
(DIR) diff --git a/python/halfshear-darcy-combined-orig.py b/python/halfshear-darcy-combined-orig.py
t@@ -48,7 +48,8 @@ sim.readfirst(verbose=False)
#nsteps = 2
#nsteps = 10
#nsteps = 400
-nsteps = sim.status()
+#nsteps = sim.status()
+nsteps = 3500
t = numpy.empty(nsteps)
t@@ -194,7 +195,7 @@ ax2color = 'blue'
#lns4 = ax2.plot(t, p_f_top/1000.0 + 80.0, '-',
#color=ax2color,
#label='$p_\\text{f}^\\text{forcing}$')
-lns5 = ax2.plot(t, p_f_bar/1000.0, '--',
+lns5 = ax2.plot(t, p_f_bar/1000.0, ':',
color=ax2color,
label='$\\Delta\\bar{p}_\\text{f}$', linewidth=linewidth)
ax2.set_ylabel('Mean change in fluid pressure [kPa]')
t@@ -211,9 +212,10 @@ ax2.legend(lns, labs, loc='upper right', ncol=3,
fancybox=True, framealpha=legend_alpha)
ax1.set_ylim([-30, 200])
#ax2.set_ylim(ax1.get_ylim())
-ax2.set_ylim([-115,115])
+#ax2.set_ylim([-115,115])
+ax2.set_ylim([-125,125])
-ax1.text(bbox_x, bbox_y, 'a',
+ax1.text(bbox_x, bbox_y, 'A',
horizontalalignment=horizontalalignment,
verticalalignment=verticalalignment,
fontweight=fontweight, bbox=bbox,
t@@ -232,7 +234,7 @@ collection = matplotlib.collections.BrokenBarHCollection.span_where(
linewidth=0)
ax3.add_collection(collection)
-ax3.text(bbox_x, bbox_y, 'b',
+ax3.text(bbox_x, bbox_y, 'B',
horizontalalignment=horizontalalignment,
verticalalignment=verticalalignment,
fontweight=fontweight, bbox=bbox,
t@@ -249,10 +251,10 @@ ax5 = plt.subplot(5, 1, 3, sharex=ax1)
# normalized displacement
#ax5.plot(t, xdisp/xdisp[-1], 'k', linewidth=linewidth)
-if len(xdisp) > 4500:
- ax5.plot(t, xdisp/xdisp[4500], 'k', linewidth=linewidth)
-else:
- ax5.plot(t, xdisp/xdisp[-1], 'k', linewidth=linewidth)
+#if len(xdisp) > 4500:
+ #ax5.plot(t, xdisp/xdisp[4500], 'k', linewidth=linewidth)
+#else:
+ax5.plot(t, xdisp/xdisp[-1], 'k', linewidth=linewidth)
#ax5.set_ylabel('Shear displacement [m]')
ax5.set_ylabel('Normalized displacement [-]')
t@@ -266,7 +268,7 @@ ax6.yaxis.label.set_color(ax6color)
for tl in ax6.get_yticklabels():
tl.set_color(ax6color)
-ax6.text(bbox_x, bbox_y, 'c',
+ax6.text(bbox_x, bbox_y, 'C',
horizontalalignment=horizontalalignment,
verticalalignment=verticalalignment,
fontweight=fontweight, bbox=bbox,
t@@ -275,21 +277,27 @@ ax6.text(bbox_x, bbox_y, 'c',
## ax7: n_heavy, dn_heavy, ax8: z
ax7 = plt.subplot(5, 1, 4, sharex=ax1)
-ax7.semilogy(t[:n.size], n, 'k', label='$n_\\text{heavy}$', linewidth=linewidth)
+if nsteps > n.size:
+ ax7.semilogy(t[:t.size], n, 'k', label='$n_\\text{heavy}$', linewidth=linewidth)
+else:
+ ax7.semilogy(t, n[:t.size], 'k', label='$n_\\text{heavy}$', linewidth=linewidth)
ax7.set_ylabel('Number of heavily loaded contacts [-]')
#ax7.semilogy(t, n - nkept, 'b', label='$\Delta n_\\text{heavy}$')
ax7.set_ylim([1.0e1, 2.0e4])
ax8 = ax7.twinx()
ax8color='green'
-ax8.plot(t[:n.size], coordinationnumber, color=ax8color, linewidth=linewidth)
+if nsteps > n.size:
+ ax8.plot(t[:n.size], coordinationnumber, color=ax8color, linewidth=linewidth)
+else:
+ ax8.plot(t, coordinationnumber[:t.size], color=ax8color, linewidth=linewidth)
ax8.set_ylabel('Contacts per grain [-]')
ax8.yaxis.label.set_color(ax8color)
for tl in ax8.get_yticklabels():
tl.set_color(ax8color)
ax8.set_ylim([-0.2,9.8])
-ax7.text(bbox_x, bbox_y, 'd',
+ax7.text(bbox_x, bbox_y, 'D',
horizontalalignment=horizontalalignment,
verticalalignment=verticalalignment,
fontweight=fontweight, bbox=bbox,
t@@ -326,8 +334,10 @@ cbaxes = fig.add_axes([0.32, 0.1, 0.4, 0.01]) # x,y,w,h
#linewidth=1,
#facecolor='white'))
ax9.add_patch(matplotlib.patches.Rectangle(
- (1.5, 0.04), # x,y
- 7., # dx
+ #(1.5, 0.04), # x,y
+ (1.0, 0.04), # x,y
+ #7., # dx
+ 5.3, # dx
.15, # dy
fill=True,
linewidth=1,
t@@ -351,7 +361,7 @@ ax9.text(0.5, 0.4, 'Mean horizontal porosity [-]\\\\',
'''
cb9.solids.set_rasterized(rasterized)
-ax9.text(bbox_x, bbox_y, 'e',
+ax9.text(bbox_x, bbox_y, 'E',
horizontalalignment=horizontalalignment,
verticalalignment=verticalalignment,
fontweight=fontweight, bbox=bbox,
t@@ -368,15 +378,16 @@ plt.setp(ax5.get_xticklabels(), visible=False)
plt.setp(ax7.get_xticklabels(), visible=False)
#plt.setp(ax8.get_xticklabels(), visible=False)
-ax1.set_xlim([0,9])
-ax2.set_xlim([0,9])
-ax3.set_xlim([0,9])
-#ax4.set_xlim([0,9])
-ax5.set_xlim([0,9])
-ax6.set_xlim([0,9])
-ax7.set_xlim([0,9])
-ax8.set_xlim([0,9])
-ax9.set_xlim([0,9])
+days = 7
+ax1.set_xlim([0,days])
+ax2.set_xlim([0,days])
+ax3.set_xlim([0,days])
+#ax4.set_xlim([0,days])
+ax5.set_xlim([0,days])
+ax6.set_xlim([0,days])
+ax7.set_xlim([0,days])
+ax8.set_xlim([0,days])
+ax9.set_xlim([0,days])
ax9.set_xlabel('Time [d]')
(DIR) diff --git a/python/halfshear-darcy-combined.py b/python/halfshear-darcy-combined.py
t@@ -197,7 +197,7 @@ ax2color = 'blue'
#lns4 = ax2.plot(t, p_f_top/1000.0 + 80.0, '-',
#color=ax2color,
#label='$p_\\text{f}^\\text{forcing}$')
-lns5 = ax2.plot(t, p_f_bar/1000.0, '--',
+lns5 = ax2.plot(t, p_f_bar/1000.0, ':',
color=ax2color,
label='$\\Delta\\bar{p}_\\text{f}$', linewidth=linewidth)
ax2.set_ylabel('Mean change in fluid pressure [kPa]')
t@@ -215,7 +215,7 @@ ax2.legend(lns, labs, loc='upper right', ncol=3,
#ax1.set_ylim([-30, 200])
#ax2.set_ylim([-115,115])
-ax1.text(bbox_x, bbox_y, 'a',
+ax1.text(bbox_x, bbox_y, 'A',
horizontalalignment=horizontalalignment,
verticalalignment=verticalalignment,
fontweight=fontweight, bbox=bbox,
t@@ -234,7 +234,7 @@ collection = matplotlib.collections.BrokenBarHCollection.span_where(
linewidth=0)
ax3.add_collection(collection)
-ax3.text(bbox_x, bbox_y, 'b',
+ax3.text(bbox_x, bbox_y, 'B',
horizontalalignment=horizontalalignment,
verticalalignment=verticalalignment,
fontweight=fontweight, bbox=bbox,
t@@ -265,7 +265,7 @@ ax6.yaxis.label.set_color(ax6color)
for tl in ax6.get_yticklabels():
tl.set_color(ax6color)
-ax6.text(bbox_x, bbox_y, 'c',
+ax6.text(bbox_x, bbox_y, 'C',
horizontalalignment=horizontalalignment,
verticalalignment=verticalalignment,
fontweight=fontweight, bbox=bbox,
t@@ -288,7 +288,7 @@ for tl in ax8.get_yticklabels():
tl.set_color(ax8color)
ax8.set_ylim([-0.2,9.8])
-ax7.text(bbox_x, bbox_y, 'd',
+ax7.text(bbox_x, bbox_y, 'D',
horizontalalignment=horizontalalignment,
verticalalignment=verticalalignment,
fontweight=fontweight, bbox=bbox,
t@@ -351,7 +351,7 @@ ax9.text(0.5, 0.4, 'Mean horizontal porosity [-]\\\\',
'''
cb9.solids.set_rasterized(rasterized)
-ax9.text(bbox_x, bbox_y, 'e',
+ax9.text(bbox_x, bbox_y, 'E',
horizontalalignment=horizontalalignment,
verticalalignment=verticalalignment,
fontweight=fontweight, bbox=bbox,
(DIR) diff --git a/python/halfshear-darcy-rate-dependence.py b/python/halfshear-darcy-rate-dependence.py
t@@ -27,7 +27,11 @@ sids =\
'halfshear-darcy-sigma0=10000.0-k_c=2e-16-mu=2.08e-07-ss=2000.0-A=4750.0-f=0.2',
'halfshear-darcy-sigma0=10000.0-k_c=2e-16-mu=2.08e-07-ss=2000.0-A=4875.0-f=0.2',
'halfshear-darcy-sigma0=10000.0-k_c=2e-16-mu=2.08e-07-ss=2000.0-A=4000.0-f=0.1',
- 'halfshear-darcy-sigma0=10000.0-k_c=2e-16-mu=2.08e-07-ss=2000.0-A=4500.0-f=0.1']
+ 'halfshear-darcy-sigma0=10000.0-k_c=2e-16-mu=2.08e-07-ss=2000.0-A=4500.0-f=0.1',
+ 'halfshear-darcy-sigma0=10000.0-k_c=2e-16-mu=2.08e-07-ss=3000.0-A=4000.0-f=0.2',
+ 'halfshear-darcy-sigma0=10000.0-k_c=2e-16-mu=2.08e-07-ss=3000.0-A=4250.0-f=0.2',
+ 'halfshear-darcy-sigma0=10000.0-k_c=2e-16-mu=2.08e-07-ss=3000.0-A=4500.0-f=0.2',
+ ]
#['halfshear-darcy-sigma0=80000.0-k_c=3.5e-13-mu=1.797e-06-ss=10000.0-A=70000.0-f=0.2']
outformat = 'pdf'
fluid = True