tFix continued line indentation - sphere - GPU-based 3D discrete element method… | |
git clone git://src.adamsgaard.dk/sphere | |
Log | |
Files | |
Refs | |
LICENSE | |
--- | |
commit 439019dc191d4e17968abd9d9ea70164a2489b84 | |
parent 84e33bd162733d251f944d84b1d799bc6951f4b7 | |
Author: Anders Damsgaard <[email protected]> | |
Date: Mon, 2 Sep 2019 15:20:47 +0200 | |
Fix continued line indentation | |
Diffstat: | |
M python/sphere.py | 241 ++++++++++++++++++-----------… | |
1 file changed, 138 insertions(+), 103 deletions(-) | |
--- | |
diff --git a/python/sphere.py b/python/sphere.py | |
t@@ -313,19 +313,19 @@ class sim: | |
# Fluid velocities [m/s] | |
self.v_f = numpy.zeros((self.num[0], self.num[1], self.num[2], sel… | |
- dtype=numpy.float64) | |
+ dtype=numpy.float64) | |
# Fluid pressures [Pa] | |
self.p_f = numpy.zeros((self.num[0], self.num[1], self.num[2]), | |
- dtype=numpy.float64) | |
+ dtype=numpy.float64) | |
# Fluid cell porosities [-] | |
self.phi = numpy.zeros((self.num[0], self.num[1], self.num[2]), | |
- dtype=numpy.float64) | |
+ dtype=numpy.float64) | |
# Fluid cell porosity change [1/s] | |
self.dphi = numpy.zeros((self.num[0], self.num[1], self.num[2]), | |
- dtype=numpy.float64) | |
+ dtype=numpy.float64) | |
# Fluid density [kg/(m^3)] | |
self.rho_f = numpy.ones(1, dtype=numpy.float64) * 1.0e3 | |
t@@ -365,8 +365,8 @@ class sim: | |
# Hold pressures constant in fluid cell (0: True, 1: False) | |
self.p_f_constant = numpy.zeros((self.num[0], | |
- self.num[1], | |
- self.num[2]), dtype=numpy.int32) | |
+ self.num[1], | |
+ self.num[2]), dtype=numpy.int32) | |
# Navier-Stokes | |
if self.cfd_solver[0] == 0: | |
t@@ -1113,15 +1113,15 @@ class sim: | |
self.bonds[i, 0] = numpy.fromfile(fh, dtype=numpy.uint32, … | |
self.bonds[i, 1] = numpy.fromfile(fh, dtype=numpy.uint32, … | |
self.bonds_delta_n = numpy.fromfile(fh, dtype=numpy.float64, | |
- count=self.nb0) | |
+ count=self.nb0) | |
self.bonds_delta_t = numpy.fromfile(fh, dtype=numpy.float64, | |
- count=self.nb0*self.nd)\ | |
- .reshape(self.nb0, self.nd) | |
+ count=self.nb0*self.nd)\ | |
+ .reshape(self.nb0, self.nd) | |
self.bonds_omega_n = numpy.fromfile(fh, dtype=numpy.float64, | |
- count=self.nb0) | |
+ count=self.nb0) | |
self.bonds_omega_t = numpy.fromfile(fh, dtype=numpy.float64, | |
- count=self.nb0*self.nd)\ | |
- .reshape(self.nb0, self.nd) | |
+ count=self.nb0*self.nd)\ | |
+ .reshape(self.nb0, self.nd) | |
else: | |
self.nb0 = 0 | |
t@@ -1135,101 +1135,126 @@ class sim: | |
self.mu = numpy.fromfile(fh, dtype=numpy.float64, count=1) | |
self.v_f = numpy.empty((self.num[0], | |
- self.num[1], | |
- self.num[2], | |
- self.nd), dtype=numpy.float64) | |
+ self.num[1], | |
+ self.num[2], | |
+ self.nd), dtype=numpy.float64) | |
self.p_f = numpy.empty((self.num[0], | |
- self.num[1], | |
- self.num[2]), dtype=numpy.float64) | |
+ self.num[1], | |
+ self.num[2]), dtype=numpy.float64) | |
self.phi = numpy.empty((self.num[0], | |
- self.num[1], | |
- self.num[2]), dtype=numpy.float64) | |
+ self.num[1], | |
+ self.num[2]), dtype=numpy.float64) | |
self.dphi = numpy.empty((self.num[0], | |
- self.num[1], | |
- self.num[2]), dtype=numpy.float64) | |
+ self.num[1], | |
+ self.num[2]), dtype=numpy.float64) | |
for z in numpy.arange(self.num[2]): | |
for y in numpy.arange(self.num[1]): | |
for x in numpy.arange(self.num[0]): | |
self.v_f[x, y, z, 0] = numpy.fromfile(fh, | |
- dtype=numpy.flo… | |
- count=1) | |
+ dtype=numpy.… | |
+ count=1) | |
self.v_f[x, y, z, 1] = numpy.fromfile(fh, | |
+ dtype=numpy.… | |
+ count=1) | |
+ self.v_f[x, y, z, 2] = numpy.fromfile(fh, | |
+ dtype=numpy.… | |
+ count=1) | |
+ self.p_f[x, y, z] = numpy.fromfile(fh, | |
dtype=numpy.flo… | |
count=1) | |
- self.v_f[x, y, z, 2] = numpy.fromfile(fh, | |
+ self.phi[x, y, z] = numpy.fromfile(fh, | |
dtype=numpy.flo… | |
count=1) | |
- self.p_f[x, y, z] = numpy.fromfile(fh, dtype=numpy… | |
- count=1) | |
- self.phi[x, y, z] = numpy.fromfile(fh, dtype=numpy… | |
- count=1) | |
- self.dphi[x, y, z] = numpy.fromfile(fh, dtype=nump… | |
- count=1)\ | |
+ self.dphi[x, y, z] = numpy.fromfile(fh, | |
+ dtype=numpy.fl… | |
+ count=1)\ | |
/(self.time_dt*self.ndem) | |
if self.version >= 0.36: | |
- self.rho_f = numpy.fromfile(fh, dtype=numpy.float64, count… | |
- self.p_mod_A = numpy.fromfile(fh, dtype=numpy.float64, cou… | |
- self.p_mod_f = numpy.fromfile(fh, dtype=numpy.float64, cou… | |
- self.p_mod_phi = numpy.fromfile(fh, dtype=numpy.float64, c… | |
+ self.rho_f = numpy.fromfile(fh, dtype=numpy.float64, | |
+ count=1) | |
+ self.p_mod_A = numpy.fromfile(fh, dtype=numpy.float64, | |
+ count=1) | |
+ self.p_mod_f = numpy.fromfile(fh, dtype=numpy.float64, | |
+ count=1) | |
+ self.p_mod_phi = numpy.fromfile(fh, dtype=numpy.float64, | |
+ count=1) | |
if self.version >= 2.12 and self.cfd_solver[0] == 1: | |
- self.bc_xn = numpy.fromfile(fh, dtype=numpy.int32, cou… | |
- self.bc_xp = numpy.fromfile(fh, dtype=numpy.int32, cou… | |
- self.bc_yn = numpy.fromfile(fh, dtype=numpy.int32, cou… | |
- self.bc_yp = numpy.fromfile(fh, dtype=numpy.int32, cou… | |
+ self.bc_xn = numpy.fromfile(fh, dtype=numpy.int32, | |
+ count=1) | |
+ self.bc_xp = numpy.fromfile(fh, dtype=numpy.int32, | |
+ count=1) | |
+ self.bc_yn = numpy.fromfile(fh, dtype=numpy.int32, | |
+ count=1) | |
+ self.bc_yp = numpy.fromfile(fh, dtype=numpy.int32, | |
+ count=1) | |
self.bc_bot = numpy.fromfile(fh, dtype=numpy.int32, count=… | |
self.bc_top = numpy.fromfile(fh, dtype=numpy.int32, count=… | |
- self.free_slip_bot = numpy.fromfile(fh, dtype=numpy.int32,… | |
- self.free_slip_top = numpy.fromfile(fh, dtype=numpy.int32,… | |
+ self.free_slip_bot = numpy.fromfile(fh, dtype=numpy.int32, | |
+ count=1) | |
+ self.free_slip_top = numpy.fromfile(fh, dtype=numpy.int32, | |
+ count=1) | |
if self.version >= 2.11: | |
- self.bc_bot_flux = numpy.fromfile(fh, dtype=numpy.floa… | |
- count=1) | |
- self.bc_top_flux = numpy.fromfile(fh, dtype=numpy.floa… | |
- count=1) | |
+ self.bc_bot_flux = numpy.fromfile(fh, | |
+ dtype=numpy.float64, | |
+ count=1) | |
+ self.bc_top_flux = numpy.fromfile(fh, | |
+ dtype=numpy.float64, | |
+ count=1) | |
else: | |
self.bc_bot_flux = numpy.zeros(1, dtype=numpy.float64) | |
self.bc_top_flux = numpy.zeros(1, dtype=numpy.float64) | |
if self.version >= 2.15: | |
self.p_f_constant = numpy.empty((self.num[0], | |
- self.num[1], | |
- self.num[2]), | |
- dtype=numpy.int32) | |
+ self.num[1], | |
+ self.num[2]), | |
+ dtype=numpy.int32) | |
for z in numpy.arange(self.num[2]): | |
for y in numpy.arange(self.num[1]): | |
for x in numpy.arange(self.num[0]): | |
self.p_f_constant[x, y, z] = \ | |
- numpy.fromfile(fh, dtype=numpy.int32, … | |
+ numpy.fromfile(fh, dtype=numpy.int32, | |
+ count=1) | |
else: | |
self.p_f_constant = numpy.zeros((self.num[0], | |
- self.num[1], | |
- self.num[2]), | |
- dtype=numpy.int32) | |
+ self.num[1], | |
+ self.num[2]), | |
+ dtype=numpy.int32) | |
if self.version >= 2.0 and self.cfd_solver == 0: | |
- self.gamma = numpy.fromfile(fh, dtype=numpy.float64, count… | |
- self.theta = numpy.fromfile(fh, dtype=numpy.float64, count… | |
- self.beta = numpy.fromfile(fh, dtype=numpy.float64, count=… | |
- self.tolerance = numpy.fromfile(fh, dtype=numpy.float64, c… | |
- self.maxiter = numpy.fromfile(fh, dtype=numpy.uint32, coun… | |
+ self.gamma = numpy.fromfile(fh, dtype=numpy.float64, | |
+ count=1) | |
+ self.theta = numpy.fromfile(fh, dtype=numpy.float64, | |
+ count=1) | |
+ self.beta = numpy.fromfile(fh, dtype=numpy.float64, | |
+ count=1) | |
+ self.tolerance = numpy.fromfile(fh, dtype=numpy.float64, | |
+ count=1) | |
+ self.maxiter = numpy.fromfile(fh, dtype=numpy.uint32, | |
+ count=1) | |
if self.version >= 1.01: | |
- self.ndem = numpy.fromfile(fh, dtype=numpy.uint32, cou… | |
+ self.ndem = numpy.fromfile(fh, dtype=numpy.uint32, | |
+ count=1) | |
else: | |
self.ndem = 1 | |
if self.version >= 1.04: | |
- self.c_phi = numpy.fromfile(fh, dtype=numpy.float64, c… | |
- self.c_v = numpy.fromfile(fh, dtype=numpy.float64, cou… | |
+ self.c_phi = numpy.fromfile(fh, dtype=numpy.float64, | |
+ count=1) | |
+ self.c_v = numpy.fromfile(fh, dtype=numpy.float64, | |
+ count=1) | |
if self.version == 1.06: | |
self.c_a = numpy.fromfile(fh, dtype=numpy.float64, | |
- count=1) | |
+ count=1) | |
elif self.version >= 1.07: | |
- self.dt_dem_fac = numpy.fromfile(fh, dtype=numpy.f… | |
- count=1) | |
+ self.dt_dem_fac = numpy.fromfile(fh, | |
+ dtype=numpy.float… | |
+ count=1) | |
else: | |
self.c_a = numpy.ones(1, dtype=numpy.float64) | |
else: | |
t@@ -1243,42 +1268,51 @@ class sim: | |
self.f_sum = numpy.empty_like(self.x) | |
for i in numpy.arange(self.np): | |
- self.f_d[i, :] = numpy.fromfile(fh, dtype=numpy.fl… | |
- count=self.nd) | |
+ self.f_d[i, :] = numpy.fromfile(fh, | |
+ dtype=numpy.float6… | |
+ count=self.nd) | |
for i in numpy.arange(self.np): | |
- self.f_p[i, :] = numpy.fromfile(fh, dtype=numpy.fl… | |
- count=self.nd) | |
+ self.f_p[i, :] = numpy.fromfile(fh, | |
+ dtype=numpy.float6… | |
+ count=self.nd) | |
for i in numpy.arange(self.np): | |
- self.f_v[i, :] = numpy.fromfile(fh, dtype=numpy.fl… | |
- count=self.nd) | |
+ self.f_v[i, :] = numpy.fromfile(fh, | |
+ dtype=numpy.float6… | |
+ count=self.nd) | |
for i in numpy.arange(self.np): | |
- self.f_sum[i, :] = numpy.fromfile(fh, dtype=numpy.… | |
- count=self.nd) | |
+ self.f_sum[i, :] = numpy.fromfile(fh, | |
+ dtype=numpy.floa… | |
+ count=self.nd) | |
else: | |
self.f_d = numpy.zeros((self.np, self.nd), | |
- dtype=numpy.float64) | |
+ dtype=numpy.float64) | |
self.f_p = numpy.zeros((self.np, self.nd), | |
- dtype=numpy.float64) | |
+ dtype=numpy.float64) | |
self.f_v = numpy.zeros((self.np, self.nd), | |
- dtype=numpy.float64) | |
+ dtype=numpy.float64) | |
self.f_sum = numpy.zeros((self.np, self.nd), | |
- dtype=numpy.float64) | |
+ dtype=numpy.float64) | |
elif self.version >= 2.0 and self.cfd_solver == 1: | |
- self.tolerance = numpy.fromfile(fh, dtype=numpy.float64, c… | |
- self.maxiter = numpy.fromfile(fh, dtype=numpy.uint32, coun… | |
+ self.tolerance = numpy.fromfile(fh, dtype=numpy.float64, | |
+ count=1) | |
+ self.maxiter = numpy.fromfile(fh, dtype=numpy.uint32, | |
+ count=1) | |
self.ndem = numpy.fromfile(fh, dtype=numpy.uint32, count=1) | |
- self.c_phi = numpy.fromfile(fh, dtype=numpy.float64, count… | |
+ self.c_phi = numpy.fromfile(fh, dtype=numpy.float64, | |
+ count=1) | |
self.f_p = numpy.empty_like(self.x) | |
for i in numpy.arange(self.np): | |
self.f_p[i, :] = numpy.fromfile(fh, dtype=numpy.float6… | |
- count=self.nd) | |
- self.beta_f = numpy.fromfile(fh, dtype=numpy.float64, coun… | |
+ count=self.nd) | |
+ self.beta_f = numpy.fromfile(fh, dtype=numpy.float64, | |
+ count=1) | |
self.k_c = numpy.fromfile(fh, dtype=numpy.float64, count=1) | |
if self.version >= 1.02: | |
- self.color = numpy.fromfile(fh, dtype=numpy.int32, count=self.… | |
+ self.color = numpy.fromfile(fh, dtype=numpy.int32, | |
+ count=self.np) | |
else: | |
self.color = numpy.zeros(self.np, dtype=numpy.int32) | |
t@@ -2181,7 +2215,7 @@ class sim: | |
def red(ratio): | |
return numpy.fmin(1.0, 0.209*ratio**3. - 2.49*ratio**2. + 3.0*… | |
- + 0.0109) | |
+ + 0.0109) | |
def green(ratio): | |
return numpy.fmin(1.0, -2.44*ratio**2. + 2.15*ratio + 0.369) | |
def blue(ratio): | |
t@@ -2650,12 +2684,12 @@ class sim: | |
# Max. and min. coordinates of world | |
self.origo = numpy.array([numpy.amin(self.x[:, 0] - self.radius[:]), | |
- numpy.amin(self.x[:, 1] - self.radius[:]), | |
- numpy.amin(self.x[:, 2] - self.radius[:])]) \ | |
+ numpy.amin(self.x[:, 1] - self.radius[:]), | |
+ numpy.amin(self.x[:, 2] - self.radius[:])]) \ | |
- margin*r_max | |
self.L = numpy.array([numpy.amax(self.x[:, 0] + self.radius[:]), | |
- numpy.amax(self.x[:, 1] + self.radius[:]), | |
- numpy.amax(self.x[:, 2] + self.radius[:])]) \ | |
+ numpy.amax(self.x[:, 1] + self.radius[:]), | |
+ numpy.amax(self.x[:, 2] + self.radius[:])]) \ | |
+ margin*r_max | |
cellsize_min = 2.1 * r_max | |
t@@ -2864,7 +2898,7 @@ class sim: | |
''' | |
bondparticles = numpy.unique(numpy.random.random_integers(0, high=self… | |
- size=int(self.np*r… | |
+ size=int(sel… | |
if bondparticles.size % 2 > 0: | |
bondparticles = bondparticles[:-1].copy() | |
bondparticles = bondparticles.reshape(int(bondparticles.size/2), | |
t@@ -3026,8 +3060,8 @@ class sim: | |
self.w_vel = numpy.array([1, 0, 0, 0, 0]) * wvel | |
self.w_sigma0 = numpy.array([0, 1, 1, 1, 1]) * normal_stress | |
self.w_n = numpy.array(([0, 0, -1], [-1, 0, 0], | |
- [1, 0, 0], [0, -1, 0], [0, 1, 0]), | |
- dtype=numpy.float64) | |
+ [1, 0, 0], [0, -1, 0], [0, 1, 0]), | |
+ dtype=numpy.float64) | |
self.w_x = numpy.zeros(5) | |
self.w_m = numpy.zeros(5) | |
self.w_force = numpy.zeros(5) | |
t@@ -3070,7 +3104,7 @@ class sim: | |
# Fix horizontal velocity to 0.0 of lowermost particles | |
d_max_below = numpy.max(self.radius[numpy.nonzero(self.x[:, 2] < | |
- (z_max-z_min)*0.3)])*2.0 | |
+ (z_max-z_min)*0.3)])… | |
I = numpy.nonzero(self.x[:, 2] < (z_min + d_max_below)) | |
self.fixvel[I] = 1 | |
self.angvel[I, 0] = 0.0 | |
t@@ -3082,7 +3116,7 @@ class sim: | |
# Fix horizontal velocity to specific value of uppermost particles | |
d_max_top = numpy.max(self.radius[numpy.nonzero(self.x[:, 2] > | |
- (z_max-z_min)*0.7)])*2.0 | |
+ (z_max-z_min)*0.7)])*2… | |
I = numpy.nonzero(self.x[:, 2] > (z_max - d_max_top)) | |
self.fixvel[I] = 1 | |
self.angvel[I, 0] = 0.0 | |
t@@ -3349,7 +3383,7 @@ class sim: | |
self.rho_f = numpy.ones(1, dtype=numpy.float64) * rho | |
self.p_f = numpy.ones((self.num[0], self.num[1], self.num[2]), | |
- dtype=numpy.float64) * p | |
+ dtype=numpy.float64) * p | |
if hydrostatic: | |
t@@ -3374,11 +3408,11 @@ class sim: | |
self.v_f = numpy.zeros((self.num[0], self.num[1], self.num[2], self.nd… | |
- dtype=numpy.float64) | |
+ dtype=numpy.float64) | |
self.phi = numpy.ones((self.num[0], self.num[1], self.num[2]), | |
- dtype=numpy.float64) | |
+ dtype=numpy.float64) | |
self.dphi = numpy.zeros((self.num[0], self.num[1], self.num[2]), | |
- dtype=numpy.float64) | |
+ dtype=numpy.float64) | |
self.p_mod_A = numpy.zeros(1, dtype=numpy.float64) # Amplitude [Pa] | |
self.p_mod_f = numpy.zeros(1, dtype=numpy.float64) # Frequency [Hz] | |
t@@ -3392,7 +3426,7 @@ class sim: | |
self.bc_top_flux = numpy.zeros(1, dtype=numpy.float64) | |
self.p_f_constant = numpy.zeros((self.num[0], self.num[1], self.num[2]… | |
- dtype=numpy.int32) | |
+ dtype=numpy.int32) | |
# Fluid solver type | |
# 0: Navier Stokes (fluid with inertia) | |
t@@ -4018,7 +4052,7 @@ class sim: | |
self.bonds_delta_t = numpy.array([[0.0, 0.0, 0.0]], dtype=numpy.ui… | |
else: | |
self.bonds_delta_t = numpy.vstack((self.bonds_delta_t, | |
- [0.0, 0.0, 0.0])) | |
+ [0.0, 0.0, 0.0])) | |
if not hasattr(self, 'bonds_omega_n'): | |
self.bonds_omega_n = numpy.array([0.0], dtype=numpy.uint32) | |
t@@ -4027,10 +4061,11 @@ class sim: | |
self.bonds_omega_n = numpy.append(self.bonds_omega_n, [0.0]) | |
if not hasattr(self, 'bonds_omega_t'): | |
- self.bonds_omega_t = numpy.array([[0.0, 0.0, 0.0]], dtype=numpy.ui… | |
+ self.bonds_omega_t = numpy.array([[0.0, 0.0, 0.0]], | |
+ dtype=numpy.uint32) | |
else: | |
self.bonds_omega_t = numpy.vstack((self.bonds_omega_t, | |
- [0.0, 0.0, 0.0])) | |
+ [0.0, 0.0, 0.0])) | |
# Increment the number of bonds with one | |
self.nb0 += 1 | |
t@@ -4715,7 +4750,7 @@ class sim: | |
shell=True) | |
contactdata = numpy.loadtxt('../output/' + self.sid + '.contacts.txt') | |
self.pairs = numpy.array((contactdata[:, 0], contactdata[:, 1]), | |
- dtype=numpy.int32) | |
+ dtype=numpy.int32) | |
self.overlaps = numpy.array(contactdata[:, 2]) | |
def findCoordinationNumber(self): | |
t@@ -5520,11 +5555,11 @@ class sim: | |
# plot defined max compressive stress from tau/N ratio | |
ax.scatter(0., # prescribed stress | |
numpy.degrees(numpy.arctan(self.shearStress('defined')/ | |
- self.currentNormalStress('defined'))), | |
+ self.currentNormalStress('define… | |
marker='o', c='none', edgecolor='blue', s=300) | |
ax.scatter(0., # actual stress | |
numpy.degrees(numpy.arctan(self.shearStress('effective')/ | |
- self.currentNormalStress('effective'))… | |
+ self.currentNormalStress('effect… | |
marker='+', color='blue', s=300) | |
ax.set_rmax(90) | |
t@@ -5561,7 +5596,7 @@ class sim: | |
# angle: 0 when vertical, 90 when horizontal | |
#hist, bins = numpy.histogram(datadata[:, 6], bins=10) | |
_, _, _ = plt.hist(90. - diplist, bins=range(0, 100, 10), | |
- alpha=0.75, facecolor='gray') | |
+ alpha=0.75, facecolor='gray') | |
theta_sigma1 = numpy.degrees(numpy.arctan( | |
self.currentNormalStress('defined')/\ | |
self.shearStress('defined'))) | |
t@@ -6747,7 +6782,7 @@ class sim: | |
raise ValueError | |
s = numpy.r_[2*tau[0]-tau[smoothing:1:-1], tau, | |
- 2*tau[-1]-tau[-1:-smoothing:-1]] | |
+ 2*tau[-1]-tau[-1:-smoothing:-1]] | |
if smoothing_window == 'flat': # moving average | |
w = numpy.ones(smoothing, 'd') |