nucleardatapy 0.2.0__py3-none-any.whl → 0.2.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. nucleardatapy/crust/setup_crust.py +46 -1
  2. nucleardatapy/data/crust/2018-PCPFDDG-BSK22.dat +83 -0
  3. nucleardatapy/data/crust/2018-PCPFDDG-BSK24.dat +74 -0
  4. nucleardatapy/data/crust/2018-PCPFDDG-BSK25.dat +130 -0
  5. nucleardatapy/data/crust/2018-PCPFDDG-BSK26.dat +81 -0
  6. nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-Av18-effmass-SM.dat +11 -0
  7. nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-Av18-effmass-beta0.2.dat +11 -0
  8. nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-Av18-effmass-beta0.4.dat +11 -0
  9. nucleardatapy/data/nuclei/masses/Theory/2023-BSkG3.txt +0 -4
  10. nucleardatapy/data/nuclei/masses/Theory/2025-BSkG4.txt +0 -1
  11. nucleardatapy/eos/setup_am.py +43 -31
  12. nucleardatapy/eos/setup_am_Beq.py +18 -12
  13. nucleardatapy/eos/setup_am_Leq.py +53 -47
  14. nucleardatapy/fig/__init__.py +15 -2
  15. nucleardatapy/fig/crust_setupCrust_fig.py +3 -3
  16. nucleardatapy/fig/eos_setupAMBeq_fig.py +866 -49
  17. nucleardatapy/fig/eos_setupAMLeq_fig.py +185 -53
  18. nucleardatapy/fig/eos_setupAM_e_asy_lep_fig.py +125 -0
  19. nucleardatapy/fig/eos_setupAM_e_asy_nuc_fig.py +115 -0
  20. nucleardatapy/fig/eos_setupAM_e_asy_tot_fig.py +117 -0
  21. nucleardatapy/fig/eos_setupAM_e_fig.py +173 -0
  22. nucleardatapy/fig/hnuc_setupRE1LExp_fig.py +1 -1
  23. nucleardatapy/fig/matter_ENM_fig.py +50 -41
  24. nucleardatapy/fig/matter_ESM_fig.py +60 -39
  25. nucleardatapy/fig/matter_Esym_fig.py +48 -36
  26. nucleardatapy/fig/matter_cs2_fig.py +83 -0
  27. nucleardatapy/fig/matter_preNM_fig.py +146 -0
  28. nucleardatapy/fig/matter_preSM_fig.py +144 -0
  29. nucleardatapy/fig/matter_setupFFGNuc_fig.py +2 -1
  30. nucleardatapy/fig/matter_setupMicroEsym_fig.py +50 -19
  31. nucleardatapy/fig/matter_setupMicro_band_fig.py +1 -0
  32. nucleardatapy/fig/matter_setupMicro_effmass_fig.py +59 -4
  33. nucleardatapy/fig/matter_setupMicro_fig.py +81 -79
  34. nucleardatapy/fig/matter_setupPhenoEsym_fig.py +28 -26
  35. nucleardatapy/fig/matter_setupPheno_fig.py +34 -24
  36. nucleardatapy/fig/nuc_setupBEExp_chart_fig.py +275 -0
  37. nucleardatapy/fig/nuc_setupBEExp_fig.py +225 -70
  38. nucleardatapy/fig/nuc_setupBETheo_fig.py +316 -0
  39. nucleardatapy/fig/nuc_setupISGMRExp_fig.py +59 -0
  40. nucleardatapy/fig/nuc_setupRchExp_fig.py +139 -0
  41. nucleardatapy/fig/nuc_setupRchTheo_fig.py +142 -0
  42. nucleardatapy/fig/nuc_setupRnpExp_fig.py +120 -0
  43. nucleardatapy/fig/nuc_setupRnpTheo_fig.py +134 -0
  44. nucleardatapy/hnuc/__init__.py +3 -3
  45. nucleardatapy/matter/__init__.py +1 -0
  46. nucleardatapy/matter/setup_check.py +97 -0
  47. nucleardatapy/matter/setup_ffg.py +15 -8
  48. nucleardatapy/matter/setup_micro.py +144 -79
  49. nucleardatapy/matter/setup_micro_band.py +6 -1
  50. nucleardatapy/matter/setup_micro_effmass.py +55 -2
  51. nucleardatapy/matter/setup_micro_esym.py +37 -30
  52. nucleardatapy/matter/setup_micro_gap.py +3 -3
  53. nucleardatapy/matter/setup_micro_lp.py +18 -17
  54. nucleardatapy/matter/setup_pheno.py +2 -2
  55. nucleardatapy/matter/setup_pheno_esym.py +13 -13
  56. nucleardatapy/nuc/__init__.py +2 -2
  57. nucleardatapy/nuc/setup_be_exp.py +90 -90
  58. nucleardatapy/nuc/setup_be_theo.py +112 -100
  59. nucleardatapy/nuc/setup_rch_exp.py +49 -6
  60. nucleardatapy/nuc/setup_rch_theo.py +72 -3
  61. nucleardatapy/nuc/{setup_nskin_exp.py → setup_rnp_exp.py} +58 -65
  62. nucleardatapy/nuc/{setup_nskin_theo.py → setup_rnp_theo.py} +34 -39
  63. nucleardatapy-0.2.1.dist-info/METADATA +521 -0
  64. {nucleardatapy-0.2.0.dist-info → nucleardatapy-0.2.1.dist-info}/RECORD +86 -65
  65. {nucleardatapy-0.2.0.dist-info → nucleardatapy-0.2.1.dist-info}/WHEEL +1 -1
  66. nucleardatapy/fig/eos_setupAM_fig.py +0 -81
  67. nucleardatapy-0.2.0.dist-info/METADATA +0 -115
  68. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-E2A-AM.dat → 2006-BHF-Av18-E2A-AM.dat} +0 -0
  69. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-E2A-NM.dat → 2006-BHF-Av18-E2A-NM.dat} +0 -0
  70. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-E2A-SM.dat → 2006-BHF-Av18-E2A-SM.dat} +0 -0
  71. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-Esym2-SM.dat → 2006-BHF-Av18-Esym2-SM.dat} +0 -0
  72. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-GAP-NM-FreeSpectrum.dat → 2006-BHF-Av18-GAP-NM-FreeSpectrum.dat} +0 -0
  73. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-GAP-NM-SelfEnergy.dat → 2006-BHF-Av18-GAP-NM-SelfEnergy.dat} +0 -0
  74. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-GAP-SM-FreeSpectrum.dat → 2006-BHF-Av18-GAP-SM-FreeSpectrum.dat} +0 -0
  75. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-GAP-SM-SelfEnergy.dat → 2006-BHF-Av18-GAP-SM-SelfEnergy.dat} +0 -0
  76. /nucleardatapy/data/matter/micro/{2020-MBPT-NM-DHSL59.dat → 2019-MBPT-NM-DHSL59.dat} +0 -0
  77. /nucleardatapy/data/matter/micro/{2020-MBPT-NM-DHSL69.dat → 2019-MBPT-NM-DHSL69.dat} +0 -0
  78. /nucleardatapy/data/matter/micro/{2020-MBPT-SM-DHSL59.dat → 2019-MBPT-SM-DHSL59.dat} +0 -0
  79. /nucleardatapy/data/matter/micro/{2020-MBPT-SM-DHSL69.dat → 2019-MBPT-SM-DHSL69.dat} +0 -0
  80. /nucleardatapy/data/matter/micro/{2023-MBPT-NM.csv → 2020-MBPT-NM.csv} +0 -0
  81. /nucleardatapy/data/matter/micro/{2023-MBPT-SM.csv → 2020-MBPT-SM.csv} +0 -0
  82. /nucleardatapy/data/nuclei/{nskin → rnp}/208Pb.dat +0 -0
  83. /nucleardatapy/data/nuclei/{nskin → rnp}/48Ca.dat +0 -0
  84. /nucleardatapy/hnuc/{setup_be1L_exp.py → setup_re1L_exp.py} +0 -0
  85. /nucleardatapy/hnuc/{setup_be1Xi_exp.py → setup_re1Xi_exp.py} +0 -0
  86. /nucleardatapy/hnuc/{setup_be2L_exp.py → setup_re2L_exp.py} +0 -0
  87. {nucleardatapy-0.2.0.dist-info → nucleardatapy-0.2.1.dist-info/licenses}/LICENSE +0 -0
  88. {nucleardatapy-0.2.0.dist-info → nucleardatapy-0.2.1.dist-info}/top_level.txt +0 -0
@@ -141,18 +141,18 @@ class setupBEExp():
141
141
  #
142
142
  tables, tables_lower = be_exp_tables()
143
143
  if table.lower() not in tables_lower:
144
- print('Table ',table,' is not in the list of tables.')
145
- print('list of tables:',tables)
146
- print('-- Exit the code --')
144
+ print('setup_be_exp.py: Table ',table,' is not in the list of tables.')
145
+ print('setup_be_exp.py: list of tables:',tables)
146
+ print('setup_be_exp.py: -- Exit the code --')
147
147
  exit()
148
148
  self.table = table
149
149
  if nuda.env.verb: print("table:",table)
150
150
  #
151
151
  versions, versions_lower = be_exp_versions( table = table )
152
152
  if version.lower() not in versions_lower:
153
- print('Version ',version,' is not in the list of versions.')
154
- print('list of versions:',versions)
155
- print('-- Exit the code --')
153
+ print('setup_be_exp.py: Version ',version,' is not in the list of versions.')
154
+ print('setup_be_exp.py: list of versions:',versions)
155
+ print('setup_be_exp.py: -- Exit the code --')
156
156
  exit()
157
157
  self.version = version
158
158
  if nuda.env.verb: print("version:",version)
@@ -478,15 +478,15 @@ class setupBEExp():
478
478
  if nuda.env.verb: print("Enter select()")
479
479
  #
480
480
  if interp.lower() not in [ 'y', 'n' ]:
481
- print('Interp ',interp,' is not "y" or "n".')
482
- print('-- Exit the code --')
481
+ print('setup_be_exp.py: Interp ',interp,' is not "y" or "n".')
482
+ print('setup_be_exp.py: -- Exit the code --')
483
483
  exit()
484
484
  self.nucInterp = interp
485
485
  if nuda.env.verb: print("interp:",interp)
486
486
  #
487
487
  if state.lower() not in [ 'gs' ]:
488
- print('State ',state,' is not "gs".')
489
- print('-- Exit the code --')
488
+ print('setup_be_exp.py: State ',state,' is not "gs".')
489
+ print('setup_be_exp.py: -- Exit the code --')
490
490
  exit()
491
491
  self.state = state
492
492
  if nuda.env.verb: print("state:",state)
@@ -494,8 +494,8 @@ class setupBEExp():
494
494
  nuclei = [ 'stable', 'unstable', 'longlive', 'shortlive', 'veryshortlive' ]
495
495
  #
496
496
  if nucleus.lower() not in nuclei:
