sc::HSOSSCF(3)

πŸ“¦
version 2.3.1 Β· 5 versions
, in ubuntu jammy

πŸ’… sc::HSOSSCF β€” MPQC manual page, bestie edition πŸ¦‹

okay so this is sc::HSOSSCF(3) from the MPQC manual, and it's literally the blueprint class for high-spin open-shell self-consistent field stuff. buckle up, we're going in πŸŽ€


✨ NAME ✨

sc::HSOSSCF β€” the base class for classes that implement a self-consistent procedure for high-spin open-shell molecules. it's giving founder energy, it's giving "my children are sc::HSOSHF and sc::HSOSKS" πŸ‘‘


🌸 SYNOPSIS 🌸

#include <hsosscf.h>

Inherits sc::SCF.

Inherited by sc::HSOSHF, and sc::HSOSKS.

🫢 Public Member Functions

  • HSOSSCF (StateIn &) β€” the state-restoring constructor, no notes attached.
  • HSOSSCF (const Ref< KeyVal > &) β€” the KeyVal constructor. all the juicy keyword deets live down in the constructor section πŸ’–
  • void save_data_state (StateOut &) β€” saves the base classes (with save_data_state) and the members, in the exact same order that the StateIn CTOR initializes them.
  • void print (std::ostream &o=ExEnv::out0()) const β€” prints info about the object, and defaults to ExEnv::out0() if you don't hand it a stream.
  • double occupation (int irrep, int vectornum) β€” returns the occupation.
  • double alpha_occupation (int irrep, int vectornum) β€” returns the alpha occupation.
  • double beta_occupation (int irrep, int vectornum) β€” returns the beta occupation.
  • int n_fock_matrices () const β€” how many Fock matrices we're working with, bestie.
  • RefSymmSCMatrix fock (int i) β€” returns the closed-shell (i==0) or open-shell (i==1) Fock matrix in AO basis (excluding the XC contribution in KS DFT).
  • RefSymmSCMatrix effective_fock () β€” returns the effective Fock matrix in MO basis (including the XC contribution for KS DFT).
  • void symmetry_changed () β€” call this if you changed the molecular symmetry of the molecule contained by this MolecularEnergy. respectfully, only call it when you mean it πŸ™ˆ
  • int spin_polarized () β€” returns 1 if the alpha density isn't equal to the beta density.
  • RefSymmSCMatrix density () β€” returns the SO density.
  • RefSymmSCMatrix alpha_density () β€” returns the alpha electron densities in the SO basis.
  • RefSymmSCMatrix beta_density () β€” returns the beta electron densities in the SO basis.

🧚 Protected Member Functions

these are the backstage crew, no cap:

  • void set_occupations (const RefDiagSCMatrix &evals)
  • void init_vector ()
  • void done_vector ()
  • void reset_density ()
  • double new_density ()
  • double scf_energy ()
  • Ref< SCExtrapData > extrap_data ()
  • void init_gradient ()
  • void done_gradient ()
  • RefSymmSCMatrix lagrangian ()
  • RefSymmSCMatrix gradient_density ()
  • void init_hessian ()
  • void done_hessian ()
  • void two_body_deriv_hf (double *grad, double exchange_fraction)

πŸ“ Protected Attributes

the whole squad of member variables, exactly as listed:

  • Ref< PointGroup > most_recent_pg_
  • int user_occupations_
  • int tndocc_
  • int tnsocc_
  • int nirrep_
  • int * initial_ndocc_
  • int * initial_nsocc_
  • int * ndocc_
  • int * nsocc_
  • ResultRefSymmSCMatrix cl_fock_
  • ResultRefSymmSCMatrix op_fock_
  • RefSymmSCMatrix cl_dens_
  • RefSymmSCMatrix cl_dens_diff_
  • RefSymmSCMatrix cl_gmat_
  • RefSymmSCMatrix op_dens_
  • RefSymmSCMatrix op_dens_diff_
  • RefSymmSCMatrix op_gmat_
  • RefSymmSCMatrix cl_hcore_

