PeriDEM 0.2.0
PeriDEM -- Peridynamics-based high-fidelity model for granular media
Loading...
Searching...
No Matches
particle_wall.py File Reference

Go to the source code of this file.

Namespaces

namespace  particle_wall
 

Functions

 particle_wall.particle_locations (filename, radius, centers, pp_tag=None)
 

Variables

 particle_wall.parser = argparse.ArgumentParser(description='Setup and run PeriDEM simulation')
 
 particle_wall.default
 
 particle_wall.type
 
 particle_wall.help
 
 particle_wall.args = parser.parse_args()
 
str particle_wall.fpath = './'
 
list particle_wall.center = [0., 0., 0.]
 origin (this center is used to discretize the particle and later discretization is translated and rotated appropriately)
 
list particle_wall.g = [0., -10., 0.]
 gravity
 
float particle_wall.R = 0.001
 radius of p
 
float particle_wall.h = R / 8.
 mesh size (use smaller radius to decide)
 
int particle_wall.horizon = 3. * h
 peridynamics horizon (typically taken as 2 to 4 times the mesh size)
 
list particle_wall.wall_rect = [0., 0., 0., 2.*R, horizon, 0.]
 wall geometry (corner point coordinates)
 
float particle_wall.d = 0.001
 initial distance between particle and wall
 
float particle_wall.delta = d - horizon
 
list particle_wall.v0 = [0, -np.sqrt(2. * np.abs(g[1]) * delta), 0.]
 
float particle_wall.T = 0.1
 final time and time step
 
int particle_wall.N_steps = 2000000
 
float particle_wall.dt = T / N_steps
 
int particle_wall.N_out = N_steps / 100
 
float particle_wall.nu1 = 0.25
 material for zone 1 (in this case zone 1 has just one particle)
 
int particle_wall.rho1 = 1200.
 
float particle_wall.K1 = 2.16e+7
 
 particle_wall.E1 = get_E(K1, nu1)
 
 particle_wall.G1 = get_G(E1, nu1)
 
int particle_wall.Gc1 = 50.
 
float particle_wall.nu2 = 0.25
 
int particle_wall.rho2 = 1200.
 
float particle_wall.K2 = 2.16e+7
 
 particle_wall.E2 = get_E(K2, nu2)
 
 particle_wall.G2 = get_G(E2, nu2)
 
int particle_wall.Gc2 = 50.
 
float particle_wall.R_contact_factor = 0.95
 contact radius is taken as R_contact_factor * h_{min} where h_{min} is the minimum mesh size over all meshes (it is computed at the begining of simulation) we only specify the R_contact_factor
 
int particle_wall.Kn_11 = 18. * get_eff_k(K1, K1) / (np.pi * np.power(horizon, 5))
 define Kn parameter for normal contact force (see PeriDEM paper for more details)
 
int particle_wall.Kn_22 = 18. * get_eff_k(K2, K2) / (np.pi * np.power(horizon, 5))
 
int particle_wall.Kn_12 = 18. * get_eff_k(K1, K2) / (np.pi * np.power(horizon, 5))
 
float particle_wall.beta_n_eps = 0.9
 define beta_n parameter for normal damping
 
int particle_wall.beta_n_factor = 5000.
 
bool particle_wall.damping_active = True
 
float particle_wall.friction_coeff = 0.5
 friction coefficient
 
bool particle_wall.friction_active = False
 
list particle_wall.centers = []
 
 particle_wall.inpf = open(fpath + 'input.yaml','w')
 file below creates .geo file (see util.py)
 
list particle_wall.contain_params = [0., 0., 0., 2.*R, 4.*R, 0.]
 provide model specific details
 
list particle_wall.p_geom = [R, center[0], center[1], center[2]]
 zone info we have two zones
 
str particle_wall.cmd = "gmsh p.geo -2 &> /dev/null"
 Neighbor info at present, this block has no impact in the simulation.
 
 particle_wall.process = subprocess.Popen(cmd.split(), stdout=subprocess.PIPE)
 
 particle_wall.output
 
 particle_wall.error