tincrease velocity step factor to 10x - sphere - GPU-based 3D discrete element … | |
git clone git://src.adamsgaard.dk/sphere | |
Log | |
Files | |
Refs | |
LICENSE | |
--- | |
commit 8f10a0860a007df266703f23ba6a19a7846bc4ed | |
parent ad8cff4022033105dbd14ac7cc5a210420714f28 | |
Author: Anders Damsgaard <[email protected]> | |
Date: Fri, 8 Apr 2016 12:38:22 -0700 | |
increase velocity step factor to 10x | |
Diffstat: | |
M output/cube-init.status.dat | 2 +- | |
M python/cube-init.py | 2 +- | |
M python/rate-state.py | 121 ++++++++++++++++++-----------… | |
M src/device.cu | 4 ++-- | |
4 files changed, 76 insertions(+), 53 deletions(-) | |
--- | |
diff --git a/output/cube-init.status.dat b/output/cube-init.status.dat | |
t@@ -1 +1 @@ | |
-5.0000e+00 8.3333e+01 25 | |
+1.8000e+00 3.0000e+01 9 | |
diff --git a/python/cube-init.py b/python/cube-init.py | |
t@@ -8,7 +8,7 @@ init.generateRadii(psd='uni', mean=0.01, variance=0.002) | |
init.periodicBoundariesXY() | |
# Initialize positions in random grid (also sets world size) | |
-init.initRandomGridPos(gridnum=(6, 6, 1e12)) | |
+init.initRandomGridPos(gridnum=(7, 7, 1e12)) | |
# Disable friction to dissipate energy fast | |
init.k_n[0] = 1.0e8 | |
diff --git a/python/rate-state.py b/python/rate-state.py | |
t@@ -9,7 +9,7 @@ import numpy | |
# start with | |
# ipython sigma-sim1-starter.py 0 1 1.0 2.0e-16 10000.0 2.080e-7 1.0 | |
-sid_prefix = 'ratestate2' | |
+sid_prefix = 'ratestate3' | |
# device = int(sys.argv[1]) | |
# wet = int(sys.argv[2]) | |
t@@ -22,10 +22,13 @@ device = 0 | |
wet = 0 | |
c_phi = 1.0 | |
k_c = 3.5e-13 | |
-sigma0 = 80000.0 | |
+#sigma0 = 80000.0 | |
+sigma0 = 40000.0 | |
mu = 2.080e-7 | |
velfac = 1.0 | |
+start_from_beginning = False | |
+ | |
if wet == 1: | |
fluid = True | |
else: | |
t@@ -33,11 +36,29 @@ else: | |
# load consolidated granular assemblage | |
#sim = sphere.sim('halfshear-sigma0=' + str(sigma0), fluid=False) | |
-sim = sphere.sim('shear-sigma0=' + str(sigma0), fluid=False) | |
-sim.readlast() | |
+sim = sphere.sim(fluid=False) | |
+if start_from_beginning: | |
+ sim = sphere.sim('shear-sigma0=' + str(sigma0), fluid=False) | |
+ sim.readlast() | |
+else: | |
+ if fluid: | |
+ sim.id('ratestate2-sigma0=' + str(sigma0) + '-k_c=' + str(k_c) + \ | |
+ '-mu=' + str(mu) + '-shear') | |
+ else: | |
+ sim.id('ratestate2-sigma0=' + str(sigma0) + '-shear') | |
+ | |
+ sim.readTime(4.9) | |
+ | |
+ if fluid: | |
+ sim.id(sid_prefix + '-sigma0=' + str(sigma0) + '-k_c=' + str(k_c) + \ | |
+ '-mu=' + str(mu) + '-shear') | |
+ else: | |
+ sim.id(sid_prefix + '-sigma0=' + str(sigma0) + '-shear') | |
+ | |
#sim.readbin('../input/shear-sigma0=10000.0-new.bin') | |
#sim.scaleSize(0.01) # from 1 cm to 0.01 cm = 100 micro m (fine sand) | |
+ | |
sim.fluid = fluid | |
if fluid: | |
sim.id(sid_prefix + '-sigma0=' + str(sigma0) + '-k_c=' + str(k_c) + \ | |
t@@ -45,52 +66,54 @@ if fluid: | |
else: | |
sim.id(sid_prefix + '-sigma0=' + str(sigma0) + '-shear') | |
-sim.checkerboardColors(nx=6,ny=3,nz=6) | |
-#sim.checkerboardColors(nx=6,ny=6,nz=6) | |
-sim.cleanup() | |
-sim.adjustUpperWall() | |
-sim.zeroKinematics() | |
+if start_from_beginning: | |
+ sim.checkerboardColors(nx=6,ny=3,nz=6) | |
+ #sim.checkerboardColors(nx=6,ny=6,nz=6) | |
+ sim.cleanup() | |
+ sim.adjustUpperWall() | |
+ sim.zeroKinematics() | |
+ | |
+ sim.shear(1.0/20.0 * velfac) | |
+ K_q_real = 36.4e9 | |
+ K_w_real = 2.2e9 | |
+ | |
+ | |
+ K_q_sim = 1.16e9 | |
+ #K_q_sim = 1.16e6 | |
+ sim.setStiffnessNormal(K_q_sim) | |
+ sim.setStiffnessTangential(K_q_sim) | |
+ 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.setFluidTopFixedPressure() | |
+ #sim.setFluidTopFixedFlow() | |
+ sim.setFluidBottomNoFlow() | |
+ #sim.setFluidBottomFixedPressure() | |
+ #sim.setDEMstepsPerCFDstep(10) | |
+ sim.setMaxIterations(2e5) | |
+ sim.setPermeabilityPrefactor(k_c) | |
+ sim.setFluidCompressibility(1.0/K_w_sim) | |
+ | |
+ sim.w_sigma0[0] = sigma0 | |
+ sim.w_m[0] = numpy.abs(sigma0*sim.L[0]*sim.L[1]/sim.g[2]) | |
+ | |
+ #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.initTemporal(total = 20.0/velfac, file_dt = 0.01/velfac, epsilon=0.07) | |
-sim.shear(1.0/20.0 * velfac) | |
-K_q_real = 36.4e9 | |
-K_w_real = 2.2e9 | |
- | |
- | |
-K_q_sim = 1.16e9 | |
-#K_q_sim = 1.16e6 | |
-sim.setStiffnessNormal(K_q_sim) | |
-sim.setStiffnessTangential(K_q_sim) | |
-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.setFluidTopFixedPressure() | |
- #sim.setFluidTopFixedFlow() | |
- sim.setFluidBottomNoFlow() | |
- #sim.setFluidBottomFixedPressure() | |
- #sim.setDEMstepsPerCFDstep(10) | |
- sim.setMaxIterations(2e5) | |
- sim.setPermeabilityPrefactor(k_c) | |
- sim.setFluidCompressibility(1.0/K_w_sim) | |
- | |
-sim.w_sigma0[0] = sigma0 | |
-sim.w_m[0] = numpy.abs(sigma0*sim.L[0]*sim.L[1]/sim.g[2]) | |
- | |
-#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.initTemporal(total = 20.0/velfac, file_dt = 0.01/velfac, epsilon=0.07) | |
I = numpy.nonzero(sim.fixvel > 0) | |
sim.fixvel[I] = 8.0 # step-wise velocity change when fixvel in ]5.0; 10.0[ | |
diff --git a/src/device.cu b/src/device.cu | |
t@@ -942,10 +942,10 @@ __host__ void DEM::startTime() | |
double t_start = time.current; | |
double t_ratio; // ration between time flow in model vs. reality | |
- // Hard-coded parameters for stepwise velocity change | |
+ // Hard-coded parameters for stepwise velocity change (rate-state exp) | |
int velocity_state = 1; // 1: v1, 2: v2 | |
int change_velocity_state = 0; // 1: increase velocity, 2: decrease vel. | |
- const Float velocity_factor = 1.1; // v2 = v1*velocity_factor | |
+ const Float velocity_factor = 10.0; // v2 = v1*velocity_factor | |
const Float v2_start = 5.0; // seconds | |
const Float v2_end = 10.0; // seconds | |