πŸ’œ Additional Inherited Members

yep, there's more where that came from β€” inherited members live up in the parent classes.


πŸ”₯ Detailed Description πŸ”₯

The HSOSSCF class is a base for classes implementing a self-consistent procedure for high-spin open-shell molecules. that's the whole vibe. it's the parent, the others are the nepo babies πŸ’…


πŸŽ€ Constructor & Destructor Documentation πŸŽ€

sc::HSOSSCF::HSOSSCF (const Ref< KeyVal > &)

The KeyVal constructor. here's every keyword it'll read, and honestly, read them carefully, bestie:

  • total_charge β€” this floating point number gives the total charge, $c$, of the molecule. the default is 0.
  • nsocc β€” this integer gives the total number of singly occupied orbitals, $n_thrm{socc}$. if this isn't given, then multiplicity will be read instead.
  • multiplicity β€” this integer gives the multiplicity, $m$, of the molecule. the number of singly occupied orbitals is then $n_thrm{socc} = m - 1$. if neither nsocc nor multiplicity is given, then β€” after taking total_charge into consideration β€” if the number of electrons is even, the default $n_thrm{socc}$ is 2. otherwise, it's 1.
  • ndocc β€” this integer gives the total number of doubly occupied orbitals, $n_thrm{docc}$. the default is $n_thrm{docc} = (c - n_thrm{socc})/2$.
  • socc β€” this vector of integers gives the total number of singly occupied orbitals of each irreducible representation. by default, the $n_thrm{socc}$ singly occupied orbitals get distributed according to orbital eigenvalues. if socc is given, then docc must be given, and together they override nsocc, multiplicity, ndocc, and total_charge. yes, they really do steamroll all four of them 😭
  • docc β€” this vector of integers gives the total number of doubly occupied orbitals of each irreducible representation. by default, the $n_thrm{docc}$ singly occupied orbitals get distributed according to orbital eigenvalues. if docc is given, then socc must be given, and they override nsocc, multiplicity, ndocc, and total_charge. same deal, they're a package, you cannot split them 🫢
  • maxiter β€” same meaning as in the parent class, SCF; however, the default value is 100.
  • level_shift β€” same meaning as in the parent class, SCF; however, the default value is 1.0.

🌈 Member Function Documentation 🌈

double sc::HSOSSCF::alpha_occupation (int irrep, int vectornum) [virtual]

Returns the alpha occupation. the irreducible representation and the vector number within that representation are given as arguments.

Reimplemented from sc::OneBodyWavefunction.

double sc::HSOSSCF::beta_occupation (int irrep, int vectornum) [virtual]

Returns the beta occupation. the irreducible representation and the vector number within that representation are given as arguments.

Reimplemented from sc::OneBodyWavefunction.

RefSymmSCMatrix sc::HSOSSCF::fock (int i) [virtual]

Returns closed-shell (i==0) or open-shell (i==1) Fock matrix in AO basis (excluding XC contribution in KS DFT). use effective_fock() if you want the full KS Fock matrix β€” do not come for this one expecting the whole package πŸ’€

Implements sc::SCF.

double sc::HSOSSCF::occupation (int irrep, int vectornum) [virtual]

Returns the occupation. the irreducible representation and the vector number within that representation are given as arguments.

Implements sc::OneBodyWavefunction.

void sc::HSOSSCF::save_data_state (StateOut &) [virtual]

Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR initializes them. this must be implemented by the derived class if the class has data β€” non-negotiable, the derived class has to do its part ✨

Reimplemented from sc::MolecularEnergy.

πŸ‘‘ Author πŸ‘‘

Generated automatically by Doxygen for MPQC from the source code. not a human, not a vibe, just Doxygen doing its thing πŸŽ€


and that's the page!! πŸ’– this was brought to you by MPQC Version 2.3.1, dated Sun Oct 4 2020 β€” go forth and be self-consistent, bestie, periodt πŸŒΈπŸ¦‹

πŸ“¦ where this page comes from