You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
'particle_density':'O.materials[0].density', # density
18
+
}
19
+
20
+
particle_keys= {
21
+
'radius':'shape.radius', # particle radius
22
+
# 'mass':'shape.mass', # particle mass can be computed as 4/3*density*pi*radius**3
23
+
}
24
+
25
+
sampling_keys= [
26
+
'pressure', # confining pressure
27
+
'initial_friction', # initial friction (for generating microstructure with different void ratio)
28
+
'compressive_strain_rate', # rate of compressive strain d{\epsilon_p}
29
+
'shear_strain_rate', # rate of shear strain d{\epsilon_q}
17
30
]
18
31
19
32
## The following list contains macro-variables. For drained triaxial, the macro-input and -output are like below. Note that for the initial load step, all macro-variables are input.
20
-
macro_keys=[
33
+
macro_keys={
21
34
## macroscopic input (strain can be computed from log(l_x^i/l_x^0) and void ratio from the sum of particle volume)
22
-
'O.cell.hSize[2,2]', # domain size in z
23
-
'getStress()[0,0]', # stress in x
24
-
'getStress()[1,1]', # stress in y
35
+
'domain_size_z':'O.cell.hSize[2,2]', # domain size in z
36
+
'stress_x':'getStress()[0,0]', # stress in x
37
+
'stress_y':'getStress()[1,1]', # stress in y
25
38
## macroscopic output
26
-
'O.cell.hSize[0,0]', # domain size in x
27
-
'O.cell.hSize[1,1]', # domain size in y
28
-
'getStress()[2,2]', # stress in z
39
+
'domain_size_x':'O.cell.hSize[0,0]', # domain size in x
40
+
'domain_size_y':'O.cell.hSize[1,1]', # domain size in y
41
+
'stress_z':'getStress()[2,2]', # stress in z
29
42
## others
30
-
'O.dt', # time increment
31
-
'O.iter', # number of iterations
32
-
]
43
+
'time':'O.time', # time increment
44
+
'num_time_steps':'O.iter', # number of time steps
45
+
}
33
46
34
-
micro_keys_bodies=[
47
+
micro_keys_bodies={
35
48
## particle info (in b.shape and b.state)
36
-
'id',
37
-
'shape.radius',
38
-
'state.mass',
39
-
'state.pos[0]',
40
-
'state.pos[1]',
41
-
'state.pos[2]',
42
-
'state.vel[0]',
43
-
'state.vel[1]',
44
-
'state.vel[2]',
45
-
'state.angVel[0]',
46
-
'state.angVel[1]',
47
-
'state.angVel[2]',
48
-
'state.refPos[0]', # position at t=0, with respect to the origin
49
-
'state.refPos[1]',
50
-
'state.refPos[2]',
51
-
]
52
-
micro_keys_inters= [
49
+
'position_x':'state.pos[0]',
50
+
'position_y':'state.pos[1]',
51
+
'position_z':'state.pos[2]',
52
+
'velocity_x':'state.vel[0]',
53
+
'velocity_y':'state.vel[1]',
54
+
'velocity_z':'state.vel[2]',
55
+
'angular_velocity_x':'state.angVel[0]',
56
+
'angular_velocity_y':'state.angVel[1]',
57
+
'angular_velocity_z':'state.angVel[2]',
58
+
}
59
+
60
+
micro_keys_inters= {
53
61
## interaction connectivity info (in inter)
54
-
'id1',
55
-
'id2',
62
+
'contact_pair_ID1':'id1',
63
+
'contact_pair_ID2':'id2',
56
64
## interaction geometry info (in inter.geom)
57
-
'phys.ks', # tangential stiffness
58
-
'phys.kn', # normal stiffness
59
-
'geom.penetrationDepth', # overlap between spheres
60
-
'geom.shearInc[0]', # shear increment x between particles
61
-
'geom.shearInc[1]', # shear increment y between particles
62
-
'geom.shearInc[2]', # shear increment z between particles
63
-
'geom.contactPoint[0]', # x, y, z, in the cross section of the overlap
0 commit comments