Filtered streaming returns only the indices you ask for, which is essential when you are scanning thousands of configurations and only need (say) the lowest 4 bands at the high-symmetry corners. The engine still solves the full eigenproblem, but transfer/storage cost drops linearly with the number of selected k-points and bands.
1from blaze import BulkDriver
2
3# Stream only k-points 0, 5, 10 and bands 0 to 3.
4driver = BulkDriver("crystal.toml")
5for result in driver.run_streaming_filtered(
6 k_indices=[0, 5, 10],
7 band_indices=[0, 1, 2, 3],
8):
9 print("k-points:", result["num_k_points"], "bands:", result["num_bands"])