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.
- nucleardatapy/__init__.py +3 -1
- nucleardatapy/astro/setup_gw.py +18 -18
- nucleardatapy/astro/setup_mr.py +9 -1
- nucleardatapy/astro/setup_mup.py +10 -10
- nucleardatapy/corr/setup_EsymDen.py +0 -5
- nucleardatapy/corr/setup_EsymLsym.py +50 -17
- nucleardatapy/corr/setup_KsatQsat.py +170 -69
- nucleardatapy/crust/setup_crust.py +403 -120
- nucleardatapy/data/astro/NICER/J0740+6620.dat +1 -0
- nucleardatapy/data/crust/2018-PCPFDDG-BSK22.dat +83 -0
- nucleardatapy/data/crust/2018-PCPFDDG-BSK24.dat +74 -0
- nucleardatapy/data/crust/2018-PCPFDDG-BSK25.dat +130 -0
- nucleardatapy/data/crust/2018-PCPFDDG-BSK26.dat +81 -0
- nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-E2A-NM.dat → 2006-BHF-Av18-E2A-NM.dat} +8 -8
- nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-Av18-effmass-SM.dat +11 -0
- nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-Av18-effmass-beta0.2.dat +11 -0
- nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-Av18-effmass-beta0.4.dat +11 -0
- nucleardatapy/data/matter/nep/NEPESkyrme.dat +2 -3
- nucleardatapy/data/matter/nep/NEPGSkyrme.dat +7 -0
- nucleardatapy/data/matter/nep/NEPSkyrme.dat +4 -2
- nucleardatapy/data/matter/nep/NEPxEFT.dat +8 -0
- nucleardatapy/data/matter/nep/best67DDSkyrme.dat +28 -0
- nucleardatapy/data/matter/nep/best90DDSkyrme.dat +46 -0
- nucleardatapy/data/matter/nep/best95DDSkyrme.dat +54 -0
- nucleardatapy/data/matter/pheno/ESkyrme/BSk31-NM.dat +996 -996
- nucleardatapy/data/matter/pheno/ESkyrme/BSk31-SM.dat +991 -991
- nucleardatapy/data/matter/pheno/ESkyrme/BSkG4-NM.dat +1002 -0
- nucleardatapy/data/matter/pheno/ESkyrme/BSkG4-SM.dat +1002 -0
- nucleardatapy/data/matter/pheno/Skyrme/BSkG1-NM.dat +102 -0
- nucleardatapy/data/matter/pheno/Skyrme/BSkG1-SM.dat +102 -0
- nucleardatapy/data/matter/pheno/Skyrme/BSkG2-NM.dat +102 -0
- nucleardatapy/data/matter/pheno/Skyrme/BSkG2-SM.dat +102 -0
- nucleardatapy/data/nuclei/masses/Theory/2023-BSkG3.txt +0 -4
- nucleardatapy/data/nuclei/masses/Theory/2025-BSkG4.txt +0 -1
- nucleardatapy/env.py +1 -1
- nucleardatapy/eos/__init__.py +4 -3
- nucleardatapy/eos/setupCC.py +429 -0
- nucleardatapy/eos/setup_am.py +71 -34
- nucleardatapy/eos/setup_am_Beq.py +48 -17
- nucleardatapy/eos/setup_am_Leq.py +81 -50
- nucleardatapy/fig/__init__.py +29 -7
- nucleardatapy/fig/astro_setupGW_fig.py +5 -5
- nucleardatapy/fig/astro_setupMR_fig.py +12 -10
- nucleardatapy/fig/astro_setupMasses_fig.py +4 -4
- nucleardatapy/fig/astro_setupMtov_fig.py +4 -4
- nucleardatapy/fig/astro_setupMup_fig.py +5 -5
- nucleardatapy/fig/corr_setupEsymDen_fig.py +12 -5
- nucleardatapy/fig/corr_setupEsymLsym_fig.py +18 -5
- nucleardatapy/fig/corr_setupKsatQsat_fig.py +19 -15
- nucleardatapy/fig/crust_setupCrust_fig.py +7 -7
- nucleardatapy/fig/eos_setupAMBeq_fig.py +1338 -64
- nucleardatapy/fig/eos_setupAMLeq_fig.py +200 -68
- nucleardatapy/fig/eos_setupAM_asy_lep_fig.py +364 -0
- nucleardatapy/fig/eos_setupAM_asy_nuc_fig.py +337 -0
- nucleardatapy/fig/eos_setupAM_asy_tot_fig.py +343 -0
- nucleardatapy/fig/eos_setupAM_fig.py +470 -47
- nucleardatapy/fig/eos_setupCC_fig.py +240 -0
- nucleardatapy/fig/hnuc_setupChart_fig.py +2 -2
- nucleardatapy/fig/hnuc_setupRE1LExp_fig.py +4 -4
- nucleardatapy/fig/matter_all_fig.py +954 -0
- nucleardatapy/fig/matter_setupCheck_fig.py +103 -0
- nucleardatapy/fig/matter_setupFFGLep_fig.py +70 -0
- nucleardatapy/fig/matter_setupFFGNuc_fig.py +268 -104
- nucleardatapy/fig/matter_setupHIC_fig.py +98 -58
- nucleardatapy/fig/matter_setupMicroEsym_fig.py +267 -51
- nucleardatapy/fig/matter_setupMicro_LP_fig.py +175 -78
- nucleardatapy/fig/matter_setupMicro_band_fig.py +116 -47
- nucleardatapy/fig/matter_setupMicro_effmass_fig.py +264 -34
- nucleardatapy/fig/matter_setupMicro_err_NM_fig.py +41 -18
- nucleardatapy/fig/matter_setupMicro_fig.py +332 -98
- nucleardatapy/fig/matter_setupMicro_gap_fig.py +219 -92
- nucleardatapy/fig/matter_setupNEPStats_fig.py +96 -0
- nucleardatapy/fig/matter_setupPhenoEsym_fig.py +201 -61
- nucleardatapy/fig/matter_setupPheno_fig.py +392 -85
- nucleardatapy/fig/nuc_setupBEExp_chart_fig.py +286 -0
- nucleardatapy/fig/nuc_setupBEExp_fig.py +232 -70
- nucleardatapy/fig/nuc_setupBETheo_fig.py +344 -0
- nucleardatapy/fig/nuc_setupISGMRExp_fig.py +59 -0
- nucleardatapy/fig/nuc_setupRchExp_fig.py +139 -0
- nucleardatapy/fig/nuc_setupRchTheo_fig.py +143 -0
- nucleardatapy/fig/nuc_setupRnpExp_fig.py +88 -0
- nucleardatapy/fig/nuc_setupRnpTheo_fig.py +133 -0
- nucleardatapy/hello.py +6 -0
- nucleardatapy/hnuc/__init__.py +3 -3
- nucleardatapy/hnuc/{setup_be1L_exp.py → setup_re1L_exp.py} +6 -6
- nucleardatapy/hnuc/{setup_be1Xi_exp.py → setup_re1Xi_exp.py} +5 -5
- nucleardatapy/hnuc/{setup_be2L_exp.py → setup_re2L_exp.py} +6 -6
- nucleardatapy/matter/__init__.py +14 -13
- nucleardatapy/matter/setup_check.py +97 -0
- nucleardatapy/matter/setup_ffg.py +72 -38
- nucleardatapy/matter/setup_hic.py +91 -74
- nucleardatapy/matter/setup_micro.py +1698 -1019
- nucleardatapy/matter/setup_micro_band.py +11 -6
- nucleardatapy/matter/setup_micro_effmass.py +55 -2
- nucleardatapy/matter/setup_micro_esym.py +39 -34
- nucleardatapy/matter/setup_micro_gap.py +26 -19
- nucleardatapy/matter/setup_micro_lp.py +20 -19
- nucleardatapy/matter/setup_nep.py +175 -92
- nucleardatapy/matter/{setup_nep_model_dist.py → setup_nep_stat_model.py} +13 -8
- nucleardatapy/matter/{setup_nep_dist.py → setup_nep_stat_models.py} +12 -8
- nucleardatapy/matter/setup_pheno.py +121 -45
- nucleardatapy/matter/setup_pheno_esym.py +14 -19
- nucleardatapy/nuc/__init__.py +2 -2
- nucleardatapy/nuc/setup_be_exp.py +345 -333
- nucleardatapy/nuc/setup_be_theo.py +366 -178
- nucleardatapy/nuc/setup_isgmr_exp.py +4 -4
- nucleardatapy/nuc/setup_rch_exp.py +49 -6
- nucleardatapy/nuc/setup_rch_theo.py +72 -3
- nucleardatapy/nuc/{setup_nskin_exp.py → setup_rnp_exp.py} +59 -65
- nucleardatapy/nuc/{setup_nskin_theo.py → setup_rnp_theo.py} +35 -39
- nucleardatapy-1.0.0.dist-info/METADATA +553 -0
- {nucleardatapy-0.2.0.dist-info → nucleardatapy-1.0.0.dist-info}/RECORD +156 -128
- {nucleardatapy-0.2.0.dist-info → nucleardatapy-1.0.0.dist-info}/WHEEL +1 -1
- tests/test_corr_setupKsatQsat.py +3 -1
- tests/test_matter_setupMicro.py +37 -10
- nucleardatapy/data/matter/pheno/ESkyrme/BSkG1-NM.dat +0 -1002
- nucleardatapy/data/matter/pheno/ESkyrme/BSkG1-SM.dat +0 -1002
- nucleardatapy/data/matter/pheno/ESkyrme/BSkG2-NM.dat +0 -1002
- nucleardatapy/data/matter/pheno/ESkyrme/BSkG2-SM.dat +0 -1002
- nucleardatapy/fig/matter_ENM_fig.py +0 -119
- nucleardatapy/fig/matter_ESM_fig.py +0 -119
- nucleardatapy/fig/matter_Esym_fig.py +0 -122
- nucleardatapy/fig/matter_setupNEPModelDist_fig.py +0 -68
- nucleardatapy-0.2.0.dist-info/METADATA +0 -115
- /nucleardatapy/data/LandauParameters/micro/{2006-IBHF-NM-AV18.dat → 2006-EBHF-NM-AV18.dat} +0 -0
- /nucleardatapy/data/LandauParameters/micro/{2006-IBHF-SM-AV18.dat → 2006-EBHF-SM-AV18.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-BSK14.dat → 2022-GMRS-BSK14.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-BSK16.dat → 2022-GMRS-BSK16.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-DHSL59.dat → 2022-GMRS-DHSL59.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-DHSL69.dat → 2022-GMRS-DHSL69.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-F0.dat → 2022-GMRS-F0.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-H1.dat → 2022-GMRS-H1.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-H2.dat → 2022-GMRS-H2.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-H3.dat → 2022-GMRS-H3.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-H4.dat → 2022-GMRS-H4.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-H5.dat → 2022-GMRS-H5.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-H7.dat → 2022-GMRS-H7.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-LNS5.dat → 2022-GMRS-LNS5.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-RATP.dat → 2022-GMRS-RATP.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-SGII.dat → 2022-GMRS-SGII.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-SLY5.dat → 2022-GMRS-SLY5.dat} +0 -0
- /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-E2A-AM.dat → 2006-BHF-Av18-E2A-AM.dat} +0 -0
- /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-E2A-SM.dat → 2006-BHF-Av18-E2A-SM.dat} +0 -0
- /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-Esym2-SM.dat → 2006-BHF-Av18-Esym2-SM.dat} +0 -0
- /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-GAP-NM-FreeSpectrum.dat → 2006-BHF-Av18-GAP-NM-FreeSpectrum.dat} +0 -0
- /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-GAP-NM-SelfEnergy.dat → 2006-BHF-Av18-GAP-NM-SelfEnergy.dat} +0 -0
- /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-GAP-SM-FreeSpectrum.dat → 2006-BHF-Av18-GAP-SM-FreeSpectrum.dat} +0 -0
- /nucleardatapy/data/matter/micro/2006-BHF/{2006-BHF-GAP-SM-SelfEnergy.dat → 2006-BHF-Av18-GAP-SM-SelfEnergy.dat} +0 -0
- /nucleardatapy/data/matter/micro/{2013-QMC-NM.dat → 2013-MBPT-NM.dat} +0 -0
- /nucleardatapy/data/matter/micro/{2020-MBPT-NM-DHSL59.dat → 2019-MBPT-NM-DHSL59.dat} +0 -0
- /nucleardatapy/data/matter/micro/{2020-MBPT-NM-DHSL69.dat → 2019-MBPT-NM-DHSL69.dat} +0 -0
- /nucleardatapy/data/matter/micro/{2020-MBPT-SM-DHSL59.dat → 2019-MBPT-SM-DHSL59.dat} +0 -0
- /nucleardatapy/data/matter/micro/{2020-MBPT-SM-DHSL69.dat → 2019-MBPT-SM-DHSL69.dat} +0 -0
- /nucleardatapy/data/matter/micro/{2023-MBPT-NM.csv → 2020-MBPT-NM.csv} +0 -0
- /nucleardatapy/data/matter/micro/{2023-MBPT-SM.csv → 2020-MBPT-SM.csv} +0 -0
- /nucleardatapy/data/nuclei/{nskin → rnp}/208Pb.dat +0 -0
- /nucleardatapy/data/nuclei/{nskin → rnp}/48Ca.dat +0 -0
- /nucleardatapy/data/{NeutronSkin/ddrhNskin-208Pb.dat → rnp/ddrhrnp-208Pb.dat} +0 -0
- /nucleardatapy/data/{NeutronSkin/ddrhNskin-48Ca.dat → rnp/ddrhrnp-48Ca.dat} +0 -0
- /nucleardatapy/data/{NeutronSkin/nlrhNskin-208Pb.dat → rnp/nlrhrnp-208Pb.dat} +0 -0
- /nucleardatapy/data/{NeutronSkin/nlrhNskin-48Ca.dat → rnp/nlrhrnp-48Ca.dat} +0 -0
- /nucleardatapy/data/{NeutronSkin/skyrmeNskin-208Pb.dat → rnp/skyrmernp-208Pb.dat} +0 -0
- /nucleardatapy/data/{NeutronSkin/skyrmeNskin-48Ca.dat → rnp/skyrmernp-48Ca.dat} +0 -0
- {nucleardatapy-0.2.0.dist-info → nucleardatapy-1.0.0.dist-info/licenses}/LICENSE +0 -0
- {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
|
|
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
|
|
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
|
|
511
|
-
print('In S2n attribute function of setup_be_theo.py:')
|
|
512
|
-
print('Bad definition of
|
|
513
|
-
print('It is expected that
|
|
514
|
-
print('
|
|
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
|
-
|
|
521
|
-
#
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
#
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
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.
|
|
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,
|
|
636
|
+
#
|
|
637
|
+
def S2p( self, Nref = 50 ):
|
|
558
638
|
"""
|
|
559
|
-
Compute the two-proton separation energy (
|
|
560
|
-
S2p = E(Z,
|
|
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
|
|
566
|
-
print('In S2p attribute function of setup_be_exp.py:')
|
|
567
|
-
print('Bad definition of
|
|
568
|
-
print('It is expected that
|
|
569
|
-
print('
|
|
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
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
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.
|
|
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
|
-
|
|
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 (
|
|
721
|
-
|
|
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
|
|
912
|
+
if nuda.env.verb: print("Enter D3n()")
|
|
725
913
|
#
|
|
726
914
|
if Zmin > Zmax:
|
|
727
|
-
print('In
|
|
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
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
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
|
-
|
|
772
|
-
|
|
773
|
-
|
|
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
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
self.
|
|
779
|
-
self.
|
|
780
|
-
self.
|
|
781
|
-
self.
|
|
782
|
-
self.
|
|
783
|
-
self.
|
|
784
|
-
#
|
|
785
|
-
if nuda.env.verb: print("Exit
|
|
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
|
|
977
|
+
def D3p_old( self, Nmin = 1, Nmax = 95 ):
|
|
790
978
|
"""
|
|
791
|
-
Compute the three-points odd-even mass staggering (
|
|
792
|
-
|
|
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
|
|
983
|
+
if nuda.env.verb: print("Enter D3p()")
|
|
796
984
|
#
|
|
797
985
|
if Nmin > Nmax:
|
|
798
|
-
print('In
|
|
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
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
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
|
-
|
|
843
|
-
|
|
844
|
-
|
|
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
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
self.
|
|
850
|
-
self.
|
|
851
|
-
self.
|
|
852
|
-
self.
|
|
853
|
-
self.
|
|
854
|
-
self.
|
|
855
|
-
#
|
|
856
|
-
if nuda.env.verb: print("Exit
|
|
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
|