nucleardatapy 1.0.0__py3-none-any.whl → 1.0.2__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/astro/setup_mr.py +115 -33
- nucleardatapy/create_folder.py +2 -2
- nucleardatapy/crust/setup_crust.py +5 -5
- nucleardatapy/data/astro/HESS/J1731-347.dat +4 -0
- nucleardatapy/data/astro/NICER/J0030+0451.dat +6 -6
- nucleardatapy/data/astro/NICER/J0437-4715.dat +4 -3
- nucleardatapy/data/astro/NICER/J0614-3329.dat +4 -0
- nucleardatapy/data/astro/NICER/J0740+6620.dat +5 -5
- nucleardatapy/data/hnuclei/1991-2L-Yamamoto.csv +6 -0
- nucleardatapy/data/hnuclei/2013-2L-Ahn.csv +1 -1
- nucleardatapy/data/hnuclei/2019-2L-Ekawa.csv +7 -0
- nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-414-E2A.dat +21 -0
- nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-414-TD.dat +22 -0
- nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-450-E2A.dat +20 -0
- nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-450-TD.dat +22 -0
- nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-500-E2A.dat +23 -0
- nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-500-TD.dat +22 -0
- nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-414-E2A.dat +15 -0
- nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-414-TD.dat +21 -0
- nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-450-E2A.dat +15 -0
- nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-450-TD.dat +21 -0
- nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-500-E2A.dat +20 -0
- nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-500-TD.dat +20 -0
- nucleardatapy/data/matter/micro/2024-ABI-NM-DeltaNNLO450.dat +28 -0
- nucleardatapy/data/matter/micro/2024-ABI-NM-DeltaNNLO500.dat +28 -0
- nucleardatapy/data/matter/micro/2024-ABI-NM-DeltaNNLOgo394.dat +28 -0
- nucleardatapy/data/matter/micro/2024-ABI-NM-DeltaNNLOgo450.dat +28 -0
- nucleardatapy/data/matter/micro/2024-ABI-NM-NNLOsat.dat +28 -0
- nucleardatapy/data/matter/micro/2024-ABI-SM-DeltaNNLO450.dat +28 -0
- nucleardatapy/data/matter/micro/2024-ABI-SM-DeltaNNLO500.dat +28 -0
- nucleardatapy/data/matter/micro/2024-ABI-SM-DeltaNNLOgo394.dat +28 -0
- nucleardatapy/data/matter/micro/2024-ABI-SM-DeltaNNLOgo450.dat +28 -0
- nucleardatapy/data/matter/micro/2024-ABI-SM-NNLOsat.dat +28 -0
- nucleardatapy/fig/astro_setupGW_fig.py +4 -2
- nucleardatapy/fig/astro_setupMR_fig.py +14 -8
- nucleardatapy/fig/astro_setupMasses_fig.py +4 -2
- nucleardatapy/fig/astro_setupMtov_fig.py +6 -2
- nucleardatapy/fig/astro_setupMup_fig.py +4 -2
- nucleardatapy/fig/corr_setupEsymDen_fig.py +10 -4
- nucleardatapy/fig/corr_setupEsymLsym_fig.py +7 -3
- nucleardatapy/fig/corr_setupKsatQsat_fig.py +4 -2
- nucleardatapy/fig/crust_setupCrust_fig.py +6 -4
- nucleardatapy/fig/eos_setupAMBeq_fig.py +162 -134
- nucleardatapy/fig/eos_setupAMLeq_fig.py +35 -32
- nucleardatapy/fig/eos_setupAM_asy_lep_fig.py +39 -30
- nucleardatapy/fig/eos_setupAM_asy_nuc_fig.py +39 -30
- nucleardatapy/fig/eos_setupAM_asy_tot_fig.py +39 -30
- nucleardatapy/fig/eos_setupAM_fig.py +45 -30
- nucleardatapy/fig/eos_setupCC_fig.py +54 -24
- nucleardatapy/fig/hnuc_setupChart_fig.py +20 -16
- nucleardatapy/fig/hnuc_setupRE1LExp_fig.py +12 -2
- nucleardatapy/fig/matter_all_fig.py +55 -38
- nucleardatapy/fig/matter_setupCheck_fig.py +6 -3
- nucleardatapy/fig/matter_setupFFGLep_fig.py +13 -9
- nucleardatapy/fig/matter_setupFFGNuc_fig.py +22 -14
- nucleardatapy/fig/matter_setupHIC_fig.py +9 -9
- nucleardatapy/fig/matter_setupMicroEsym_fig.py +31 -30
- nucleardatapy/fig/matter_setupMicro_LP_fig.py +11 -5
- nucleardatapy/fig/matter_setupMicro_band_fig.py +11 -6
- nucleardatapy/fig/matter_setupMicro_effmass_fig.py +5 -4
- nucleardatapy/fig/matter_setupMicro_err_NM_fig.py +4 -2
- nucleardatapy/fig/matter_setupMicro_fig.py +30 -22
- nucleardatapy/fig/matter_setupMicro_gap_fig.py +22 -12
- nucleardatapy/fig/matter_setupNEPStats_fig.py +13 -3
- nucleardatapy/fig/matter_setupPhenoEsym_fig.py +28 -27
- nucleardatapy/fig/matter_setupPheno_fig.py +22 -17
- nucleardatapy/fig/nuc_setupBEExp_chart_fig.py +67 -37
- nucleardatapy/fig/nuc_setupBEExp_fig.py +49 -46
- nucleardatapy/fig/nuc_setupBETheo_fig.py +55 -50
- nucleardatapy/fig/nuc_setupISGMRExp_fig.py +7 -10
- nucleardatapy/fig/nuc_setupRchExp_fig.py +12 -20
- nucleardatapy/fig/nuc_setupRchTheo_fig.py +16 -20
- nucleardatapy/fig/nuc_setupRnpExp_fig.py +12 -0
- nucleardatapy/fig/nuc_setupRnpTheo_fig.py +14 -2
- nucleardatapy/hnuc/setup_re2L_exp.py +30 -7
- nucleardatapy/matter/setup_micro.py +424 -12
- nucleardatapy/matter/setup_micro_band.py +1 -1
- nucleardatapy/matter/setup_micro_esym.py +46 -42
- nucleardatapy/matter/setup_nep.py +1 -1
- nucleardatapy/matter/setup_pheno.py +10 -6
- nucleardatapy/matter/setup_pheno_esym.py +14 -6
- nucleardatapy/nuc/setup_be_exp.py +4 -2
- nucleardatapy/nuc/setup_be_theo.py +101 -215
- {nucleardatapy-1.0.0.dist-info → nucleardatapy-1.0.2.dist-info}/METADATA +1 -1
- {nucleardatapy-1.0.0.dist-info → nucleardatapy-1.0.2.dist-info}/RECORD +88 -62
- {nucleardatapy-1.0.0.dist-info → nucleardatapy-1.0.2.dist-info}/WHEEL +1 -1
- {nucleardatapy-1.0.0.dist-info → nucleardatapy-1.0.2.dist-info}/licenses/LICENSE +0 -0
- {nucleardatapy-1.0.0.dist-info → nucleardatapy-1.0.2.dist-info}/top_level.txt +0 -0
|
@@ -103,6 +103,7 @@ class setupBETheo():
|
|
|
103
103
|
#self.nucBE = self.nucBE2A * self.nucA
|
|
104
104
|
self.nucBE = conversionMBE(self.nucMass,self.nucN,self.nucZ)
|
|
105
105
|
self.nucBE2A = self.nucBE / self.nucA
|
|
106
|
+
self.Zmin = int( min( self.nucZ ) )
|
|
106
107
|
self.Zmax = int( max( self.nucZ ) )
|
|
107
108
|
#
|
|
108
109
|
elif table.lower()=='1988-mj':
|
|
@@ -121,6 +122,7 @@ class setupBETheo():
|
|
|
121
122
|
#self.nucBE = self.nucBE2A * self.nucA
|
|
122
123
|
self.nucBE = conversionMBE(self.nucMass,self.nucN,self.nucZ)
|
|
123
124
|
self.nucBE2A = self.nucBE / self.nucA
|
|
125
|
+
self.Zmin = int( min( self.nucZ ) )
|
|
124
126
|
self.Zmax = int( max( self.nucZ ) )
|
|
125
127
|
#
|
|
126
128
|
elif table.lower()=='1995-dz':
|
|
@@ -139,6 +141,7 @@ class setupBETheo():
|
|
|
139
141
|
#self.nucBE = self.nucBE2A * self.nucA
|
|
140
142
|
self.nucBE = conversionMBE(self.nucMass,self.nucN,self.nucZ)
|
|
141
143
|
self.nucBE2A = self.nucBE / self.nucA
|
|
144
|
+
self.Zmin = int( min( self.nucZ ) )
|
|
142
145
|
self.Zmax = int( max( self.nucZ ) )
|
|
143
146
|
#
|
|
144
147
|
elif table.lower()=='1995-etfsi':
|
|
@@ -157,6 +160,7 @@ class setupBETheo():
|
|
|
157
160
|
#self.nucBE = self.nucBE2A * self.nucA
|
|
158
161
|
self.nucBE = conversionMBE(self.nucMass,self.nucN,self.nucZ)
|
|
159
162
|
self.nucBE2A = self.nucBE / self.nucA
|
|
163
|
+
self.Zmin = int( min( self.nucZ ) )
|
|
160
164
|
self.Zmax = int( max( self.nucZ ) )
|
|
161
165
|
#
|
|
162
166
|
elif table.lower()=='1995-frdm':
|
|
@@ -220,6 +224,7 @@ class setupBETheo():
|
|
|
220
224
|
self.nucBE = conversionMBE(self.nucMass,self.nucN,self.nucZ)
|
|
221
225
|
self.nucBE2A = self.nucBE / self.nucA
|
|
222
226
|
#print('nucZ:',self.nucZ)
|
|
227
|
+
self.Zmin = min( self.nucZ )
|
|
223
228
|
self.Zmax = max( self.nucZ )
|
|
224
229
|
#
|
|
225
230
|
elif table.lower()=='2005-ktuy':
|
|
@@ -238,6 +243,7 @@ class setupBETheo():
|
|
|
238
243
|
#self.nucBE = self.nucBE2A * self.nucA
|
|
239
244
|
self.nucBE = conversionMBE(self.nucMass,self.nucN,self.nucZ)
|
|
240
245
|
self.nucBE2A = self.nucBE / self.nucA
|
|
246
|
+
self.Zmin = int( min( self.nucZ ) )
|
|
241
247
|
self.Zmax = int( max( self.nucZ ) )
|
|
242
248
|
#
|
|
243
249
|
elif table.lower()=='2007-hfb14':
|
|
@@ -256,6 +262,7 @@ class setupBETheo():
|
|
|
256
262
|
#self.nucBE = self.nucBE2A * self.nucA
|
|
257
263
|
self.nucBE = conversionMBE(self.nucMass,self.nucN,self.nucZ)
|
|
258
264
|
self.nucBE2A = self.nucBE / self.nucA
|
|
265
|
+
self.Zmin = int( min( self.nucZ ) )
|
|
259
266
|
self.Zmax = int( max( self.nucZ ) )
|
|
260
267
|
#
|
|
261
268
|
elif table.lower()=='2010-hfb21':
|
|
@@ -277,6 +284,7 @@ class setupBETheo():
|
|
|
277
284
|
#self.nucBE = self.Mcal * self.nucA
|
|
278
285
|
self.nucBE = conversionMBE(self.nucMass,self.nucN,self.nucZ)
|
|
279
286
|
self.nucBE2A = self.nucBE / self.nucA
|
|
287
|
+
self.Zmin = int( min( self.nucZ ) )
|
|
280
288
|
self.Zmax = int( max( self.nucZ ) )
|
|
281
289
|
#
|
|
282
290
|
elif table.lower()=='2010-ws*':
|
|
@@ -295,6 +303,7 @@ class setupBETheo():
|
|
|
295
303
|
#self.nucBE = self.nucBE2A * self.nucA
|
|
296
304
|
self.nucBE = conversionMBE(self.nucMass,self.nucN,self.nucZ)
|
|
297
305
|
self.nucBE2A = self.nucBE / self.nucA
|
|
306
|
+
self.Zmin = int( min( self.nucZ ) )
|
|
298
307
|
self.Zmax = int( max( self.nucZ ) )
|
|
299
308
|
#
|
|
300
309
|
elif table.lower()=='2011-ws3':
|
|
@@ -313,6 +322,7 @@ class setupBETheo():
|
|
|
313
322
|
#self.nucBE = self.nucBE2A * self.nucA
|
|
314
323
|
self.nucBE = conversionMBE(self.nucMass,self.nucN,self.nucZ)
|
|
315
324
|
self.nucBE2A = self.nucBE / self.nucA
|
|
325
|
+
self.Zmin = int( min( self.nucZ ) )
|
|
316
326
|
self.Zmax = int( max( self.nucZ ) )
|
|
317
327
|
#
|
|
318
328
|
elif table.lower()=='2013-hfb22':
|
|
@@ -331,6 +341,7 @@ class setupBETheo():
|
|
|
331
341
|
#self.nucBE = self.nucBE2A * self.nucA
|
|
332
342
|
self.nucBE = conversionMBE(self.nucMass,self.nucN,self.nucZ)
|
|
333
343
|
self.nucBE2A = self.nucBE / self.nucA
|
|
344
|
+
self.Zmin = int( min( self.nucZ ) )
|
|
334
345
|
self.Zmax = int( max( self.nucZ ) )
|
|
335
346
|
#
|
|
336
347
|
elif table.lower()=='2013-hfb23':
|
|
@@ -349,6 +360,7 @@ class setupBETheo():
|
|
|
349
360
|
#self.nucBE = self.nucBE2A * self.nucA
|
|
350
361
|
self.nucBE = conversionMBE(self.nucMass,self.nucN,self.nucZ)
|
|
351
362
|
self.nucBE2A = self.nucBE / self.nucA
|
|
363
|
+
self.Zmin = int( min( self.nucZ ) )
|
|
352
364
|
self.Zmax = int( max( self.nucZ ) )
|
|
353
365
|
#
|
|
354
366
|
elif table.lower()=='2013-hfb24':
|
|
@@ -367,6 +379,7 @@ class setupBETheo():
|
|
|
367
379
|
#self.nucBE = self.nucBE2A * self.nucA
|
|
368
380
|
self.nucBE = conversionMBE(self.nucMass,self.nucN,self.nucZ)
|
|
369
381
|
self.nucBE2A = self.nucBE / self.nucA
|
|
382
|
+
self.Zmin = int( min( self.nucZ ) )
|
|
370
383
|
self.Zmax = int( max( self.nucZ ) )
|
|
371
384
|
#
|
|
372
385
|
elif table.lower()=='2013-hfb25':
|
|
@@ -385,6 +398,7 @@ class setupBETheo():
|
|
|
385
398
|
#self.nucBE = self.nucBE2A * self.nucA
|
|
386
399
|
self.nucBE = conversionMBE(self.nucMass,self.nucN,self.nucZ)
|
|
387
400
|
self.nucBE2A = self.nucBE / self.nucA
|
|
401
|
+
self.Zmin = int( min( self.nucZ ) )
|
|
388
402
|
self.Zmax = int( max( self.nucZ ) )
|
|
389
403
|
#
|
|
390
404
|
elif table.lower()=='2013-hfb26':
|
|
@@ -403,6 +417,7 @@ class setupBETheo():
|
|
|
403
417
|
#self.nucBE = self.nucBE2A * self.nucA
|
|
404
418
|
self.nucBE = conversionMBE(self.nucMass,self.nucN,self.nucZ)
|
|
405
419
|
self.nucBE2A = self.nucBE / self.nucA
|
|
420
|
+
self.Zmin = int( min( self.nucZ ) )
|
|
406
421
|
self.Zmax = int( max( self.nucZ ) )
|
|
407
422
|
#
|
|
408
423
|
elif table.lower()=='2021-bskg1':
|
|
@@ -424,6 +439,7 @@ class setupBETheo():
|
|
|
424
439
|
#self.nucBE = self.nucBE2A * self.nucA
|
|
425
440
|
self.nucBE = conversionMBE(self.nucMass,self.nucN,self.nucZ)
|
|
426
441
|
self.nucBE2A = self.nucBE / self.nucA
|
|
442
|
+
self.Zmin = int( min( self.nucZ ) )
|
|
427
443
|
self.Zmax = int( max( self.nucZ ) )
|
|
428
444
|
#
|
|
429
445
|
elif table.lower()=='2022-bskg2':
|
|
@@ -445,6 +461,7 @@ class setupBETheo():
|
|
|
445
461
|
#self.nucBE = self.nucBE2A * self.nucA
|
|
446
462
|
self.nucBE = conversionMBE(self.nucMass,self.nucN,self.nucZ)
|
|
447
463
|
self.nucBE2A = self.nucBE / self.nucA
|
|
464
|
+
self.Zmin = int( min( self.nucZ ) )
|
|
448
465
|
self.Zmax = int( max( self.nucZ ) )
|
|
449
466
|
#
|
|
450
467
|
elif table.lower()=='2023-bskg3':
|
|
@@ -466,6 +483,7 @@ class setupBETheo():
|
|
|
466
483
|
#self.nucBE = self.nucBE2A * self.nucA
|
|
467
484
|
self.nucBE = conversionMBE(self.nucMass,self.nucN,self.nucZ)
|
|
468
485
|
self.nucBE2A = self.nucBE / self.nucA
|
|
486
|
+
self.Zmin = int( min( self.nucZ ) )
|
|
469
487
|
self.Zmax = int( max( self.nucZ ) )
|
|
470
488
|
#
|
|
471
489
|
elif table.lower()=='2025-bskg4':
|
|
@@ -487,6 +505,7 @@ class setupBETheo():
|
|
|
487
505
|
#self.nucBE = self.nucBE2A * self.nucA
|
|
488
506
|
self.nucBE = conversionMBE(self.nucMass,self.nucN,self.nucZ)
|
|
489
507
|
self.nucBE2A = self.nucBE / self.nucA
|
|
508
|
+
self.Zmin = int( min( self.nucZ ) )
|
|
490
509
|
self.Zmax = int( max( self.nucZ ) )
|
|
491
510
|
#
|
|
492
511
|
self.nucI = ( self.nucN - self.nucZ ) / self.nucA
|
|
@@ -525,6 +544,8 @@ class setupBETheo():
|
|
|
525
544
|
#
|
|
526
545
|
if nuda.env.verb: print("Enter isotopes()")
|
|
527
546
|
#
|
|
547
|
+
self.Zref = Zref
|
|
548
|
+
#
|
|
528
549
|
if Zref < 0:
|
|
529
550
|
print('setup_be_exp.py: issue with the function isotopes.')
|
|
530
551
|
print('setup_be_exp.py: Bad definition for Zref')
|
|
@@ -547,6 +568,8 @@ class setupBETheo():
|
|
|
547
568
|
self.itp_nucNmin = nucNmin
|
|
548
569
|
self.itp_nucNmax = nucNmax
|
|
549
570
|
#
|
|
571
|
+
#print('Nmin,Nmax:',nucNmin,nucNmax)
|
|
572
|
+
#
|
|
550
573
|
if nuda.env.verb: print("Exit isotopes()")
|
|
551
574
|
#
|
|
552
575
|
return self
|
|
@@ -563,6 +586,8 @@ class setupBETheo():
|
|
|
563
586
|
#
|
|
564
587
|
if nuda.env.verb: print("Enter isotones()")
|
|
565
588
|
#
|
|
589
|
+
self.Nref = Nref
|
|
590
|
+
#
|
|
566
591
|
if Nref < 0:
|
|
567
592
|
print('setup_be_exp.py: issue with the function isotones.')
|
|
568
593
|
print('setup_be_exp.py: Bad definition for Nref')
|
|
@@ -589,7 +614,7 @@ class setupBETheo():
|
|
|
589
614
|
#
|
|
590
615
|
return self
|
|
591
616
|
#
|
|
592
|
-
def S2n( self
|
|
617
|
+
def S2n( self ):
|
|
593
618
|
"""
|
|
594
619
|
Compute the two-neutron separation energy (S2n)
|
|
595
620
|
S2n = E(Z,N)-E(Z,N-2)
|
|
@@ -597,16 +622,17 @@ class setupBETheo():
|
|
|
597
622
|
#
|
|
598
623
|
if nuda.env.verb: print("Enter S2n()")
|
|
599
624
|
#
|
|
600
|
-
if Zref < 0:
|
|
625
|
+
if self.Zref < 0:
|
|
601
626
|
print('setup_be_theo: In S2n attribute function of setup_be_theo.py:')
|
|
602
627
|
print('setup_be_theo: Bad definition of Zref')
|
|
603
628
|
print('setup_be_theo: It is expected that Zref>=0')
|
|
604
|
-
print('setup_be_theo: Zref:',Zref)
|
|
629
|
+
print('setup_be_theo: Zref:',self.Zref)
|
|
605
630
|
print('setup_be_theo: exit')
|
|
606
631
|
exit()
|
|
607
632
|
#
|
|
608
633
|
S2n_N = []
|
|
609
634
|
S2n_E = []
|
|
635
|
+
S2n_Z = []
|
|
610
636
|
#
|
|
611
637
|
Nmin=self.itp_nucNmin
|
|
612
638
|
Nmax=self.itp_nucNmax
|
|
@@ -617,24 +643,29 @@ class setupBETheo():
|
|
|
617
643
|
#
|
|
618
644
|
for ind,Z in enumerate(self.nucZ):
|
|
619
645
|
#
|
|
620
|
-
if Z == Zref and self.nucN[ind] == N:
|
|
646
|
+
if Z == self.Zref and self.nucN[ind] == N:
|
|
621
647
|
indN = ind
|
|
622
648
|
flagN = True
|
|
623
|
-
if Z == Zref and self.nucN[ind] == N-2:
|
|
649
|
+
if Z == self.Zref and self.nucN[ind] == N-2:
|
|
624
650
|
indNm2 = ind
|
|
625
651
|
flagNm2 = True
|
|
626
652
|
#
|
|
627
653
|
if flagN and flagNm2:
|
|
628
654
|
S2n_N.append( N )
|
|
655
|
+
S2n_Z.append( self.Zref )
|
|
629
656
|
S2n_E.append( self.nucBE[indN] - self.nucBE[indNm2] )
|
|
630
657
|
self.S2n_N = np.array( S2n_N, dtype = int )
|
|
658
|
+
self.S2n_Z = np.array( S2n_Z, dtype = int )
|
|
631
659
|
self.S2n_E = np.array( S2n_E, dtype = float )
|
|
632
660
|
#
|
|
661
|
+
#print('S2n_N:',self.S2n_N)
|
|
662
|
+
#print('S2n_Z:',self.S2n_Z)
|
|
663
|
+
#
|
|
633
664
|
if nuda.env.verb: print("Exit S2n()")
|
|
634
665
|
#
|
|
635
666
|
return self
|
|
636
667
|
#
|
|
637
|
-
def S2p( self
|
|
668
|
+
def S2p( self ):
|
|
638
669
|
"""
|
|
639
670
|
Compute the two-proton separation energy (S2p)
|
|
640
671
|
S2p(Z,Nref) = E(Z,Nref)-E(Z-2,Nref)
|
|
@@ -642,16 +673,17 @@ class setupBETheo():
|
|
|
642
673
|
#
|
|
643
674
|
if nuda.env.verb: print("Enter S2p()")
|
|
644
675
|
#
|
|
645
|
-
if Nref < 0:
|
|
676
|
+
if self.Nref < 0:
|
|
646
677
|
print('setup_be_exp.py: In S2p attribute function of setup_be_exp.py:')
|
|
647
678
|
print('setup_be_exp.py: Bad definition of Nref')
|
|
648
679
|
print('setup_be_exp.py: It is expected that Nref>=0')
|
|
649
|
-
print('setup_be_exp.py: Nref:',Nref)
|
|
680
|
+
print('setup_be_exp.py: Nref:',self.Nref)
|
|
650
681
|
print('setup_be_exp.py: exit')
|
|
651
682
|
exit()
|
|
652
683
|
#
|
|
653
684
|
S2p_Z = []
|
|
654
685
|
S2p_E = []
|
|
686
|
+
S2p_N = []
|
|
655
687
|
#
|
|
656
688
|
Zmin=self.itn_nucZmin
|
|
657
689
|
Zmax=self.itn_nucZmax
|
|
@@ -662,44 +694,48 @@ class setupBETheo():
|
|
|
662
694
|
#
|
|
663
695
|
for ind,N in enumerate(self.nucN):
|
|
664
696
|
#
|
|
665
|
-
if N == Nref and self.nucZ[ind] == Z:
|
|
697
|
+
if N == self.Nref and self.nucZ[ind] == Z:
|
|
666
698
|
indZ = ind
|
|
667
699
|
flagZ = True
|
|
668
|
-
if N == Nref and self.nucZ[ind] == Z-2:
|
|
700
|
+
if N == self.Nref and self.nucZ[ind] == Z-2:
|
|
669
701
|
indZm2 = ind
|
|
670
702
|
flagZm2 = True
|
|
671
703
|
#
|
|
672
704
|
if flagZ and flagZm2:
|
|
673
705
|
S2p_Z.append( Z )
|
|
706
|
+
S2p_N.append( self.Nref )
|
|
674
707
|
S2p_E.append( self.nucBE[indZ] - self.nucBE[indZm2] )
|
|
675
708
|
self.S2p_Z = np.array( S2p_Z, dtype = int )
|
|
709
|
+
self.S2p_N = np.array( S2p_N, dtype = int )
|
|
676
710
|
self.S2p_E = np.array( S2p_E, dtype = float )
|
|
677
711
|
#
|
|
678
712
|
if nuda.env.verb: print("Exit S2p()")
|
|
679
713
|
#
|
|
680
714
|
return self
|
|
681
715
|
#
|
|
682
|
-
def drip_S2n(self
|
|
716
|
+
def drip_S2n(self):
|
|
683
717
|
"""
|
|
684
718
|
Method which find the drip-line nuclei from S2n (neutron side).
|
|
685
719
|
|
|
686
|
-
:param
|
|
687
|
-
:type
|
|
688
|
-
:param Zmax: Fix the maximum charge for the search of the neutron drip line.
|
|
689
|
-
:type Zmax: int, optional. Default: 95.
|
|
720
|
+
:param Zref: Fix the charge for the search of isotopes.
|
|
721
|
+
:type Zref: int, optional. Default: 50.
|
|
690
722
|
|
|
691
723
|
**Attributes:**
|
|
692
724
|
"""
|
|
693
725
|
#
|
|
694
726
|
if nuda.env.verb: print("Enter drip_S2n()")
|
|
695
727
|
#
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
728
|
+
#print('Zref:',self.Zref)
|
|
729
|
+
#print('self.nucZ:',self.nucZ)
|
|
730
|
+
#print('self.nucN:',self.nucN)
|
|
731
|
+
#
|
|
732
|
+
if self.Zref not in self.nucZ:
|
|
733
|
+
print('setup_be_theo: In drip_S2n attribute function of setup_be_theo.py:')
|
|
734
|
+
print('setup_be_theo: Zref is not in self.nucZ')
|
|
735
|
+
print('setup_be_theo: Zref:',self.Zref)
|
|
736
|
+
print('setup_be_theo: self.nucZ:',self.nucZ)
|
|
737
|
+
print('setup_be_theo: exit')
|
|
738
|
+
exit()
|
|
703
739
|
#
|
|
704
740
|
if not any(self.S2n_Z):
|
|
705
741
|
print('setup_be_theo: In drip_S2n attribute function of setup_be_theo.py:')
|
|
@@ -707,53 +743,52 @@ class setupBETheo():
|
|
|
707
743
|
print('setup_be_theo: exit')
|
|
708
744
|
exit()
|
|
709
745
|
#
|
|
710
|
-
#Nstable, Zstable = stable_fit( Zmin = Zmin, Zmax = Zmax )
|
|
711
|
-
#
|
|
712
746
|
self.drip_S2n_Z = []
|
|
713
747
|
self.drip_S2n_N = []
|
|
714
748
|
#
|
|
749
|
+
#print("S2n_Z:",self.S2n_Z)
|
|
750
|
+
#print("S2n_N:",self.S2n_N)
|
|
751
|
+
#print("S2n_E:",self.S2n_E)
|
|
752
|
+
#
|
|
753
|
+
Nmax = 0
|
|
715
754
|
for ind,Z in enumerate(self.S2n_Z):
|
|
716
755
|
#
|
|
717
|
-
if
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
#
|
|
725
|
-
for ind2,Z2 in enumerate(self.S2n_Z):
|
|
726
|
-
if Z2 == Z and self.S2n_N[ind2] > Nmax and self.S2n[ind2] > 0.0:
|
|
727
|
-
Nmax = self.S2n_N[ind2]
|
|
728
|
-
self.drip_S2n_Z.append( Z )
|
|
729
|
-
self.drip_S2n_N.append( Nmax )
|
|
756
|
+
if self.S2n_N[ind] > Nmax and self.S2n_E[ind] > 0.0:
|
|
757
|
+
Nmax = self.S2n_N[ind]
|
|
758
|
+
self.drip_S2n_Z = Z
|
|
759
|
+
self.drip_S2n_N = Nmax
|
|
760
|
+
#
|
|
761
|
+
#print('drip_S2n_Z',self.drip_S2n_Z)
|
|
762
|
+
#print('drip_S2n_N',self.drip_S2n_N)
|
|
730
763
|
#
|
|
731
764
|
if nuda.env.verb: print("Exit drip_S2n()")
|
|
732
765
|
#
|
|
733
766
|
return self
|
|
734
767
|
#
|
|
735
768
|
#
|
|
736
|
-
def drip_S2p(self
|
|
769
|
+
def drip_S2p(self ):
|
|
737
770
|
"""
|
|
738
771
|
Method which find the drip-line nuclei from S2p (proton side).
|
|
739
772
|
|
|
740
|
-
:param
|
|
741
|
-
:type
|
|
742
|
-
:param Nmax: Fix the maximum neutron number for the search of the proton drip line.
|
|
743
|
-
:type Nmax: int, optional. Default: 95.
|
|
773
|
+
:param Nref: Fix the charge for the search of isotones.
|
|
774
|
+
:type Nref: int, optional. Default: 50.
|
|
744
775
|
|
|
745
776
|
**Attributes:**
|
|
746
777
|
"""
|
|
747
778
|
#
|
|
748
779
|
if nuda.env.verb: print("Enter drip_S2p()")
|
|
749
780
|
#
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
781
|
+
#print('Nref:',self.Nref)
|
|
782
|
+
#print('self.nucZ:',self.nucZ)
|
|
783
|
+
#print('self.nucN:',self.nucN)
|
|
784
|
+
#
|
|
785
|
+
if self.Nref not in self.nucN:
|
|
786
|
+
print('setup_be_theo: In drip_S2p attribute function of setup_be_theo.py:')
|
|
787
|
+
print('setup_be_theo: Nref is not in self.nucN')
|
|
788
|
+
print('setup_be_theo: Nref:',self.Nref)
|
|
789
|
+
print('setup_be_theo: self.nucN:',self.nucN)
|
|
790
|
+
print('setup_be_theo: exit')
|
|
791
|
+
exit()
|
|
757
792
|
#
|
|
758
793
|
if not any(self.S2p_N):
|
|
759
794
|
print('setup_be_theo: In drip_S2p attribute function of setup_be_theo.py:')
|
|
@@ -764,26 +799,19 @@ class setupBETheo():
|
|
|
764
799
|
self.drip_S2p_Z = []
|
|
765
800
|
self.drip_S2p_N = []
|
|
766
801
|
#
|
|
802
|
+
Zmax = 0
|
|
767
803
|
for ind,N in enumerate(self.S2p_N):
|
|
768
804
|
#
|
|
769
|
-
if
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
#
|
|
774
|
-
Zmax = 0
|
|
775
|
-
#
|
|
776
|
-
for ind2,N2 in enumerate(self.S2p_N):
|
|
777
|
-
if N2 == N and self.S2p_Z[ind2] > Zmax and self.S2p[ind2] > 0.0:
|
|
778
|
-
Zmax = self.S2p_Z[ind2]
|
|
779
|
-
self.drip_S2p_N.append( N )
|
|
780
|
-
self.drip_S2p_Z.append( Zmax )
|
|
805
|
+
if self.S2p_Z[ind] > Zmax and self.S2p_E[ind] > 0.0:
|
|
806
|
+
Zmax = self.S2p_Z[ind]
|
|
807
|
+
self.drip_S2p_N = N
|
|
808
|
+
self.drip_S2p_Z = Zmax
|
|
781
809
|
#
|
|
782
810
|
if nuda.env.verb: print("Exit drip_S2p()")
|
|
783
811
|
#
|
|
784
812
|
return self
|
|
785
813
|
#
|
|
786
|
-
def D3n( self
|
|
814
|
+
def D3n( self ):
|
|
787
815
|
"""
|
|
788
816
|
Compute the three-points odd-even mass staggering (D3n)
|
|
789
817
|
D3n = (-)**N * ( 2*E(Z,N)-E(Z,N+1)-E(Z,N-1) ) / 2
|
|
@@ -791,11 +819,11 @@ class setupBETheo():
|
|
|
791
819
|
#
|
|
792
820
|
if nuda.env.verb: print("Enter D3n()")
|
|
793
821
|
#
|
|
794
|
-
if Zref < 0:
|
|
822
|
+
if self.Zref < 0:
|
|
795
823
|
print('setup_be_theo: In D3n attribute function of setup_be_theo.py:')
|
|
796
824
|
print('setup_be_theo: Bad definition of Zref')
|
|
797
825
|
print('setup_be_theo: It is expected that Zref>=0')
|
|
798
|
-
print('setup_be_theo: Zref:',Zref)
|
|
826
|
+
print('setup_be_theo: Zref:',self.Zref)
|
|
799
827
|
print('setup_be_theo: exit')
|
|
800
828
|
exit()
|
|
801
829
|
#
|
|
@@ -813,17 +841,17 @@ class setupBETheo():
|
|
|
813
841
|
#
|
|
814
842
|
for ind,Z in enumerate(self.nucZ):
|
|
815
843
|
#
|
|
816
|
-
if Z == Zref and self.nucN[ind] == N:
|
|
844
|
+
if Z == self.Zref and self.nucN[ind] == N:
|
|
817
845
|
indN = ind
|
|
818
846
|
flagN = True
|
|
819
847
|
if N % 2:
|
|
820
848
|
sign = -1.0 # odd
|
|
821
849
|
else:
|
|
822
850
|
sign = 1.0 # even
|
|
823
|
-
if Z == Zref and self.nucN[ind] == N-1:
|
|
851
|
+
if Z == self.Zref and self.nucN[ind] == N-1:
|
|
824
852
|
indNm1 = ind
|
|
825
853
|
flagNm1 = True
|
|
826
|
-
if Z == Zref and self.nucN[ind] == N+1:
|
|
854
|
+
if Z == self.Zref and self.nucN[ind] == N+1:
|
|
827
855
|
indNp1 = ind
|
|
828
856
|
flagNp1 = True
|
|
829
857
|
#
|
|
@@ -843,7 +871,7 @@ class setupBETheo():
|
|
|
843
871
|
#
|
|
844
872
|
return self
|
|
845
873
|
#
|
|
846
|
-
def D3p( self
|
|
874
|
+
def D3p( self ):
|
|
847
875
|
"""
|
|
848
876
|
Compute the three-points odd-even mass staggering (D3n)
|
|
849
877
|
D3p = (-)**Z * ( 2*E(Z,N)-E(Z+1,N)-E(Z-1,N) ) / 2
|
|
@@ -851,11 +879,11 @@ class setupBETheo():
|
|
|
851
879
|
#
|
|
852
880
|
if nuda.env.verb: print("Enter D3p()")
|
|
853
881
|
#
|
|
854
|
-
if Nref < 0:
|
|
882
|
+
if self.Nref < 0:
|
|
855
883
|
print('setup_be_theo: In D3p attribute function of setup_be_theo.py:')
|
|
856
884
|
print('setup_be_theo: Bad definition of Nref')
|
|
857
885
|
print('setup_be_theo: It is expected that Nref>=0')
|
|
858
|
-
print('setup_be_theo: Nref:',Nref)
|
|
886
|
+
print('setup_be_theo: Nref:',self.Nref)
|
|
859
887
|
print('setup_be_theo: exit')
|
|
860
888
|
exit()
|
|
861
889
|
#
|
|
@@ -873,17 +901,17 @@ class setupBETheo():
|
|
|
873
901
|
#
|
|
874
902
|
for ind,N in enumerate(self.nucN):
|
|
875
903
|
#
|
|
876
|
-
if N == Nref and self.nucZ[ind] == Z:
|
|
904
|
+
if N == self.Nref and self.nucZ[ind] == Z:
|
|
877
905
|
indZ = ind
|
|
878
906
|
flagZ = True
|
|
879
907
|
if Z % 2:
|
|
880
908
|
sign = -1.0 # odd
|
|
881
909
|
else:
|
|
882
910
|
sign = 1.0 # even
|
|
883
|
-
if N == Nref and self.nucZ[ind] == Z-1:
|
|
911
|
+
if N == self.Nref and self.nucZ[ind] == Z-1:
|
|
884
912
|
indZm1 = ind
|
|
885
913
|
flagZm1 = True
|
|
886
|
-
if N == Nref and self.nucZ[ind] == Z+1:
|
|
914
|
+
if N == self.Nref and self.nucZ[ind] == Z+1:
|
|
887
915
|
indZp1 = ind
|
|
888
916
|
flagZp1 = True
|
|
889
917
|
#
|
|
@@ -903,148 +931,6 @@ class setupBETheo():
|
|
|
903
931
|
#
|
|
904
932
|
return self
|
|
905
933
|
#
|
|
906
|
-
def D3n_old( self, Zmin = 1, Zmax = 95 ):
|
|
907
|
-
"""
|
|
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
|
|
910
|
-
"""
|
|
911
|
-
#
|
|
912
|
-
if nuda.env.verb: print("Enter D3n()")
|
|
913
|
-
#
|
|
914
|
-
if Zmin > Zmax:
|
|
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')
|
|
920
|
-
exit()
|
|
921
|
-
#
|
|
922
|
-
D3n_Z_even = []
|
|
923
|
-
D3n_Z_odd = []
|
|
924
|
-
D3n_N_even = []
|
|
925
|
-
D3n_N_odd = []
|
|
926
|
-
D3n_even = []
|
|
927
|
-
D3n_odd = []
|
|
928
|
-
#
|
|
929
|
-
for ind,Z in enumerate(self.nucZ):
|
|
930
|
-
#
|
|
931
|
-
if Z > Zmax :
|
|
932
|
-
continue
|
|
933
|
-
if Z < Zmin :
|
|
934
|
-
continue
|
|
935
|
-
#
|
|
936
|
-
N = self.nucN[ind]
|
|
937
|
-
#
|
|
938
|
-
if N % 2 == 0:
|
|
939
|
-
sign = 1.0 #even
|
|
940
|
-
else:
|
|
941
|
-
sign = -1.0 # odd
|
|
942
|
-
#
|
|
943
|
-
#print('For Z,N:',Z,N)
|
|
944
|
-
#
|
|
945
|
-
# search index for Z,N+2
|
|
946
|
-
#
|
|
947
|
-
flag_find1 = 0
|
|
948
|
-
for ind1,Z1 in enumerate(self.nucZ):
|
|
949
|
-
if Z == Z1 and self.nucN[ind1] == N+1:
|
|
950
|
-
flag_find1 = 1
|
|
951
|
-
break
|
|
952
|
-
flag_find2 = 0
|
|
953
|
-
for ind2,Z2 in enumerate(self.nucZ):
|
|
954
|
-
if Z == Z2 and self.nucN[ind2] == N-1:
|
|
955
|
-
flag_find2 = 1
|
|
956
|
-
break
|
|
957
|
-
if flag_find1*flag_find2 == 1:
|
|
958
|
-
if sign > 0: #even
|
|
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] ) )
|
|
962
|
-
else:
|
|
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()")
|
|
974
|
-
#
|
|
975
|
-
return self
|
|
976
|
-
#
|
|
977
|
-
def D3p_old( self, Nmin = 1, Nmax = 95 ):
|
|
978
|
-
"""
|
|
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
|
|
981
|
-
"""
|
|
982
|
-
#
|
|
983
|
-
if nuda.env.verb: print("Enter D3p()")
|
|
984
|
-
#
|
|
985
|
-
if Nmin > Nmax:
|
|
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')
|
|
991
|
-
exit()
|
|
992
|
-
#
|
|
993
|
-
D3p_Z_even = []
|
|
994
|
-
D3p_Z_odd = []
|
|
995
|
-
D3p_N_even = []
|
|
996
|
-
D3p_N_odd = []
|
|
997
|
-
D3p_even = []
|
|
998
|
-
D3p_odd = []
|
|
999
|
-
#
|
|
1000
|
-
for ind,N in enumerate(self.nucN):
|
|
1001
|
-
#
|
|
1002
|
-
if N > Nmax :
|
|
1003
|
-
continue
|
|
1004
|
-
if N < Nmin :
|
|
1005
|
-
continue
|
|
1006
|
-
#
|
|
1007
|
-
Z = self.nucZ[ind]
|
|
1008
|
-
#
|
|
1009
|
-
if Z % 2 == 0:
|
|
1010
|
-
sign = 1.0 #even
|
|
1011
|
-
else:
|
|
1012
|
-
sign = -1.0 # odd
|
|
1013
|
-
#
|
|
1014
|
-
#print('For Z,N:',Z,N)
|
|
1015
|
-
#
|
|
1016
|
-
# search index for Z,N+2
|
|
1017
|
-
#
|
|
1018
|
-
flag_find1 = 0
|
|
1019
|
-
for ind1,N1 in enumerate(self.nucN):
|
|
1020
|
-
if N == N1 and self.nucZ[ind1] == Z+1:
|
|
1021
|
-
flag_find1 = 1
|
|
1022
|
-
break
|
|
1023
|
-
flag_find2 = 0
|
|
1024
|
-
for ind2,N2 in enumerate(self.nucN):
|
|
1025
|
-
if N == N2 and self.nucZ[ind2] == Z-1:
|
|
1026
|
-
flag_find2 = 1
|
|
1027
|
-
break
|
|
1028
|
-
if flag_find1*flag_find2 == 1:
|
|
1029
|
-
if sign > 0: #even
|
|
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] ) )
|
|
1033
|
-
else:
|
|
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()")
|
|
1045
|
-
#
|
|
1046
|
-
return self
|
|
1047
|
-
#
|
|
1048
934
|
def diff(self, table, Zref = 50 ):
|
|
1049
935
|
"""
|
|
1050
936
|
Method calculates the difference between a given mass
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nucleardatapy
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.2
|
|
4
4
|
Summary: A toolkit for nuclear data processing and meta-analyses.
|
|
5
5
|
Author: Jerome Margueron, Sudhanva Lalit, Mariana Dutra, Guilherme Grams, Rohit Kumar
|
|
6
6
|
License: Attribution-NonCommercial-NoDerivatives 4.0 International
|