Dear FAC developers,
I encountered an issue when applying a symmetry restriction with the Structure function before running StructureMBPT.
Description
When I run the calculation without symmetry restriction, the eigenvalues look reasonable. The ground state is 4s2 4p6, followed by the first excited levels from 4s2 4p5 4d1.
However, when I add the following line before StructureMBPT:
Structure(1, 2) # Restrict to parity = 1 and 2J = 2
the resulting eigenvalues become incorrect. In particular, the lowest level in the restricted calculation is assigned to a double-excited configuration, such as 4s1 4p5 4d2, instead of the expected 4s2 4p5 4d1 levels.
Since the unrestricted calculation shows that the lowest p=1, 2J=2 levels should come from 4s2 4p5 4d1, this result seems unphysical.
Input
from pfac.fac import *
import os
import sys
InitializeMPI(32)
z = 50
k = 36
a = ATOMICSYMBOL[z]
SetAtom(a)
SetUTA(0)
Closed("1s 2s 2p 3s 3p 3d")
Config('4s2 4p6', group='4s2 4p6')
Config('4s2 4p5 4d1', group='4s2 4p5 4d1')
Config('4s2 4p5 4f1', group='4s2 4p5 4f1')
Config('4s1 4p6 4d1', group='4s1 4p6 4d1')
Config('4s1 4p6 4f1', group='4s1 4p6 4f1')
Config('4s2 4p5 5s1', group='4s2 4p5 5s1')
Config('4s2 4p5 5p1', group='4s2 4p5 5p1')
Config('4s2 4p5 5d1', group='4s2 4p5 5d1')
Config('4s2 4p5 5f1', group='4s2 4p5 5f1')
Config('4s2 4p4 4d2', group='4s2 4p4 4d2')
Config('4s2 4p4 4d1 4f1', group='4s2 4p4 4d1 4f1')
Config('4s2 4p4 4f2', group='4s2 4p4 4f2')
Config('4s1 4p5 4d2', group='4s1 4p5 4d2')
Config('4s1 4p5 4d1 4f1', group='4s1 4p5 4d1 4f1')
Config('4s1 4p5 4f2', group='4s1 4p5 4f2')
Config('4s2 4p3 4d3', group='4s2 4p3 4d3')
Config('4s2 4p3 4d2 4f1', group='4s2 4p3 4d2 4f1')
Config('4s2 4p3 4d1 4f2', group='4s2 4p3 4d1 4f2')
Config('4s2 4p3 4f3', group='4s2 4p3 4f3')
Config('4s1 4p4 4d2 4f1', group='4s1 4p4 4d2 4f1')
Config('4s1 4p4 4d1 4f2', group='4s1 4p4 4d1 4f2')
Config('4s2 4p5', group='4s2 4p5')
conf_list = ['4s2 4p6', '4s2 4p5 4d1', '4s2 4p5 4f1', '4s1 4p6 4d1', '4s1 4p6 4f1',
'4s2 4p5 5s1', '4s2 4p5 5p1', '4s2 4p5 5d1', '4s2 4p5 5f1',
'4s2 4p4 4d2', '4s2 4p4 4d1 4f1', '4s2 4p4 4f2', '4s1 4p5 4d2', '4s1 4p5 4d1 4f1', '4s1 4p5 4f2',
'4s2 4p3 4d3', '4s2 4p3 4d2 4f1', '4s2 4p3 4d1 4f2', '4s2 4p3 4f3', '4s1 4p4 4d2 4f1', '4s1 4p4 4d1 4f2',
'4s2 4p5']
ConfigEnergy(0)
OptimizeRadial(['4s2 4p6', '4s2 4p5 4d1', '4s2 4p5 4f1'])
ConfigEnergy(1)
k = 3
n1 = [4,5,6,7,8,9,10,11,12,13,14]
n2 = [4,5,6,7,8,9,10,11,12,13,14]
Structure(1, 2) # Restriction. When this is applied, incorrect eigenvalues show up.
StructureMBPT('b.en', [f'p={parity}_j={twoj}_corr.h', f'p={parity}_j={twoj}_ham.h'], conf_list, k, n1, n2, len(conf_list))
MemENTable('b.en')
PrintTable('b.en', 'a.en', 1)
BasisTable('basis.ba')
FinalizeMPI()
Result without Structure(1, 2)
Without the symmetry restriction, the low-lying levels are reasonable. The ground state is 4s2 4p6, followed by the 4s2 4p5 4d1 levels:
0 -1 0.00000000E+00 0 401 0 2*8.3*18.4*8 4p6 4p+4(0)0
1 -1 6.57549814E+01 1 402 0 2*8.3*18.4*8 4p5.4d1 4p+3(3)3.4d-1(3)0
2 -1 6.68450753E+01 1 402 2 2*8.3*18.4*8 4p5.4d1 4p+3(3)3.4d-1(3)2
3 -1 6.90317620E+01 1 402 4 2*8.3*18.4*8 4p5.4d1 4p+3(3)3.4d+1(5)4
4 -1 6.94110966E+01 1 402 6 2*8.3*18.4*8 4p5.4d1 4p+3(3)3.4d-1(3)6
5 -1 6.96099847E+01 1 402 8 2*8.3*18.4*8 4p5.4d1 4p+3(3)3.4d+1(5)8
6 -1 7.07110002E+01 1 402 4 2*8.3*18.4*8 4p5.4d1 4p+3(3)3.4d-1(3)4
7 -1 7.32997962E+01 1 402 6 2*8.3*18.4*8 4p5.4d1 4p+3(3)3.4d+1(5)6
8 -1 7.63803586E+01 1 402 2 2*8.3*18.4*8 4p5.4d1 4p-1(1)1.4d-1(3)2
9 -1 7.84152172E+01 1 402 4 2*8.3*18.4*8 4p5.4d1 4p-1(1)1.4d-1(3)4
10 -1 8.04353727E+01 1 402 4 2*8.3*18.4*8 4p5.4d1 4p-1(1)1.4d+1(5)4
11 -1 8.15771932E+01 1 402 6 2*8.3*18.4*8 4p5.4d1 4p-1(1)1.4d+1(5)6
12 -1 9.31765709E+01 1 402 2 2*8.3*18.4*8 4p5.4d1 4p-1(1)1.4d-1(3)2
For the restricted symmetry p = 1, 2J = 2, there should be three low-lying 4s2 4p5 4d1 levels in this range.
Result with Structure(1, 2)
When I apply the symmetry restriction with:
Structure(1, 2) # Restrict to parity = 1 and 2J = 2
the output becomes:
0 -1 0.00000000E+00 1 402 2 4*8 4s1.4p5.4d2 4s+1(1)1.4p+3(3)2.4d-2(0)2
1 -1 8.43007616E+02 1 403 2 4*8 4p3.4d1.4f2 4p-1(1)1.4p+2(4)5.4d-1(3)8.4f-2(8)2
2 -1 1.14399949E+03 1 403 2 4*8 4s1.4p4.4d2.4f1 4s+1(1)1.4p+2(0)1.4d-2(4)5.4f-1(5)2
3 -1 1.26671804E+03 1 402 2 4*8 4s1.4p5.4d2 4s+1(1)1.4p+3(3)4.4d-1(3)3.4d+1(5)2
4 -1 1.27681341E+03 1 402 2 4*8 4s1.4p5.4d2 4s+1(1)1.4p+3(3)4.4d-1(3)5.4d+1(5)2
5 -1 1.28419032E+03 1 402 2 4*8 4s1.4p5.4d2 4s+1(1)1.4p-1(1)2.4d-2(0)2
6 -1 1.28419032E+03 1 402 2 4*8 4s1.4p5.4d2 4s+1(1)1.4p+3(3)2.4d-1(3)3.4d+1(5)2
7 -1 1.29142720E+03 1 402 2 4*8 4s1.4p5.4d2 4s+1(1)1.4p+3(3)2.4d-1(3)3.4d+1(5)2
8 -1 1.29594797E+03 1 402 2 4*8 4s1.4p5.4d2 4s+1(1)1.4p+3(3)2.4d-1(3)3.4d+1(5)2
9 -1 1.31065626E+03 1 402 2 4*8 4p3.4d3 4p+3(3)3.4d-3(3)2
10 -1 1.31275712E+03 1 403 2 4*8 4p4.4d1.4f1 4p+2(4)4.4d-1(3)5.4f+1(7)2
11 -1 1.34246533E+03 1 402 2 4*8 4p3.4d3 4p-1(1)1.4p+2(4)5.4d-3(3)2
12 -1 1.34246533E+03 1 402 2 4*8 4p3.4d3 4p+3(3)3.4d-3(3)2
Here, the lowest level is assigned to 4s1 4p5 4d2, which is a double-excited configuration. The expected low-lying 4s2 4p5 4d1 levels do not appear until much later, around levels 27 to 29.
Expected behavior
Applying Structure(1, 2) should restrict the calculation to levels with p = 1 and 2J = 2, but it should not change the physical ordering of the eigenvalues. Therefore, the lowest restricted levels should still correspond to the 4s2 4p5 4d1 levels with p = 1, 2J = 2, consistent with the unrestricted calculation.
Actual behavior
After applying Structure(1, 2), highly excited configurations appear as the lowest levels, and the expected 4s2 4p5 4d1 levels are shifted to much higher level indices. This seems to indicate that the symmetry restriction may not be correctly applied, or that the eigenvalues/eigenvectors are mismatched after the restriction. Could you please check whether Structure(1, 2) is compatible with the subsequent StructureMBPT calculation in this way?
Thank you very much.
Dear FAC developers,
I encountered an issue when applying a symmetry restriction with the
Structurefunction before runningStructureMBPT.Description
When I run the calculation without symmetry restriction, the eigenvalues look reasonable. The ground state is
4s2 4p6, followed by the first excited levels from4s2 4p5 4d1.However, when I add the following line before
StructureMBPT:the resulting eigenvalues become incorrect. In particular, the lowest level in the restricted calculation is assigned to a double-excited configuration, such as 4s1 4p5 4d2, instead of the expected 4s2 4p5 4d1 levels.
Since the unrestricted calculation shows that the lowest p=1, 2J=2 levels should come from 4s2 4p5 4d1, this result seems unphysical.
Input
Result without Structure(1, 2)
Without the symmetry restriction, the low-lying levels are reasonable. The ground state is 4s2 4p6, followed by the 4s2 4p5 4d1 levels:
For the restricted symmetry p = 1, 2J = 2, there should be three low-lying 4s2 4p5 4d1 levels in this range.
Result with Structure(1, 2)
When I apply the symmetry restriction with:
the output becomes:
Here, the lowest level is assigned to 4s1 4p5 4d2, which is a double-excited configuration. The expected low-lying 4s2 4p5 4d1 levels do not appear until much later, around levels 27 to 29.
Expected behavior
Applying Structure(1, 2) should restrict the calculation to levels with p = 1 and 2J = 2, but it should not change the physical ordering of the eigenvalues. Therefore, the lowest restricted levels should still correspond to the 4s2 4p5 4d1 levels with p = 1, 2J = 2, consistent with the unrestricted calculation.
Actual behavior
After applying Structure(1, 2), highly excited configurations appear as the lowest levels, and the expected 4s2 4p5 4d1 levels are shifted to much higher level indices. This seems to indicate that the symmetry restriction may not be correctly applied, or that the eigenvalues/eigenvectors are mismatched after the restriction. Could you please check whether Structure(1, 2) is compatible with the subsequent StructureMBPT calculation in this way?
Thank you very much.