nucleardatapy 0.2.0__py3-none-any.whl → 1.0.0__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 (165) hide show
  1. nucleardatapy/__init__.py +3 -1
  2. nucleardatapy/astro/setup_gw.py +18 -18
  3. nucleardatapy/astro/setup_mr.py +9 -1
  4. nucleardatapy/astro/setup_mup.py +10 -10
  5. nucleardatapy/corr/setup_EsymDen.py +0 -5
  6. nucleardatapy/corr/setup_EsymLsym.py +50 -17
  7. nucleardatapy/corr/setup_KsatQsat.py +170 -69
  8. nucleardatapy/crust/setup_crust.py +403 -120
  9. nucleardatapy/data/astro/NICER/J0740+6620.dat +1 -0
  10. nucleardatapy/data/crust/2018-PCPFDDG-BSK22.dat +83 -0
  11. nucleardatapy/data/crust/2018-PCPFDDG-BSK24.dat +74 -0
  12. nucleardatapy/data/crust/2018-PCPFDDG-BSK25.dat +130 -0
  13. nucleardatapy/data/crust/2018-PCPFDDG-BSK26.dat +81 -0
  14. nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-E2A-NM.dat → 2006-BHF-Av18-E2A-NM.dat} +8 -8
  15. nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-Av18-effmass-SM.dat +11 -0
  16. nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-Av18-effmass-beta0.2.dat +11 -0
  17. nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-Av18-effmass-beta0.4.dat +11 -0
  18. nucleardatapy/data/matter/nep/NEPESkyrme.dat +2 -3
  19. nucleardatapy/data/matter/nep/NEPGSkyrme.dat +7 -0
  20. nucleardatapy/data/matter/nep/NEPSkyrme.dat +4 -2
  21. nucleardatapy/data/matter/nep/NEPxEFT.dat +8 -0
  22. nucleardatapy/data/matter/nep/best67DDSkyrme.dat +28 -0
  23. nucleardatapy/data/matter/nep/best90DDSkyrme.dat +46 -0
  24. nucleardatapy/data/matter/nep/best95DDSkyrme.dat +54 -0
  25. nucleardatapy/data/matter/pheno/ESkyrme/BSk31-NM.dat +996 -996
  26. nucleardatapy/data/matter/pheno/ESkyrme/BSk31-SM.dat +991 -991
  27. nucleardatapy/data/matter/pheno/ESkyrme/BSkG4-NM.dat +1002 -0
  28. nucleardatapy/data/matter/pheno/ESkyrme/BSkG4-SM.dat +1002 -0
  29. nucleardatapy/data/matter/pheno/Skyrme/BSkG1-NM.dat +102 -0
  30. nucleardatapy/data/matter/pheno/Skyrme/BSkG1-SM.dat +102 -0
  31. nucleardatapy/data/matter/pheno/Skyrme/BSkG2-NM.dat +102 -0
  32. nucleardatapy/data/matter/pheno/Skyrme/BSkG2-SM.dat +102 -0
  33. nucleardatapy/data/nuclei/masses/Theory/2023-BSkG3.txt +0 -4
  34. nucleardatapy/data/nuclei/masses/Theory/2025-BSkG4.txt +0 -1
  35. nucleardatapy/env.py +1 -1
  36. nucleardatapy/eos/__init__.py +4 -3
  37. nucleardatapy/eos/setupCC.py +429 -0
  38. nucleardatapy/eos/setup_am.py +71 -34
  39. nucleardatapy/eos/setup_am_Beq.py +48 -17
  40. nucleardatapy/eos/setup_am_Leq.py +81 -50
  41. nucleardatapy/fig/__init__.py +29 -7
  42. nucleardatapy/fig/astro_setupGW_fig.py +5 -5
  43. nucleardatapy/fig/astro_setupMR_fig.py +12 -10
  44. nucleardatapy/fig/astro_setupMasses_fig.py +4 -4
  45. nucleardatapy/fig/astro_setupMtov_fig.py +4 -4
  46. nucleardatapy/fig/astro_setupMup_fig.py +5 -5
  47. nucleardatapy/fig/corr_setupEsymDen_fig.py +12 -5
  48. nucleardatapy/fig/corr_setupEsymLsym_fig.py +18 -5
  49. nucleardatapy/fig/corr_setupKsatQsat_fig.py +19 -15
  50. nucleardatapy/fig/crust_setupCrust_fig.py +7 -7
  51. nucleardatapy/fig/eos_setupAMBeq_fig.py +1338 -64
  52. nucleardatapy/fig/eos_setupAMLeq_fig.py +200 -68
  53. nucleardatapy/fig/eos_setupAM_asy_lep_fig.py +364 -0
  54. nucleardatapy/fig/eos_setupAM_asy_nuc_fig.py +337 -0
  55. nucleardatapy/fig/eos_setupAM_asy_tot_fig.py +343 -0
  56. nucleardatapy/fig/eos_setupAM_fig.py +470 -47
  57. nucleardatapy/fig/eos_setupCC_fig.py +240 -0
  58. nucleardatapy/fig/hnuc_setupChart_fig.py +2 -2
  59. nucleardatapy/fig/hnuc_setupRE1LExp_fig.py +4 -4
  60. nucleardatapy/fig/matter_all_fig.py +954 -0
  61. nucleardatapy/fig/matter_setupCheck_fig.py +103 -0
  62. nucleardatapy/fig/matter_setupFFGLep_fig.py +70 -0
  63. nucleardatapy/fig/matter_setupFFGNuc_fig.py +268 -104
  64. nucleardatapy/fig/matter_setupHIC_fig.py +98 -58
  65. nucleardatapy/fig/matter_setupMicroEsym_fig.py +267 -51
  66. nucleardatapy/fig/matter_setupMicro_LP_fig.py +175 -78
  67. nucleardatapy/fig/matter_setupMicro_band_fig.py +116 -47
  68. nucleardatapy/fig/matter_setupMicro_effmass_fig.py +264 -34
  69. nucleardatapy/fig/matter_setupMicro_err_NM_fig.py +41 -18
  70. nucleardatapy/fig/matter_setupMicro_fig.py +332 -98
  71. nucleardatapy/fig/matter_setupMicro_gap_fig.py +219 -92
  72. nucleardatapy/fig/matter_setupNEPStats_fig.py +96 -0
  73. nucleardatapy/fig/matter_setupPhenoEsym_fig.py +201 -61
  74. nucleardatapy/fig/matter_setupPheno_fig.py +392 -85
  75. nucleardatapy/fig/nuc_setupBEExp_chart_fig.py +286 -0
  76. nucleardatapy/fig/nuc_setupBEExp_fig.py +232 -70
  77. nucleardatapy/fig/nuc_setupBETheo_fig.py +344 -0
  78. nucleardatapy/fig/nuc_setupISGMRExp_fig.py +59 -0
  79. nucleardatapy/fig/nuc_setupRchExp_fig.py +139 -0
  80. nucleardatapy/fig/nuc_setupRchTheo_fig.py +143 -0
  81. nucleardatapy/fig/nuc_setupRnpExp_fig.py +88 -0
  82. nucleardatapy/fig/nuc_setupRnpTheo_fig.py +133 -0
  83. nucleardatapy/hello.py +6 -0
  84. nucleardatapy/hnuc/__init__.py +3 -3
  85. nucleardatapy/hnuc/{setup_be1L_exp.py → setup_re1L_exp.py} +6 -6
  86. nucleardatapy/hnuc/{setup_be1Xi_exp.py → setup_re1Xi_exp.py} +5 -5
  87. nucleardatapy/hnuc/{setup_be2L_exp.py → setup_re2L_exp.py} +6 -6
  88. nucleardatapy/matter/__init__.py +14 -13
  89. nucleardatapy/matter/setup_check.py +97 -0
  90. nucleardatapy/matter/setup_ffg.py +72 -38
  91. nucleardatapy/matter/setup_hic.py +91 -74
  92. nucleardatapy/matter/setup_micro.py +1698 -1019
  93. nucleardatapy/matter/setup_micro_band.py +11 -6
  94. nucleardatapy/matter/setup_micro_effmass.py +55 -2
  95. nucleardatapy/matter/setup_micro_esym.py +39 -34
  96. nucleardatapy/matter/setup_micro_gap.py +26 -19
  97. nucleardatapy/matter/setup_micro_lp.py +20 -19
  98. nucleardatapy/matter/setup_nep.py +175 -92
  99. nucleardatapy/matter/{setup_nep_model_dist.py → setup_nep_stat_model.py} +13 -8
  100. nucleardatapy/matter/{setup_nep_dist.py → setup_nep_stat_models.py} +12 -8
  101. nucleardatapy/matter/setup_pheno.py +121 -45
  102. nucleardatapy/matter/setup_pheno_esym.py +14 -19
  103. nucleardatapy/nuc/__init__.py +2 -2
  104. nucleardatapy/nuc/setup_be_exp.py +345 -333
  105. nucleardatapy/nuc/setup_be_theo.py +366 -178
  106. nucleardatapy/nuc/setup_isgmr_exp.py +4 -4
  107. nucleardatapy/nuc/setup_rch_exp.py +49 -6
  108. nucleardatapy/nuc/setup_rch_theo.py +72 -3
  109. nucleardatapy/nuc/{setup_nskin_exp.py → setup_rnp_exp.py} +59 -65
  110. nucleardatapy/nuc/{setup_nskin_theo.py → setup_rnp_theo.py} +35 -39
  111. nucleardatapy-1.0.0.dist-info/METADATA +553 -0
  112. {nucleardatapy-0.2.0.dist-info → nucleardatapy-1.0.0.dist-info}/RECORD +156 -128
  113. {nucleardatapy-0.2.0.dist-info → nucleardatapy-1.0.0.dist-info}/WHEEL +1 -1
  114. tests/test_corr_setupKsatQsat.py +3 -1
  115. tests/test_matter_setupMicro.py +37 -10
  116. nucleardatapy/data/matter/pheno/ESkyrme/BSkG1-NM.dat +0 -1002
  117. nucleardatapy/data/matter/pheno/ESkyrme/BSkG1-SM.dat +0 -1002
  118. nucleardatapy/data/matter/pheno/ESkyrme/BSkG2-NM.dat +0 -1002
  119. nucleardatapy/data/matter/pheno/ESkyrme/BSkG2-SM.dat +0 -1002
  120. nucleardatapy/fig/matter_ENM_fig.py +0 -119
  121. nucleardatapy/fig/matter_ESM_fig.py +0 -119
  122. nucleardatapy/fig/matter_Esym_fig.py +0 -122
  123. nucleardatapy/fig/matter_setupNEPModelDist_fig.py +0 -68
  124. nucleardatapy-0.2.0.dist-info/METADATA +0 -115
  125. /nucleardatapy/data/LandauParameters/micro/{2006-IBHF-NM-AV18.dat → 2006-EBHF-NM-AV18.dat} +0 -0
  126. /nucleardatapy/data/LandauParameters/micro/{2006-IBHF-SM-AV18.dat → 2006-EBHF-SM-AV18.dat} +0 -0
  127. /nucleardatapy/data/crust/{2022-crustGMRS-BSK14.dat → 2022-GMRS-BSK14.dat} +0 -0
  128. /nucleardatapy/data/crust/{2022-crustGMRS-BSK16.dat → 2022-GMRS-BSK16.dat} +0 -0
  129. /nucleardatapy/data/crust/{2022-crustGMRS-DHSL59.dat → 2022-GMRS-DHSL59.dat} +0 -0
  130. /nucleardatapy/data/crust/{2022-crustGMRS-DHSL69.dat → 2022-GMRS-DHSL69.dat} +0 -0
  131. /nucleardatapy/data/crust/{2022-crustGMRS-F0.dat → 2022-GMRS-F0.dat} +0 -0
  132. /nucleardatapy/data/crust/{2022-crustGMRS-H1.dat → 2022-GMRS-H1.dat} +0 -0
  133. /nucleardatapy/data/crust/{2022-crustGMRS-H2.dat → 2022-GMRS-H2.dat} +0 -0
  134. /nucleardatapy/data/crust/{2022-crustGMRS-H3.dat → 2022-GMRS-H3.dat} +0 -0
  135. /nucleardatapy/data/crust/{2022-crustGMRS-H4.dat → 2022-GMRS-H4.dat} +0 -0
  136. /nucleardatapy/data/crust/{2022-crustGMRS-H5.dat → 2022-GMRS-H5.dat} +0 -0
  137. /nucleardatapy/data/crust/{2022-crustGMRS-H7.dat → 2022-GMRS-H7.dat} +0 -0
  138. /nucleardatapy/data/crust/{2022-crustGMRS-LNS5.dat → 2022-GMRS-LNS5.dat} +0 -0
  139. /nucleardatapy/data/crust/{2022-crustGMRS-RATP.dat → 2022-GMRS-RATP.dat} +0 -0
  140. /nucleardatapy/data/crust/{2022-crustGMRS-SGII.dat → 2022-GMRS-SGII.dat} +0 -0
  141. /nucleardatapy/data/crust/{2022-crustGMRS-SLY5.dat → 2022-GMRS-SLY5.dat} +0 -0
  142. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-E2A-AM.dat → 2006-BHF-Av18-E2A-AM.dat} +0 -0
  143. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-E2A-SM.dat → 2006-BHF-Av18-E2A-SM.dat} +0 -0
  144. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-Esym2-SM.dat → 2006-BHF-Av18-Esym2-SM.dat} +0 -0
  145. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-GAP-NM-FreeSpectrum.dat → 2006-BHF-Av18-GAP-NM-FreeSpectrum.dat} +0 -0
  146. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-GAP-NM-SelfEnergy.dat → 2006-BHF-Av18-GAP-NM-SelfEnergy.dat} +0 -0
  147. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-GAP-SM-FreeSpectrum.dat → 2006-BHF-Av18-GAP-SM-FreeSpectrum.dat} +0 -0
  148. /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-GAP-SM-SelfEnergy.dat → 2006-BHF-Av18-GAP-SM-SelfEnergy.dat} +0 -0
  149. /nucleardatapy/data/matter/micro/{2013-QMC-NM.dat → 2013-MBPT-NM.dat} +0 -0
  150. /nucleardatapy/data/matter/micro/{2020-MBPT-NM-DHSL59.dat → 2019-MBPT-NM-DHSL59.dat} +0 -0
  151. /nucleardatapy/data/matter/micro/{2020-MBPT-NM-DHSL69.dat → 2019-MBPT-NM-DHSL69.dat} +0 -0
  152. /nucleardatapy/data/matter/micro/{2020-MBPT-SM-DHSL59.dat → 2019-MBPT-SM-DHSL59.dat} +0 -0
  153. /nucleardatapy/data/matter/micro/{2020-MBPT-SM-DHSL69.dat → 2019-MBPT-SM-DHSL69.dat} +0 -0
  154. /nucleardatapy/data/matter/micro/{2023-MBPT-NM.csv → 2020-MBPT-NM.csv} +0 -0
  155. /nucleardatapy/data/matter/micro/{2023-MBPT-SM.csv → 2020-MBPT-SM.csv} +0 -0
  156. /nucleardatapy/data/nuclei/{nskin → rnp}/208Pb.dat +0 -0
  157. /nucleardatapy/data/nuclei/{nskin → rnp}/48Ca.dat +0 -0
  158. /nucleardatapy/data/{NeutronSkin/ddrhNskin-208Pb.dat → rnp/ddrhrnp-208Pb.dat} +0 -0
  159. /nucleardatapy/data/{NeutronSkin/ddrhNskin-48Ca.dat → rnp/ddrhrnp-48Ca.dat} +0 -0
  160. /nucleardatapy/data/{NeutronSkin/nlrhNskin-208Pb.dat → rnp/nlrhrnp-208Pb.dat} +0 -0
  161. /nucleardatapy/data/{NeutronSkin/nlrhNskin-48Ca.dat → rnp/nlrhrnp-48Ca.dat} +0 -0
  162. /nucleardatapy/data/{NeutronSkin/skyrmeNskin-208Pb.dat → rnp/skyrmernp-208Pb.dat} +0 -0
  163. /nucleardatapy/data/{NeutronSkin/skyrmeNskin-48Ca.dat → rnp/skyrmernp-48Ca.dat} +0 -0
  164. {nucleardatapy-0.2.0.dist-info → nucleardatapy-1.0.0.dist-info/licenses}/LICENSE +0 -0
  165. {nucleardatapy-0.2.0.dist-info → nucleardatapy-1.0.0.dist-info}/top_level.txt +0 -0
@@ -3,17 +3,25 @@ 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( N, Z, formula ):
9
+ A = N + Z
10
+ if formula == 'classic':
11
+ return 12.0 / A**0.5
12
+ elif formula == 'Vogel':
13
+ return ( 7.2 - 44.0 * ( 1.0 - 2.0 * Z / A )**2 ) / A**0.3333
14
+ else:
15
+ print('setup_be_theo: formula is badly defined ',formula)
16
+ print('setup_be_theo: exit')
17
+ exit()
18
+
11
19
  def be_theo_tables():
12
20
  """
13
21
  Return a list of the tables available in this toolkit for the masses
14
22
  predicted by theoretical approaches and print them all on the prompt.
15
23
  These tables are the following ones: \
16
- [ '1988-MJ', '1995-DZ', '1995-ETFSI', '1995-FRDM', \
24
+ [ '1988-GK', '1988-MJ', '1995-DZ', '1995-ETFSI', '1995-FRDM', \
17
25
  '2005-KTUY', '2007-HFB14', '2010-WS*', '2010-HFB21', '2011-WS3', '2013-HFB22', \
18
26
  '2013-HFB23', '2013-HFB24', '2013-HFB25', '2013-HFB26', '2021-BSkG1', \
19
27
  '2022-BSkG2', '2023-BSkG3', '2025-BSkG4' ]
@@ -24,7 +32,7 @@ def be_theo_tables():
24
32
  #
25
33
  if nuda.env.verb: print("\nEnter be_theo_tables()")
26
34
  #
27
- tables = [ '1988-MJ', '1995-DZ', '1995-ETFSI', '1995-FRDM', \
35
+ tables = [ '1988-GK', '1988-MJ', '1995-DZ', '1995-ETFSI', '1995-FRDM', \
28
36
  '2005-KTUY', '2007-HFB14', '2010-WS*', '2010-HFB21','2011-WS3', '2013-HFB22', \
29
37
  '2013-HFB23', '2013-HFB24', '2013-HFB25', '2013-HFB26', '2021-BSkG1', \
30
38
  '2022-BSkG2', '2023-BSkG3', '2025-BSkG4' ]
@@ -55,7 +63,7 @@ class setupBETheo():
55
63
  This choice is defined in the variable `table`.
56
64
 
57
65
  `table` can chosen among the following ones: \
58
- [ '1988-MJ', '1995-DZ', '1995-ETFSI', '1995-FRDM', \
66
+ [ '1988-GK', '1988-MJ', '1995-DZ', '1995-ETFSI', '1995-FRDM', \
59
67
  '2005-KTUY', '2007-HFB14', '2010-WS*', '2010-HFB21','2011-WS3', '2013-HFB26', '2021-BSkG1', \
60
68
  '2022-BSkG2', '2023-BSkG3', '2025-BSkG4' ]
61
69
 
@@ -70,9 +78,9 @@ class setupBETheo():
70
78
  #
71
79
  tables, tables_lower = be_theo_tables()
72
80
  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 --')
81
+ print('setup_be_theo: Table ',table,' is not in the list of tables.')
82
+ print('setup_be_theo: list of tables:',tables)
83
+ print('setup_be_theo: -- Exit the code --')
76
84
  exit()
77
85
  self.table = table
78
86
  if nuda.env.verb: print("table:",table)
@@ -469,13 +477,19 @@ class setupBETheo():
469
477
  self.ref = 'G. Grams, W. Ryssens, N. Shchechilin, A. Sanchez-Fernandez, N. Chamel, and S. Goriely, EPJA 61, 35 (2025).'
470
478
  self.note = "write here notes about this EOS."
471
479
  self.label = 'BSkG4-2024'
472
- self.nucZr, self.nucNr, self.nucBE2A = np.loadtxt( file_in, usecols=(0,1,2), unpack = True )
480
+ #self.nucZr, self.nucNr, self.nucBE2A = np.loadtxt( file_in, usecols=(0,1,2), unpack = True )
481
+ self.nucZr, self.nucNr, self.nucMass, self.Ebind, self.beta20, self.beta22, self.beta2, \
482
+ self.beta30, self.beta32, self.Erot, self.gap_n, self.gap_p, self.moi = \
483
+ np.loadtxt( file_in, usecols=(0,1,3,5,6,7,8,9,10,11,12,13,17), unpack = True )
473
484
  self.nucZ = np.array( [ int(ele) for ele in self.nucZr ] )
474
485
  self.nucN = np.array( [ int(ele) for ele in self.nucNr ] )
475
486
  self.nucA = self.nucZ + self.nucN
476
- self.nucBE = self.nucBE2A * self.nucA
487
+ #self.nucBE = self.nucBE2A * self.nucA
488
+ self.nucBE = conversionMBE(self.nucMass,self.nucN,self.nucZ)
489
+ self.nucBE2A = self.nucBE / self.nucA
477
490
  self.Zmax = int( max( self.nucZ ) )
478
491
  #
492
+ self.nucI = ( self.nucN - self.nucZ ) / self.nucA
479
493
  #
480
494
  if nuda.env.verb: print("Exit setupBETheo()")
481
495
  #
@@ -499,117 +513,172 @@ class setupBETheo():
499
513
  #
500
514
  if nuda.env.verb: print("Exit print_outputs()")
501
515
  #
502
- def S2n( self, Zmin = 1, Zmax = 95 ):
516
+ def isotopes(self, Zref = 50 ):
517
+ """
518
+ Method which find the first and last isotopes for Z=Zref.
519
+
520
+ :param Zref: Fix the charge for the search of isotopes.
521
+ :type Zref: int, optional. Default: 50.
522
+
523
+ **Attributes:**
524
+ """
525
+ #
526
+ if nuda.env.verb: print("Enter isotopes()")
527
+ #
528
+ if Zref < 0:
529
+ print('setup_be_exp.py: issue with the function isotopes.')
530
+ print('setup_be_exp.py: Bad definition for Zref')
531
+ print('setup_be_exp.py: It is expected that Zref>0')
532
+ print('setup_be_exp.py: Zref:',Zref)
533
+ print('setup_be_exp.py: exit')
534
+ exit()
535
+ #
536
+ Nstable, Zstable = nuda.nuc.stable_fit_Z( Zmin = Zref, Zmax = Zref )
537
+ #
538
+ nucNmin = Nstable[0]
539
+ nucNmax = Nstable[0]
540
+ #
541
+ for ind,A in enumerate(self.nucA):
542
+ if self.nucZ[ind] == Zref and self.nucN[ind] < nucNmin:
543
+ nucNmin = self.nucN[ind]
544
+ if self.nucZ[ind] == Zref and self.nucN[ind] > nucNmax:
545
+ nucNmax = self.nucN[ind]
546
+ self.itp_nucZ = Zref
547
+ self.itp_nucNmin = nucNmin
548
+ self.itp_nucNmax = nucNmax
549
+ #
550
+ if nuda.env.verb: print("Exit isotopes()")
551
+ #
552
+ return self
553
+ #
554
+ def isotones(self, Nref = 50 ):
555
+ """
556
+ Method which find the first and last isotones for N=Nref.
557
+
558
+ :param Nref: Fix the neutron number for the search of isotones.
559
+ :type Nref: int, optional. Default: 50.
560
+
561
+ **Attributes:**
562
+ """
563
+ #
564
+ if nuda.env.verb: print("Enter isotones()")
565
+ #
566
+ if Nref < 0:
567
+ print('setup_be_exp.py: issue with the function isotones.')
568
+ print('setup_be_exp.py: Bad definition for Nref')
569
+ print('setup_be_exp.py: It is expected that Nref>0')
570
+ print('setup_be_exp.py: Nref:',Nref)
571
+ print('setup_be_exp.py: exit')
572
+ exit()
573
+ #
574
+ Nstable, Zstable = nuda.nuc.stable_fit_N( Nmin = Nref, Nmax = Nref )
575
+ #
576
+ nucZmin = Zstable[0]
577
+ nucZmax = Zstable[0]
578
+ #
579
+ for ind,A in enumerate(self.nucA):
580
+ if self.nucN[ind] == Nref and self.nucZ[ind] < nucZmin:
581
+ nucZmin = self.nucZ[ind]
582
+ if self.nucN[ind] == Nref and self.nucZ[ind] > nucZmax:
583
+ nucZmax = self.nucZ[ind]
584
+ self.itn_nucN = Nref
585
+ self.itn_nucZmin = nucZmin
586
+ self.itn_nucZmax = nucZmax
587
+ #
588
+ if nuda.env.verb: print("Exit isotones()")
589
+ #
590
+ return self
591
+ #
592
+ def S2n( self, Zref = 50 ):
503
593
  """
