multi_bodies.mobility_vector_prod = multi_bodies.set_mobility_vector_prod(read.mobility_vector_prod_implementation) multi_bodies_functions.calc_blob_blob_forces = multi_bodies_functions.set_blob_blob_forces(read.blob_blob_force_implementation) multi_bodies_functions.calc_body_body_forces_torques = multi_bodies_functions.set_body_body_forces_torques(read.body_body_force_torque_implementation) multi_bodies.mobility_blobs = multi_bodies.set_mobility_blobs(read.mobility_blobs_implementation) # Write bodies information with open(read.output_name + '.bodies_info', 'w') as f: f.write('num_of_body_types ' + str(num_of_body_types) + '\n') f.write('body_names ' + str(body_names) + '\n') f.write('body_types ' + str(body_types) + '\n') f.write('num_bodies ' + str(num_bodies) + '\n') f.write('num_blobs ' + str(Nblobs) + '\n') # Calculate slip on blobs if multi_bodies.calc_slip is not None: slip = multi_bodies.calc_slip(bodies, Nblobs) else: slip = np.zeros((Nblobs, 3)) # Read forces file if read.force_file is not None: force_torque = np.loadtxt(read.force_file) force_torque = np.reshape(force_torque, (2*num_bodies, 3)) else: force_torque = np.zeros((2*num_bodies, 3)) # Read velocity file if read.velocity_file is not None: velocity = np.loadtxt(read.velocity_file) velocity = np.reshape(velocity, (2*num_bodies, 3)) else: