tapply normal stress, do not create visualization image if method isn't underst… | |
git clone git://src.adamsgaard.dk/sphere | |
Log | |
Files | |
Refs | |
LICENSE | |
--- | |
commit 8e72814af7eb96dd3b6673e10ce7567023829e5d | |
parent ebbddb828cd9e760f1a9ba991298b15fc1cc8d34 | |
Author: Anders Damsgaard <[email protected]> | |
Date: Thu, 2 Oct 2014 13:52:53 +0200 | |
apply normal stress, do not create visualization image if method isn't understo… | |
Diffstat: | |
M python/halfshear-starter.py | 31 ++++++++++++++++++-----------… | |
M python/shear-results-pressures.py | 52 ++++++++++++++++++++---------… | |
M python/sphere.py | 2 +- | |
3 files changed, 53 insertions(+), 32 deletions(-) | |
--- | |
diff --git a/python/halfshear-starter.py b/python/halfshear-starter.py | |
t@@ -21,13 +21,17 @@ else: | |
#sim = sphere.sim('diffusivity-sigma0=' + str(sigma0) +'-c_phi=1.0-c_grad_p=1.… | |
# fluid=True) | |
-sim = sphere.sim('halfshear-sigma0=' + str(sigma0) + '-hw-relax', fluid=False) | |
+sim = sphere.sim('halfshear-sigma0=' + str(sigma0), fluid=False) | |
+print('Input: ' + sim.sid) | |
sim.readlast() | |
-print(sim.sid) | |
sim.fluid = fluid | |
+if fluid: | |
+ sim.id('halfshear-sigma0=' + str(sigma0) + '-c=' + str(c_grad_p) + '-shear… | |
+else: | |
+ sim.id('halfshear-sigma0=' + str(sigma0) + '-shear') | |
-sim.checkerboardColors(nx=6,ny=6,nz=6) | |
+sim.checkerboardColors(nx=6,ny=3,nz=6) | |
sim.cleanup() | |
sim.adjustUpperWall() | |
sim.zeroKinematics() | |
t@@ -39,24 +43,25 @@ if fluid: | |
#sim.L[2] *= 2.0 | |
sim.initFluid(mu = 1.787e-6, p = 600.0e3, hydrostatic = True) | |
#sim.initFluid(mu = 17.87e-4, p = 1.0e5, hydrostatic = True) | |
-sim.setFluidBottomNoFlow() | |
-sim.setFluidTopFixedPressure() | |
-sim.setDEMstepsPerCFDstep(10) | |
-sim.setMaxIterations(2e5) | |
+ sim.setFluidBottomNoFlow() | |
+ sim.setFluidTopFixedPressure() | |
+ sim.setDEMstepsPerCFDstep(100) | |
+ sim.setMaxIterations(2e5) | |
+ sim.c_phi[0] = c_phi | |
+ sim.c_grad_p[0] = c_grad_p | |
+ | |
sim.initTemporal(total = 20.0, file_dt = 0.01, epsilon=0.07) | |
-sim.c_phi[0] = c_phi | |
-sim.c_grad_p[0] = c_grad_p | |
sim.w_devs[0] = sigma0 | |
-#sim.w_m[0] = numpy.abs(sigma0*sim.L[0]*sim.L[1]/sim.g[2]) | |
+sim.w_m[0] = numpy.abs(sigma0*sim.L[0]*sim.L[1]/sim.g[2]) | |
sim.mu_s[0] = 0.5 | |
sim.mu_d[0] = 0.5 | |
sim.setDampingNormal(0.0) | |
sim.setDampingTangential(0.0) | |
# Fix lowermost particles | |
-dz = sim.L[2]/sim.num[2] | |
-I = numpy.nonzero(sim.x[:,2] < 1.5*dz) | |
-sim.fixvel[I] = 1 | |
+#dz = sim.L[2]/sim.num[2] | |
+#I = numpy.nonzero(sim.x[:,2] < 1.5*dz) | |
+#sim.fixvel[I] = 1 | |
sim.run(dry=True) | |
sim.run(device=device) | |
diff --git a/python/shear-results-pressures.py b/python/shear-results-pressures… | |
t@@ -34,7 +34,7 @@ for i in numpy.arange(sim.num[2]): | |
shear_strain = numpy.zeros(sim.status()) | |
dev_pres = numpy.zeros((sim.num[2], sim.status())) | |
-pres_static = numpy.zeros_like(dev_pres) | |
+pres_static = numpy.ones_like(dev_pres)*100.0e3 | |
pres = numpy.zeros_like(dev_pres) | |
for i in numpy.arange(sim.status()): | |
t@@ -43,47 +43,63 @@ for i in numpy.arange(sim.status()): | |
pres[:,i] = numpy.average(numpy.average(sim.p_f, axis=0), axis=0) | |
- for z in numpy.arange(0, sim.w_x[0]+1): | |
+ wall0_iz = int(sim.w_x[0]/(sim.L[2]/sim.num[2])) | |
+ for z in numpy.arange(0, wall0_iz+1): | |
pres_static[z,i] = \ | |
(sim.w_x[0] - zpos_c[z])*sim.rho_f*numpy.abs(sim.g[2])\ | |
+ sim.p_f[0,0,-1] | |
+ #pres_static[z,i] = zpos_c[z] | |
+ #pres_static[z,i] = z | |
shear_strain[i] = sim.shearStrain() | |
dev_pres = pres - pres_static | |
-#fig = plt.figure(figsize=(8,6)) | |
-fig = plt.figure(figsize=(8,15)) | |
+fig = plt.figure(figsize=(8,6)) | |
+#fig = plt.figure(figsize=(8,15)) | |
-ax1 = plt.subplot(311) | |
-ax1.pcolormesh(shear_strain, zpos_c, dev_pres/1000.0, rasterized=True) | |
+min_p = numpy.min(dev_pres)/1000.0 | |
+#max_p = numpy.min(dev_pres) | |
+max_p = numpy.abs(min_p) | |
+ | |
+cmap = matplotlib.colors.ListedColormap(['b', 'w', 'r']) | |
+bounds = [min_p, 0, max_p] | |
+norm = matplotlib.colors.BoundaryNorm(bounds, cmap.N) | |
+ | |
+#ax1 = plt.subplot(311) | |
+ax1 = plt.subplot(111) | |
+im1 = ax1.pcolormesh(shear_strain, zpos_c, dev_pres/1000.0, rasterized=True, | |
+ cmap=cmap, norm=norm) | |
ax1.set_xlim([0, shear_strain[-1]]) | |
ax1.set_ylim([zpos_c[0], sim.w_x[0]]) | |
ax1.set_xlabel('Shear strain $\\gamma$ [-]') | |
ax1.set_ylabel('Vertical position $z$ [m]') | |
-cb = plt.colorbar() | |
-cb.set_label('Deviatoric pressure $p_\\text{f}$ [kPa]') | |
-cb.solids.set_rasterized(True) | |
+#cb1 = plt.colorbar(im1, boundaries=[min_p, numpy.abs(min_p)]) | |
+cb1 = plt.colorbar(cmap=cmap, norm=norm) | |
+cb1.set_label('Deviatoric pressure $p_\\text{f}$ [kPa]') | |
+cb1.solids.set_rasterized(True) | |
+''' | |
ax2 = plt.subplot(312) | |
-ax2.pcolormesh(shear_strain, zpos_c, pres/1000.0, rasterized=True) | |
+im2 = ax2.pcolormesh(shear_strain, zpos_c, pres/1000.0, rasterized=True) | |
ax2.set_xlim([0, shear_strain[-1]]) | |
ax2.set_ylim([zpos_c[0], sim.w_x[0]]) | |
ax2.set_xlabel('Shear strain $\\gamma$ [-]') | |
ax2.set_ylabel('Vertical position $z$ [m]') | |
-cb = plt.colorbar() | |
-cb.set_label('Pressure $p_\\text{f}$ [kPa]') | |
-cb.solids.set_rasterized(True) | |
+cb2 = plt.colorbar(im2) | |
+cb2.set_label('Pressure $p_\\text{f}$ [kPa]') | |
+cb2.solids.set_rasterized(True) | |
-ax3 = plt.subplot(312) | |
-ax3.pcolormesh(shear_strain, zpos_c, pres_static/1000.0, rasterized=True) | |
+ax3 = plt.subplot(313) | |
+im3 = ax3.pcolormesh(shear_strain, zpos_c, pres_static/1000.0, rasterized=True) | |
ax3.set_xlim([0, shear_strain[-1]]) | |
ax3.set_ylim([zpos_c[0], sim.w_x[0]]) | |
ax3.set_xlabel('Shear strain $\\gamma$ [-]') | |
ax3.set_ylabel('Vertical position $z$ [m]') | |
-cb = plt.colorbar() | |
-cb.set_label('Pressure $p_\\text{f}$ [kPa]') | |
-cb.solids.set_rasterized(True) | |
+cb3 = plt.colorbar(im3) | |
+cb3.set_label('Static Pressure $p_\\text{f}$ [kPa]') | |
+cb3.solids.set_rasterized(True) | |
+''' | |
#plt.MaxNLocator(nbins=4) | |
diff --git a/python/sphere.py b/python/sphere.py | |
t@@ -5185,7 +5185,7 @@ class sim: | |
else : | |
print("Visualization type '" + method + "' not understood") | |
- | |
+ return | |
# Optional save of figure | |
if (outformat != 'txt'): |