Table of Contents
This is an old revision of the document!
CreateAtomicIndicesList
CreateAtomicIndicesList(orbs) takes a list of strings and tries to interpret each as an atomic orbital by checking the last characters. If these are either 's', 'p', 'd', 'f', 'g' or 'h' the string will be interpreted as a non-relativistic orbital with the corresponding l quantum number, separated into Up and Down states. If the string ends on “1/2”, “12”, “3/2”, “32”,…, “9/2” or “92” it will be interpreted as a relativistic orbital with the corresponding j quantum number.
The function then assigns quantum numbers to these states.
Input
-
orbs : A list of strings that can be interpreted as atomic orbitals.
Output
-
Ind : A list of lists of the indices corresponding to the orbitals given in orbs, in the same order.
-
NF: The number of fermionic states in the system.
Example
description text
Input
- Example.Quanty
orbitalsNonRel = {"H_1s","Fe_2s","Fe_2p","Fe_3s","Fe_3d"} orbitalsRel = {"H_1s12","Fe_2s12","Fe_3s12","Fe_2p12","Fe_2p32","Fe_3d32","Fe_3d52"} IndNonRel, NFNonRel = CreateAtomicIndicesList(orbitalsNonRel) IndRel, NFRel = CreateAtomicIndicesList(orbitalsRel) print("\nIndNonRel:") print(IndNonRel) print("\nNFNonRel:") print(NFNonRel) print("\nIndRel:") print(IndRel) print("\nNFRel:") print(NFRel)
Result
IndNonRel: { { 0 } , { 1 } , { 2 } , { 3 } , { 4 , 6 , 8 } , { 5 , 7 , 9 } , { 10 } , { 11 } , { 12 , 14 , 16 , 18 , 20 } , { 13 , 15 , 17 , 19 , 21 } } NFNonRel: 22 IndRel: { { 0 , 1 } , { 2 , 3 } , { 4 , 5 } , { 6 , 7 } , { 8 , 9 , 10 , 11 } , { 12 , 13 , 14 , 15 } , { 16 , 17 , 18 , 19 , 20 , 21 } } NFRel: 22