pub struct ScfTraceRecord {
    pub num_iter: usize,
    pub mixer: String,
    pub num_max_records: usize,
    pub mix_param: f64,
    pub start_diis_cycle: usize,
    pub scf_energy: f64,
    pub eigenvectors: [MatrixFull<f64>; 2],
    pub eigenvalues: [Vec<f64>; 2],
    pub density_matrix: [Vec<MatrixFull<f64>>; 2],
    pub target_vector: Vec<[MatrixFull<f64>; 2]>,
    pub error_vector: Vec<Vec<f64>>,
}

Fields

num_iter: usizemixer: Stringnum_max_records: usizemix_param: f64start_diis_cycle: usizescf_energy: f64eigenvectors: [MatrixFull<f64>; 2]eigenvalues: [Vec<f64>; 2]density_matrix: [Vec<MatrixFull<f64>>; 2]target_vector: Vec<[MatrixFull<f64>; 2]>error_vector: Vec<Vec<f64>>

Implementations

This subroutine updates:
scf_energy: from previous to the current value
scf_eigenvalues: from previous to the current value
scf_eigenvectors: from previous to the current value
scf_density_matrix: [pre, cur]
num_iter
This subroutine should be called after [scf.check_scf_convergence] and before [self.prepare_next_input]“

This subroutine prepares the fock matrix for the next step according different mixing algorithm

self.mixer =

  • “direct”: the output density matrix in the current step n0[out] will be used directly to generate the the input fock matrix of the next step
  • “linear”: the density matrix used in the next step n1[in] is a mix between the input density matrix in the current step n0[in] and n0[out]
    n1[in] = alpha*n0[out] + (1-alpha)*n0[in]
    = n0[in] + alpha * Rn0
    where alpha the mixing parameter obtained from self.mix_param and Rn0 = n0[out]-n0[in] is the density matrix change in the current step. n1[in] is then be used to generate the input fock matrix of the next step
  • “diis”: the input fock matrix of the next step f1[in] = sum_{i} c_i*f_i[in], where f_i[in] is the input fock matrix of the ith step and c_i is obtained by the diis altogirhm against the error vector of the commutator (f_i[out]*d_i[out]*s-s*d_i[out]*f_i[out]), where
    - f_i[out] is the ith output fock matrix,
    - d_i[out] is the ith output density matrix,
    - s is the overlap matrix
  • Ref: P. Pulay, Improved SCF Convergence Acceleration, JCC, 1982, 3:556-560.

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The alignment of pointer.
The type for initializers.
Initializes a with the given initializer. Read more
Dereferences the given pointer. Read more
Mutably dereferences the given pointer. Read more
Drops the object pointed to by the given pointer. Read more
Should always be Self
The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Checks if self is actually part of its subset T (and can be converted to it).
Use with care! Same as self.to_subset but without any property checks. Always succeeds.
The inclusion map: converts self to the equivalent element of its superset.
The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Checks if self is actually part of its subset T (and can be converted to it).
Use with care! Same as self.to_subset but without any property checks. Always succeeds.
The inclusion map: converts self to the equivalent element of its superset.
The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more