![]() |
PeriDEM 0.3.0
PeriDEM -- Peridynamics-based high-fidelity model for granular media
|
Functions | |
| tuple[float, float, float] | wall_geom_center (list[float] params) |
| dict | contact_pair (int i, int j) |
| dict | material (float horizon, float K, float G, float Gc) |
| dict | build (float final_time, int time_steps, str out_path, int output_interval, float omega=-20.0 *math.pi) |
| None | main () |
| None | validate_ic (list[tuple] rows) |
| dict | build (float final_time, int time_steps, str out_path, int output_interval) |
Variables | |
| HERE = Path(__file__).resolve().parent | |
| str | MESH = HERE / "meshes" |
| str | CSV = HERE / "particle_locations_0.csv" |
| dict | R_REF = {0: 0.001, 1: 0.001, 2: 0.001, 3: 0.003, 4: 0.003, 5: 0.003} |
| list | MESH_FILES |
| list | WALL_PARAMS |
| dict | KN |
| dict | K_MAT = {0: 1.0e4, 1: 1.0e5, 2: 1.0e5} |
| float | KN_FACTOR = 1.0 |
| float | R_IN = 0.02 |
| float | R_SMALL = 0.001 |
| float | R_LARGE = 0.003 |
| float | MESH_SIZE = R_SMALL / 5.0 |
| float | HORIZON = 2.0 * MESH_SIZE |
| float | R_OUT = R_IN + 1.5 * MESH_SIZE |
| float | L_BAR = 0.005 |
| float | W_BAR = 1.5 * MESH_SIZE |
| float | BETA_N_FACTOR = 100.0 |
| float | EPSILON = 0.95 |
| float | CONTACT_RADIUS_FACTOR = 0.95 |
| float | FRICTION_COEFF = 0.5 |
| bool | DAMPING_ON = False |
| bool | FRICTION_ON = False |
| str | DAMPING_LAW = "off" |
| str | FRICTION_LAW = "coulomb_simple" |
| bool | CORRECT_VOLUME = False |
| int | SEARCH_INTERVAL = 40 |
| float | SEARCH_FACTOR = 10.0 |
| float | NEAR_BD_TOL = 0.5 |
| str | BOND_BREAK = "tension" |
| str | SELF_CONTACT = "broken_bond_kn" |
| str | WALL_CONTACT = "meshed" |
| bool | RANDOM_ROTATION = False |
| float | OMEGA = -40.0 * math.pi |
| tuple | ROT_CENTER = (-0.2 * R_IN, 0.2 * R_IN, 0.0) |
Build modular JSON for attrition sim1 — match main GIF deck. Reference (main README links attrition_test_sim1.gif here): examples/PeriDEM/attrition_tests/sim1_multi_particle_circ_tri_drum_with_rotating_cylinder_with_protrusion Physics from that problem_setup.py: Kn_Factor=1, Gc=50/100, Bond_Break unset (tension default). Wall site = ComplexGeom centroid so mesh at origin is not shifted.
Build modular JSON for attrition sim2 — explicit keys, match main GIF deck. Reference: examples/PeriDEM/attrition_tests/sim2_multi_particle_circ_tri_drum_hex_with_rotating_cylinder_with_protrusion_thin_container_and_change_rotation_rate Every field that has a dangerous modular default is set explicitly (see INPUT_DEFAULTS.md). No reliance on omitted-key defaults.
| dict gen_input.build | ( | float | final_time, |
| int | time_steps, | ||
| str | out_path, | ||
| int | output_interval | ||
| ) |
Definition at line 168 of file gen_input.py.
References build(), contact_pair(), main(), validate_ic(), and wall_geom_center().
| dict gen_input.build | ( | float | final_time, |
| int | time_steps, | ||
| str | out_path, | ||
| int | output_interval, | ||
| float | omega = -20.0 * math.pi |
||
| ) |
Definition at line 108 of file gen_input.py.
References contact_pair(), and wall_geom_center().
Referenced by build(), and main().
| dict gen_input.contact_pair | ( | int | i, |
| int | j | ||
| ) |
Definition at line 80 of file gen_input.py.
Referenced by build(), and build().
| None gen_input.main | ( | ) |
Definition at line 269 of file gen_input.py.
References build(), and main().
Referenced by build(), and main().
| dict gen_input.material | ( | float | horizon, |
| float | K, | ||
| float | G, | ||
| float | Gc | ||
| ) |
Definition at line 95 of file gen_input.py.
| None gen_input.validate_ic | ( | list[tuple] | rows | ) |
Definition at line 145 of file gen_input.py.
Referenced by build().
| tuple[float, float, float] gen_input.wall_geom_center | ( | list[float] | params | ) |
Signed-volume centroid of circle(+)-circle(-)-rectangle(+) wall.
Definition at line 65 of file gen_input.py.
Referenced by build(), and build().
| float gen_input.BETA_N_FACTOR = 100.0 |
Definition at line 81 of file gen_input.py.
| str gen_input.BOND_BREAK = "tension" |
Definition at line 93 of file gen_input.py.
| float gen_input.CONTACT_RADIUS_FACTOR = 0.95 |
Definition at line 83 of file gen_input.py.
| bool gen_input.CORRECT_VOLUME = False |
Definition at line 89 of file gen_input.py.
| str gen_input.CSV = HERE / "particle_locations_0.csv" |
Definition at line 19 of file gen_input.py.
| str gen_input.DAMPING_LAW = "off" |
Definition at line 87 of file gen_input.py.
| bool gen_input.DAMPING_ON = False |
Definition at line 85 of file gen_input.py.
| float gen_input.EPSILON = 0.95 |
Definition at line 82 of file gen_input.py.
| float gen_input.FRICTION_COEFF = 0.5 |
Definition at line 84 of file gen_input.py.
| str gen_input.FRICTION_LAW = "coulomb_simple" |
Definition at line 88 of file gen_input.py.
| bool gen_input.FRICTION_ON = False |
Definition at line 86 of file gen_input.py.
| gen_input.HERE = Path(__file__).resolve().parent |
Definition at line 17 of file gen_input.py.
| float gen_input.HORIZON = 2.0 * MESH_SIZE |
Definition at line 24 of file gen_input.py.
| dict gen_input.K_MAT = {0: 1.0e4, 1: 1.0e5, 2: 1.0e5} |
Definition at line 60 of file gen_input.py.
| dict gen_input.KN |
Definition at line 51 of file gen_input.py.
| float gen_input.KN_FACTOR = 1.0 |
Definition at line 61 of file gen_input.py.
| float gen_input.L_BAR = 0.005 |
Definition at line 27 of file gen_input.py.
| str gen_input.MESH = HERE / "meshes" |
Definition at line 18 of file gen_input.py.
| list gen_input.MESH_FILES |
Definition at line 22 of file gen_input.py.
| float gen_input.MESH_SIZE = R_SMALL / 5.0 |
Definition at line 23 of file gen_input.py.
| float gen_input.NEAR_BD_TOL = 0.5 |
Definition at line 92 of file gen_input.py.
| float gen_input.OMEGA = -40.0 * math.pi |
Definition at line 98 of file gen_input.py.
| float gen_input.R_IN = 0.02 |
Definition at line 62 of file gen_input.py.
| float gen_input.R_LARGE = 0.003 |
Definition at line 22 of file gen_input.py.
Definition at line 26 of file gen_input.py.
| dict gen_input.R_REF = {0: 0.001, 1: 0.001, 2: 0.001, 3: 0.003, 4: 0.003, 5: 0.003} |
Definition at line 21 of file gen_input.py.
| float gen_input.R_SMALL = 0.001 |
Definition at line 21 of file gen_input.py.
| bool gen_input.RANDOM_ROTATION = False |
Definition at line 97 of file gen_input.py.
Definition at line 99 of file gen_input.py.
| float gen_input.SEARCH_FACTOR = 10.0 |
Definition at line 91 of file gen_input.py.
| int gen_input.SEARCH_INTERVAL = 40 |
Definition at line 90 of file gen_input.py.
| str gen_input.SELF_CONTACT = "broken_bond_kn" |
Definition at line 95 of file gen_input.py.
| float gen_input.W_BAR = 1.5 * MESH_SIZE |
Definition at line 28 of file gen_input.py.
| str gen_input.WALL_CONTACT = "meshed" |
Definition at line 96 of file gen_input.py.
| list gen_input.WALL_PARAMS |
Definition at line 33 of file gen_input.py.