pub struct SCF {Show 16 fields
pub mol: Molecule,
pub ovlp: MatrixUpper<f64>,
pub h_core: MatrixUpper<f64>,
pub ijkl: Option<ERIFold4<f64>>,
pub ri3fn: Option<RIFull<f64>>,
pub eigenvalues: [Vec<f64>; 2],
pub eigenvectors: [MatrixFull<f64>; 2],
pub density_matrix: Vec<MatrixFull<f64>>,
pub hamiltonian: [MatrixUpper<f64>; 2],
pub scftype: SCFType,
pub occupation: [Vec<f64>; 2],
pub homo: [usize; 2],
pub lumo: [usize; 2],
pub nuc_energy: f64,
pub scf_energy: f64,
pub grids: Option<Grids>,
}
Fields
mol: Molecule
ovlp: MatrixUpper<f64>
h_core: MatrixUpper<f64>
ijkl: Option<ERIFold4<f64>>
ri3fn: Option<RIFull<f64>>
eigenvalues: [Vec<f64>; 2]
eigenvectors: [MatrixFull<f64>; 2]
density_matrix: Vec<MatrixFull<f64>>
hamiltonian: [MatrixUpper<f64>; 2]
scftype: SCFType
occupation: [Vec<f64>; 2]
homo: [usize; 2]
lumo: [usize; 2]
nuc_energy: f64
scf_energy: f64
grids: Option<Grids>
Implementations
sourceimpl SCF
impl SCF
pub fn stability(&mut self) -> Result<(Vec<bool>, Vec<Vec<Vec<f64>>>), Error>
pub fn generate_h_rhf_slow(&mut self)
pub fn generate_g_hop(
&mut self,
external: bool
) -> Result<(Vec<f64>, Vec<f64>, Box<dyn FnMut(&Vec<f64>) -> Vec<f64> + '_>), Error>
pub fn response_fn_hf(
&mut self,
dm: &Vec<MatrixFull<f64>>,
external: bool
) -> Vec<MatrixFull<f64>>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,
A: Allocator,
pub fn response_vj_full_with_ri_v(
&mut self,
dm: &Vec<MatrixFull<f64>>,
scaling_factor: f64
) -> Vec<MatrixFull<f64>>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,
A: Allocator,
pub fn response_vj_upper_with_ri_v(
&mut self,
dm: &Vec<MatrixFull<f64>>,
scaling_factor: f64
) -> Vec<MatrixUpper<f64>>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,
A: Allocator,
pub fn response_vk_full_with_ri_v(
&mut self,
dm: &Vec<MatrixFull<f64>>,
scaling_factor: f64
) -> Vec<MatrixFull<f64>>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,
A: Allocator,
sourceimpl SCF
impl SCF
pub fn new(mol: &mut Molecule) -> SCF
pub fn build(mol: Molecule) -> SCF
pub fn generate_occupation(&mut self)
pub fn generate_occupation_integer(&mut self)
pub fn generate_density_matrix(&mut self)
pub fn generate_vj_with_erifold4(
&mut self,
scaling_factor: f64
) -> Vec<MatrixUpper<f64>>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,
A: Allocator,
pub fn generate_vj_with_erifold4_sync(
&mut self,
scaling_factor: f64
) -> Vec<MatrixUpper<f64>>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,
A: Allocator,
pub fn generate_vk_with_erifold4(
&mut self,
scaling_factor: f64
) -> Vec<MatrixFull<f64>>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,
A: Allocator,
pub fn generate_vk_with_erifold4_v02(
&mut self,
scaling_factor: f64
) -> Vec<MatrixUpper<f64>>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,
A: Allocator,
pub fn generate_vk_with_erifold4_sync(
&mut self,
scaling_factor: f64
) -> Vec<MatrixUpper<f64>>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,
A: Allocator,
pub fn generate_vk_with_erifold4_sync_v02(
&mut self,
scaling_factor: f64
) -> Vec<MatrixUpper<f64>>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,
A: Allocator,
pub fn generate_hf_hamiltonian_erifold4(&mut self)
pub fn generate_hf_hamiltonian_ri_v(&mut self)
pub fn generate_ks_hamiltonian_erifold4(&mut self) -> (f64, f64)
pub fn generate_ks_hamiltonian_ri_v(&mut self) -> (f64, f64)
pub fn generate_hf_hamiltonian(&mut self)
sourcepub fn par_energy_contraction(a: &MatrixUpper<f64>, b: &MatrixUpper<f64>) -> f64
pub fn par_energy_contraction(a: &MatrixUpper<f64>, b: &MatrixUpper<f64>) -> f64
about total energy contraction: E0 = 1/2*\sum_{i}\sum_{j}a_{ij}*b_{ij} einsum(‘ij,ij’)
pub fn evaluate_exact_exchange_ri_v(&mut self) -> f64
pub fn evaluate_xc_energy(&mut self, iop: usize) -> f64
pub fn diagonalize_hamiltonian(&mut self)
pub fn check_scf_convergence(
&mut self,
scftracerecode: &ScfTraceRecord
) -> [bool; 2]
pub fn formated_eigenvalues(&mut self, num_state_to_print: usize)
pub fn formated_eigenvectors(&self)
pub fn save_chkfile(&self)
pub fn generate_vj_with_ri_v(
&mut self,
scaling_factor: f64
) -> Vec<MatrixUpper<f64>>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,
A: Allocator,
pub fn generate_vj_with_ri_v_sync(
&mut self,
scaling_factor: f64
) -> Vec<MatrixUpper<f64>>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,
A: Allocator,
pub fn generate_vk_with_ri_v(
&mut self,
scaling_factor: f64
) -> Vec<MatrixUpper<f64>>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,
A: Allocator,
pub fn generate_vxc(
&mut self,
scaling_factor: f64
) -> (f64, Vec<MatrixUpper<f64>>)
pub fn generate_vxc_rayon(
&self,
scaling_factor: f64
) -> (f64, Vec<MatrixUpper<f64>>)
Auto Trait Implementations
impl RefUnwindSafe for SCF
impl Send for SCF
impl Sync for SCF
impl Unpin for SCF
impl UnwindSafe for SCF
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<T> Pointable for T
impl<T> Pointable for T
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>
The inverse inclusion map: attempts to construct
self
from the equivalent element of its
superset. Read morefn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
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
Use with care! Same as
self.to_subset
but without any property checks. Always succeeds.fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.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>
The inverse inclusion map: attempts to construct
self
from the equivalent element of its
superset. Read morefn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self
is actually part of its subset T
(and can be converted to it).unsafe fn to_subset_unchecked(&self) -> SS
unsafe fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset
but without any property checks. Always succeeds.fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.