aenet.geometry.transformations.IsovolumetricStrainTransformation

class aenet.geometry.transformations.IsovolumetricStrainTransformation(direction: int, len_min: float, len_max: float, steps: int)[source]

Volume-preserving uniaxial strain.

This transformation scales one lattice direction by a factor s while scaling the other two directions by s**(-1/2) to preserve the cell volume. Fractional coordinates are preserved, Cartesian coordinates are rebuilt from the deformed cell, and copied energy/force labels are cleared.

Physical/engineering meaning

This is a constrained deformation (volume fixed by construction). It is not the standard deformation used for Young’s modulus, because Young’s modulus corresponds to uniaxial stress / stress-free transverse directions and generally changes volume.

This transformation is useful for structure-space sampling when you want to explore anisotropic cell shapes without changing volume.

param direction:

Direction to strain (1=a, 2=b, 3=c)

type direction:

int

param len_min:

Minimum scaling factor for the strained direction

type len_min:

float

param len_max:

Maximum scaling factor for the strained direction

type len_max:

float

param steps:

Number of strain steps

type steps:

int

__init__(direction: int, len_min: float, len_max: float, steps: int)[source]

Methods

__init__(direction, len_min, len_max, steps)

apply_transformation(structure, **kwargs)

Apply isovolumetric strain to structure.

Attributes

VOLUME_TOLERANCE