497
- print('Nucleus ',nucleus,' is not in the list: ',nuclei)
498
- print('-- Exit the code --')
497
+ print('setup_be_exp.py: Nucleus ',nucleus,' is not in the list: ',nuclei)
498
+ print('setup_be_exp.py: -- Exit the code --')
499
499
  exit()
500
500
  self.nucleus = nucleus
501
501
  if nuda.env.verb: print("nucleus:",nucleus)
@@ -600,11 +600,11 @@ class setupBEExp():
600
600
  if nuda.env.verb: print("Enter drip()")
601
601
  #
602
602
  if Zmin > Zmax:
603
- print('In isotopes attribute function of setup_be_exp.py:')
604
- print('Bad definition of Zmin and Zmax')
605
- print('It is expected that Zmin<=Zmax')
606
- print('Zmin,Zmax:',Zmin,Zmax)
607
- print('exit')
603
+ print('setup_be_exp.py: In isotopes attribute function of setup_be_exp.py:')
604
+ print('setup_be_exp.py: Bad definition of Zmin and Zmax')
605
+ print('setup_be_exp.py: It is expected that Zmin<=Zmax')
606
+ print('setup_be_exp.py: Zmin,Zmax:',Zmin,Zmax)
607
+ print('setup_be_exp.py: exit')
608
608
  exit()
609
609
  #
610
610
  Nstable, Zstable = stable_fit( Zmin = Zmin, Zmax = Zmax )
@@ -662,24 +662,24 @@ class setupBEExp():
662
662
  **Attributes:**
663
663
  """
664
664
  #
665
- if self.year is None:
666
- print('There is no year in the experimental mass table')
667
- print('Table:',self.table)
668
- print('Version:',self.version)
669
- print('Exit()')
665
+ if self.nucYear is None:
666
+ print('setup_be_exp.py: There is no year in the experimental mass table')
667
+ print('setup_be_exp.py: Table:',self.table)
668
+ print('setup_be_exp.py: Version:',self.version)
669
+ print('setup_be_exp.py: Exit()')
670
670
  exit()
671
671
  if year_min > int(self.version) or year_max < yearMin:
672
- print('year_min or year_max is not well defined')
673
- print('year_min:',year_min,' >? ',int(self.version))
674
- print('year_max:',year_max,' <? ',yearMin)
675
- print('-- Exit the code --')
672
+ print('setup_be_exp.py: year_min or year_max is not well defined')
673
+ print('setup_be_exp.py: year_min:',year_min,' >? ',int(self.version))
674
+ print('setup_be_exp.py: year_max:',year_max,' <? ',yearMin)
675
+ print('setup_be_exp.py: -- Exit the code --')
676
676
  exit()
677
677
  self.year_min = year_min
678
678
  self.year_max = year_max
679
679
  #
680
680
  if state.lower() not in [ 'gs' ]:
681
- print('State ',state,' is not "gs".')
682
- print('-- Exit the code --')
681
+ print('setup_be_exp.py: State ',state,' is not "gs".')
682
+ print('setup_be_exp.py: -- Exit the code --')
683
683
  exit()
684
684
  self.state = state
685
685
  #
@@ -722,7 +722,7 @@ class setupBEExp():
722
722
  #print('discovery year:',nucYear)
723
723
  nbNucTot = nbNucTot + 1
724
724
  # skip nucleus if interpolated data
725
- if flagInterp == 'y':
725
+ if nucInterp == 'y':
726
726
  continue
727
727
  # skip nuclei not in GS
728
728
  if state == 'gs' and nucI != 0:
@@ -734,12 +734,12 @@ class setupBEExp():
734
734
  if nucZ > self.sel_Zmax: self.sel_Zmax = nucZ
735
735
  self.sel_N.append( nucN )
736
736
  self.sel_symb.append( nucSymb )
737
- self.sel_I.append( flagI )
738
- self.sel_Interp.append( flagInterp )
737
+ self.sel_I.append( nucI )
738
+ self.sel_Interp.append( nucInterp )
739
739
  self.sel_HT.append( nucHT )
740
740
  self.sel_year.append( nucYear )
741
741
  self.sel_BE.append( nucBE )
742
- self.sel_BE_err.append( nucBE_err )
742
+ self.sel_BE_err.append( nucdBE )
743
743
  self.sel_nbNucTot = nbNucTot
744
744
  self.sel_nbNucSta = nbNucSta
745
745
  self.sel_nbNucSel = nbNucSel
@@ -760,11 +760,11 @@ class setupBEExp():
760
760
  if nuda.env.verb: print("Enter S2n()")
761
761
  #
762
762
  if Zmin > Zmax:
763
- print('In S2n attribute function of setup_be_exp.py:')
764
- print('Bad definition of Zmin and Zmax')
765
- print('It is expected that Zmin<=Zmax')
766
- print('Zmin,Zmax:',Zmin,Zmax)
767
- print('exit')
763
+ print('setup_be_exp.py: In S2n attribute function of setup_be_exp.py:')
764
+ print('setup_be_exp.py: Bad definition of Zmin and Zmax')
765
+ print('setup_be_exp.py: It is expected that Zmin<=Zmax')
766
+ print('setup_be_exp.py: Zmin,Zmax:',Zmin,Zmax)
767
+ print('setup_be_exp.py: exit')
768
768
  exit()
769
769
  #
770
770
  S2n_Z = []
@@ -820,11 +820,11 @@ class setupBEExp():
820
820
  if nuda.env.verb: print("Enter S2p()")
821
821
  #
822
822
  if Nmin > Nmax:
823
- print('In S2p attribute function of setup_be_exp.py:')
824
- print('Bad definition of Nmin and Nmax')
825
- print('It is expected that Nmin<=Nmax')
826
- print('Nmin,Nmax:',Nmin,Nmax)
827
- print('exit')
823
+ print('setup_be_exp.py: In S2p attribute function of setup_be_exp.py:')
824
+ print('setup_be_exp.py: Bad definition of Nmin and Nmax')
825
+ print('setup_be_exp.py: It is expected that Nmin<=Nmax')
826
+ print('setup_be_exp.py: Nmin,Nmax:',Nmin,Nmax)
827
+ print('setup_be_exp.py: exit')
828
828
  exit()
829
829
  #
830
830
  S2p_Z = []
@@ -871,7 +871,7 @@ class setupBEExp():
871
871
  #
872
872
  return self
873
873
  #
874
- def D3p_n( self, Zmin = 1, Zmax = 95 ):
874
+ def D3n( self, Zmin = 1, Zmax = 95 ):
875
875
  """
876
876
  Compute the three-points odd-even mass staggering (D3p_n)
877
877
  D_3p^N = (-)**N * ( 2*E(Z,N)-E(Z,N+1)-E(Z,N-1) ) / 2
@@ -880,19 +880,19 @@ class setupBEExp():
880
880
  if nuda.env.verb: print("Enter D3p_n()")
881
881
  #
882
882
  if Zmin > Zmax:
883
- print('In D3p_n attribute function of setup_be_exp.py:')
884
- print('Bad definition of Zmin and Zmax')
885
- print('It is expected that Zmin<=Zmax')
886
- print('Zmin,Zmax:',Zmin,Zmax)
887
- print('exit')
883
+ print('setup_be_exp.py: In D3p_n attribute function of setup_be_exp.py:')
884
+ print('setup_be_exp.py: Bad definition of Zmin and Zmax')
885
+ print('setup_be_exp.py: It is expected that Zmin<=Zmax')
886
+ print('setup_be_exp.py: Zmin,Zmax:',Zmin,Zmax)
887
+ print('setup_be_exp.py: exit')
888
888
  exit()
889
889
  #
890
- D3p_n_Z_even = []
891
- D3p_n_Z_odd = []
892
- D3p_n_N_even = []
893
- D3p_n_N_odd = []
894
- D3p_n_even = []
895
- D3p_n_odd = []
890
+ D3n_Z_even = []
891
+ D3n_Z_odd = []
892
+ D3n_N_even = []
893
+ D3n_N_odd = []
894
+ D3n_even = []
895
+ D3n_odd = []
896
896
  #
897
897
  for ind,Z in enumerate(self.nucZ):
898
898
  #
@@ -929,26 +929,26 @@ class setupBEExp():
929
929
  break
930
930
  if flag_find1*flag_find2 == 1:
931
931
  if sign > 0: #even
932
- D3p_n_Z_even.append( self.nucZ[ind] )
933
- D3p_n_N_even.append( self.nucN[ind] )
934
- D3p_n_even.append( sign/2.0*( -2*self.nucBE[ind] + self.nucBE[ind1] + self.nucBE[ind2] ) )
932
+ D3n_Z_even.append( self.nucZ[ind] )
933
+ D3n_N_even.append( self.nucN[ind] )
934
+ D3n_even.append( sign/2.0*( -2*self.nucBE[ind] + self.nucBE[ind1] + self.nucBE[ind2] ) )
935
935
  else:
936
- D3p_n_Z_odd.append( self.nucZ[ind] )
937
- D3p_n_N_odd.append( self.nucN[ind] )
938
- D3p_n_odd.append( sign/2.0*( -2*self.nucBE[ind] + self.nucBE[ind1] + self.nucBE[ind2] ) )
939
- self.D3p_n_N_even = np.array( D3p_n_N_even, dtype = int )
940
- self.D3p_n_N_odd = np.array( D3p_n_N_odd, dtype = int )
941
- self.D3p_n_Z_even = np.array( D3p_n_Z_even, dtype = int )
942
- self.D3p_n_Z_odd = np.array( D3p_n_Z_odd, dtype = int )
943
- self.D3p_n_even = np.array( D3p_n_even, dtype = float )
944
- self.D3p_n_odd = np.array( D3p_n_odd, dtype = float )
936
+ D3n_Z_odd.append( self.nucZ[ind] )
937
+ D3n_N_odd.append( self.nucN[ind] )
938
+ D3n_odd.append( sign/2.0*( -2*self.nucBE[ind] + self.nucBE[ind1] + self.nucBE[ind2] ) )
939
+ self.D3n_N_even = np.array( D3n_N_even, dtype = int )
940
+ self.D3n_N_odd = np.array( D3n_N_odd, dtype = int )
941
+ self.D3n_Z_even = np.array( D3n_Z_even, dtype = int )
942
+ self.D3n_Z_odd = np.array( D3n_Z_odd, dtype = int )
943
+ self.D3n_even = np.array( D3n_even, dtype = float )
944
+ self.D3n_odd = np.array( D3n_odd, dtype = float )
945
945
  #
946
946
  if nuda.env.verb: print("Exit D3p_n()")
947
947
  #
948
948
  return self
949
949
  #
950
950
  #
