pub struct Symmetry {
pub group_name: Option<String>,
/* private fields */
}Expand description
Structure for storing and managing symmetry analysis results.
Fields§
§group_name: Option<String>The determined point group in Schönflies notation.
Implementations§
Source§impl Symmetry
impl Symmetry
Sourcepub fn builder() -> SymmetryBuilder
pub fn builder() -> SymmetryBuilder
Returns a builder to construct a new symmetry struct.
§Returns
A builder to construct a new symmetry struct.
Sourcepub fn analyse(
&mut self,
presym: &PreSymmetry,
tr: bool,
) -> Result<&mut Self, Error>
pub fn analyse( &mut self, presym: &PreSymmetry, tr: bool, ) -> Result<&mut Self, Error>
Performs point-group detection analysis and populates the fields in this structure with the results.
§Arguments
presym- A pre-symmetry-analysis structure containing the molecule and its rotational symmetry required for point-group detection.tr- A boolean indicating if time reversal should also be considered. A time-reversed symmetry element will only be considered if its non-time-reversed version turns out to be not a symmetry element.
Sourcepub fn get_elements(
&self,
kind: &SymmetryElementKind,
) -> Option<&HashMap<ElementOrder, IndexSet<SymmetryElement>>>
pub fn get_elements( &self, kind: &SymmetryElementKind, ) -> Option<&HashMap<ElementOrder, IndexSet<SymmetryElement>>>
Sourcepub fn get_elements_mut(
&mut self,
kind: &SymmetryElementKind,
) -> Option<&mut HashMap<ElementOrder, IndexSet<SymmetryElement>>>
pub fn get_elements_mut( &mut self, kind: &SymmetryElementKind, ) -> Option<&mut HashMap<ElementOrder, IndexSet<SymmetryElement>>>
Sourcepub fn get_generators(
&self,
kind: &SymmetryElementKind,
) -> Option<&HashMap<ElementOrder, IndexSet<SymmetryElement>>>
pub fn get_generators( &self, kind: &SymmetryElementKind, ) -> Option<&HashMap<ElementOrder, IndexSet<SymmetryElement>>>
Sourcepub fn get_generators_mut(
&mut self,
kind: &SymmetryElementKind,
) -> Option<&mut HashMap<ElementOrder, IndexSet<SymmetryElement>>>
pub fn get_generators_mut( &mut self, kind: &SymmetryElementKind, ) -> Option<&mut HashMap<ElementOrder, IndexSet<SymmetryElement>>>
Sourcepub fn get_sigma_elements(
&self,
sigma: &str,
) -> Option<HashSet<&SymmetryElement>>
pub fn get_sigma_elements( &self, sigma: &str, ) -> Option<HashSet<&SymmetryElement>>
Obtains mirror-plane elements by their type ("h", "v", "d", or ""), including both
time-reversed and non-time-reversed variants.
§Arguments
sigma- The mirror-plane type which is one of"h","v","d", or"".
§Returns
An option containing the set of the required mirror-plane element type, if exists. If not,
then None is returned.
Sourcepub fn get_sigma_generators(
&self,
sigma: &str,
) -> Option<HashSet<&SymmetryElement>>
pub fn get_sigma_generators( &self, sigma: &str, ) -> Option<HashSet<&SymmetryElement>>
Sourcepub fn get_max_proper_order(&self) -> ElementOrder
pub fn get_max_proper_order(&self) -> ElementOrder
Sourcepub fn get_proper(
&self,
order: &ElementOrder,
) -> Option<HashSet<&SymmetryElement>>
pub fn get_proper( &self, order: &ElementOrder, ) -> Option<HashSet<&SymmetryElement>>
Sourcepub fn get_improper(
&self,
order: &ElementOrder,
) -> Option<HashSet<&SymmetryElement>>
pub fn get_improper( &self, order: &ElementOrder, ) -> Option<HashSet<&SymmetryElement>>
Sourcepub fn get_proper_principal_element(&self) -> &SymmetryElement
pub fn get_proper_principal_element(&self) -> &SymmetryElement
Obtains a proper principal element, i.e. a time-reversed or non-time-reversed proper element with the highest order.
If there are several such elements, the element to be returned will be randomly chosen but with any non-time-reversed ones prioritised.
§Returns
A proper principal element.
§Panics
Panics if no proper elements or generators can be found.
Sourcepub fn is_infinite(&self) -> bool
pub fn is_infinite(&self) -> bool
Determines if this group is an infinite group.
§Returns
A boolean indicating if this group is an infinite group.
Sourcepub fn n_elements(&self) -> usize
pub fn n_elements(&self) -> usize
Returns the total number of symmetry elements (NOT symmetry operations). In infinite-order groups, this is the sum of the number of discrete symmetry elements and the number of discrete symmetry generators.
Sourcepub fn generate_all_operations(
&self,
infinite_order_to_finite: Option<u32>,
) -> Vec<SymmetryOperation>
pub fn generate_all_operations( &self, infinite_order_to_finite: Option<u32>, ) -> Vec<SymmetryOperation>
Generates all possible symmetry operations from the available symmetry elements.
§Arguments
infinite_order_to_finite- A finite order to interpret infinite-order generators of infinite groups.
§Returns
A vector of generated symmetry operations.
§Panics
Panics if the group is infinite but infinite_order_to_finite is None, or if the finite
order specified in infinite_order_to_finite is incompatible with the infinite group.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Symmetry
impl<'de> Deserialize<'de> for Symmetry
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for Symmetry
impl RefUnwindSafe for Symmetry
impl Send for Symmetry
impl Sync for Symmetry
impl Unpin for Symmetry
impl UnsafeUnpin for Symmetry
impl UnwindSafe for Symmetry
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.