QuantumATK Forum

QuantumATK => General Questions and Answers => Topic started by: fangbiaolee on June 22, 2022, 04:28

Title: AIMD trajectory to MTP training data
Post by: fangbiaolee on June 22, 2022, 04:28
Dear ATK-Staff/developer:
when I loaded the AIMD trajectory object which was precalculated:

# Load another Trajectory object with precalculated data.
trajectory_training_data_input = nlread('KPF6_MD_trajectory_300K_0.1GPa.hdf5', Trajectory)[0]
training_sets.append(
   TrainingSet(trajectory_training_data_input,
                       # sample_size=100,
                        calculator=calculator,
                        recalculate_training_data=False)

I encountered the following problem:

Traceback (most recent call last):
  File "test3.py", line 58, in <module>
trajectory_training_data_input=nlread('KPF6_MD_trajectory_300K_0.1GPa.hdf5', Trajectory)[0]
IndexError: list index out of range
application called MPI_Abort(MPI_COMM_WORLD, 1) - process 31

The  measurements of MD_trajectory are shown as follow: kinetic_energy, potential_energy, volume, temperature, pressure and stress.
And that are differs from the “energy”, “force” and “stress”required for the training set. Moreover,  there is no option for “force” in the measurements  in AIMD simulation.

So how do I solve this problem so that I can make use of the AIMD data that has been calculated before.



Title: Re: AIMD trajectory to MTP training data
Post by: Julian Schneider on July 6, 2022, 11:56
Hi,

it looks like the issue is that you want to load an MDTrajectory object, but in the nlread() statement you specify a Trajectory object.
It will probably work if you instead use the following line:
Code
# Load another Trajectory object with precalculated data.
trajectory_training_data_input = nlread('KPF6_MD_trajectory_300K_0.1GPa.hdf5', MDTrajectory)[0]

If there is only one object in your file, then you don't need to specify the trajectory type at all.

Hope this fixes it!