def create_particles(self): x = np.array([0.0]) y = np.array([0.003]) x = np.array([0.0]) r = 0.0025 R = np.ones_like(x) * r _m = 4. / 3. * np.pi * self.r * self.r * self.r * self.rho m = np.ones_like(x) * _m m_inverse = np.ones_like(x) * 1. / _m _I = 2. / 5. * _m * r**2 I_inverse = np.ones_like(x) * 1. / _I h = np.ones_like(x) * 10 E = np.ones_like(x) * 3.8 * 1e11 nu = np.ones_like(x) * 0.23 # velocity assigning Vmag = 3.9 # thet = 40 theta = thet * np.pi / 180. u = Vmag * np.sin(theta) * np.ones_like(x) v = -Vmag * np.cos(theta) * np.ones_like(x) sand = get_particle_array_dem(x=x, y=y, u=u, v=v, m=m, E=E, nu=nu, m_inverse=m_inverse, R=R, h=h, I_inverse=I_inverse, name="sand") x, y = np.asarray([0]), np.asarray([0]) nx, ny = np.asarray([0]), np.asarray([1]) R = np.ones_like(x) * r h = np.ones_like(x) * 10 wall = get_particle_array_dem(x=x, y=y, E=E, nu=nu, nx=nx, ny=ny, h=h, name="wall") # additional properties for equations # self.m_eff = (_m + mw[0]) / (_m * mw[0]) return [sand, wall]
def create_particles(self): rp = 0.05 * 1e-2 y_w = 3.6 * rp y_1 = 0.25 * y_w y_2 = 0.75 * y_w y_sand = np.asarray([y_1, y_2]) x_sand = np.ones_like(y_sand) * 0 R = np.ones_like(x_sand) * rp _m1 = 4. / 3. * np.pi * rp**3 * 20000 _m2 = 4. / 3. * np.pi * rp**3 * 10000 m = np.asarray([_m1, _m2]) m_inverse = np.asarray([1. / _m1, 1. / _m2]) _I1 = 2. / 5. * _m1 * rp**2 _I2 = 2. / 5. * _m2 * rp**2 I_inverse = np.asarray([1. / _I1, 1. / _I2]) h = np.ones_like(x_sand) * rp sand = get_particle_array_dem(x=x_sand, y=y_sand, m=m, m_inverse=m_inverse, R=R, h=h, I_inverse=I_inverse, name="sand") x_l_w = np.asarray([0]) y_l_w = np.asarray([-rp]) mw = np.ones_like(x_l_w) * _m1 m_inverse = np.ones_like(x_l_w) * 1. / _m1 R = np.ones_like(x_l_w) * rp h = np.ones_like(x_l_w) * rp I_inverse = np.ones_like(x_l_w) * 1. / _I1 lower_wall = get_particle_array_dem(x=x_l_w, y=y_l_w, m=mw, m_inverse=m_inverse, R=R, h=h, I_inverse=I_inverse, name="l_wall") x_u_w = np.asarray([0]) y_u_w = np.asarray([y_w + rp]) mw = np.ones_like(x_u_w) * _m1 m_inverse = np.ones_like(x_u_w) * 1. / _m1 R = np.ones_like(x_u_w) * rp h = np.ones_like(x_u_w) * rp I_inverse = np.ones_like(x_u_w) * 1. / _I1 upper_wall = get_particle_array_dem(x=x_u_w, y=y_u_w, m=mw, m_inverse=m_inverse, R=R, h=h, I_inverse=I_inverse, name="u_wall") # additional properties for equations # self.m_eff = (_m + mw[0]) / (_m * mw[0]) return [sand, lower_wall, upper_wall]
def create_particles(self): # al oxide particles x = np.array( [-0.003]) y = np.zeros_like(x) r = 0.0025 R = np.ones_like(x) * r _m = 4. / 3. * np.pi * r * r * r * 4000 m = np.ones_like(x) * _m E = np.ones_like(x) * 3.8 * 1e11 nu = np.ones_like(x) * 0.23 m_inverse = np.ones_like(x) * 1. / _m _I = 2. / 5. * _m * r**2 I_inverse = np.ones_like(x) * 1. / _I h = np.ones_like(x) * 100 # velocity assigning u = np.ones_like(x) * 3.9 v = np.ones_like(x) * 0 al = get_particle_array_dem(x=x, y=y, u=u, v=v, m=m, E=E, nu=nu, m_inverse=m_inverse, R=R, h=h, I_inverse=I_inverse, name="al") x = np.array([0]) y = np.array([0.04]) E = np.ones_like(x) * 3.8 * 1e11 nu = np.ones_like(x) * 0.23 h = np.ones_like(x) * 100 nx = np.asarray([-1]) al_wall = get_particle_array_dem(x=x, y=y, E=E, nu=nu, nx=nx, name="al_wall") # cast iron particles x = np.array([-0.003]) y = np.ones_like(x) * 0.1 r = 0.0025 R = np.ones_like(x) * r _m = 4. / 3. * np.pi * r * r * r * 7000 m = np.ones_like(x) * _m E = np.ones_like(x) * 1 * 1e11 nu = np.ones_like(x) * 0.25 m_inverse = np.ones_like(x) * 1. / _m _I = 2. / 5. * _m * r**2 I_inverse = np.ones_like(x) * 1. / _I h = np.ones_like(x) * 100 # velocity assigning u = np.ones_like(x) * 3.9 v = np.ones_like(x) * 0 mg = get_particle_array_dem(x=x, y=y, u=u, v=v, m=m, E=E, nu=nu, m_inverse=m_inverse, R=R, h=h, I_inverse=I_inverse, name="mg") x = np.array([0]) y = np.array([1.04]) E = np.ones_like(x) * 4 * 1e10 nu = np.ones_like(x) * 0.35 h = np.ones_like(x) * 100 nx = np.asarray([-1]) mg_wall = get_particle_array_dem(x=x, y=y, E=E, nu=nu, nx=nx, name="mg_wall") # additional properties for equations # self.m_eff = (_m + mw[0]) / (_m * mw[0]) return [al, al_wall, mg, mg_wall]
def create_particles(self): # al alloy particles x = np.array([-0.10002]) y = np.array([0]) r = 0.1 R = np.ones_like(x) * r _m = 4. / 3. * np.pi * r * r * r * 2700 m = np.ones_like(x) * _m E = np.ones_like(x) * 7 * 1e10 nu = np.ones_like(x) * 0.33 m_inverse = np.ones_like(x) * 1. / _m _I = 2. / 5. * _m * r**2 I_inverse = np.ones_like(x) * 1. / _I h = np.ones_like(x) * 100 # velocity assigning u = np.asarray([0.2]) v = np.ones_like(x) * 0 omega = 1.5 * u[0] / r wz = np.ones_like(x) * omega al = get_particle_array_dem(x=x, y=y, u=u, v=v, wz=wz, m=m, E=E, nu=nu, m_inverse=m_inverse, R=R, h=h, I_inverse=I_inverse, name="al") # print before collision properties print(r * omega / 0.2) x = np.array([0]) y = np.array([0.1]) E = np.ones_like(x) * 7 * 1e10 nu = np.ones_like(x) * 0.33 h = np.ones_like(x) * 100 nx = np.asarray([-1]) al_wall = get_particle_array_dem(x=x, y=y, E=E, nu=nu, nx=nx, name="al_wall") # nylon particles x = np.array([-0.10002]) y = np.array([1]) r = 0.1 R = np.ones_like(x) * r _m = 4. / 3. * np.pi * r * r * r * 1000 m = np.ones_like(x) * _m E = np.ones_like(x) * 2.5 * 1e9 nu = np.ones_like(x) * 0.4 m_inverse = np.ones_like(x) * 1. / _m _I = 2. / 5. * _m * r**2 I_inverse = np.ones_like(x) * 1. / _I h = np.ones_like(x) * 100 # velocity assigning u = np.asarray([0.2]) v = np.ones_like(x) * 0 wz = np.ones_like(x) * omega nylon = get_particle_array_dem(x=x, y=y, u=u, v=v, wz=wz, m=m, E=E, nu=nu, m_inverse=m_inverse, R=R, h=h, I_inverse=I_inverse, name="nylon") x = np.array([0]) y = np.array([1.1]) E = np.ones_like(x) * 2.5 * 1e9 nu = np.ones_like(x) * 0.4 h = np.ones_like(x) * 100 nx = np.asarray([-1]) nylon_wall = get_particle_array_dem(x=x, y=y, E=E, nu=nu, nx=nx, name="nylon_wall") # additional properties for equations # self.m_eff = (_m + mw[0]) / (_m * mw[0]) return [al, al_wall, nylon, nylon_wall]
def create_particles(self): x, y = geometry() r = 0.5 * 1e-2 R = np.ones_like(x) * r _m = 4. / 3. * np.pi * r * r * r * 2.7 * 1e3 m = np.ones_like(x) * _m E = np.ones_like(x) * 69 * 1e9 nu = np.ones_like(x) * 0.3 m_inverse = np.ones_like(x) * 1. / _m _I = 2. / 5. * _m * r**2 I_inverse = np.ones_like(x) * 1. / _I h = np.ones_like(x) * r cylinders = get_particle_array_dem(x=x, y=y, m=m, E=E, nu=nu, m_inverse=m_inverse, R=R, h=h, I_inverse=I_inverse, name="cylinders") # tank x = np.array([0, 13 * 1e-2, 26 * 1e-2]) y = np.array([13 * 1e-2, 0, 13 * 1e-2]) nx = np.array([1, 0, -1]) ny = np.array([0, 1, 0]) E = np.ones_like(x) * 30 * 1e8 nu = np.ones_like(x) * 0.3 h = np.ones_like(x) * 13 * 1e-2 tank = get_particle_array_dem(x=x, y=y, E=E, nu=nu, h=h, nx=nx, ny=ny, name="tank") x = np.array([6 * 1e-2]) y = np.array([3 * 1e-2]) nx = np.array([-1]) ny = np.array([0]) E = np.ones_like(x) * 30 * 1e8 nu = np.ones_like(x) * 0.3 h = np.ones_like(x) * 1.5 * 1e-2 t_wall = get_particle_array_dem(x=x, y=y, E=E, nu=nu, h=h, nx=nx, ny=ny, name="t_wall") # additional properties for equations # self.m_eff = (_m + mw[0]) / (_m * mw[0]) return [cylinders, tank, t_wall]
def create_particles(self): # al alloy particles x = np.array([-0.10002]) y = np.array([0]) r = 0.1 R = np.ones_like(x) * r _m = 4. / 3. * np.pi * r * r * r * 2699 m = np.ones_like(x) * _m E = np.ones_like(x) * 7 * 1e10 nu = np.ones_like(x) * 0.3 m_inverse = np.ones_like(x) * 1. / _m _I = 2. / 5. * _m * r**2 I_inverse = np.ones_like(x) * 1. / _I h = np.ones_like(x) * 100 # velocity assigning u = np.asarray([0.2]) v = np.ones_like(x) * 0 al = get_particle_array_dem(x=x, y=y, u=u, v=v, m=m, E=E, nu=nu, m_inverse=m_inverse, R=R, h=h, I_inverse=I_inverse, name="al") x = np.array([0]) y = np.array([0.1]) E = np.ones_like(x) * 7 * 1e10 nu = np.ones_like(x) * 0.3 h = np.ones_like(x) * 100 nx = np.asarray([-1]) al_wall = get_particle_array_dem(x=x, y=y, E=E, nu=nu, nx=nx, name="al_wall") # mg alloy particles x = np.array([-0.10002]) y = np.array([1]) r = 0.1 R = np.ones_like(x) * r _m = 4. / 3. * np.pi * r * r * r * 1800 m = np.ones_like(x) * _m E = np.ones_like(x) * 4 * 1e10 nu = np.ones_like(x) * 0.35 m_inverse = np.ones_like(x) * 1. / _m _I = 2. / 5. * _m * r**2 I_inverse = np.ones_like(x) * 1. / _I h = np.ones_like(x) * 100 # velocity assigning u = np.asarray([0.2]) v = np.ones_like(x) * 0 mg = get_particle_array_dem(x=x, y=y, u=u, v=v, m=m, E=E, nu=nu, m_inverse=m_inverse, R=R, h=h, I_inverse=I_inverse, name="mg") x = np.array([0]) y = np.array([1.1]) E = np.ones_like(x) * 4 * 1e10 nu = np.ones_like(x) * 0.35 h = np.ones_like(x) * 100 nx = np.asarray([-1]) mg_wall = get_particle_array_dem(x=x, y=y, E=E, nu=nu, nx=nx, name="mg_wall") # additional properties for equations # self.m_eff = (_m + mw[0]) / (_m * mw[0]) return [al, al_wall, mg, mg_wall]
def create_particles(self): # glass particles x = np.array([-0.0102, 0.010]) y = np.array([0, 0]) r = 0.01 R = np.ones_like(x) * r _m = 4. / 3. * np.pi * r * r * r * 2800 m = np.ones_like(x) * _m E = np.ones_like(x) * 4.8 * 1e10 nu = np.ones_like(x) * 0.2 m_inverse = np.ones_like(x) * 1. / _m _I = 2. / 5. * _m * r**2 I_inverse = np.ones_like(x) * 1. / _I h = np.ones_like(x) * r # velocity assigning u = np.asarray([10, -10]) v = np.ones_like(x) * 0 glass = get_particle_array_dem(x=x, y=y, u=u, v=v, m=m, E=E, nu=nu, m_inverse=m_inverse, R=R, h=h, I_inverse=I_inverse, name="glass") # limestone particles x = np.array([-0.0102, 0.010]) y = np.array([0.05, 0.05]) r = 0.01 R = np.ones_like(x) * r _m = 4. / 3. * np.pi * r * r * r * 2500 m = np.ones_like(x) * _m E = np.ones_like(x) * 2. * 1e10 nu = np.ones_like(x) * 0.25 m_inverse = np.ones_like(x) * 1. / _m _I = 2. / 5. * _m * r**2 I_inverse = np.ones_like(x) * 1. / _I h = np.ones_like(x) * r # velocity assigning u = np.asarray([10, -10]) v = np.ones_like(x) * 0 lime = get_particle_array_dem(x=x, y=y, u=u, v=v, m=m, E=E, nu=nu, m_inverse=m_inverse, R=R, h=h, I_inverse=I_inverse, name="lime") # additional properties for equations # self.m_eff = (_m + mw[0]) / (_m * mw[0]) return [glass, lime]
def create_particles(self): # al particles x_pos = 0.102 x = np.array([-x_pos, 0.10]) y = np.array([0, 0]) r = 0.1 R = np.ones_like(x) * r _m = 4. / 3. * np.pi * r * r * r * 2700 m = np.ones_like(x) * _m E = np.ones_like(x) * 7 * 1e10 nu = np.ones_like(x) * 0.33 m_inverse = np.ones_like(x) * 1. / _m _I = 2. / 5. * _m * r**2 I_inverse = np.ones_like(x) * 1. / _I h = np.ones_like(x) * r # velocity assigning u = np.asarray([0.2, -0.2]) v = np.ones_like(x) * 0 wz = np.asarray([omega, -omega]) al = get_particle_array_dem(x=x, y=y, u=u, v=v, wz=wz, m=m, E=E, nu=nu, m_inverse=m_inverse, R=R, h=h, I_inverse=I_inverse, name="al") # copper particles x = np.array([-x_pos, 0.10]) y = np.array([0.5, 0.5]) r = 0.1 R = np.ones_like(x) * r _m = 4. / 3. * np.pi * r * r * r * 8900 m = np.ones_like(x) * _m E = np.ones_like(x) * 1.2 * 1e11 nu = np.ones_like(x) * 0.35 m_inverse = np.ones_like(x) * 1. / _m _I = 2. / 5. * _m * r**2 I_inverse = np.ones_like(x) * 1. / _I h = np.ones_like(x) * r # velocity assigning u = np.asarray([0.2, -.2]) v = np.ones_like(x) * 0 wz = np.asarray([omega, -omega]) copper = get_particle_array_dem(x=x, y=y, u=u, v=v, wz=wz, m=m, E=E, nu=nu, m_inverse=m_inverse, R=R, h=h, I_inverse=I_inverse, name="copper") # additional properties for equations # self.m_eff = (_m + mw[0]) / (_m * mw[0]) return [al, copper]