951
- def D3p_p( self, Nmin = 1, Nmax = 95 ):
951
+ def D3p( self, Nmin = 1, Nmax = 95 ):
952
952
  """
953
953
  Compute the three-points odd-even mass staggering (D3p_p)
954
954
  D_3p^P = (-)**Z * ( 2*E(Z,N)-E(Z+1,N)-E(Z-1,N) ) / 2
@@ -957,19 +957,19 @@ class setupBEExp():
957
957
  if nuda.env.verb: print("Enter D3p_p()")
958
958
  #
959
959
  if Nmin > Nmax:
960
- print('In D3p_p attribute function of setup_be_exp.py:')
961
- print('Bad definition of Nmin and Nmax')
962
- print('It is expected that Nmin<=Nmax')
963
- print('Nmin,Nmax:',Nmin,Nmax)
964
- print('exit')
960
+ print('setup_be_exp.py: In D3p_p attribute function of setup_be_exp.py:')
961
+ print('setup_be_exp.py: Bad definition of Nmin and Nmax')
962
+ print('setup_be_exp.py: It is expected that Nmin<=Nmax')
963
+ print('setup_be_exp.py: Nmin,Nmax:',Nmin,Nmax)
964
+ print('setup_be_exp.py: exit')
965
965
  exit()
966
966
  #
967
- D3p_p_Z_even = []
968
- D3p_p_Z_odd = []
969
- D3p_p_N_even = []
970
- D3p_p_N_odd = []
971
- D3p_p_even = []
972
- D3p_p_odd = []
967
+ D3p_Z_even = []
968
+ D3p_Z_odd = []
969
+ D3p_N_even = []
970
+ D3p_N_odd = []
971
+ D3p_even = []
972
+ D3p_odd = []
973
973
  #
974
974
  for ind,N in enumerate(self.nucN):
975
975
  #
@@ -1006,19 +1006,19 @@ class setupBEExp():
1006
1006
  break
1007
1007
  if flag_find1*flag_find2 == 1:
1008
1008
  if sign > 0: #even
1009
- D3p_p_Z_even.append( self.nucZ[ind] )
1010
- D3p_p_N_even.append( self.nucN[ind] )
1011
- D3p_p_even.append( sign/2.0*( -2*self.nucBE[ind] + self.nucBE[ind1] + self.nucBE[ind2] ) )
1009
+ D3p_Z_even.append( self.nucZ[ind] )
1010
+ D3p_N_even.append( self.nucN[ind] )
1011
+ D3p_even.append( sign/2.0*( -2*self.nucBE[ind] + self.nucBE[ind1] + self.nucBE[ind2] ) )
1012
1012
  else:
1013
- D3p_p_Z_odd.append( self.nucZ[ind] )
1014
- D3p_p_N_odd.append( self.nucN[ind] )
1015
- D3p_p_odd.append( sign/2.0*( -2*self.nucBE[ind] + self.nucBE[ind1] + self.nucBE[ind2] ) )
1016
- self.D3p_p_N_even = np.array( D3p_p_N_even, dtype = int )
1017
- self.D3p_p_N_odd = np.array( D3p_p_N_odd, dtype = int )
1018
- self.D3p_p_Z_even = np.array( D3p_p_Z_even, dtype = int )
1019
- self.D3p_p_Z_odd = np.array( D3p_p_Z_odd, dtype = int )
1020
- self.D3p_p_even = np.array( D3p_p_even, dtype = float )
1021
- self.D3p_p_odd = np.array( D3p_p_odd, dtype = float )
1013
+ D3p_Z_odd.append( self.nucZ[ind] )
1014
+ D3p_N_odd.append( self.nucN[ind] )
1015
+ D3p_odd.append( sign/2.0*( -2*self.nucBE[ind] + self.nucBE[ind1] + self.nucBE[ind2] ) )
1016
+ self.D3p_N_even = np.array( D3p_N_even, dtype = int )
1017
+ self.D3p_N_odd = np.array( D3p_N_odd, dtype = int )
1018
+ self.D3p_Z_even = np.array( D3p_Z_even, dtype = int )
1019
+ self.D3p_Z_odd = np.array( D3p_Z_odd, dtype = int )
1020
+ self.D3p_even = np.array( D3p_even, dtype = float )
1021
+ self.D3p_odd = np.array( D3p_odd, dtype = float )
1022
1022
  #
1023
1023
  if nuda.env.verb: print("Exit D3p_p()")
1024
1024
  #
@@ -3,11 +3,18 @@ import sys
3
3
  import math
4
4
  import numpy as np # 1.15.0
5
5
 
6
- #nucleardatapy_tk = os.getenv('NUCLEARDATAPY_TK')
7
- #sys.path.insert(0, nucleardatapy_tk)
8
-
9
6
  import nucleardatapy as nuda
10
7
 
8
+ def delta_emp( A, Z, formula ):
9
+ if formula == 'classic':
10
+ return 12.0 / A**0.5
11
+ elif formula == 'Vogel':
12
+ return ( 7.2 - 44.0 * ( 1.0 - 2.0 * Z / A )**2 ) / A**0.3333
13
+ else:
14
+ print('setup_be_theo: formula is badly defined ',formula)
15
+ print('setup_be_theo: exit')
16
+ exit()
17
+
11
18
  def be_theo_tables():
12
19
  """
13
20
  Return a list of the tables available in this toolkit for the masses
@@ -70,9 +77,9 @@ class setupBETheo():
70
77
  #
71
78
  tables, tables_lower = be_theo_tables()
72
79
  if table.lower() not in tables_lower:
73
- print('Table ',table,' is not in the list of tables.')
74
- print('list of tables:',tables)
75
- print('-- Exit the code --')
80
+ print('setup_be_theo: Table ',table,' is not in the list of tables.')
81
+ print('setup_be_theo: list of tables:',tables)
82
+ print('setup_be_theo: -- Exit the code --')
76
83
  exit()
77
84
  self.table = table
78
85
  if nuda.env.verb: print("table:",table)
