Increasing the maximum molecule size
Currently, by default, the maximum allowed size for rigid bead molecules in PyRID is set to 20 particles/beads.
To change this number, you need to edit the rigidbody_util.py file (pyrid.molecules.rigidbody_util.RBs
).
In there you find the data type for a structured array named ‘item_t_RB’. This data type contains a field named ‘topology’.
By default, the data type of this field is np.int64(20,)
.
Therefore, to increase the maximum number of particles a molecule can consist of in PyRID, you need to change the number 20 to a number of your choice.
Example where the maximum size has been increased to 50 particles per molecule:
item_t_RB = np.dtype([ ('next', np.int64),
('name', 'U20'),
('id', np.int64),
('type_id', np.int64),
('pos', np.float64, (3,)),
('dX', np.float64, (3,)),
('force', np.float64, (3,)),
('torque', np.float64, (3,)),
('topology', np.int64, (50,)),
('topology_N', np.int64),
('q', np.float64, (4,)),
('dq', np.float64, (4,)),
('B', np.float64, (4,4)),
('orientation_quat', np.float64, (3,3)),
('mu_tb', np.float64, (3,3)),
('mu_rb', np.float64, (3,3)),
('mu_tb_sqrt', np.float64, (3,3)),
('mu_rb_sqrt', np.float64, (3,3)),
('Dtrans', np.float64),('Drot', np.float64),
('radius', np.float64),
('loc_id', np.int64),
('compartment', np.int64),
('triangle_id', np.int64),
('pos_last', np.float64, (3,)),
('Theta_t', np.float64, (3,)),
('Theta_r', np.float64, (3,)),
('posL', np.float64, (3,)),
('collision_type', np.int64),
('next_transition', np.float64),
('h', np.int64), ], align=True)