aenet.geometry.transformations.UniaxialStrainTransformation
- class aenet.geometry.transformations.UniaxialStrainTransformation(direction: int, len_min: float, len_max: float, steps: int)[source]
Uniaxial strain (simple scaling of one lattice direction).
This transformation scales one lattice direction by a factor
sand leaves the other two directions unchanged. Fractional coordinates are preserved, Cartesian coordinates are rebuilt from the deformed cell, and copied energy/force labels are cleared.Physical/engineering meaning
This is the simplest uniaxial strain deformation. It is often used as a starting point to compute directional stiffness / Young’s modulus, but note:
Young’s modulus corresponds to uniaxial stress with stress-free transverse directions. Accurately reproducing that condition may require relaxing the transverse cell vectors (and/or internal coordinates) at each applied strain.
This transformation alone therefore gives you a strained cell, but not necessarily the fully relaxed response.
- 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
Methods
__init__(direction, len_min, len_max, steps)apply_transformation(structure, **kwargs)Apply uniaxial strain to structure.