pub struct PyMultiDeterminantsComplex { /* private fields */ }Expand description
Python-exposed structure to marshall complex multi-determinant information between Rust and Python.
Implementations§
Source§impl PyMultiDeterminantsComplex
impl PyMultiDeterminantsComplex
Sourcepub fn new(
basis: Vec<PySlaterDeterminantComplex>,
coefficients: Bound<'_, PyArray2<Complex<f64>>>,
energies: Bound<'_, PyArray1<Complex<f64>>>,
density_matrices: Option<Vec<Bound<'_, PyArray2<Complex<f64>>>>>,
threshold: f64,
) -> Self
pub fn new( basis: Vec<PySlaterDeterminantComplex>, coefficients: Bound<'_, PyArray2<Complex<f64>>>, energies: Bound<'_, PyArray1<Complex<f64>>>, density_matrices: Option<Vec<Bound<'_, PyArray2<Complex<f64>>>>>, threshold: f64, ) -> Self
Constructs a set of complex Python-exposed multi-determinants.
§Arguments
basis- The basis of Slater determinants in which the multi-determinantal states are expressed.coefficients- The coefficients for the multi-determinantal states in the specified basis. Each column of the coefficient matrix contains the coefficients for one state.energies- The energies of the multi-determinantal states.density_matrices- The optional density matrices of the multi-determinantal states.threshold- The threshold for comparisons.
pub fn coefficients<'py>( &self, py: Python<'py>, ) -> PyResult<Bound<'py, PyArray2<Complex<f64>>>>
pub fn energies<'py>( &self, py: Python<'py>, ) -> PyResult<Bound<'py, PyArray1<Complex<f64>>>>
pub fn density_matrices<'py>( &self, py: Python<'py>, ) -> PyResult<Option<Vec<Bound<'py, PyArray2<Complex<f64>>>>>>
Sourcepub fn complex_symmetric<'py>(&self, _py: Python<'py>) -> PyResult<bool>
pub fn complex_symmetric<'py>(&self, _py: Python<'py>) -> PyResult<bool>
Boolean indicating whether inner products involving these multi-determinantal states are complex-symmetric.
Sourcepub fn state_coefficients<'py>(
&self,
py: Python<'py>,
state_index: usize,
) -> PyResult<Bound<'py, PyArray1<Complex<f64>>>>
pub fn state_coefficients<'py>( &self, py: Python<'py>, state_index: usize, ) -> PyResult<Bound<'py, PyArray1<Complex<f64>>>>
Returns the coefficients for a particular state.
Sourcepub fn state_energy<'py>(
&self,
_py: Python<'py>,
state_index: usize,
) -> PyResult<Complex<f64>>
pub fn state_energy<'py>( &self, _py: Python<'py>, state_index: usize, ) -> PyResult<Complex<f64>>
Returns the energy for a particular state.
Sourcepub fn state_density_matrix<'py>(
&self,
py: Python<'py>,
state_index: usize,
) -> PyResult<Bound<'py, PyArray2<Complex<f64>>>>
pub fn state_density_matrix<'py>( &self, py: Python<'py>, state_index: usize, ) -> PyResult<Bound<'py, PyArray2<Complex<f64>>>>
Returns the density matrix for a particular state.
Sourcepub fn to_qsym2_binary<'py>(
&self,
_py: Python<'py>,
name: PathBuf,
) -> PyResult<usize>
pub fn to_qsym2_binary<'py>( &self, _py: Python<'py>, name: PathBuf, ) -> PyResult<usize>
Sourcepub fn from_qsym2_binary(name: PathBuf) -> PyResult<Self>
pub fn from_qsym2_binary(name: PathBuf) -> PyResult<Self>
Source§impl PyMultiDeterminantsComplex
impl PyMultiDeterminantsComplex
Sourcepub fn to_qsym2_individuals<'b, 'a: 'b, SC>(
&'b self,
baos: &[&'a BasisAngularOrder<'_>],
mol: &'a Molecule,
) -> Result<Vec<MultiDeterminant<'b, Complex<f64>, EagerBasis<SlaterDeterminant<'b, Complex<f64>, SC>>, SC>>, Error>where
SC: StructureConstraint + Eq + Hash + Clone + Display + TryFrom<PyStructureConstraint, Error = Error>,
pub fn to_qsym2_individuals<'b, 'a: 'b, SC>(
&'b self,
baos: &[&'a BasisAngularOrder<'_>],
mol: &'a Molecule,
) -> Result<Vec<MultiDeterminant<'b, Complex<f64>, EagerBasis<SlaterDeterminant<'b, Complex<f64>, SC>>, SC>>, Error>where
SC: StructureConstraint + Eq + Hash + Clone + Display + TryFrom<PyStructureConstraint, Error = Error>,
Extracts the information in the PyMultiDeterminantsComplex structure into QSym2’s native
MultiDeterminant structure.
§Arguments
baos- TheBasisAngularOrders for the basis set in which the Slater determinant is given, one for each explicit component per coefficient matrix.mol- The molecule with which the Slater determinant is associated.
§Returns
The A vector of MultiDeterminant structures, one for each multi-determinantal state
contained in the Python version.
§Errors
Errors if the MultiDeterminant structures fail to build.
Sourcepub fn to_qsym2_collection<'b, 'a: 'b, SC>(
&'b self,
baos: &[&'a BasisAngularOrder<'_>],
mol: &'a Molecule,
) -> Result<MultiDeterminants<'b, Complex<f64>, EagerBasis<SlaterDeterminant<'b, Complex<f64>, SC>>, SC>, Error>where
SC: StructureConstraint + Eq + Hash + Clone + Display + TryFrom<PyStructureConstraint, Error = Error>,
pub fn to_qsym2_collection<'b, 'a: 'b, SC>(
&'b self,
baos: &[&'a BasisAngularOrder<'_>],
mol: &'a Molecule,
) -> Result<MultiDeterminants<'b, Complex<f64>, EagerBasis<SlaterDeterminant<'b, Complex<f64>, SC>>, SC>, Error>where
SC: StructureConstraint + Eq + Hash + Clone + Display + TryFrom<PyStructureConstraint, Error = Error>,
Extracts the information in the PyMultiDeterminantsComplex structure into a QSym2’s
native MultiDeterminants structure.
§Arguments
baos- TheBasisAngularOrders for the basis set in which the Slater determinant is given, one for each explicit component per coefficient matrix.mol- The molecule with which the Slater determinant is associated.
§Returns
A MultiDeterminants structure.
§Errors
Errors if the MultiDeterminants structure fails to build.
Trait Implementations§
Source§impl Clone for PyMultiDeterminantsComplex
impl Clone for PyMultiDeterminantsComplex
Source§fn clone(&self) -> PyMultiDeterminantsComplex
fn clone(&self) -> PyMultiDeterminantsComplex
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<'de> Deserialize<'de> for PyMultiDeterminantsComplex
impl<'de> Deserialize<'de> for PyMultiDeterminantsComplex
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>,
Source§impl<'py> IntoPyObject<'py> for PyMultiDeterminantsComplex
impl<'py> IntoPyObject<'py> for PyMultiDeterminantsComplex
Source§type Target = PyMultiDeterminantsComplex
type Target = PyMultiDeterminantsComplex
Source§type Output = Bound<'py, <PyMultiDeterminantsComplex as IntoPyObject<'py>>::Target>
type Output = Bound<'py, <PyMultiDeterminantsComplex as IntoPyObject<'py>>::Target>
Source§fn into_pyobject(
self,
py: Python<'py>,
) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>
fn into_pyobject( self, py: Python<'py>, ) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>
Source§impl PyClass for PyMultiDeterminantsComplex
impl PyClass for PyMultiDeterminantsComplex
Source§impl PyClassImpl for PyMultiDeterminantsComplex
impl PyClassImpl for PyMultiDeterminantsComplex
Source§const IS_BASETYPE: bool = false
const IS_BASETYPE: bool = false
Source§const IS_SUBCLASS: bool = false
const IS_SUBCLASS: bool = false
Source§const IS_MAPPING: bool = false
const IS_MAPPING: bool = false
Source§const IS_SEQUENCE: bool = false
const IS_SEQUENCE: bool = false
Source§const IS_IMMUTABLE_TYPE: bool = false
const IS_IMMUTABLE_TYPE: bool = false
Source§const RAW_DOC: &'static CStr = c"Python-exposed structure to marshall complex multi-determinant information between Rust and\nPython.\x00"
const RAW_DOC: &'static CStr = c"Python-exposed structure to marshall complex multi-determinant information between Rust and\nPython.\x00"
Source§const DOC: &'static CStr
const DOC: &'static CStr
text_signature if a constructor is defined. Read moreSource§type ThreadChecker = SendablePyClass<PyMultiDeterminantsComplex>
type ThreadChecker = SendablePyClass<PyMultiDeterminantsComplex>
Source§type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
Source§type BaseNativeType = PyAny
type BaseNativeType = PyAny
PyAny by default, and when you declare
#[pyclass(extends=PyDict)], it’s PyDict.fn items_iter() -> PyClassItemsIter
fn lazy_type_object() -> &'static LazyTypeObject<Self>
fn dict_offset() -> Option<isize>
fn weaklist_offset() -> Option<isize>
Source§impl PyClassNewTextSignature for PyMultiDeterminantsComplex
impl PyClassNewTextSignature for PyMultiDeterminantsComplex
const TEXT_SIGNATURE: &'static str = "(basis, coefficients, energies, density_matrices, threshold)"
Source§impl PyMethods<PyMultiDeterminantsComplex> for PyClassImplCollector<PyMultiDeterminantsComplex>
impl PyMethods<PyMultiDeterminantsComplex> for PyClassImplCollector<PyMultiDeterminantsComplex>
fn py_methods(self) -> &'static PyClassItems
Source§impl PyTypeInfo for PyMultiDeterminantsComplex
impl PyTypeInfo for PyMultiDeterminantsComplex
Source§fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
§fn type_object(py: Python<'_>) -> Bound<'_, PyType>
fn type_object(py: Python<'_>) -> Bound<'_, PyType>
§fn is_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_type_of(object: &Bound<'_, PyAny>) -> bool
object is an instance of this type or a subclass of this type.§fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
object is an instance of this type.impl DerefToPyAny for PyMultiDeterminantsComplex
impl ExtractPyClassWithClone for PyMultiDeterminantsComplex
Auto Trait Implementations§
impl Freeze for PyMultiDeterminantsComplex
impl RefUnwindSafe for PyMultiDeterminantsComplex
impl Send for PyMultiDeterminantsComplex
impl Sync for PyMultiDeterminantsComplex
impl Unpin for PyMultiDeterminantsComplex
impl UnwindSafe for PyMultiDeterminantsComplex
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<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
§fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
self into an owned Python object, dropping type information.§fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
self into an owned Python object, dropping type information and unbinding it
from the 'py lifetime.§fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>
fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>
self into a Python object. 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<T> PyErrArguments for T
impl<T> PyErrArguments for T
§impl<T> PyTypeCheck for Twhere
T: PyTypeInfo,
impl<T> PyTypeCheck for Twhere
T: PyTypeInfo,
§const NAME: &'static str = T::NAME
const NAME: &'static str = T::NAME
§fn type_check(object: &Bound<'_, PyAny>) -> bool
fn type_check(object: &Bound<'_, PyAny>) -> bool
§fn classinfo_object(py: Python<'_>) -> Bound<'_, PyAny>
fn classinfo_object(py: Python<'_>) -> Bound<'_, PyAny>
isinstance and issubclass function. Read more§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.