504
594
  Compute the two-neutron separation energy (S2n)
505
- S2n = E(Z,N)-E(Z,N+2)
595
+ S2n = E(Z,N)-E(Z,N-2)
506
596
  """
507
597
  #
508
598
  if nuda.env.verb: print("Enter S2n()")
509
599
  #
510
- 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')
600
+ if Zref < 0:
601
+ print('setup_be_theo: In S2n attribute function of setup_be_theo.py:')
602
+ print('setup_be_theo: Bad definition of Zref')
603
+ print('setup_be_theo: It is expected that Zref>=0')
604
+ print('setup_be_theo: Zref:',Zref)
605
+ print('setup_be_theo: exit')
516
606
  exit()
517
607
  #
518
- S2n_Z = []
519
608
  S2n_N = []
520
- S2n = []
521
- #
522
- for ind,Z in enumerate(self.nucZ):
523
- #
524
- if Z > Zmax :
525
- break
526
- if Z < Zmin :
527
- continue
528
- #
529
- N = self.nucN[ind]
530
- #
531
- #print('For Z,N:',Z,N)
532
- #
533
- # search index for Z,N+2
534
- #
535
- flag_find = 0
536
- for ind2,Z2 in enumerate(self.nucZ):
537
- if Z == Z2 and self.nucN[ind2] == N-2:
538
- flag_find = 1
539
- break
540
- if flag_find == 1:
541
- N2 = self.nucN[ind2]
542
- #print('N,N2:',N,N2,'ind,ind2:',ind,ind2)
543
- S2n_Z.append( self.nucZ[ind] )
544
- S2n_N.append( self.nucN[ind] )
545
- S2n.append( self.nucBE[ind2] - self.nucBE[ind] )
609
+ S2n_E = []
610
+ #
611
+ Nmin=self.itp_nucNmin
612
+ Nmax=self.itp_nucNmax
613
+ #
614
+ for N in range(Nmin+2,Nmax+1):
615
+ #
616
+ flagN = False; flagNm2 = False;
617
+ #
618
+ for ind,Z in enumerate(self.nucZ):
619
+ #
620
+ if Z == Zref and self.nucN[ind] == N:
621
+ indN = ind
622
+ flagN = True
623
+ if Z == Zref and self.nucN[ind] == N-2:
624
+ indNm2 = ind
625
+ flagNm2 = True
626
+ #
627
+ if flagN and flagNm2:
628
+ S2n_N.append( N )
629
+ S2n_E.append( self.nucBE[indN] - self.nucBE[indNm2] )
546
630
  self.S2n_N = np.array( S2n_N, dtype = int )
547
- self.S2n_Z = np.array( S2n_Z, dtype = int )
548
- self.S2n = np.array( S2n, dtype = float )
549
- #print('Z:',self.S2n_Z)
550
- #print('N:',self.S2n_N)
551
- #print('S2n:',self.S2n)
631
+ self.S2n_E = np.array( S2n_E, dtype = float )
552
632
  #
553
633
  if nuda.env.verb: print("Exit S2n()")
554
634
  #
555
635
  return self
556
- #
557
- def S2p( self, Nmin = 1, Nmax = 95 ):
636
+ #
637
+ def S2p( self, Nref = 50 ):
558
638
  """
