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§
sourcefn sym_permute_sites_spatial(
&self,
symop: &SymmetryOperation,
) -> Result<Permutation<usize>, TransformationError>
fn sym_permute_sites_spatial( &self, symop: &SymmetryOperation, ) -> Result<Permutation<usize>, TransformationError>
Provided Methods§
sourcefn sym_transform_spatial_mut(
&mut self,
symop: &SymmetryOperation,
) -> Result<&mut Self, TransformationError>
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.
sourcefn sym_transform_spatial(
&self,
symop: &SymmetryOperation,
) -> Result<Self, TransformationError>
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.
sourcefn sym_transform_spatial_with_spintimerev_mut(
&mut self,
symop: &SymmetryOperation,
) -> Result<&mut Self, TransformationError>
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.
sourcefn sym_transform_spatial_with_spintimerev(
&self,
symop: &SymmetryOperation,
) -> Result<Self, TransformationError>
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.
sourcefn sym_transform_spin_mut(
&mut self,
symop: &SymmetryOperation,
) -> Result<&mut Self, TransformationError>
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.
sourcefn sym_transform_spin(
&self,
symop: &SymmetryOperation,
) -> Result<Self, TransformationError>
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.
sourcefn sym_transform_spin_spatial_mut(
&mut self,
symop: &SymmetryOperation,
) -> Result<&mut Self, TransformationError>
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.