-
Notifications
You must be signed in to change notification settings - Fork 58
Description
When I was calculating certain atomic configurations, I found that there was a problem with the energy calculated by the program.
Below is some content from the energy output file ".en":
18195 -1 9.35197952E+03 0 6830 63 12 28 36 681 3p4 68[30]1 3p+2(4)4 68[30]+1(61)63
18196 -1 9.35197952E+03 0 6830 65 12 28 36 681 3p4 68[30]1 3p+2(4)4 68[30]+1(61)65
18197 -1 9.37442728E+03 0 6000 1 12 28 36 601 3p4 60s1 3p+2(0)0 60s+1(1)1
18198 -1 9.37445479E+03 1 6001 1 12 28 36 601 3p4 60p1 3p+2(0)0 60p-1(1)1
18199 -1 9.37454557E+03 1 6001 3 12 28 36 601 3p4 60p1 3p+2(0)0 60p+1(3)3
The energy of the atomic state with n=60 is higher than that of the state with n=68, which is clearly unreasonable. So I'm wondering whether this is due to the precision of the FAC program or an issue with my operation?
Here is the code:
from pfac import fac
a=229.0317614
fac.SetAtom('Th',90,a)
fac.Config('grd.0','12 28 3s2 3[p-]2 3[p+]3')
fac.Config('grd.0','12 28 3s2 3[p-]2 3[p+]2 3[d-]1')
fac.Config('grd.0','12 28 3s2 3[p-]2 3[p+]2 3[d+]1')
fac.ConfigEnergy(0)
fac.OptimizeRadial(['grd.0'])
fac.ConfigEnergy(1)
n_list1 = [4,10,20,30,40,50,60,69]
for i in range(len(n_list1)-1):
for i1 in range(n_list1[i],n_list1[i+1]):
if i1<31:
fac.Config('ex.1.%d'%i,'12 28 3s2 3[p-]2 3[p+]2 %d1'%i1)
else:
for i2 in range(31):
fac.Config('ex.1.%d'%i,'12 28 3s2 3[p-]2 3[p+]2 %d[%d]1'%(i1,i2))
fac.Config('ex.1.other','12 28 3s2 3[p-]2 3[p+]2 69s1')
fac.Config('ex.1.other','12 28 3s2 3[p-]2 3[p+]2 69[1]1')
fac.Config('ex.2.0','12 2*8 3s2 3[p-]2 3[p+]2 69[2-]1')
config_list1=['grd.0']+['ex.1.%d'%i for i in range(len(n_list1)-1)]+['ex.1.other']
fac.Structure('74+_69_2_b.en',['grd.0'])
for i in range(len(n_list1)-1):
fac.Structure('74+_69_2_b.en',['ex.1.%d'%i])
fac.Structure('74+_69_2_b.en',['ex.1.other'])
fac.Structure('74+_69_2_b.en',['ex.2.0'])
fac.TransitionTable('74+_69_2_b.tr',config_list1,['ex.2.0'],-2)
fac.TransitionTable('74+_69_2_b.tr',config_list1,['ex.2.0'],-1)
fac.MemENTable('74+_69_2_b.en')
fac.PrintTable('74+_69_2_b.en','74+_69_2_a.en',1)
fac.PrintTable('74+_69_2_b.tr','74+_69_2_a.tr',1)