559
- Compute the two-proton separation energy (S2n)
560
- S2p = E(Z,N)-E(Z-2,N)
639
+ Compute the two-proton separation energy (S2p)
640
+ S2p(Z,Nref) = E(Z,Nref)-E(Z-2,Nref)
561
641
  """
562
642
  #
563
643
  if nuda.env.verb: print("Enter S2p()")
564
644
  #
565
- 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')
645
+ if Nref < 0:
646
+ print('setup_be_exp.py: In S2p attribute function of setup_be_exp.py:')
647
+ print('setup_be_exp.py: Bad definition of Nref')
648
+ print('setup_be_exp.py: It is expected that Nref>=0')
649
+ print('setup_be_exp.py: Nref:',Nref)
650
+ print('setup_be_exp.py: exit')
571
651
  exit()
572
652
  #
573
653
  S2p_Z = []
574
- S2p_N = []
575
- S2p = []
576
- #
577
- for ind,N in enumerate(self.nucN):
578
- #
579
- if N > Nmax :
580
- continue
581
- if N < Nmin :
582
- continue
583
- #
584
- Z = self.nucZ[ind]
585
- #
586
- #print('For Z,N:',Z,N)
587
- #
588
- # search index for Z-2,N
589
- #
590
- flag_find = 0
591
- for ind2,N2 in enumerate(self.nucN):
592
- if N == N2 and self.nucZ[ind2] == Z-2:
593
- flag_find = 1
594
- break
595
- if flag_find == 1:
596
- Z2 = self.nucZ[ind2]
597
- #print('N,N2:',N,N2,'ind,ind2:',ind,ind2)
598
- S2p_Z.append( self.nucZ[ind] )
599
- S2p_N.append( self.nucN[ind] )
600
- S2p.append( self.nucBE[ind2] - self.nucBE[ind] )
601
- self.S2p_N = np.array( S2p_N, dtype = int )
654
+ S2p_E = []
655
+ #
656
+ Zmin=self.itn_nucZmin
657
+ Zmax=self.itn_nucZmax
658
+ #
659
+ for Z in range(Zmin+2,Zmax+1):
660
+ #
661
+ flagZ = False; flagZm2 = False;
662
+ #
663
+ for ind,N in enumerate(self.nucN):
664
+ #
665
+ if N == Nref and self.nucZ[ind] == Z:
666
+ indZ = ind
667
+ flagZ = True
668
+ if N == Nref and self.nucZ[ind] == Z-2:
669
+ indZm2 = ind
670
+ flagZm2 = True
671
+ #
672
+ if flagZ and flagZm2:
673
+ S2p_Z.append( Z )
674
+ S2p_E.append( self.nucBE[indZ] - self.nucBE[indZm2] )
602
675
  self.S2p_Z = np.array( S2p_Z, dtype = int )
603
- self.S2p = np.array( S2p, dtype = float )
604
- #print('Z:',self.S2n_Z)
605
- #print('N:',self.S2n_N)
606
- #print('S2n:',self.S2n)
607
- #print('Z:',self.S2n_Z)
676
+ self.S2p_E = np.array( S2p_E, dtype = float )
608
677
  #
609
678
  if nuda.env.verb: print("Exit S2p()")
610
679
  #
611
680
  return self
612
- #
681
+ #
613
682
  def drip_S2n(self, Zmin = 1, Zmax = 95 ):
614
683
  """
