# If scheme == resistance solve resistance problem elif read.scheme == 'resistance': start_time = time.time() # Get blobs coordinates r_vectors_blobs = multi_bodies.get_blobs_r_vectors(bodies, Nblobs) # Calculate block-diagonal matrix K K = multi_bodies.calc_K_matrix(bodies, Nblobs) # Set right hand side slip += multi_bodies.K_matrix_vector_prod(bodies, velocity, Nblobs) RHS = np.reshape(slip, slip.size) # Calculate mobility (M) at the blob level mobility_blobs = multi_bodies.mobility_blobs(r_vectors_blobs, read.eta, read.blob_radius) # Compute constraint forces force_blobs = np.linalg.solve(mobility_blobs, RHS) # Compute force-torques on bodies force = np.reshape(multi_bodies.K_matrix_T_vector_prod(bodies, force_blobs, Nblobs), (num_bodies, 6)) # Save force name = read.output_name + '.force.dat' np.savetxt(name, force, delimiter=' ') print('Time to solve resistance problem =', time.time() - start_time ) # Plot velocity field if read.plot_velocity_field.size > 1: print('plot_velocity_field')