|
| 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 |
|