VOLT
Plugins

Atomic Strain

Measure local deformation by comparing atomic neighborhoods against a reference configuration.

Overview

Atomic Strain compares each atom's neighborhood in the current frame against a reference frame and estimates the best local affine deformation that connects the two. From that fit, it reports strain-related measures such as shear strain, volumetric strain, deformation gradient, and optionally D2min.

This makes it especially useful when you want to study local deformation relative to a known reference state rather than relative to an ideal crystal lattice.

Parameters

ParameterTypeDefaultDescription
cutofffloat3.0Cutoff radius for neighbor search.
referencefileReference LAMMPS dump file. If omitted, the current frame is used, which usually produces near-zero strain.
eliminateCellDeformationboolfalseEliminate cell deformation before the local fit.
assumeUnwrappedboolfalseAssume coordinates are already unwrapped.
calcDeformationGradientbooltrueCompute deformation gradient F.
calcStrainTensorsbooltrueCompute strain tensors.
calcD2minbooltrueCompute D2min, the non-affine residual.

Practical notes

  • This plugin does not currently emit principal strains, even though that is a common expectation from the name.
  • invalid is an important field. It marks atoms for which the local fit could not be computed reliably, and those atoms are emitted with zeroed deformation outputs.
  • Atomic Strain is often easiest to interpret when paired with a carefully chosen reference frame.

Output

{outputBase}_atomic_strain.msgpack

type StrainTensor = [float, float, float, float, float, float];
type DeformationGradient = [float, float, float, float, float, float, float, float, float];

interface PerAtomProperties {
    id: int;
    shear_strain: float;
    volumetric_strain: float;
    strain_tensor?: StrainTensor;
    deformation_gradient?: DeformationGradient;
    D2min: float | null;
    invalid: boolean;
}

interface AtomicStrainOutput {
    main_listing: {
        cutoff: float;
        num_invalid_particles: int;
        average_shear_strain: float;
        average_volumetric_strain: float;
        max_shear_strain: float;
    };
    "per-atom-properties": PerAtomProperties[];
}

See Also

On this page