615
684
  Method which find the drip-line nuclei from S2n (neutron side).
@@ -625,17 +694,17 @@ class setupBETheo():
625
694
  if nuda.env.verb: print("Enter drip_S2n()")
626
695
  #
627
696
  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')
697
+ print('setup_be_theo: In drip_S2n attribute function of setup_be_theo.py:')
698
+ print('setup_be_theo: Bad definition of Zmin and Zmax')
699
+ print('setup_be_theo: It is expected that Zmin<=Zmax')
700
+ print('setup_be_theo: Zmin,Zmax:',Zmin,Zmax)
701
+ print('setup_be_theo: exit')
633
702
  exit()
634
703
  #
635
704
  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')
705
+ print('setup_be_theo: In drip_S2n attribute function of setup_be_theo.py:')
706
+ print('setup_be_theo: Should compute first S2n')
707
+ print('setup_be_theo: exit')
639
708
  exit()
640
709
  #
641
710
  #Nstable, Zstable = stable_fit( Zmin = Zmin, Zmax = Zmax )
@@ -679,17 +748,17 @@ class setupBETheo():
679
748
  if nuda.env.verb: print("Enter drip_S2p()")
680
749
  #
681
750
  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')
751
+ print('setup_be_theo: In drip_S2p attribute function of setup_be_theo.py:')
752
+ print('setup_be_theo: Bad definition of Nmin and Nmax')
753
+ print('setup_be_theo: It is expected that Nmin<=Nmax')
754
+ print('setup_be_theo: Nmin,Nmax:',Nmin,Nmax)
755
+ print('setup_be_theo: exit')
687
756
  exit()
