Skip to main content

SymmetryTransformable

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

Implementors§

Source§

impl<'a, T, B, SC> SymmetryTransformable for MultiDeterminant<'a, T, B, SC>

Source§

impl<'a, T, B, SC> SymmetryTransformable for MultiDeterminants<'a, T, B, SC>

Source§

impl<'a, T, SC> SymmetryTransformable for FCIBasis<'a, T, SC>

Source§

impl<'a, T> SymmetryTransformable for Density<'a, T>

Source§

impl<'a, T> SymmetryTransformable for MolecularOrbital<'a, T, SpinConstraint>

Source§

impl<'a, T> SymmetryTransformable for SlaterDeterminant<'a, T, SpinConstraint>

Source§

impl<'a, T> SymmetryTransformable for VibrationalCoordinate<'a, T>

Source§

impl<'a> SymmetryTransformable for MolecularOrbital<'a, Complex<f64>, SpinOrbitCoupled>

Source§

impl<'a> SymmetryTransformable for SlaterDeterminant<'a, Complex<f64>, SpinOrbitCoupled>

Source§

impl<'g, G, I> SymmetryTransformable for OrbitBasis<'g, G, I>

Source§

impl<I> SymmetryTransformable for EagerBasis<I>

Source§

impl<T, F> SymmetryTransformable for RealSpaceFunction<T, F>

Source§

impl<T> SymmetryTransformable for AxialVector3<T>