tadded script for simulations with modulating stresses - sphere - GPU-based 3D … | |
git clone git://src.adamsgaard.dk/sphere | |
Log | |
Files | |
Refs | |
LICENSE | |
--- | |
commit d2028121eff909fff835dbe760771c2d87dd5c6c | |
parent 665811d1559586641cc8d1d12ce32dde5d5982ae | |
Author: Anders Damsgaard <[email protected]> | |
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(-) | |
--- | |
diff --git a/python/halfshear-darcy-stress-mod-starter.py b/python/halfshear-da… | |
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> <… | |
+ | |
+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') |