aenet.geometry.transformations.CellVolumeTransformation

class aenet.geometry.transformations.CellVolumeTransformation(min_percent: float = -5.0, max_percent: float = 5.0, steps: int = 5)[source]

Uniformly scale unit cell vectors.

This transformation generates structures with different volumes by uniformly scaling the lattice vectors. Fractional coordinates remain unchanged, Cartesian coordinates are recomputed from the updated cell, and copied energy/force labels are cleared because they are no longer valid for the deformed geometry.

Physical/engineering meaning

This is a hydrostatic (isotropic) scaling of the lattice. In a thermodynamic context it resembles sampling different volumes (e.g., equation of state fits), but without relaxing internal degrees of freedom. It can be used, for example, to calculate the bulk modulus.

param min_percent:

Minimum percentage change from original lattice scaling (default: -5.0)

type min_percent:

float, optional

param max_percent:

Maximum percentage change from original lattice scaling (default: 5.0)

type max_percent:

float, optional

param steps:

Number of scaling steps (default: 5)

type steps:

int, optional

__init__(min_percent: float = -5.0, max_percent: float = 5.0, steps: int = 5)[source]

Methods

__init__([min_percent, max_percent, steps])

apply_transformation(structure, **kwargs)

Apply uniform volume scaling to structure.