tadded script for simulations with modulating stresses - 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 d2028121eff909fff835dbe760771c2d87dd5c6c
(DIR) parent 665811d1559586641cc8d1d12ce32dde5d5982ae
(HTM) Author: Anders Damsgaard <anders.damsgaard@geo.au.dk>
Date: Wed, 21 Jan 2015 11:39:59 +0100
added script for simulations with modulating stresses
Diffstat:
A python/halfshear-darcy-stress-mod-… | 93 +++++++++++++++++++++++++++++++
1 file changed, 93 insertions(+), 0 deletions(-)
---
(DIR) diff --git a/python/halfshear-darcy-stress-mod-starter.py b/python/halfshear-darcy-stress-mod-starter.py
t@@ -0,0 +1,93 @@
+#!/usr/bin/env python
+import sphere
+import numpy
+import sys
+
+# launch with:
+# $ ipython halfshear-darcy-stress-starter.py <device> <fluid> <c_phi> <k_c> <sigma_0> <mu> <shear_stress> <mod_A> <mod_f>
+
+device = int(sys.argv[1])
+wet = int(sys.argv[2])
+c_phi = float(sys.argv[3])
+k_c = float(sys.argv[4])
+sigma0 = float(sys.argv[5])
+mu = float(sys.argv[6])
+shear_stress = float(sys.argv[7])
+mod_A = float(sys.argv[8])
+mod_f = float(sys.argv[9])
+
+if wet == 1:
+ fluid = True
+else:
+ fluid = False
+
+sim = sphere.sim('halfshear-sigma0=' + str(sigma0), fluid=False)
+print('Input: ' + sim.sid)
+sim.readlast()
+
+sim.fluid = fluid
+if fluid:
+ sim.id('halfshear-darcy-sigma0=' + str(sigma0) + '-k_c=' + str(k_c) +
+ '-mu=' + str(mu) + '-ss=' + str(shear_stress) + '-A=' + str(mod_A)
+ + '-f=' + str(mod_f))
+else:
+ sim.id('halfshear-sigma0=' + str(sigma0) + '-ss=' + str(shear_stress) + \
+ '-shear')
+
+sim.checkerboardColors(nx=6,ny=3,nz=6)
+sim.cleanup()
+sim.adjustUpperWall()
+sim.zeroKinematics()
+
+#sim.shear(0.0/20.0)
+#sim.shear(1.0/20.0 * velfac)
+sim.shear(shear_stress = shear_stress)
+K_q_real = 36.4e9
+K_w_real = 2.2e9
+K_q_sim = 1.16e9
+K_w_sim = K_w_real/K_q_real * K_q_sim
+
+if fluid:
+ #sim.num[2] *= 2
+ sim.num[:] /= 2
+ #sim.L[2] *= 2.0
+ #sim.initFluid(mu = 1.787e-6, p = 600.0e3, cfd_solver = 1)
+ sim.initFluid(mu = mu, p = 0.0, cfd_solver = 1)
+ sim.setFluidBottomNoFlow()
+ sim.setFluidTopFixedPressure()
+ #sim.setDEMstepsPerCFDstep(10)
+ sim.setMaxIterations(2e5)
+ sim.setPermeabilityPrefactor(k_c)
+ sim.setFluidCompressibility(1.0/K_w_sim)
+ sim.setFluidPressureModulation(A=mod_A, f=mod_f)
+
+sim.w_sigma0[0] = sigma0
+sim.w_m[0] = numpy.abs(sigma0*sim.L[0]*sim.L[1]/sim.g[2])
+sim.setTopWallNormalStressModulation(A=mod_A, f=mod_f)
+
+#sim.setStiffnessNormal(36.4e9 * 0.1 / 2.0)
+#sim.setStiffnessTangential(36.4e9/3.0 * 0.1 / 2.0)
+sim.setStiffnessNormal(K_q_sim)
+sim.setStiffnessTangential(K_q_sim)
+sim.mu_s[0] = 0.5
+sim.mu_d[0] = 0.5
+sim.setDampingNormal(0.0)
+sim.setDampingTangential(0.0)
+#sim.deleteAllParticles()
+#sim.fixvel[:] = -1.0
+
+sim.initTemporal(total = 20.0, file_dt = 0.01, epsilon=0.07)
+#sim.initTemporal(total = 20.0, file_dt = 0.00001, epsilon=0.07)
+#sim.time_dt[0] *= 1.0e-2
+#sim.initTemporal(total = 1.0e-4, file_dt = 1.0e-5, epsilon=0.07)
+
+# Fix lowermost particles
+#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)
+sim.writeVTKall()
+#sim.visualize('walls')
+#sim.visualize('fluid-pressure')