Hello,
I have interfaced i-pi with our software, and I have tried to run a simple MD of a molecules of water. The simulation runs without any problem, but seems like the trajectory is printed in a weird way. In principle, I am specifying it to print Angstroms:
=======
<output prefix='simulation'>
<properties stride='5' filename='out'> [ step, time{picosecond}, conserved{kelvin}, temperature{kelvin}, kinetic_cv{kelvin}, potential{kelvin}, pressure_cv{megapascal}] </properties>
<trajectory filename='pos' stride='5' format='xyz' cell_units='angstrom'> positions{angstrom} </trajectory>
<trajectory filename='force' stride='5' format='xyz' cell_units='angstrom'> forces{piconewton} </trajectory>
</output>
=======
As far as I understand, all the units sent and received from and to i-pi are in atomic units. I understand that without specifying the units, it should print atomic units for the positions, right? Then, if we specify Angstrom as the unit for the position in the trajectory, it should print Angstrom. I might be doing something wrong, since what the trajectory file contains is a number that is too small. However, multiplying that number by 1.8897259886^2, it returns the number that it should be. I paste here an example of the last frame of a 1000 step simulation:
=== trajectory file contains ====
3
# CELL(abcABC): 1000.00000 1000.00000 1000.00000 90.00000 90.00000 90.00000 Step: 1000 Bead: 0 positions{angstrom} cell{angstrom}
O -8.22884e-01 6.07688e-01 1.22183e-02
H -7.62002e-01 3.41796e-01 5.08404e-02
H -8.89739e-01 6.01798e-01 -2.44786e-01
=== Printing the coordinates received by i-pi inside the driver, and multiplying them by the bohr_to_angstrom conversion factor (1.8897259886) ===
xyz[0] = -2.93857 xyz[1] = 2.17009 xyz[2] = 0.0436324
xyz[3] = -2.72116 xyz[4] = 1.22058 xyz[5] = 0.181554
xyz[6] = -3.17731 xyz[7] = 2.14906 xyz[8] = -0.874147
Any idea what I am doing wrong?
Thanks,
Marc