Struct chemfiles::UnitCellRef[][src]

pub struct UnitCellRef<'a> { /* fields omitted */ }
Expand description

An analog to a reference to an unit cell (&UnitCell)

Methods from Deref<Target = UnitCell>

Get the three lengths of the cell, in Angstroms.

Example

let cell = UnitCell::new([30.0, 30.0, 23.0]);
assert_eq!(cell.lengths(), [30.0, 30.0, 23.0]);

Get the three angles of the cell, in degrees.

Example

let cell = UnitCell::new([20.0, 20.0, 20.0]);
assert_eq!(cell.angles(), [90.0, 90.0, 90.0]);

let cell = UnitCell::triclinic([20.0, 20.0, 20.0], [100.0, 120.0, 90.0]);
assert_eq!(cell.angles()[0], 100.0);
// Rounding errors might occur due to internal representation
assert!((cell.angles()[1] - 120.0).abs() < 1e-12);
assert_eq!(cell.angles()[2], 90.0);

Get the unit cell matricial representation.

The unit cell representation is obtained by aligning the a vector along the x axis and putting the b vector in the xy plane. This make the matrix an upper triangular matrix:

| a_x   b_x   c_x |
|  0    b_y   c_y |
|  0     0    c_z |

Example

let cell = UnitCell::new([10.0, 20.0, 30.0]);

let matrix = cell.matrix();

assert_eq!(matrix[0][0], 10.0);
assert_eq!(matrix[1][1], 20.0);
assert_eq!(matrix[2][2], 30.0);

assert!(matrix[1][2].abs() < 1e-9);

Get the shape of the unit cell.

Example

let cell = UnitCell::new([10.0, 20.0, 30.0]);
assert_eq!(cell.shape(), CellShape::Orthorhombic);

Get the volume of the unit cell.

Example

let cell = UnitCell::new([10.0, 20.0, 30.0]);
assert_eq!(cell.volume(), 10.0 * 20.0 * 30.0);

Wrap a vector in this unit cell.

Example

let cell = UnitCell::new([10.0, 20.0, 30.0]);

let mut vector = [12.0, 5.2, -45.3];
cell.wrap(&mut vector);
assert_eq!(vector, [2.0, 5.2, 14.700000000000003]);

Trait Implementations

The resulting type after dereferencing.

Dereferences the value.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.