Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lazy representation of lists of CSFs #47

Open
mortenpi opened this issue Aug 18, 2019 · 0 comments
Open

Lazy representation of lists of CSFs #47

mortenpi opened this issue Aug 18, 2019 · 0 comments

Comments

@mortenpi
Copy link
Member

Currently, when you have a list of CSFs (a CSL), we store them as a Vector of CSF objects. But there is actually a lot of repeating information there, so I think we could have sort of lazy and/or interned representations of CSLs. Might be handy when working with large CSLs.

  • The principal quantum number does not affect coupling trees (e.g. the coupling trees for 3s² 3p⁶ 3d⁴ and 3s² 4p⁶ 4d⁴ are identical).

  • CSFs with just different seniority numbers can be generated with just combinations:

    For example, the orbitals has two different ²D terms. Let's give them additional quantum numbers #1 and #2. So, for the configuration 3s² 3p⁶ 3d⁴ 4s you would have the following configurations with subshell terms:

    3s² 3p⁶ 3d⁴[²D; #1] 4s
    3s² 3p⁶ 3d³[²D; #2] 4s
    

    The LS coupling tree for both is identical though. So you could store it in memory once and just iterate over the seniority number.

    You would save even more if you have more of shells with seniority numbers:

    3s² 3p⁶ 3d⁴[²D; #1] 4s² 4p⁶ 4d⁴[²D; #1] 5s
    3s² 3p⁶ 3d⁴[²D; #1] 4s² 4p⁶ 4d⁴[²D; #2] 5s
    3s² 3p⁶ 3d⁴[²D; #2] 4s² 4p⁶ 4d⁴[²D; #1] 5s
    3s² 3p⁶ 3d⁴[²D; #2] 4s² 4p⁶ 4d⁴[²D; #2] 5s
    

    Again, coupling trees are all the same and you can just generate all by looping over all combinations of the seniority numbers.

  • CSFs have many coupling trees per configuration -- no reason to store a separate configuration object for each (although I think we already share the vectors in the Configuration object).

@mortenpi mortenpi changed the title Lazy generation of configurations and CSFs Lazy represenation of lists of CSFs Aug 18, 2019
@mortenpi mortenpi changed the title Lazy represenation of lists of CSFs Lazy representation of lists of CSFs Aug 18, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant