Author Topic: AIMD trajectory to MTP training data  (Read 3619 times)

0 Members and 1 Guest are viewing this topic.

Offline fangbiaolee

  • New QuantumATK user
  • *
  • Posts: 4
  • Country: cn
  • Reputation: 0
    • View Profile
AIMD trajectory to MTP training data
« 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.



« Last Edit: June 22, 2022, 04:31 by fangbiaolee »

Offline Julian Schneider

  • QuantumATK Staff
  • QuantumATK Guru
  • *****
  • Posts: 164
  • Country: dk
  • Reputation: 25
    • View Profile
Re: AIMD trajectory to MTP training data
« Reply #1 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!