pub fn atom_cells(&self) -> Vec<[u32; 3]> {
        image_cells(self.periods).iter().cloned()
            .cycle().take(self.num_supercell_atoms())
            .collect()
    }
// !!! This function affects the supercell convention !!! (SUPERCELL-CONV)
/// Defines which image of the primitive cell each atom in the supercell belongs to.
///
/// Each image of the primitive cell is represented by the integral coordinates of the
/// lattice vector used to produce it. It is guaranteed that the output will contain
/// `self.num_cells()` unique values, and that each one will appear exactly
/// `self.num_primitive_atoms()` times.
This function affects the supercell convention !!. (SUPERCELL-CONV)
Defines which image of the primitive cell each atom in the supercell belongs to.

Each image of the primitive cell is represented by the integral coordinates of the
lattice vector used to produce it. It is guaranteed that the output will contain
`self.num_cells()` unique values, and that each one will appear exactly
`self.num_primitive_atoms()` times.
This function affects the supercell convention !! . ( SUPERCELL - CONV ) Defines which image of the primitive cell each atom in the supercell belongs to . Each image of the primitive cell is represented by the integral coordinates of the lattice vector used to produce it . It is guaranteed that the output will contain ` self . num_cells () ` unique values and that each one will appear exactly ` self . num_primitive_atoms () ` times .
pub fn atom_cells(&self) -> Vec<[u32; 3]> {
        image_cells(self.periods).iter().cloned()
            .cycle().take(self.num_supercell_atoms())
            .collect()
    }
pub fn atom_cells ( & self ) -> Vec < [ u32 ; 3 ] > { image_cells ( self . periods ) . iter ( ) . cloned ( ) . cycle ( ) . take ( self . num_supercell_atoms ( ) ) . collect ( ) }
This function affects the supercell convention !
This function affects the supercell convention !
&self
&self