pub trait SymmetryTransformable: SpatialUnitaryTransformable + SpinUnitaryTransformable + TimeReversalTransformable {
    // Required method
    fn sym_permute_sites_spatial(
        &self,
        symop: &SymmetryOperation,
    ) -> Result<Permutation<usize>, TransformationError>;

    // Provided methods
    fn sym_transform_spatial_mut(
        &mut self,
        symop: &SymmetryOperation,
    ) -> Result<&mut Self, TransformationError> { ... }
    fn sym_transform_spatial(
        &self,
        symop: &SymmetryOperation,
    ) -> Result<Self, TransformationError> { ... }
    fn sym_transform_spatial_with_spintimerev_mut(
        &mut self,
        symop: &SymmetryOperation,
    ) -> Result<&mut Self, TransformationError> { ... }
    fn sym_transform_spatial_with_spintimerev(
        &self,
        symop: &SymmetryOperation,
    ) -> Result<Self, TransformationError> { ... }
    fn sym_transform_spin_mut(
        &mut self,
        symop: &SymmetryOperation,
    ) -> Result<&mut Self, TransformationError> { ... }
    fn sym_transform_spin(
        &self,
        symop: &SymmetryOperation,
    ) -> Result<Self, TransformationError> { ... }
    fn sym_transform_spin_spatial_mut(
        &mut self,
        symop: &SymmetryOperation,
    ) -> Result<&mut Self, TransformationError> { ... }
    fn sym_transform_spin_spatial(
        &self,
        symop: &SymmetryOperation,
    ) -> Result<Self, TransformationError> { ... }
}
Expand description

Trait for transformations using SymmetryOperation.

Required Methods§

source

fn sym_permute_sites_spatial( &self, symop: &SymmetryOperation, ) -> Result<Permutation<usize>, TransformationError>

Determines the permutation of sites (e.g. atoms in molecules) due to the action of a symmetry operation.

§Arguments
  • symop - A symmetry operation.
§Returns

The resultant site permutation under the action of symop, or an error if no such permutation can be found.

Provided Methods§

source

fn sym_transform_spatial_mut( &mut self, symop: &SymmetryOperation, ) -> Result<&mut Self, TransformationError>

Performs a spatial transformation according to a specified symmetry operation in-place.

Note that both $\mathsf{SO}(3)$ and $\mathsf{SU}(2)$ rotations effect the same spatial transformation. Also note that, if the transformation contains time reversal, it will be accompanied by a complex conjugation.

§Arguments
  • symop - A symmetry operation.
source

fn sym_transform_spatial( &self, symop: &SymmetryOperation, ) -> Result<Self, TransformationError>

Performs a spatial transformation according to a specified symmetry operation and returns the transformed result.

Note that both $\mathsf{SO}(3)$ and $\mathsf{SU}(2)$ rotations effect the same spatial transformation. Also note that, if the transformation contains time reversal, it will be accompanied by a complex conjugation.

§Arguments
  • symop - A symmetry operation.
§Returns

The transformed result.

source

fn sym_transform_spatial_with_spintimerev_mut( &mut self, symop: &SymmetryOperation, ) -> Result<&mut Self, TransformationError>

Performs a spatial transformation according to a specified symmetry operation in-place, but with spin-including time reversal.

Note that both $\mathsf{SO}(3)$ and $\mathsf{SU}(2)$ rotations effect the same spatial transformation. Also note that, if the transformation contains time reversal, it will be accompanied by a rotation by $\pi$ about the space-fixed $y$-axis followed by a complex conjugation.

§Arguments
  • symop - A symmetry operation.
source

fn sym_transform_spatial_with_spintimerev( &self, symop: &SymmetryOperation, ) -> Result<Self, TransformationError>

Performs a spatial transformation according to a specified symmetry operation but with spin-including time reversal and returns the transformed result.

Note that both $\mathsf{SO}(3)$ and $\mathsf{SU}(2)$ rotations effect the same spatial transformation. Also note that, if the transformation contains time reversal, it will be accompanied by a rotation by $\pi$ about the space-fixed $y$-axis followed by a complex conjugation.

§Arguments
  • symop - A symmetry operation.
§Returns

The transformed result.

source

fn sym_transform_spin_mut( &mut self, symop: &SymmetryOperation, ) -> Result<&mut Self, TransformationError>

Performs a spin transformation according to a specified symmetry operation in-place.

Note that only $\mathsf{SU}(2)$ rotations can effect spin transformations. Also note that, if the transformation contains a time reversal, the corresponding explicit time reveral action will also be carried out.

§Arguments
  • symop - A symmetry operation.
source

fn sym_transform_spin( &self, symop: &SymmetryOperation, ) -> Result<Self, TransformationError>

Performs a spin transformation according to a specified symmetry operation and returns the transformed result.

Note that only $\mathsf{SU}(2)$ rotations can effect spin transformations. Also note that, if the transformation is antiunitary, it will be accompanied by a time reversal.

§Arguments
  • symop - A symmetry operation.
§Returns

The transformed result.

source

fn sym_transform_spin_spatial_mut( &mut self, symop: &SymmetryOperation, ) -> Result<&mut Self, TransformationError>

Performs a coupled spin-spatial transformation according to a specified symmetry operation in-place.

Note that only $\mathsf{SU}(2)$ rotations can effect spin transformations.

§Arguments
  • symop - A symmetry operation.
source

fn sym_transform_spin_spatial( &self, symop: &SymmetryOperation, ) -> Result<Self, TransformationError>

Performs a coupled spin-spatial transformation according to a specified symmetry operation and returns the transformed result.

Note that only $\mathsf{SU}(2)$ rotations can effect spin transformations.

§Arguments
  • symop - A symmetry operation.
§Returns

The transformed result.

Object Safety§

This trait is not object safe.

Implementors§