Skip to content

Incorrect eigenvalues when applying symmetry restriction in Structure before StructureMBPT #819

@mira42780534

Description

@mira42780534

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions