nucmass_ktuy.h
Go to the documentation of this file.
1 /*
2  -------------------------------------------------------------------
3 
4  Copyright (C) 2006-2020, Andrew W. Steiner
5 
6  This file is part of O2scl.
7 
8  O2scl is free software; you can redistribute it and/or modify
9  it under the terms of the GNU General Public License as published by
10  the Free Software Foundation; either version 3 of the License, or
11  (at your option) any later version.
12 
13  O2scl is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  GNU General Public License for more details.
17 
18  You should have received a copy of the GNU General Public License
19  along with O2scl. If not, see <http://www.gnu.org/licenses/>.
20 
21  -------------------------------------------------------------------
22 */
23 #ifndef O2SCL_KTUY_MASS_H
24 #define O2SCL_KTUY_MASS_H
25 
26 /** \file nucmass_ktuy.h
27  \brief File defining \ref o2scl::nucmass_ktuy
28 */
29 
30 #include <o2scl/nucmass.h>
31 
32 #ifndef DOXYGEN_NO_O2NS
33 namespace o2scl {
34 #endif
35 
36  /** \brief KTUY Mass formula
37  */
38  class nucmass_ktuy : public nucmass_table {
39 
40  public:
41 
42  nucmass_ktuy();
43 
44  virtual ~nucmass_ktuy();
45 
46  /** \brief Load masses using the specified model number
47  */
48  int load(std::string model="05", bool external=false);
49 
50  /** \brief Mass formula entry structure for KTUY mass formula
51 
52  Nuclear masses from \ref Koura00 and \ref Koura05
53  as originally specified in the files <tt>KTUY04_m246.dat</tt>
54  and <tt>KTUY05_m246.dat</tt> obtained from
55  http://wwwndc.jaea.go.jp/nucldata/mass/KTUY04_E.html
56  */
57  struct entry {
58 
59  /// Neutron number
60  int N;
61 
62  /// Proton number
63  int Z;
64 
65  /// Atomic number
66  int A;
67 
68  /// Calculated mass excess
69  double Mcal;
70 
71  /// Shell energy
72  double Esh;
73 
74  /// Alpha 2 deformation
75  double alpha2;
76 
77  /// Alpha 4 deformation
78  double alpha4;
79 
80  /// Alpha 6 deformation
81  double alpha6;
82 
83  };
84 
85  /** \brief Return false if the mass formula does not include
86  specified nucleus
87  */
88  virtual bool is_included(int Z, int N);
89 
90  /// Given \c Z and \c N, return the mass excess in MeV
91  virtual double mass_excess(int Z, int N);
92 
93  /** \brief Get the entry for the specified proton and neutron number
94 
95  This method searches the table using a cached binary search
96  algorithm. It is assumed that the table is sorted first by
97  proton number and then by neutron number.
98  */
99  nucmass_ktuy::entry get_ZN(int l_Z, int l_N);
100 
101  /// Verify that the constructor properly loaded the table
102  bool is_loaded() { return (n>0); }
103 
104  /// Return the type, \c "nucmass_ktuy".
105  virtual const char *type() { return "nucmass_ktuy"; }
106 
107  /// Return number of entries
108  virtual size_t get_nentries() { return n; }
109 
110 #ifndef DOXYGEN_INTERNAL
111 
112  protected:
113 
114  /// The array containing the mass data of length ame::n
116 
117  /// The last table index for caching
118  int last;
119 
120 #endif
121 
122  };
123 
124 #ifndef DOXYGEN_NO_O2NS
125 }
126 #endif
127 
128 #endif
o2scl::nucmass_table::n
size_t n
The number of entries.
Definition: nucmass.h:341
o2scl::nucmass_ktuy::is_loaded
bool is_loaded()
Verify that the constructor properly loaded the table.
Definition: nucmass_ktuy.h:102
o2scl::nucmass_ktuy::entry::alpha2
double alpha2
Alpha 2 deformation.
Definition: nucmass_ktuy.h:75
o2scl::nucmass_ktuy::entry::Mcal
double Mcal
Calculated mass excess.
Definition: nucmass_ktuy.h:69
o2scl::nucmass_ktuy::get_ZN
nucmass_ktuy::entry get_ZN(int l_Z, int l_N)
Get the entry for the specified proton and neutron number.
o2scl::nucmass_ktuy::last
int last
The last table index for caching.
Definition: nucmass_ktuy.h:118
o2scl::nucmass_ktuy::entry::Z
int Z
Proton number.
Definition: nucmass_ktuy.h:63
o2scl::nucmass_ktuy::load
int load(std::string model="05", bool external=false)
Load masses using the specified model number.
o2scl::nucmass_ktuy::is_included
virtual bool is_included(int Z, int N)
Return false if the mass formula does not include specified nucleus.
o2scl::nucmass_ktuy::type
virtual const char * type()
Return the type, "nucmass_ktuy".
Definition: nucmass_ktuy.h:105
o2scl::nucmass_ktuy::entry::Esh
double Esh
Shell energy.
Definition: nucmass_ktuy.h:72
o2scl::nucmass_ktuy
KTUY Mass formula.
Definition: nucmass_ktuy.h:38
o2scl::nucmass_ktuy::mass
entry * mass
The array containing the mass data of length ame::n.
Definition: nucmass_ktuy.h:115
o2scl::nucmass_ktuy::entry::N
int N
Neutron number.
Definition: nucmass_ktuy.h:60
o2scl::nucmass_ktuy::entry
Mass formula entry structure for KTUY mass formula.
Definition: nucmass_ktuy.h:57
o2scl::nucmass_ktuy::entry::alpha4
double alpha4
Alpha 4 deformation.
Definition: nucmass_ktuy.h:78
o2scl::nucmass_ktuy::entry::alpha6
double alpha6
Alpha 6 deformation.
Definition: nucmass_ktuy.h:81
o2scl::nucmass_table
Tabulated nuclear masses [abstract base].
Definition: nucmass.h:330
o2scl::nucmass_ktuy::get_nentries
virtual size_t get_nentries()
Return number of entries.
Definition: nucmass_ktuy.h:108
o2scl::nucmass_ktuy::entry::A
int A
Atomic number.
Definition: nucmass_ktuy.h:66
o2scl::nucmass_ktuy::mass_excess
virtual double mass_excess(int Z, int N)
Given Z and N, return the mass excess in MeV.

Documentation generated with Doxygen. Provided under the GNU Free Documentation License (see License Information).