@@ -469,11 +476,16 @@ class setupBETheo():
469
476
  self.ref = 'G. Grams, W. Ryssens, N. Shchechilin, A. Sanchez-Fernandez, N. Chamel, and S. Goriely, EPJA 61, 35 (2025).'
470
477
  self.note = "write here notes about this EOS."
471
478
  self.label = 'BSkG4-2024'
472
- self.nucZr, self.nucNr, self.nucBE2A = np.loadtxt( file_in, usecols=(0,1,2), unpack = True )
479
+ #self.nucZr, self.nucNr, self.nucBE2A = np.loadtxt( file_in, usecols=(0,1,2), unpack = True )
480
+ self.nucZr, self.nucNr, self.nucMass, self.Ebind, self.beta20, self.beta22, self.beta2, \
481
+ self.beta30, self.beta32, self.Erot, self.gap_n, self.gap_p, self.moi = \
482
+ np.loadtxt( file_in, usecols=(0,1,3,5,6,7,8,9,10,11,12,13,17), unpack = True )
473
483
  self.nucZ = np.array( [ int(ele) for ele in self.nucZr ] )
474
484
  self.nucN = np.array( [ int(ele) for ele in self.nucNr ] )
475
485
  self.nucA = self.nucZ + self.nucN
476
- self.nucBE = self.nucBE2A * self.nucA
486
+ #self.nucBE = self.nucBE2A * self.nucA
487
+ self.nucBE = conversionMBE(self.nucMass,self.nucN,self.nucZ)
488
+ self.nucBE2A = self.nucBE / self.nucA
477
489
  self.Zmax = int( max( self.nucZ ) )
478
490
  #
479
491
  #
@@ -508,11 +520,11 @@ class setupBETheo():
508
520
  if nuda.env.verb: print("Enter S2n()")
509
521
  #
510
522
  if Zmin > Zmax:
511
- print('In S2n attribute function of setup_be_theo.py:')
512
- print('Bad definition of Zmin and Zmax')
513
- print('It is expected that Zmin<=Zmax')
514
- print('Zmin,Zmax:',Zmin,Zmax)
515
- print('exit')
523
+ print('setup_be_theo: In S2n attribute function of setup_be_theo.py:')
524
+ print('setup_be_theo: Bad definition of Zmin and Zmax')
525
+ print('setup_be_theo: It is expected that Zmin<=Zmax')
526
+ print('setup_be_theo: Zmin,Zmax:',Zmin,Zmax)
527
+ print('setup_be_theo: exit')
516
528
  exit()
517
529
  #
518
530
  S2n_Z = []
@@ -563,11 +575,11 @@ class setupBETheo():
563
575
  if nuda.env.verb: print("Enter S2p()")
564
576
  #
565
577
  if Nmin > Nmax:
566
- print('In S2p attribute function of setup_be_exp.py:')
567
- print('Bad definition of Nmin and Nmax')
568
- print('It is expected that Nmin<=Nmax')
569
- print('Nmin,Nmax:',Nmin,Nmax)
570
- print('exit')
578
+ print('setup_be_theo: In S2p attribute function of setup_be_exp.py:')
579
+ print('setup_be_theo: Bad definition of Nmin and Nmax')
580
+ print('setup_be_theo: It is expected that Nmin<=Nmax')
581
+ print('setup_be_theo: Nmin,Nmax:',Nmin,Nmax)
582
+ print('setup_be_theo: exit')
571
583
  exit()
572
584
  #
573
585
  S2p_Z = []
@@ -625,17 +637,17 @@ class setupBETheo():
625
637
  if nuda.env.verb: print("Enter drip_S2n()")
626
638
  #
627
639
  if Zmin > Zmax:
628
- print('In drip_S2n attribute function of setup_be_theo.py:')
629
- print('Bad definition of Zmin and Zmax')
630
- print('It is expected that Zmin<=Zmax')
631
- print('Zmin,Zmax:',Zmin,Zmax)
632
- print('exit')
640
+ print('setup_be_theo: In drip_S2n attribute function of setup_be_theo.py:')
641
+ print('setup_be_theo: Bad definition of Zmin and Zmax')
642
+ print('setup_be_theo: It is expected that Zmin<=Zmax')
643
+ print('setup_be_theo: Zmin,Zmax:',Zmin,Zmax)
644
+ print('setup_be_theo: exit')
633
645
  exit()
634
646
  #
635
647
  if not any(self.S2n_Z):
636
- print('In drip_S2n attribute function of setup_be_theo.py:')
637
- print('Should compute first S2n')
638
- print('exit')
648
+ print('setup_be_theo: In drip_S2n attribute function of setup_be_theo.py:')
649
+ print('setup_be_theo: Should compute first S2n')
650
+ print('setup_be_theo: exit')
639
651
  exit()
640
652
  #
641
653
  #Nstable, Zstable = stable_fit( Zmin = Zmin, Zmax = Zmax )
@@ -679,17 +691,17 @@ class setupBETheo():
679
691
  if nuda.env.verb: print("Enter drip_S2p()")
680
692
  #
681
693
  if Nmin > Nmax:
682
- print('In drip_S2p attribute function of setup_be_theo.py:')
683
- print('Bad definition of Nmin and Nmax')
684
- print('It is expected that Nmin<=Nmax')
685
- print('Nmin,Nmax:',Nmin,Nmax)
686
- print('exit')
694
+ print('setup_be_theo: In drip_S2p attribute function of setup_be_theo.py:')
695
+ print('setup_be_theo: Bad definition of Nmin and Nmax')
696
+ print('setup_be_theo: It is expected that Nmin<=Nmax')
697
+ print('setup_be_theo: Nmin,Nmax:',Nmin,Nmax)
698
+ print('setup_be_theo: exit')
687
699
  exit()
