thalfshear-starter.py - 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
       ---
       thalfshear-starter.py (1645B)
       ---
            1 #!/usr/bin/env python
            2 import sphere
            3 import numpy
            4 import sys
            5 
            6 # launch with:
            7 # $ python shear-starter.py <device> <fluid> <c_phi> <c_v> <sigma_0> <c_a>
            8 
            9 device = int(sys.argv[1])
           10 wet = int(sys.argv[2])
           11 c_phi = float(sys.argv[3])
           12 c_v = float(sys.argv[4])
           13 sigma0 = float(sys.argv[5])
           14 c_a = float(sys.argv[6])
           15 
           16 if wet == 1:
           17     fluid = True
           18 else:
           19     fluid = False
           20     
           21 sim = sphere.sim('halfshear-sigma0=' + str(sigma0), fluid=False)
           22 print('Input: ' + sim.sid)
           23 sim.readlast()
           24 
           25 sim.fluid = fluid
           26 if fluid:
           27     sim.id('halfshear-sigma0=' + str(sigma0) + '-c_v=' + str(c_v) + \
           28             '-c_a=' + str(c_a) + '-shear')
           29 else:
           30     sim.id('halfshear-sigma0=' + str(sigma0) + '-shear')
           31 
           32 sim.checkerboardColors(nx=6,ny=3,nz=6)
           33 sim.cleanup()
           34 sim.adjustUpperWall()
           35 sim.zeroKinematics()
           36 
           37 sim.shear(1.0/20.0)
           38 
           39 if fluid:
           40     #sim.num[2] *= 2
           41     #sim.L[2] *= 2.0
           42     sim.initFluid(mu = 1.787e-6, p = 600.0e3, hydrostatic = True)
           43     #sim.initFluid(mu = 17.87e-4, p = 1.0e5, hydrostatic = True)
           44     sim.setFluidBottomNoFlow()
           45     sim.setFluidTopFixedPressure()
           46     sim.setDEMstepsPerCFDstep(100)
           47     sim.setMaxIterations(2e5)
           48     sim.c_phi[0] = c_phi
           49     sim.c_v[0] = c_v
           50     sim.c_a[0] = c_a
           51 
           52 sim.initTemporal(total = 20.0, file_dt = 0.01, epsilon=0.07)
           53 sim.w_sigma0[0] = sigma0
           54 sim.w_m[0] = numpy.abs(sigma0*sim.L[0]*sim.L[1]/sim.g[2])
           55 sim.mu_s[0] = 0.5
           56 sim.mu_d[0] = 0.5
           57 sim.setDampingNormal(0.0)
           58 sim.setDampingTangential(0.0)
           59 
           60 # Fix lowermost particles
           61 #dz = sim.L[2]/sim.num[2]
           62 #I = numpy.nonzero(sim.x[:,2] < 1.5*dz)
           63 #sim.fixvel[I] = 1
           64 
           65 sim.run(dry=True)
           66 sim.run(device=device)
           67 #sim.writeVTKall()
           68 #sim.visualize('walls')
           69 #sim.visualize('fluid-pressure')