Brutus does not use given wordlength when initializing
Describe the bug When using the AMUSE-version of Brutus, it does not fully utilize the given wordlength when initializing, leading to higher-than-expected error margins down the line.
To Reproduce Run a Brutus simulation with a sufficiently high wordlength (more than 64) and BS_tolerance (approx. more precise than 1e-23, although this might vary with simulation parameters and initial conditions), and note that higher BS_tolerance and wordlength with identical init. conditions do not give the expected increased precision.
Here is my specific code I used, with logeps between -20 and -30.
brutus = Brutus(redirection="none")
brutus.parameters.bs_tolerance = np.pow(10., logeps)
brutus.parameters.word_length = -4 * logeps + 32
brutus.particles.add_particles(ast)
brutus.particles.add_particles(cluster)
Expected behavior We'd expect the precision to increase with BS_tolerance (and the appropriate wordlength), but this does not happen with sufficiently precise simulations.
Temporary fix Increasing the default wordlength (int numBits in interface.cc) to a higher value relieves the problem.