aenet.geometry.transformations.MonoclinicStrainTransformation
- class aenet.geometry.transformations.MonoclinicStrainTransformation(direction: int, gamma_min: float, gamma_max: float, steps: int)[source]
Volume-conserving monoclinic strain (elastic constant pattern).
This transformation implements a standard volume-conserving monoclinic strain path used to extract a shear elastic constant (often
C44in cubic crystals).It is based on
aenet.geometry.utils.strain_monoclinic().Physical/engineering meaning
In contrast to
ShearStrainTransformation(simple shear deformation gradient), this uses an engineering shear strain gamma definition and adds a compensating normal strain so that the overall deformation is volume-conserving along this specific strain path.For sufficiently small gamma the two become essentially equivalent, but they differ for larger strains. Fractional coordinates are preserved, Cartesian coordinates are rebuilt from the deformed cell, and copied energy/force labels are cleared.
- param direction:
Shear plane (1=xy, 2=xz, 3=yz)
- type direction:
int
- param gamma_min:
Range of engineering shear strain gamma
- type gamma_min:
float
- param gamma_max:
Range of engineering shear strain gamma
- type gamma_max:
float
- param steps:
Number of steps
- type steps:
int
Notes
The
gamma_minandgamma_maxparameters specify the engineering shear strain γ_xy. Note the formula for the compensating normal strain: ε_zz = γ²/(4-γ²).The formulation has a singularity at \(|\gamma| = 2\), where \(\epsilon_{zz}\) diverges. In practice, require \(|\gamma_{\min}| < 2\) and \(|\gamma_{\max}| < 2\).
For structure-space sampling, a typical range is -0.4 to +0.4. Staying well below \(|\gamma| = 1.0\) avoids extreme cell deformations, and values above \(|\gamma| > 0.6\) may produce highly skewed or unstable structures.
For elastic constant calculations targeting
C44, stay in the linear regime around -0.1 to +0.1, use at least 5-7 points with both positive and negative shear values, and ensure \(|\gamma| \ll 1\). In this limit the result approaches the simple-shear formulation.For \(|\gamma| < 0.1\), MonoclinicStrainTransformation and ShearStrainTransformation yield nearly identical results. They diverge at larger strains because they enforce volume conservation differently.
Methods
__init__(direction, gamma_min, gamma_max, steps)apply_transformation(structure, **kwargs)Apply monoclinic strain pattern to structure.