VOLT

Elastic Strain

Compute the elastic lattice strain of each crystalline atom relative to the ideal crystal, without a reference frame.

Elastic Strain measures how much the crystal lattice around each atom is stretched, compressed or sheared compared with the ideal, stress-free crystal you describe by its structure and lattice constant. It needs no reference frame, and it ignores the plastic part of the deformation, because dislocation slip leaves the lattice itself unchanged. Use it to map elastic strain fields around dislocations, precipitates and interfaces, and coherency strains in a sample whose undeformed state you don't have.

KeyVersionBuilds
elastic-strain2.1.0Linux, macOS, Windows, browser

How it works

The plugin takes the crystal clusters and per-atom neighbor topology from an earlier structure identification stage. For each crystalline atom it maps the ideal lattice vectors of its cluster, scaled by the lattice constant (and c/a for HCP), onto its actual bonds to the neighbors, giving the elastic deformation gradient Fₑ. From it, the strain tensor is the Green-Lagrangian E = ½(FₑᵀFₑ − I) in the lattice frame, or with Push Forward the Euler-Almansi e = ½(I − Fₑ⁻ᵀFₑ⁻¹) in the spatial frame. The volumetric strain is a third of its trace.

Inputs

  • An earlier stage of Polyhedral Template Matching or Adaptive Common Neighbor Analysis in the same pipeline. Its shared clusters_table, clusters_transitions and neighbor_lattice fill in this plugin's hidden arguments.
  • The lattice constant of the stress-free crystal, for example from an energy minimization of your potential.

Arguments

ArgumentTypeDefaultAllowed valuesDescription
Lattice Constant lattice_constantnumber3.615≥ 0, step 0.01The stress-free lattice constant a₀ in the frame's length units. The default is copper's.
Crystal Structure crystal_structureselectFCCFCC, BCC, HCPThe crystal whose ideal lattice vectors are used. Match the structure identification stage.
c/a Ratio ca_rationumber1≥ 0, step 0.01The c/a ratio, for HCP.
Push Forward push_forwardbooleanfalseExpress the strain in the spatial frame (Euler-Almansi) instead of the lattice frame (Green-Lagrangian).
Calc Deformation Gradient calc_deformation_gradientbooleantrueWrite the elastic deformation gradient.
Calc Strain Tensors calc_strain_tensorsbooleantrueWrite the strain tensor.

These arguments are filled in from the earlier stage and don't appear in the form:

ArgumentTypeShared by
Clusters Table clusters_tablestringPolyhedral Template Matching, Adaptive Common Neighbor Analysis (and Pattern Structure Matching, which doesn't share it in its current version)
Clusters Transitions clusters_transitionsstringSame
Neighbor Lattice neighbor_latticestringSame

Turning off Calc Deformation Gradient or Calc Strain Tensors has no effect in version 2.1.0. VOLT passes a boolean argument to this plugin only when it is on, and the program computes both unless told otherwise.

Outputs

ExposureWhat you get
Elastic StrainA listing with the frame's mean volumetric strain.
Elastic Strain ModelA listing with the atom, structure and cluster counts, and a 3D model of the atoms grouped by structure.

The per-atom table has structure_id, structure_name, cluster_id, volumetric_strain, strain_tensor and deformation_gradient.

Notes

  • Atoms outside a crystal cluster (cores, surfaces, grain boundaries) and atoms in a cluster of another structure than Crystal Structure (for example HCP stacking faults in FCC) get zero strain.
  • A wrong lattice constant shows up as a spurious volumetric strain everywhere. Check it on a strain-free region first.

Reference

A. Stukowski, A. Arsenlis, "On the elastic–plastic decomposition of crystal deformation at the atomic scale", Modelling Simul. Mater. Sci. Eng. 20, 035012 (2012).

On this page