pub struct QuantumCalculator { /* private fields */ }Expand description
Quantum calculator for quantum chemistry calculations
Implementations§
Source§impl QuantumCalculator
impl QuantumCalculator
pub fn new() -> Self
pub fn initialize(&mut self) -> Result<(), ChemistryError>
pub fn validate_molecule( &self, molecule: &Molecule, ) -> Result<(), ChemistryError>
Sourcepub fn calculate_properties(
&mut self,
molecule: &Molecule,
method: QuantumMethodType,
) -> Result<QuantumProperties, ChemistryError>
pub fn calculate_properties( &mut self, molecule: &Molecule, method: QuantumMethodType, ) -> Result<QuantumProperties, ChemistryError>
Compute the ground-state electronic-structure observables by running a real RHF/STO-3G calculation: total SCF energy, HOMO/LUMO orbital energies and gap, Mulliken charges, and the dipole moment.
The energy falls out of a genuine self-consistent field over analytical
one- and two-electron integrals (kinetic, nuclear attraction, overlap,
four-index ERI) — nothing is hardcoded. Atomic coordinates are taken to
be in bohr (atomic units); the returned energies are in Hartree.
Scope of this deterministic path: closed-shell (even electron count)
molecules built from H and He, for which STO-3G is a single s-type shell
per atom with exact closed-form s integrals. Anything outside that scope
(heavier elements needing p/d shells, open-shell/odd-electron systems, or a
requested method other than Hartree-Fock) returns an honest NotImplemented
rather than a fabricated number.
Auto Trait Implementations§
impl Freeze for QuantumCalculator
impl RefUnwindSafe for QuantumCalculator
impl Send for QuantumCalculator
impl Sync for QuantumCalculator
impl Unpin for QuantumCalculator
impl UnsafeUnpin for QuantumCalculator
impl UnwindSafe for QuantumCalculator
Blanket Implementations§
§impl<S, A> Aggregate<Result<S, Error>> for Awhere
A: Aggregate<S>,
impl<S, A> Aggregate<Result<S, Error>> for Awhere
A: Aggregate<S>,
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
§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