Uniaxial deformation of polymer and stress calculation

GROMACS version: 2019

Hi all,

I want to calculate stress-strain curves for a polymer using uniaxial deformation.

I am using “deform” option with deform velocity 0.01 nm/ps. mdp file options are like this:

tau_p = 1
ref_p = 0 1.0 0 0 0 0
compressibility = 0 4.5e-6 4.5e-6 4.5e-6 4.5e-6 4.5e-6
refcoord_scaling = com
deform = 0.01 0 0 0 0 0

  1. Is the setup correct with 0 compressibility in x direction.

  2. The values in deform option represents a(x) b(y) c(z) b(x) c(x) c(y) box elements. So why not the deformation velocity applied in b(x) and c(x) direction also and only in a(x)?

  3. If I want to deform a box in ‘x’ direction, Stress values will be taken from which direction i.e., do I have to take Pzz or Pyy, a sum of all or the virial values that gmx energy gives.

  4. What should be the above stated values in mdp file for uniaxial deformation in x direction and how to calculate resulting stress.

A quick help will be appreciated.

If you want to deform in x axis, you can use the option “deform” in combination with pressure coupling semiisotropic in place of anisotropic and compressibility 0. in x and y direction.
This will not fulfill your requirements.
Best regards

Good afternoon,
Alevilla already addressed your first concern, so I will skip that.
2. If you want to perform uniaxial extension (or compression), you will only want deformation in the direction of strain, thus only the x component should be defined, and all others zero. I’d implore you to play around with changing a(x) … c(y) to see what they do to your system. Should only take a few minutes and will give you a strong understanding of what’s actually happening.
3. If you are performing uniaxial extension in the x-direction, then you should be looking into the Pxx component of your stress tensor. The stress in the x-direction, Sx, would be calculated as Sx=-Pxx, per Lyulin, et al. It is worth noting there are other ways to calculate this.
4. If you consider what 1E-2 nm/ps would look like in a real world experiment, you’ll quickly realize that this is a ludicrous speed value. Given many tensile tests are performed at cm/min, a more appropriate value may be ~1E-7 nm/ps. This would clearly require quite long simulation times.

Also, from personal experience, some polymer systems are not accurately represented by small-scale systems with periodic boundaries. So be careful about your simulation volume, weight-percent water (if used), etc.


Hi Alevilla,

Thanks for the clarification.
I attempted uniaxial elongation in z direction and applied the settings in mdp as suggested by you and as given below
“Pcoupl = Berendsen
pcoupltype = semiisotropic
tau_p = 1
compressibility = 4.5e-7 0
ref_p = 1 1
gen_vel = yes
gen_temp = 298
gen_seed = -1
; options for non-eq viscosity calc
deform = 0 0 1e-6 0 0 0
refcoord_scaling = com”

However I am facing a problem. With the given deformation speed of 1E-6 nm/ps in z direction, my X and Y axis are decreasing very fast as compared to the increase in z axis value. Due to which, soon enough, the x and y axis values reach lower to twice of cut-off and mdrun throws an error.

I want a tensile deformation, i.e. the volume of the system remain constant after deformation. I tried changing the compressibility values to 4.5X10E-9, however the problem is not solved.

What can I change in the mdp file, so that the increase in z is equally balanced by decrease in x and y and volume remains constant.

Thanks again.