I have used the LangevinVelocityIntegrator on a one-dimensional potential, and it outputs its trajectory positions (and velocities, I think) as an array containing two values for each step. While I don't know the implementation reasons or which one of them is the actual position, I have found this leads to issues down the line:
- Systems with the LangevinVelocityIntegrator as a sampler fail to work with oneD_simulation_analysis_plot()
- The LangevinVelocityIntegrator does not work with replicaExchangeEnvelopingDistributionSampling at least during my testing due to the exchange criterion failing to calculate anything using the two-value array.
- This one is more of an incovenience: I have not found a way to conveniently slice one of those positional values out of the trajectory (pandas.DataFrame containing these arrays as objects) without looping (but I am no python expert). The LangevinIntegrator in contrast just contains the positions as floats.
- The documentation gives no hint as to what these pairs of values signify and I have not dug far enough into the code to understand, whether one of these values might be a half-step or just the position in the second dimension (which I should not have in my 1D case).
I have used the LangevinVelocityIntegrator on a one-dimensional potential, and it outputs its trajectory positions (and velocities, I think) as an array containing two values for each step. While I don't know the implementation reasons or which one of them is the actual position, I have found this leads to issues down the line: