Trait SymmetryTransformable

Source
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.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§