For a given operator ($H$) one can calculate the $N_{psi}$ lowest eigenstates with the function “Eigensystem()”. The function “Eigensystem()” uses iterative methods and needs as an input a starting point. This either can be a set of wavefunctions or a set of restrictions. If “Eigensystem()” is called with a set of starting functions the eigenstates found are those $N_{psi}$ with the lowest energy that have a nonzero matrix element of the operator $(H+1)^\infty$ with the starting state.
-- Eigenstates of the Lz operator -- starting from a wavefunction NF=6 NB=0 IndexDn={0,2,4} IndexUp={1,3,5} psip = NewWavefunction(NF, NB, {{"100000", math.sqrt(1/2)}, {"000010", math.sqrt(1/2)}}) OppLz = NewOperator("Lz", NF, IndexUp, IndexDn) Eigensystem(OppLz,psip)
You do not need to specify a set of starting functions, but can specify a set of starting restrictions. If you want to find the lowest 3 eigenstates with two electrons in the $p$ shell one can set restrictions such that all orbitals in the $p$ shell are included in the counting and the occupation should be minimal 2 and maximal 2.
-- Eigenstates of the Lz operator -- starting from a set of restrictions NF=6 NB=0 IndexDn={0,2,4} IndexUp={1,3,5} OppLz = NewOperator("Lz", NF, IndexUp, IndexDn) StartRestrictions = {NF, NB, {"111111",2,2}} Npsi = 3 psiList = Eigensystem(OppLz, StartRestrictions, Npsi)
alligned paragraph text
description text
-- some example code