pub struct ShellTupleBuilder<'a, const RANK: usize, T: Clone> { /* private fields */ }Expand description
Builder for ShellTuple.
Implementations§
Source§impl<'a, const RANK: usize, T: Clone + Clone> ShellTupleBuilder<'a, RANK, T>
impl<'a, const RANK: usize, T: Clone + Clone> ShellTupleBuilder<'a, RANK, T>
Sourcepub fn typ(&mut self, value: PhantomData<T>) -> &mut Self
pub fn typ(&mut self, value: PhantomData<T>) -> &mut Self
The data type of the overlap values from this shell tuple.
Sourcepub fn shells(
&mut self,
value: [(&'a BasisShellContraction<f64, f64>, bool); RANK],
) -> &mut Self
pub fn shells( &mut self, value: [(&'a BasisShellContraction<f64, f64>, bool); RANK], ) -> &mut Self
The non-integration shells in this shell tuple. Each shell has an associated boolean indicating if it is to be complex-conjugated in the integral evalulation.
Sourcepub fn angular_shell_shape(&mut self, value: [usize; RANK]) -> &mut Self
pub fn angular_shell_shape(&mut self, value: [usize; RANK]) -> &mut Self
A fixed-size array indicating the angular-shape of this shell tuple.
Each element in the array gives the number of angular functions of the corresponding shell.
Sourcepub fn primitive_shell_shape(&mut self, value: [usize; RANK]) -> &mut Self
pub fn primitive_shell_shape(&mut self, value: [usize; RANK]) -> &mut Self
A fixed-size array indicating the primitive-shape of this shell tuple.
Each element in the array gives the number of Gaussian primitives of the corresponding shell.
Sourcepub fn ks(&mut self, value: [Option<Vector3<f64>>; RANK]) -> &mut Self
pub fn ks(&mut self, value: [Option<Vector3<f64>>; RANK]) -> &mut Self
A fixed-size array containing the $\mathbf{k}$ vectors of the shells in this
shell tuple. Each $\mathbf{k}$ vector is appropriately signed to take into
account the complex conjugation pattern of the shell tuple.
Sourcepub fn k(&mut self, value: Vector3<f64>) -> &mut Self
pub fn k(&mut self, value: Vector3<f64>) -> &mut Self
The sum of all signed $\mathbf{k}$ vectors across all shells.
Sourcepub fn rs(&mut self, value: [&'a Point3<f64>; RANK]) -> &mut Self
pub fn rs(&mut self, value: [&'a Point3<f64>; RANK]) -> &mut Self
A fixed-size array containing the Cartesian origins of the shells in this shell tuple.
Sourcepub fn ns(&mut self, value: [usize; RANK]) -> &mut Self
pub fn ns(&mut self, value: [usize; RANK]) -> &mut Self
A fixed-size array containing the angular momentum orders of the shells in this shell tuple.
Sourcepub fn rl2carts(&mut self, value: [Option<Array2<f64>>; RANK]) -> &mut Self
pub fn rl2carts(&mut self, value: [Option<Array2<f64>>; RANK]) -> &mut Self
A fixed-size array containing conversion matrices to convert overlap values involving shells that have specified pure orders from internally computed Cartesian orders to the specified pure ones.
Sourcepub fn zs(&mut self, value: [Array1<&'a f64>; RANK]) -> &mut Self
pub fn zs(&mut self, value: [Array1<&'a f64>; RANK]) -> &mut Self
A fixed-size array of arrays of non-integration primitive exponents.
This quantity is $\zeta_g^{(k)}$ appearing in Equations 81 and 83 of Honda, M.,
Sato, K. & Obara, S. Formulation of molecular integrals over Gaussian functions
treatable by both the Laplace and Fourier transforms of spatial operators by
using derivative of Fourier-kernel multiplied Gaussians. The Journal of
Chemical Physics 94, 3790–3804 (1991),
DOI.
The i-th array in the vector is for the i-th shell. The j-th element in that array then gives the exponent of the j-th primitive exponent of that shell.
Sourcepub fn zg(&mut self, value: Array<f64, Dim<[usize; RANK]>>) -> &mut Self
pub fn zg(&mut self, value: Array<f64, Dim<[usize; RANK]>>) -> &mut Self
An array containing the sums of all possible combinations of non-integration primitive exponents across all shells.
This quantity is $\zeta_G^{(k)}$ defined in Equation 81 of Honda, M.,
Sato, K. & Obara, S. Formulation of molecular integrals over Gaussian functions
treatable by both the Laplace and Fourier transforms of spatial operators by
using derivative of Fourier-kernel multiplied Gaussians. The Journal of
Chemical Physics 94, 3790–3804 (1991),
DOI.
This is a RANK-dimensional array. The element zg[i, j, k, ...]
gives the sum of the i-th primitive exponent on the first shell, the j-th
primitive exponent on the second shell, the k-th primitive exponent on the
third shell, and so on.
Sourcepub fn zd(&mut self, value: Array<f64, Dim<[usize; RANK]>>) -> &mut Self
pub fn zd(&mut self, value: Array<f64, Dim<[usize; RANK]>>) -> &mut Self
An array containing the products of all possible combinations of non-integration primitive exponents across all shells.
This is a RANK-dimensional array. The element sd[i, j, k, ...]
gives the product of the i-th primitive exponent on the first shell, the j-th
primitive exponent on the second shell, the k-th primitive exponent on the
third shell, and so on.
Sourcepub fn ds(&mut self, value: [Array1<&'a f64>; RANK]) -> &mut Self
pub fn ds(&mut self, value: [Array1<&'a f64>; RANK]) -> &mut Self
A fixed-size array of arrays of contraction coefficients of non-integration primitives.
The i-th array in the vector is for the i-th shell. The j-th element in that array then gives the contraction coefficient of the j-th primitive exponent of that shell.
Sourcepub fn dd(&mut self, value: Array<f64, Dim<[usize; RANK]>>) -> &mut Self
pub fn dd(&mut self, value: Array<f64, Dim<[usize; RANK]>>) -> &mut Self
An array containing the product of all possible combinations of non-integration primitive coefficients across all shells.
This is a RANK-dimensional array. The element dd[i, j, k, ...] gives
the product of the i-th primitive’s coefficient on the first shell, the j-th
primitive’s coefficient on the second shell, the k-th primitive’s coefficient
on the third shell, and so on.
Sourcepub fn rg(&mut self, value: Array<Point3<f64>, Dim<[usize; RANK]>>) -> &mut Self
pub fn rg(&mut self, value: Array<Point3<f64>, Dim<[usize; RANK]>>) -> &mut Self
An array containing the exponent-weighted Cartesian centres of all possible combinations of primitives across all shells.
This is a RANK-dimensional array. The element rg[i, j, k, ...] gives
the exponent-weighted Cartesian centre of the i-th primitive on the first shell,
the j-th primitive on the second shell, the k-th primitive on the third shell,
and so on.
Sourcepub fn qs(
&mut self,
value: [Option<Array<Vector3<f64>, Dim<[usize; RANK]>>>; RANK],
) -> &mut Self
pub fn qs( &mut self, value: [Option<Array<Vector3<f64>, Dim<[usize; RANK]>>>; RANK], ) -> &mut Self
A fixed-size array of arrays giving the optional quantity $\mathbf{Q}_j$ for
the j-th shell.
This quantity is defined in Equation 122 of Honda, M., Sato, K. & Obara, S.
Formulation of molecular integrals over Gaussian functions treatable by both
the Laplace and Fourier transforms of spatial operators by using derivative of
Fourier-kernel multiplied Gaussians. The Journal of Chemical Physics 94,
3790–3804 (1991), DOI. Since there are no
integration exponents in the current implementation of ShellTuple, the
summation over $v$ in Equation 122 is not included. See also Equation 171 in
the reference.
The j-th array is for the j-th shell. Each array is a RANK-dimensional
array. The element qs[j][i, m, k, ...] gives the $\mathbf{Q}_j$ vector
defined using the i-th primitive exponent on the first shell, the m-th
primitive exponent on the second shell, the k-th primitive exponent on the
third shell, and so on. The exponent-combination dependence comes from the
$\mathbf{R}_G$ term.
If the j-th shell does not have a $\mathbf{k}_j$ plane-wave vector, then the
corresponding $\mathbf{Q}_j$ is set to None.
Sourcepub fn build(&self) -> Result<ShellTuple<'a, RANK, T>, ShellTupleBuilderError>
pub fn build(&self) -> Result<ShellTuple<'a, RANK, T>, ShellTupleBuilderError>
Trait Implementations§
Auto Trait Implementations§
impl<'a, const RANK: usize, T> Freeze for ShellTupleBuilder<'a, RANK, T>
impl<'a, const RANK: usize, T> RefUnwindSafe for ShellTupleBuilder<'a, RANK, T>where
T: RefUnwindSafe,
impl<'a, const RANK: usize, T> Send for ShellTupleBuilder<'a, RANK, T>where
T: Send,
impl<'a, const RANK: usize, T> Sync for ShellTupleBuilder<'a, RANK, T>where
T: Sync,
impl<'a, const RANK: usize, T> Unpin for ShellTupleBuilder<'a, RANK, T>where
T: Unpin,
impl<'a, const RANK: usize, T> UnwindSafe for ShellTupleBuilder<'a, RANK, T>where
T: UnwindSafe,
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.