688
700
  #
689
701
  if not any(self.S2p_N):
690
- print('In drip_S2p attribute function of setup_be_theo.py:')
691
- print('Should compute first S2p')
692
- print('exit')
702
+ print('setup_be_theo: In drip_S2p attribute function of setup_be_theo.py:')
703
+ print('setup_be_theo: Should compute first S2p')
704
+ print('setup_be_theo: exit')
693
705
  exit()
694
706
  #
695
707
  self.drip_S2p_Z = []
@@ -715,28 +727,28 @@ class setupBETheo():
715
727
  return self
716
728
  #
717
729
  #
718
- def D3p_n( self, Zmin = 1, Zmax = 95 ):
730
+ def D3n( self, Zmin = 1, Zmax = 95 ):
719
731
  """
720
- Compute the three-points odd-even mass staggering (D3p_n)
721
- D3p^N = (-)**N * ( 2*E(Z,N)-E(Z,N+1)-E(Z,N-1) ) / 2
732
+ Compute the three-points odd-even mass staggering (D3n)
733
+ D3N = (-)**N * ( 2*E(Z,N)-E(Z,N+1)-E(Z,N-1) ) / 2
722
734
  """
723
735
  #
724
- if nuda.env.verb: print("Enter D3p_n()")
736
+ if nuda.env.verb: print("Enter D3n()")
725
737
  #
726
738
  if Zmin > Zmax:
727
- print('In D3p_n attribute function of setup_be_exp.py:')
728
- print('Bad definition of Zmin and Zmax')
729
- print('It is expected that Zmin<=Zmax')
730
- print('Zmin,Zmax:',Zmin,Zmax)
731
- print('exit')
739
+ print('setup_be_theo: In D3n attribute function of setup_be_exp.py:')
740
+ print('setup_be_theo: Bad definition of Zmin and Zmax')
741
+ print('setup_be_theo: It is expected that Zmin<=Zmax')
742
+ print('setup_be_theo: Zmin,Zmax:',Zmin,Zmax)
743
+ print('setup_be_theo: exit')
732
744
  exit()
733
745
  #
734
- D3p_n_Z_even = []
735
- D3p_n_Z_odd = []
736
- D3p_n_N_even = []
737
- D3p_n_N_odd = []
738
- D3p_n_even = []
739
- D3p_n_odd = []
746
+ D3n_Z_even = []
747
+ D3n_Z_odd = []
748
+ D3n_N_even = []
749
+ D3n_N_odd = []
750
+ D3n_even = []
751
+ D3n_odd = []
740
752
  #
741
753
  for ind,Z in enumerate(self.nucZ):
742
754
  #
@@ -768,46 +780,46 @@ class setupBETheo():
768
780
  break
769
781
  if flag_find1*flag_find2 == 1:
770
782
  if sign > 0: #even
771
- D3p_n_Z_even.append( self.nucZ[ind] )
772
- D3p_n_N_even.append( self.nucN[ind] )
773
- D3p_n_even.append( sign/2.0*( -2*self.nucBE[ind] + self.nucBE[ind1] + self.nucBE[ind2] ) )
783
+ D3n_Z_even.append( self.nucZ[ind] )
784
+ D3n_N_even.append( self.nucN[ind] )
785
+ D3n_even.append( sign/2.0*( -2*self.nucBE[ind] + self.nucBE[ind1] + self.nucBE[ind2] ) )
774
786
  else:
775
- D3p_n_Z_odd.append( self.nucZ[ind] )
776
- D3p_n_N_odd.append( self.nucN[ind] )
777
- D3p_n_odd.append( sign/2.0*( -2*self.nucBE[ind] + self.nucBE[ind1] + self.nucBE[ind2] ) )
778
- self.D3p_n_N_even = np.array( D3p_n_N_even, dtype = int )
779
- self.D3p_n_N_odd = np.array( D3p_n_N_odd, dtype = int )
780
- self.D3p_n_Z_even = np.array( D3p_n_Z_even, dtype = int )
781
- self.D3p_n_Z_odd = np.array( D3p_n_Z_odd, dtype = int )
782
- self.D3p_n_even = np.array( D3p_n_even, dtype = float )
783
- self.D3p_n_odd = np.array( D3p_n_odd, dtype = float )
784
- #
785
- if nuda.env.verb: print("Exit D3p_n()")
787
+ D3n_Z_odd.append( self.nucZ[ind] )
788
+ D3n_N_odd.append( self.nucN[ind] )
789
+ D3n_odd.append( sign/2.0*( -2*self.nucBE[ind] + self.nucBE[ind1] + self.nucBE[ind2] ) )
790
+ self.D3n_N_even = np.array( D3n_N_even, dtype = int )
791
+ self.D3n_N_odd = np.array( D3n_N_odd, dtype = int )
792
+ self.D3n_Z_even = np.array( D3n_Z_even, dtype = int )
793
+ self.D3n_Z_odd = np.array( D3n_Z_odd, dtype = int )
794
+ self.D3n_even = np.array( D3n_even, dtype = float )
795
+ self.D3n_odd = np.array( D3n_odd, dtype = float )
796
+ #
797
+ if nuda.env.verb: print("Exit D3n()")
786
798
  #
787
799
  return self
788
800
  #
