.TH "sc::MOIndexSpace" 3 "Sun Oct 4 2020" "Version 2.3.1" "MPQC" \" -*- nroff -*- .ad l .nh .SH NAME sc::MOIndexSpace \- Class \fBMOIndexSpace\fP describes a range of molecular orbitals or similar objects that are linear combinations of basis functions (e\&.g\&. .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBsc::SavableState\fP\&. .SS "Public Types" .in +1c .ti -1c .RI "enum \fBIndexOrder\fP { \fBsymmetry\fP = 0, \fBenergy\fP = 1, \fBundefined\fP = 2 }" .br .RI "Describes the ordering of indices\&. " .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBMOIndexSpace\fP (\fBStateIn\fP &)" .br .ti -1c .RI "\fBMOIndexSpace\fP (std::string \fBname\fP, const \fBRefSCMatrix\fP &full_coefs, const \fBRef\fP< \fBGaussianBasisSet\fP > \fBbasis\fP, const \fBRef\fP< \fBIntegral\fP > &\fBintegral\fP, const vector< int > &\fBoffsets\fP, const vector< int > &nmopi, \fBIndexOrder\fP \fBmoorder\fP=symmetry, const \fBRefDiagSCMatrix\fP &\fBevals\fP=0)" .br .RI "This function constructs an \fBMOIndexSpace\fP from (blocked) space full_coefs\&. " .ti -1c .RI "\fBMOIndexSpace\fP (std::string \fBname\fP, const \fBRefSCMatrix\fP &full_coefs, const \fBRef\fP< \fBGaussianBasisSet\fP > \fBbasis\fP, const \fBRef\fP< \fBIntegral\fP > &\fBintegral\fP, const \fBRefDiagSCMatrix\fP &\fBevals\fP, int nfzc, int nfzv, \fBIndexOrder\fP \fBmoorder\fP=energy)" .br .RI "This constructor should be used when the \fBMOIndexSpace\fP object is a subspace of a full orbital space\&. " .ti -1c .RI "\fBMOIndexSpace\fP (std::string \fBname\fP, const \fBRefSCMatrix\fP &full_coefs, const \fBRef\fP< \fBGaussianBasisSet\fP > \fBbasis\fP, const \fBRef\fP< \fBIntegral\fP > &\fBintegral\fP)" .br .RI "This constructor should be used when the \fBMOIndexSpace\fP object is the full orbital space\&. " .ti -1c .RI "\fBMOIndexSpace\fP (std::string \fBname\fP, const \fBRef\fP< \fBMOIndexSpace\fP > &orig_space, const \fBRefSCMatrix\fP &new_coefs, const \fBRef\fP< \fBGaussianBasisSet\fP > &new_basis)" .br .RI "This constructor is a true hack introduced because I have no idea how to construct what I need\&. " .ti -1c .RI "void \fBsave_data_state\fP (\fBStateOut\fP &)" .br .RI "Save the base classes (with save_data_state) and the members in the same order that the \fBStateIn\fP CTOR initializes them\&. " .ti -1c .RI "const std::string \fBname\fP () const" .br .RI "Returns the name of this \fBMOIndexSpace\fP\&. " .ti -1c .RI "const \fBRef\fP< \fBGaussianBasisSet\fP > \fBbasis\fP () const" .br .RI "Returns the AO basis set\&. " .ti -1c .RI "\fBRef\fP< \fBIntegral\fP > \fBintegral\fP () const" .br .RI "Returns the integral factory used to instantiate the coefficient matrix\&. " .ti -1c .RI "const \fBRefSCMatrix\fP \fBcoefs\fP () const" .br .RI "Returns the coefficient matrix\&. " .ti -1c .RI "const \fBRefDiagSCMatrix\fP \fBevals\fP () const" .br .RI "Returns the 'eigenvalues' matrix\&. " .ti -1c .RI "vector< int > \fBmosym\fP () const" .br .RI "Returns the orbital symmetry array\&. " .ti -1c .RI "\fBIndexOrder\fP \fBmoorder\fP () const" .br .RI "Returns the order of the orbitals\&. " .ti -1c .RI "int \fBrank\fP () const" .br .RI "Returns the rank of the space\&. " .ti -1c .RI "int \fBfull_rank\fP () const" .br .RI "Returns the rank of the full space\&. " .ti -1c .RI "int \fBnblocks\fP () const" .br .RI "Returns the number of blocks\&. " .ti -1c .RI "vector< int > \fBnmo\fP () const" .br .RI "Returns the number of orbitals in each block\&. " .ti -1c .RI "vector< int > \fBoffsets\fP () const" .br .RI "Returns the full-space index of the first orbital in each block\&. " .ti -1c .RI "int \fBto_full_space\fP (const int i) const" .br .RI "Returns the full-space index\&. " .ti -1c .RI "size_t \fBmemory_in_use\fP () const" .br .RI "Returns how much 'significant' (i\&.e\&. O^2) memory this object uses\&. " .ti -1c .RI "void \fBprint\fP (std::ostream &o=\fBExEnv::out0\fP()) const" .br .RI "Prints out this\&. " .ti -1c .RI "void \fBprint_summary\fP (std::ostream &os) const" .br .RI "Produces a short summary\&. " .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP Class \fBMOIndexSpace\fP describes a range of molecular orbitals or similar objects that are linear combinations of basis functions (e\&.g\&. atomic orbitals)\&. In general, such sets are subspaces of a full space of orbitals supported by the given basis\&. Orbitals can be symmetry-blocked, ordered by energy, etc\&. Examples of sets that can be described using \fBMOIndexSpace\fP are occupied MOs and virtual MOs\&. .SH "Constructor & Destructor Documentation" .PP .SS "sc::MOIndexSpace::MOIndexSpace (std::string name, const \fBRefSCMatrix\fP & full_coefs, const \fBRef\fP< \fBGaussianBasisSet\fP > basis, const \fBRef\fP< \fBIntegral\fP > & integral, const vector< int > & offsets, const vector< int > & nmopi, \fBIndexOrder\fP moorder = \fCsymmetry\fP, const \fBRefDiagSCMatrix\fP & evals = \fC0\fP)" .PP This function constructs an \fBMOIndexSpace\fP from (blocked) space full_coefs\&. Block i will contain vectors [ offsets[i], offsets[i]+nmopi[i]-1 ] \&. By default, the space maintains the same blocked structure and the same order within blocks as the original space (moorder=symmetry)\&. If moorder=energy and eigenvalues evals are provided, then all vectors will be put in one block and sorted according to ascending evals\&. .PP \fBParameters\fP .RS 4 \fIname\fP -- the name of this \fBMOIndexSpace\fP .br \fIfull_coefs\fP -- symmetry-blocked transformation coefficient matrix (AO by MO) for the full space .br \fIbasis\fP -- basis set .br \fIintegral\fP -- integral factory .br \fIoffsets\fP -- block offsets .br \fInmopi\fP -- new block sizes .br \fImoorder\fP -- specifies new ordering of vectors .br \fIevals\fP -- used to sort the vectors .RE .PP .SS "sc::MOIndexSpace::MOIndexSpace (std::string name, const \fBRefSCMatrix\fP & full_coefs, const \fBRef\fP< \fBGaussianBasisSet\fP > basis, const \fBRef\fP< \fBIntegral\fP > & integral, const \fBRefDiagSCMatrix\fP & evals, int nfzc, int nfzv, \fBIndexOrder\fP moorder = \fCenergy\fP)" .PP This constructor should be used when the \fBMOIndexSpace\fP object is a subspace of a full orbital space\&. Similarly to the previous constructor, it constructs an \fBMOIndexSpace\fP object using a symmetry-blocked transformation coefficient matrix (AO by MO) for the full space, basis set, 'eigenvalues' and the number of orbitals with lowest (nfzc) and highest (nfzv) eigenvalues to be dropped\&. The orbitals in the constructed space are ordered by energy\&. .SS "sc::MOIndexSpace::MOIndexSpace (std::string name, const \fBRefSCMatrix\fP & full_coefs, const \fBRef\fP< \fBGaussianBasisSet\fP > basis, const \fBRef\fP< \fBIntegral\fP > & integral)" .PP This constructor should be used when the \fBMOIndexSpace\fP object is the full orbital space\&. The orbitals will be symmetry-blocked\&. .SS "sc::MOIndexSpace::MOIndexSpace (std::string name, const \fBRef\fP< \fBMOIndexSpace\fP > & orig_space, const \fBRefSCMatrix\fP & new_coefs, const \fBRef\fP< \fBGaussianBasisSet\fP > & new_basis)" .PP This constructor is a true hack introduced because I have no idea how to construct what I need\&. It will copy orig_space but replace it's coefs with new_coefs, and its basis with new_basis\&. .SH "Member Function Documentation" .PP .SS "void sc::MOIndexSpace::save_data_state (\fBStateOut\fP &)\fC [virtual]\fP" .PP Save the base classes (with save_data_state) and the members in the same order that the \fBStateIn\fP CTOR initializes them\&. This must be implemented by the derived class if the class has data\&. .PP Reimplemented from \fBsc::SavableState\fP\&. .SH "Author" .PP Generated automatically by Doxygen for MPQC from the source code\&.