688
757
  #
689
758
  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')
759
+ print('setup_be_theo: In drip_S2p attribute function of setup_be_theo.py:')
760
+ print('setup_be_theo: Should compute first S2p')
761
+ print('setup_be_theo: exit')
693
762
  exit()
694
763
  #
695
764
  self.drip_S2p_Z = []
@@ -714,29 +783,148 @@ class setupBETheo():
714
783
  #
715
784
  return self
716
785
  #
717
- #
718
- def D3p_n( self, Zmin = 1, Zmax = 95 ):
786
+ def D3n( self, Zref = 50 ):
787
+ """
788
+ Compute the three-points odd-even mass staggering (D3n)
789
+ D3n = (-)**N * ( 2*E(Z,N)-E(Z,N+1)-E(Z,N-1) ) / 2
790
+ """
791
+ #
792
+ if nuda.env.verb: print("Enter D3n()")
793
+ #
794
+ if Zref < 0:
795
+ print('setup_be_theo: In D3n attribute function of setup_be_theo.py:')
796
+ print('setup_be_theo: Bad definition of Zref')
797
+ print('setup_be_theo: It is expected that Zref>=0')
798
+ print('setup_be_theo: Zref:',Zref)
799
+ print('setup_be_theo: exit')
800
+ exit()
801
+ #
802
+ D3n_N_even = []
803
+ D3n_E_even = []
804
+ D3n_N_odd = []
805
+ D3n_E_odd = []
806
+ #
807
+ Nmin=self.itp_nucNmin
808
+ Nmax=self.itp_nucNmax
809
+ #
810
+ for N in range(Nmin+1,Nmax+1):
811
+ #
812
+ flagN = False; flagNm1 = False; flagNp1 = False;
813
+ #
814
+ for ind,Z in enumerate(self.nucZ):
815
+ #
816
+ if Z == Zref and self.nucN[ind] == N:
817
+ indN = ind
818
+ flagN = True
819
+ if N % 2:
820
+ sign = -1.0 # odd
821
+ else:
822
+ sign = 1.0 # even
823
+ if Z == Zref and self.nucN[ind] == N-1:
824
+ indNm1 = ind
825
+ flagNm1 = True
826
+ if Z == Zref and self.nucN[ind] == N+1:
827
+ indNp1 = ind
828
+ flagNp1 = True
829
+ #
830
+ if flagN and flagNm1 and flagNp1:
831
+ if sign > 0.0: #even
832
+ D3n_N_even.append( N )
833
+ D3n_E_even.append( sign/2.0*( -2*self.nucBE[indN] + self.nucBE[indNm1] + self.nucBE[indNp1] ) )
834
+ else:
835
+ D3n_N_odd.append( N )
836
+ D3n_E_odd.append( sign/2.0*( -2*self.nucBE[indN] + self.nucBE[indNm1] + self.nucBE[indNp1] ) )
837
+ self.D3n_N_even = np.array( D3n_N_even, dtype = int )
838
+ self.D3n_E_even = np.array( D3n_E_even, dtype = float )
839
+ self.D3n_N_odd = np.array( D3n_N_odd, dtype = int )
840
+ self.D3n_E_odd = np.array( D3n_E_odd, dtype = float )
841
+ #
842
+ if nuda.env.verb: print("Exit D3n()")
843
+ #
844
+ return self
845
+ #
846
+ def D3p( self, Nref = 50 ):
847
+ """
848
+ Compute the three-points odd-even mass staggering (D3n)
849
+ D3p = (-)**Z * ( 2*E(Z,N)-E(Z+1,N)-E(Z-1,N) ) / 2
850
+ """
851
+ #
852
+ if nuda.env.verb: print("Enter D3p()")
853
+ #
854
+ if Nref < 0:
855
+ print('setup_be_theo: In D3p attribute function of setup_be_theo.py:')
856
+ print('setup_be_theo: Bad definition of Nref')
857
+ print('setup_be_theo: It is expected that Nref>=0')
858
+ print('setup_be_theo: Nref:',Nref)
859
+ print('setup_be_theo: exit')
860
+ exit()
861
+ #
862
+ D3p_Z_even = []
863
+ D3p_E_even = []
864
+ D3p_Z_odd = []
865
+ D3p_E_odd = []
866
+ #
867
+ Zmin=self.itn_nucZmin
868
+ Zmax=self.itn_nucZmax
869
+ #
870
+ for Z in range(Zmin+1,Zmax+1):
871
+ #
872
+ flagZ = False; flagZm1 = False; flagZp1 = False;
873
+ #
874
+ for ind,N in enumerate(self.nucN):
875
+ #
876
+ if N == Nref and self.nucZ[ind] == Z:
877
+ indZ = ind
878
+ flagZ = True
879
+ if Z % 2:
880
+ sign = -1.0 # odd
881
+ else:
882
+ sign = 1.0 # even
883
+ if N == Nref and self.nucZ[ind] == Z-1:
884
+ indZm1 = ind
885
+ flagZm1 = True
886
+ if N == Nref and self.nucZ[ind] == Z+1:
887
+ indZp1 = ind
888
+ flagZp1 = True
889
+ #
890
+ if flagZ and flagZm1 and flagZp1:
891
+ if sign > 0.0: #even
892
+ D3p_Z_even.append( Z )
893
+ D3p_E_even.append( sign/2.0*( -2*self.nucBE[indZ] + self.nucBE[indZm1] + self.nucBE[indZp1] ) )
894
+ else:
895
+ D3p_Z_odd.append( Z )
896
+ D3p_E_odd.append( sign/2.0*( -2*self.nucBE[indZ] + self.nucBE[indZm1] + self.nucBE[indZp1] ) )
897
+ self.D3p_Z_even = np.array( D3p_Z_even, dtype = int )
898
+ self.D3p_E_even = np.array( D3p_E_even, dtype = float )
899
+ self.D3p_Z_odd = np.array( D3p_Z_odd, dtype = int )
900
+ self.D3p_E_odd = np.array( D3p_E_odd, dtype = float )
901
+ #
902
+ if nuda.env.verb: print("Exit D3p()")
903
+ #
904
+ return self
905
+ #
906
+ def D3n_old( self, Zmin = 1, Zmax = 95 ):
719
907
  """
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
908
+ Compute the three-points odd-even mass staggering (D3n)
909
+ D3N = (-)**N * ( 2*E(Z,N)-E(Z,N+1)-E(Z,N-1) ) / 2
722
910
  """