789
- def D3p_p( self, Nmin = 1, Nmax = 95 ):
801
+ def D3p( self, Nmin = 1, Nmax = 95 ):
790
802
  """
791
- Compute the three-points odd-even mass staggering (D3p_p)
792
- D3p^Z = (-)**Z * ( 2*E(Z,N)-E(Z+1,N)-E(Z-1,N) ) / 2
803
+ Compute the three-points odd-even mass staggering (D3p)
804
+ D3Z = (-)**Z * ( 2*E(Z,N)-E(Z+1,N)-E(Z-1,N) ) / 2
793
805
  """
794
806
  #
795
- if nuda.env.verb: print("Enter D3p_p()")
807
+ if nuda.env.verb: print("Enter D3p()")
796
808
  #
797
809
  if Nmin > Nmax:
798
- print('In D3p_p attribute function of setup_be_exp.py:')
799
- print('Bad definition of Nmin and Nmax')
800
- print('It is expected that Nmin<=Nmax')
801
- print('Nmin,Nmax:',Nmin,Nmax)
802
- print('exit')
810
+ print('setup_be_theo: In D3p attribute function of setup_be_exp.py:')
811
+ print('setup_be_theo: Bad definition of Nmin and Nmax')
812
+ print('setup_be_theo: It is expected that Nmin<=Nmax')
813
+ print('setup_be_theo: Nmin,Nmax:',Nmin,Nmax)
814
+ print('setup_be_theo: exit')
803
815
  exit()
804
816
  #
805
- D3p_p_Z_even = []
806
- D3p_p_Z_odd = []
807
- D3p_p_N_even = []
808
- D3p_p_N_odd = []
809
- D3p_p_even = []
810
- D3p_p_odd = []
817
+ D3p_Z_even = []
818
+ D3p_Z_odd = []
819
+ D3p_N_even = []
820
+ D3p_N_odd = []
821
+ D3p_even = []
822
+ D3p_odd = []
811
823
  #
812
824
  for ind,N in enumerate(self.nucN):
813
825
  #
@@ -839,21 +851,21 @@ class setupBETheo():
839
851
  break
840
852
  if flag_find1*flag_find2 == 1:
841
853
  if sign > 0: #even
842
- D3p_p_Z_even.append( self.nucZ[ind] )
843
- D3p_p_N_even.append( self.nucN[ind] )
844
- D3p_p_even.append( sign/2.0*( -2*self.nucBE[ind] + self.nucBE[ind1] + self.nucBE[ind2] ) )
854
+ D3p_Z_even.append( self.nucZ[ind] )
855
+ D3p_N_even.append( self.nucN[ind] )
856
+ D3p_even.append( sign/2.0*( -2*self.nucBE[ind] + self.nucBE[ind1] + self.nucBE[ind2] ) )
845
857
  else:
846
- D3p_p_Z_odd.append( self.nucZ[ind] )
847
- D3p_p_N_odd.append( self.nucN[ind] )
848
- D3p_p_odd.append( sign/2.0*( -2*self.nucBE[ind] + self.nucBE[ind1] + self.nucBE[ind2] ) )
849
- self.D3p_p_N_even = np.array( D3p_p_N_even, dtype = int )
850
- self.D3p_p_N_odd = np.array( D3p_p_N_odd, dtype = int )
851
- self.D3p_p_Z_even = np.array( D3p_p_Z_even, dtype = int )
852
- self.D3p_p_Z_odd = np.array( D3p_p_Z_odd, dtype = int )
853
- self.D3p_p_even = np.array( D3p_p_even, dtype = float )
854
- self.D3p_p_odd = np.array( D3p_p_odd, dtype = float )
855
- #
856
- if nuda.env.verb: print("Exit D3p_p()")
858
+ D3p_Z_odd.append( self.nucZ[ind] )
859
+ D3p_N_odd.append( self.nucN[ind] )
860
+ D3p_odd.append( sign/2.0*( -2*self.nucBE[ind] + self.nucBE[ind1] + self.nucBE[ind2] ) )
861
+ self.D3p_N_even = np.array( D3p_N_even, dtype = int )
862
+ self.D3p_N_odd = np.array( D3p_N_odd, dtype = int )
863
+ self.D3p_Z_even = np.array( D3p_Z_even, dtype = int )
864
+ self.D3p_Z_odd = np.array( D3p_Z_odd, dtype = int )
865
+ self.D3p_even = np.array( D3p_even, dtype = float )
866
+ self.D3p_odd = np.array( D3p_odd, dtype = float )
867
+ #
868
+ if nuda.env.verb: print("Exit D3p()")
857
869
  #
858
870
  return self
859
871
  #
@@ -873,10 +885,10 @@ class setupBETheo():
873
885
  if nuda.env.verb: print("Enter diff()")
874
886
  #
875
887
  if self.table == table:
876
- print('we have self.table = table')
877
- print('self.table:',self.table)
878
- print('table:',table)
879
- print('exit()')
888
+ print('setup_be_theo: we have self.table = table')
889
+ print('setup_be_theo: self.table:',self.table)
890
+ print('setup_be_theo: table:',table)
891
+ print('setup_be_theo: exit()')
880
892
  exit()
881
893
  #
882
894
  # table_ref
@@ -968,10 +980,10 @@ class setupBETheo():
968
980
  if nuda.env.verb: print("Enter diff()")
969
981
  #
970
982
  if self.table == table_exp:
971
- print('we have self.table = table_exp')
972
- print('self.table:',self.table)
973
- print('table:',table_exp)
974
- print('exit()')
983
+ print('setup_be_theo: we have self.table = table_exp')
984
+ print('setup_be_theo: self.table:',self.table)
985
+ print('setup_be_theo: table:',table_exp)
986
+ print('setup_be_theo: exit()')
975
987
  exit()
976
988
  #
977
989
  # table_ref