JuliaAtoms / AtomicLevels.jl

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

Some term-related updates #35

Closed mortenpi closed 5 years ago

mortenpi commented 5 years ago

Still WIP. Will probably add some docs to the term types as well.

codecov[bot] commented 5 years ago

Codecov Report

Merging #35 into master will increase coverage by 1.16%. The diff coverage is 100%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master      #35      +/-   ##
==========================================
+ Coverage   89.19%   90.35%   +1.16%     
==========================================
  Files          15       15              
  Lines         731      736       +5     
==========================================
+ Hits          652      665      +13     
+ Misses         79       71       -8
Impacted Files Coverage Δ
src/configurations.jl 99.25% <ø> (ø) :arrow_up:
src/orbitals.jl 94.11% <ø> (+2.68%) :arrow_up:
src/common.jl 75% <100%> (+8.33%) :arrow_up:
src/jj_terms.jl 100% <100%> (ø) :arrow_up:
src/terms.jl 98.68% <100%> (+1.35%) :arrow_up:
src/csfs.jl 50.84% <0%> (+0.84%) :arrow_up:
src/excited_configurations.jl 100% <0%> (+5.55%) :arrow_up:
src/allchoices.jl 91.66% <0%> (+7.05%) :arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 54e7974...268979b. Read the comment docs.

mortenpi commented 5 years ago

I cleaned up my jj-term calculator and replaced the current implementation, since mine is quite a bit more performant (although it should have the same complexity). Here is an example:

Benchmarking for: Xf ^ 4 (j = 7/2)
julia> @btime _terms_jw(7/2, 4)
  15.920 μs (285 allocations: 21.42 KiB)
julia> @btime terms_reference(7/2, 4)
  3.121 ms (41658 allocations: 3.04 MiB)
mortenpi commented 5 years ago

Ok, this is good to go from my side. The docs for term symbols are not complete -- specifically, the generation terms from configurations etc. is completely undocumented right now.