I am trying to calculate elastic constant when strain is applied on a material.

Thermo_pw has a command which says in the documentation

For each strain, the code relaxes the ions to their equilibrium positions if frozen_ions=.FALSE. or keeps them in the strained positions if frozen_ions=.TRUE.. Note that elastic constant calculations with frozen _ions=.FALSE. might require smaller force convergence threshold than standard calculations."

What does this mean? What is the theory behind it? So, do I have to use frozen_ions=.TRUE. for my strained structure calculation?


1 Answer 1


At the ground state, the atomic positions and cell vectors are such that the energy is minimised, and the atomic forces and cell stresses are zero.

Straining a material means perturbing the lattice, so that it is no longer at the ground state. The stress on the cell will no longer be zero; what about the atomic forces? The forces might be zero, or they might not. If the forces are non-zero, should we:

  1. Keep the atoms where they are, meaning the same fractional positions (e.g. Wykoff sites); or
  2. Move the atoms to the new optimised locations, where the atomic forces are zero

In QE this choice is made by setting frozen_ions.

Your choice here can affect the computed properties significantly, so it may require some careful thought. You might also want to consider what situation or experiment you are really intending to model, for example if the strain is caused by a rapidly-changing external field of some kind, the atoms may not have time to respond to the strain.

Also be aware that even when the atomic forces are zero, they may be zero simply because atoms are on high-symmetry sites. It can be necessary to perturb the atoms slightly, in order to have non-zero forces and allow them to relax to their new locations (they may, of course, simply relax back to the symmetry sites!).

  • $\begingroup$ Thank you sir for your reply. So I should assume that the strain applied on the structure and the change in lattice parameter without change in Wykoff positions will require frozen_ions = .false. Am I correct in this regard? $\endgroup$ Jun 3, 2022 at 16:52
  • $\begingroup$ Constraining the ions to stay on the Wykoff sites (or wherever their equilibrium sites are) is frozen_ions= .true. ; allowing the ions to relax to the zero force location is frozen_ions = .false. $\endgroup$ Jun 4, 2022 at 2:08

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .