MLFF volume explosion during production run

To share experience including discussions about scientific questions.


Moderators: Moderator, Global Moderator

Post Reply
Message
Author
henry_ezeaku
Newbie
Newbie
Posts: 1
Joined: Fri Feb 21, 2025 7:39 pm

MLFF volume explosion during production run

#1 Post by henry_ezeaku » Mon Jun 29, 2026 3:33 am

Hi Vasp team, good day!
I hope you are doing well.

I trained an MLFF for the eutectic NaCl-MgCl2 salt using the NPT approach from 750 K to 1150 K for 100 ps. My production temperature is 900 K. This is the content of my INCAR file:
# ---------- Electronic / accuracy ----------
ALGO = Normal # SCF algorithm (robust choice for MD runs)
PREC = Accurate # Precision; 'Accurate' improves force quality (important for ML training)
NELM = 100 # Max number of electronic SCF steps per ionic move
ISMEAR = 0 # Gaussian smearing (good for insulators / ionic liquids)
SIGMA = 0.1 # Smearing width in eV
ENCUT = 550 # Plane-wave energy cutoff (basis set size)
EDIFF = 1E-05 # Electronic SCF convergence criterion (tighter = more accurate forces)
LASPH = .TRUE. # Include non-spherical corrections inside PAW spheres (improves accuracy)
LREAL = Auto # Projection operators evaluated in real space automatically (faster)
LWAVE = .FALSE. # Don't write WAVECAR (saves disk during MD/ML runs)
LCHARG = .FALSE. # Don't write CHGCAR (saves disk during MD/ML runs)

# ---------- MD (NVT) ----------
IBRION = 0 # Molecular dynamics mode (no ionic relaxation)
ISIF = 3 # Change positions AND cell shape/volume dynamically (True NpT)
ISYM = 0 # Turn symmetry off (important for MD + MLFF)
ISPIN = 1 # Non-spin-polarized run

MDALGO = 3 # Langevin thermostat for NPT sampling
LANGEVIN_GAMMA = 10 10 10 # Thermal friction per species (ps^-1)
LANGEVIN_GAMMA_L = 5 # Lattice friction coefficient (ps^-1) for barostat
PMASS = 1000 # Fictitious lattice mass (amu) - paper used 1000
PSTRESS = 0.001 # Target pressure in kbar (0.001 kbar = 1 bar)

TEBEG = 750 # Starting temperature (K)
TEEND = 1150 # Target temperature at end of run (linear ramp if not equal to TEBEG)
NSW = 100000 # Number of MD steps
POTIM = 1.0 # Time step (in fs)

NCORE = 2 # Parallelization control

# ---------- (optional) Dispersion corrections ----------
GGA = ML # vdW-DF2 functional base (when using ML-type GGA = "ML")
AGGAC = 0.0 # Exchange parameter for vdW-DF2
LUSE_VDW = .TRUE. # Enable nonlocal vdW-DF2 correction
ZAB_VDW = -1.8867 # Kernel parameter (specific to vdW functional)

# ---------- MLFF: enable on-the-fly training ----------
ML_LMLFF = .TRUE. # Switch on the MLFF framework
ML_MODE = train # Training mode: ab-initio + ML hybrid MD

Now, after training with a simulation cell of 58 atoms, and doing the refitting, I do get good training errors:
# ERR nstep rmse_energy rmse_force rmse_stress
# ERR 2 3 4 5
# ERR ######################################################################
ERR 0 1.09769321E-03 2.83920615E-02 2.34328322E-01

Also, I do get good test set errors too.

Now, when I scale my system from 58 atoms to 1210 atoms and then run a prediction-only NPT simulation at 900 K (for 400 ps) to obtain the system's equilibrium volume, the volume keeps increasing and doesn't seem to converge (goes up to 200000 Å^3). The temperature and energy do converge, and the total pressure of the system fluctuates around zero.

Please, what might be causing this volume behavior? Looking forward to your response. Thanks!


Post Reply