Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Last revisionBoth sides next revision
documentation:language_reference:functions:createatomicindicesdict [2018/06/21 15:15] – created Simon Heinzedocumentation:language_reference:functions:createatomicindicesdict [2018/11/05 15:25] – artificial orbitals Simon Heinze
Line 2: Line 2:
  
 ### ###
-alligned paragraph text+CreateAtomicIndicesDict(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. These can be accessed via the first return argument evaluated at the name of the orbital. The function furthermore creates an entry "all" for including all Indices, all names given in the optional argument groupings, and separate Up and Down entries for non-relativistic states. 
 + 
 +With the upcoming release it will also be possible to create artificial orbitals with an arbitrary multiplicity by using strings of the form "name_//m// a" as input, where //m// is the desired multiplicity. 
 + 
 +Compare //[[documentation:language_reference:functions:CreateAtomicIndicesList|CreateAtomicIndicesList()]]//.
 ### ###
  
 ===== Input ===== ===== Input =====
  
-  * bla Integer +  * //orbs// A list of strings that can be interpreted as atomic orbitals. 
-  * bla2 Real+  * //groupings// an optional list of orbital groupings each in the format {groupname, {orb1, orb2,...}}.
  
 ===== Output ===== ===== Output =====
  
-  * bla real+  * //Ind// A dictionary of lists of the indices corresponding to the orbitals given in //orbs//, as well as the groups. 
 +  * //NF//: The number of fermionic states in the system.
  
 ===== Example ===== ===== Example =====
  
 ### ###
-description text+A small Example:
 ### ###
  
 ==== Input ==== ==== Input ====
 <code Quanty Example.Quanty> <code Quanty Example.Quanty>
--- some example code+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"
 + 
 +groupingsNonRel = { {"H_states", {"H_1s"} }, {"Fe_states", {"Fe_2s","Fe_2p","Fe_3s","Fe_3d"}} } 
 + 
 +IndNonRel, NFNonRel = CreateAtomicIndicesDict(orbitalsNonRel,groupingsNonRel) 
 +IndRel, NFRel = CreateAtomicIndicesDict(orbitalsRel) 
 + 
 +print("\nIndNonRel:"
 +print(IndNonRel) 
 + 
 +print("\nNFNonRel:"
 +print(NFNonRel) 
 + 
 +print("\nIndRel:"
 +print(IndRel) 
 + 
 +print("\nNFRel:"
 +print(NFRel)
 </code> </code>
  
 ==== Result ==== ==== Result ====
 <file Quanty_Output> <file Quanty_Output>
-text produced as output+IndNonRel: 
 +{ All = { 0 , 1 , 2 , 3 , 4 , 6 , 8 , 5 , 7 , 9 , 10 , 11 , 12 , 14 , 16 , 18 , 20 , 13 , 15 , 17 , 19 , 21 } , 
 +  Fe_3s_Up = { 11 } , 
 +  Fe_2p = { 4 , 6 , 8 , 5 , 7 , 9 } , 
 +  Fe_2s_Dn = { 2 } , 
 +  Fe_3d_Dn = { 12 , 14 , 16 , 18 , 20 } , 
 +  Fe_3s = { 10 , 11 } , 
 +  Fe_3d = { 12 , 14 , 16 , 18 , 20 , 13 , 15 , 17 , 19 , 21 } , 
 +  Fe_2s = { 2 , 3 } , 
 +  Fe_2p_Dn = { 4 , 6 , 8 } , 
 +  H_states = { 0 , 1 } , 
 +  Fe_2p_Up = { 5 , 7 , 9 } , 
 +  H_1s = { 0 , 1 } , 
 +  Fe_states = { 2 , 3 , 4 , 6 , 8 , 5 , 7 , 9 , 10 , 11 , 12 , 14 , 16 , 18 , 20 , 13 , 15 , 17 , 19 , 21 } , 
 +  all = { 0 , 1 , 2 , 3 , 4 , 6 , 8 , 5 , 7 , 9 , 10 , 11 , 12 , 14 , 16 , 18 , 20 , 13 , 15 , 17 , 19 , 21 } , 
 +  H_1s_Up = { 1 } , 
 +  Fe_3s_Dn = { 10 } , 
 +  Fe_2s_Up = { 3 } , 
 +  H_1s_Dn = { 0 } , 
 +  Fe_3d_Up = { 13 , 15 , 17 , 19 , 21 } } 
 + 
 +NFNonRel: 
 +22 
 + 
 +IndRel: 
 +{ All = { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 , 19 , 20 , 21 } , 
 +  Fe_2s12 = { 2 , 3 } , 
 +  Fe_2p32 = { 8 , 9 , 10 , 11 } , 
 +  Fe_3s12 = { 4 , 5 } , 
 +  H_1s12 = { 0 , 1 } , 
 +  all = { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 , 19 , 20 , 21 } , 
 +  Fe_3d32 = { 12 , 13 , 14 , 15 } , 
 +  Fe_3d52 = { 16 , 17 , 18 , 19 , 20 , 21 } , 
 +  Fe_2p12 = { 6 , 7 } } 
 + 
 +NFRel: 
 +22 
 </file> </file>
  
Print/export