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.
Files changed (88) hide show
  1. nucleardatapy/astro/setup_mr.py +115 -33
  2. nucleardatapy/create_folder.py +2 -2
  3. nucleardatapy/crust/setup_crust.py +5 -5
  4. nucleardatapy/data/astro/HESS/J1731-347.dat +4 -0
  5. nucleardatapy/data/astro/NICER/J0030+0451.dat +6 -6
  6. nucleardatapy/data/astro/NICER/J0437-4715.dat +4 -3
  7. nucleardatapy/data/astro/NICER/J0614-3329.dat +4 -0
  8. nucleardatapy/data/astro/NICER/J0740+6620.dat +5 -5
  9. nucleardatapy/data/hnuclei/1991-2L-Yamamoto.csv +6 -0
  10. nucleardatapy/data/hnuclei/2013-2L-Ahn.csv +1 -1
  11. nucleardatapy/data/hnuclei/2019-2L-Ekawa.csv +7 -0
  12. nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-414-E2A.dat +21 -0
  13. nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-414-TD.dat +22 -0
  14. nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-450-E2A.dat +20 -0
  15. nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-450-TD.dat +22 -0
  16. nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-500-E2A.dat +23 -0
  17. nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-500-TD.dat +22 -0
  18. nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-414-E2A.dat +15 -0
  19. nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-414-TD.dat +21 -0
  20. nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-450-E2A.dat +15 -0
  21. nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-450-TD.dat +21 -0
  22. nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-500-E2A.dat +20 -0
  23. nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-500-TD.dat +20 -0
  24. nucleardatapy/data/matter/micro/2024-ABI-NM-DeltaNNLO450.dat +28 -0
  25. nucleardatapy/data/matter/micro/2024-ABI-NM-DeltaNNLO500.dat +28 -0
  26. nucleardatapy/data/matter/micro/2024-ABI-NM-DeltaNNLOgo394.dat +28 -0
  27. nucleardatapy/data/matter/micro/2024-ABI-NM-DeltaNNLOgo450.dat +28 -0
  28. nucleardatapy/data/matter/micro/2024-ABI-NM-NNLOsat.dat +28 -0
  29. nucleardatapy/data/matter/micro/2024-ABI-SM-DeltaNNLO450.dat +28 -0
  30. nucleardatapy/data/matter/micro/2024-ABI-SM-DeltaNNLO500.dat +28 -0
  31. nucleardatapy/data/matter/micro/2024-ABI-SM-DeltaNNLOgo394.dat +28 -0
  32. nucleardatapy/data/matter/micro/2024-ABI-SM-DeltaNNLOgo450.dat +28 -0
  33. nucleardatapy/data/matter/micro/2024-ABI-SM-NNLOsat.dat +28 -0
  34. nucleardatapy/fig/astro_setupGW_fig.py +4 -2
  35. nucleardatapy/fig/astro_setupMR_fig.py +14 -8
  36. nucleardatapy/fig/astro_setupMasses_fig.py +4 -2
  37. nucleardatapy/fig/astro_setupMtov_fig.py +6 -2
  38. nucleardatapy/fig/astro_setupMup_fig.py +4 -2
  39. nucleardatapy/fig/corr_setupEsymDen_fig.py +10 -4
  40. nucleardatapy/fig/corr_setupEsymLsym_fig.py +7 -3
  41. nucleardatapy/fig/corr_setupKsatQsat_fig.py +4 -2
  42. nucleardatapy/fig/crust_setupCrust_fig.py +6 -4
  43. nucleardatapy/fig/eos_setupAMBeq_fig.py +162 -134
  44. nucleardatapy/fig/eos_setupAMLeq_fig.py +35 -32
  45. nucleardatapy/fig/eos_setupAM_asy_lep_fig.py +39 -30
  46. nucleardatapy/fig/eos_setupAM_asy_nuc_fig.py +39 -30
  47. nucleardatapy/fig/eos_setupAM_asy_tot_fig.py +39 -30
  48. nucleardatapy/fig/eos_setupAM_fig.py +45 -30
  49. nucleardatapy/fig/eos_setupCC_fig.py +54 -24
  50. nucleardatapy/fig/hnuc_setupChart_fig.py +20 -16
  51. nucleardatapy/fig/hnuc_setupRE1LExp_fig.py +12 -2
  52. nucleardatapy/fig/matter_all_fig.py +55 -38
  53. nucleardatapy/fig/matter_setupCheck_fig.py +6 -3
  54. nucleardatapy/fig/matter_setupFFGLep_fig.py +13 -9
  55. nucleardatapy/fig/matter_setupFFGNuc_fig.py +22 -14
  56. nucleardatapy/fig/matter_setupHIC_fig.py +9 -9
  57. nucleardatapy/fig/matter_setupMicroEsym_fig.py +31 -30
  58. nucleardatapy/fig/matter_setupMicro_LP_fig.py +11 -5
  59. nucleardatapy/fig/matter_setupMicro_band_fig.py +11 -6
  60. nucleardatapy/fig/matter_setupMicro_effmass_fig.py +5 -4
  61. nucleardatapy/fig/matter_setupMicro_err_NM_fig.py +4 -2
  62. nucleardatapy/fig/matter_setupMicro_fig.py +30 -22
  63. nucleardatapy/fig/matter_setupMicro_gap_fig.py +22 -12
  64. nucleardatapy/fig/matter_setupNEPStats_fig.py +13 -3
  65. nucleardatapy/fig/matter_setupPhenoEsym_fig.py +28 -27
  66. nucleardatapy/fig/matter_setupPheno_fig.py +22 -17
  67. nucleardatapy/fig/nuc_setupBEExp_chart_fig.py +67 -37
  68. nucleardatapy/fig/nuc_setupBEExp_fig.py +49 -46
  69. nucleardatapy/fig/nuc_setupBETheo_fig.py +55 -50
  70. nucleardatapy/fig/nuc_setupISGMRExp_fig.py +7 -10
  71. nucleardatapy/fig/nuc_setupRchExp_fig.py +12 -20
  72. nucleardatapy/fig/nuc_setupRchTheo_fig.py +16 -20
  73. nucleardatapy/fig/nuc_setupRnpExp_fig.py +12 -0
  74. nucleardatapy/fig/nuc_setupRnpTheo_fig.py +14 -2
  75. nucleardatapy/hnuc/setup_re2L_exp.py +30 -7
  76. nucleardatapy/matter/setup_micro.py +424 -12
  77. nucleardatapy/matter/setup_micro_band.py +1 -1
  78. nucleardatapy/matter/setup_micro_esym.py +46 -42
  79. nucleardatapy/matter/setup_nep.py +1 -1
  80. nucleardatapy/matter/setup_pheno.py +10 -6
  81. nucleardatapy/matter/setup_pheno_esym.py +14 -6
  82. nucleardatapy/nuc/setup_be_exp.py +4 -2
  83. nucleardatapy/nuc/setup_be_theo.py +101 -215
  84. {nucleardatapy-1.0.0.dist-info → nucleardatapy-1.0.2.dist-info}/METADATA +1 -1
  85. {nucleardatapy-1.0.0.dist-info → nucleardatapy-1.0.2.dist-info}/RECORD +88 -62
  86. {nucleardatapy-1.0.0.dist-info → nucleardatapy-1.0.2.dist-info}/WHEEL +1 -1
  87. {nucleardatapy-1.0.0.dist-info → nucleardatapy-1.0.2.dist-info}/licenses/LICENSE +0 -0
  88. {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, Zref = 50 ):
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, Nref = 50 ):
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, Zmin = 1, Zmax = 95 ):
716
+ def drip_S2n(self):
683
717
  """
684
718
  Method which find the drip-line nuclei from S2n (neutron side).
685
719
 
686
- :param Zmin: Fix the minimum charge for the search of the neutron drip line.
687
- :type Zmin: int, optional. Default: 1.
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
- if Zmin > Zmax:
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')
702
- exit()
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 Z > Zmax :
718
- break
719
- if Z < Zmin :
720
- continue
721
- #
722
- #Nmax = Nstable[ind]
723
- Nmax = 0
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, Nmin = 1, Nmax = 95 ):
769
+ def drip_S2p(self ):
737
770
  """
738
771
  Method which find the drip-line nuclei from S2p (proton side).
739
772
 
740
- :param Nmin: Fix the minimum neutron number for the search of the proton drip line.
741
- :type Nmin: int, optional. Default: 1.
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
- if Nmin > Nmax:
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')
756
- exit()
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 N > Nmax :
770
- break
771
- if N < Nmin :
772
- continue
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, Zref = 50 ):
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, Nref = 50 ):
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.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