723
911
  #
724
- if nuda.env.verb: print("Enter D3p_n()")
912
+ if nuda.env.verb: print("Enter D3n()")
725
913
  #
726
914
  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')
915
+ print('setup_be_theo: In D3n attribute function of setup_be_exp.py:')
916
+ print('setup_be_theo: Bad definition of Zmin and Zmax')
917
+ print('setup_be_theo: It is expected that Zmin<=Zmax')
918
+ print('setup_be_theo: Zmin,Zmax:',Zmin,Zmax)
919
+ print('setup_be_theo: exit')
732
920
  exit()
733
921
  #
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 = []
922
+ D3n_Z_even = []
923
+ D3n_Z_odd = []
924
+ D3n_N_even = []
925
+ D3n_N_odd = []
926
+ D3n_even = []
927
+ D3n_odd = []
740
928
  #
741
929
  for ind,Z in enumerate(self.nucZ):
742
930
  #
@@ -768,46 +956,46 @@ class setupBETheo():
768
956
  break
769
957
  if flag_find1*flag_find2 == 1:
770
958
  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] ) )
959
+ D3n_Z_even.append( self.nucZ[ind] )
960
+ D3n_N_even.append( self.nucN[ind] )
961
+ D3n_even.append( sign/2.0*( -2*self.nucBE[ind] + self.nucBE[ind1] + self.nucBE[ind2] ) )
774
962
  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()")
