JuliaAtoms / AtomicLevels.jl

https://juliaatoms.org/AtomicLevels.jl
Other
12 stars 3 forks source link

Generating excited configurations from spin-configurations errors #39

Closed jagot closed 5 years ago

jagot commented 5 years ago

Spin-configurations have maximum occupancy 1 for all spin-orbitals, which complicates the generation of excited configurations beyond singles:

julia> gst = spin_configurations(Configuration(o"1s", 2, :open, false))[1]
1s₀α 1s₀β

julia> orbitals = reduce(vcat, spin_orbitals.(os"2[s-p]"))
8-element Array{SpinOrbital{Orbital{Int64}},1}:
 2s₀α
 2s₀β
 2p₋₁α
 2p₋₁β
 2p₀α
 2p₀β
 2p₁α
 2p₁β

julia> cs = excited_configurations(gst, orbitals...)
ERROR: ArgumentError: 2s₀α already maximally occupied in 2s₀α 1s₀β
Stacktrace:
 [1] replace(::Configuration{SpinOrbital{Orbital{Int64}}}, ::Pair{SpinOrbital{Orbital{Int64}},SpinOrbital{Orbital{Int64}}}) at /Users/jagot/.julia/dev/AtomicLevels/src/configurations.jl:564
 [2] single_excitations!(::getfield(AtomicLevels, Symbol("##97#98")), ::Array{Configuration,1}, ::Configuration{SpinOrbital{Orbital{Int64}}}, ::Array{SpinOrbital{Orbital{Int64}},1}, ::Array{Int64,1}, ::Array{Int64,1}, ::Int64) at /Users/jagot/.julia/dev/AtomicLevels/src/excited_configurations.jl:25
 [3] #excited_configurations#171(::Int64, ::Symbol, ::Array{Int64,1}, ::Array{Int64,1}, ::Bool, ::Function, ::Function, ::Configuration{SpinOrbital{Orbital{Int64}}}, ::SpinOrbital{Orbital{Int64}}, ::Vararg{SpinOrbital{Orbital{Int64}},N} where N) at /Users/jagot/.julia/dev/AtomicLevels/src/excited_configurations.jl:71
 [4] excited_configurations(::Function, ::Configuration{SpinOrbital{Orbital{Int64}}}, ::SpinOrbital{Orbital{Int64}}, ::Vararg{SpinOrbital{Orbital{Int64}},N} where N) at /Users/jagot/.julia/dev/AtomicLevels/src/excited_configurations.jl:41
 [5] #excited_configurations#96(::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::Function, ::Configuration{SpinOrbital{Orbital{Int64}}}, ::SpinOrbital{Orbital{Int64}}, ::Vararg{SpinOrbital{Orbital{Int64}},N} where N) at /Users/jagot/.julia/dev/AtomicLevels/src/excited_configurations.jl:82
 [6] excited_configurations(::Configuration{SpinOrbital{Orbital{Int64}}}, ::SpinOrbital{Orbital{Int64}}, ::SpinOrbital{Orbital{Int64}}, ::Vararg{SpinOrbital{Orbital{Int64}},N} where N) at /Users/jagot/.julia/dev/AtomicLevels/src/excited_configurations.jl:82
 [7] top-level scope at none:0