963
+ D3n_Z_odd.append( self.nucZ[ind] )
964
+ D3n_N_odd.append( self.nucN[ind] )
965
+ D3n_odd.append( sign/2.0*( -2*self.nucBE[ind] + self.nucBE[ind1] + self.nucBE[ind2] ) )
966
+ self.D3n_N_even = np.array( D3n_N_even, dtype = int )
967
+ self.D3n_N_odd = np.array( D3n_N_odd, dtype = int )
968
+ self.D3n_Z_even = np.array( D3n_Z_even, dtype = int )
969
+ self.D3n_Z_odd = np.array( D3n_Z_odd, dtype = int )
970
+ self.D3n_even = np.array( D3n_even, dtype = float )
971
+ self.D3n_odd = np.array( D3n_odd, dtype = float )
972
+ #
973
+ if nuda.env.verb: print("Exit D3n()")
786
974
  #
787
975
  return self
788
976
  #
789
- def D3p_p( self, Nmin = 1, Nmax = 95 ):
977
+ def D3p_old( self, Nmin = 1, Nmax = 95 ):
790
978
  """
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
979
+ Compute the three-points odd-even mass staggering (D3p)
980
+ D3Z = (-)**Z * ( 2*E(Z,N)-E(Z+1,N)-E(Z-1,N) ) / 2
793
981
  """
794
982
  #
795
- if nuda.env.verb: print("Enter D3p_p()")
983
+ if nuda.env.verb: print("Enter D3p()")
796
984
  #
797
985
  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')
986
+ print('setup_be_theo: In D3p attribute function of setup_be_exp.py:')
987
+ print('setup_be_theo: Bad definition of Nmin and Nmax')
988
+ print('setup_be_theo: It is expected that Nmin<=Nmax')
989
+ print('setup_be_theo: Nmin,Nmax:',Nmin,Nmax)
990
+ print('setup_be_theo: exit')
803
991
  exit()
804
992
  #
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 = []
993
+ D3p_Z_even = []
994
+ D3p_Z_odd = []
995
+ D3p_N_even = []
996
+ D3p_N_odd = []
997
+ D3p_even = []
998
+ D3p_odd = []
811
999
  #
812
1000
  for ind,N in enumerate(self.nucN):
813
1001
  #
@@ -839,21 +1027,21 @@ class setupBETheo():
839
1027
  break
840
1028
  if flag_find1*flag_find2 == 1:
841
1029
  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] ) )
1030
+ D3p_Z_even.append( self.nucZ[ind] )
1031
+ D3p_N_even.append( self.nucN[ind] )
1032
+ D3p_even.append( sign/2.0*( -2*self.nucBE[ind] + self.nucBE[ind1] + self.nucBE[ind2] ) )
845
1033
  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()")
1034
+ D3p_Z_odd.append( self.nucZ[ind] )
1035
+ D3p_N_odd.append( self.nucN[ind] )
1036
+ D3p_odd.append( sign/2.0*( -2*self.nucBE[ind] + self.nucBE[ind1] + self.nucBE[ind2] ) )
1037
+ self.D3p_N_even = np.array( D3p_N_even, dtype = int )
1038
+ self.D3p_N_odd = np.array( D3p_N_odd, dtype = int )
1039
+ self.D3p_Z_even = np.array( D3p_Z_even, dtype = int )
1040
+ self.D3p_Z_odd = np.array( D3p_Z_odd, dtype = int )
1041
+ self.D3p_even = np.array( D3p_even, dtype = float )
1042
+ self.D3p_odd = np.array( D3p_odd, dtype = float )
1043
+ #
1044
+ if nuda.env.verb: print("Exit D3p()")
857
1045
  #
858
1046
  return self
859
1047
  #
@@ -873,10 +1061,10 @@ class setupBETheo():
873
1061
  if nuda.env.verb: print("Enter diff()")
874
1062
  #
875
1063
  if self.table == table:
876
- print('we have self.table = table')
877
- print('self.table:',self.table)
878
- print('table:',table)
879
- print('exit()')
1064
+ print('setup_be_theo: we have self.table = table')
1065
+ print('setup_be_theo: self.table:',self.table)
1066
+ print('setup_be_theo: table:',table)
1067
+ print('setup_be_theo: exit()')
880
1068
  exit()
881
1069
  #
882
1070
  # table_ref
@@ -968,10 +1156,10 @@ class setupBETheo():
968
1156
  if nuda.env.verb: print("Enter diff()")
969
1157
  #
970
1158
  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()')
1159
+ print('setup_be_theo: we have self.table = table_exp')
1160
+ print('setup_be_theo: self.table:',self.table)
1161
+ print('setup_be_theo: table:',table_exp)
1162
+ print('setup_be_theo: exit()')
975
1163
  exit()
976
1164
  #
977
1165
  # table_ref