nucmass_sdnp.h
Go to the documentation of this file.
1 /*
2  -------------------------------------------------------------------
3 
4  Copyright (C) 2014-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_NUCMASS_SDNP_H
24 #define O2SCL_NUCMASS_SDNP_H
25 
26 /** \file nucmass_sdnp.h
27  \brief File defining \ref o2scl::nucmass_sdnp
28 */
29 
30 #include <cmath>
31 #include <string>
32 #include <map>
33 #include <o2scl/nucmass.h>
34 
35 #ifndef DOXYGEN_NO_O2NS
36 namespace o2scl {
37 #endif
38 
39  /** \brief Nuclear structure from Stoitsov et al.
40 
41  \todo Unfinished.
42 
43  Models
44  - "sdnp03" - from Skyrme model SkM*
45  - "sd_skp_04" - from Skyrme model SkP
46  - "sd_sly4_04" - from Skyrme model SLy4
47 
48  See \ref Stoitsov03 and \ref Dobaczewski04 and
49  http://www.fuw.edu.pl/~dobaczew/thodri/thodri.html .
50  */
51  class nucmass_sdnp : public nucmass_table {
52 
53  public:
54 
55  nucmass_sdnp();
56 
57  ~nucmass_sdnp();
58 
59  int load(std::string model="", bool external=false);
60 
61  /** \brief Entry structure
62 
63  */
64  class entry {
65 
66  public:
67 
68  /// Proton number
69  int Z;
70  /// Neutron number
71  int N;
72  /// HFB energy minimum (MeV)
73  double ENERGY;
74  /*
75  ///
76  double ACCURACY;
77  ///
78  double S_2N;
79  ///
80  double S_2P;
81  ///
82  double LAM_N;
83  ///
84  double LAM_P;
85  ///
86  double LA2_N;
87  ///
88  double LA2_P;
89  ///
90  double DEL_N;
91  ///
92  double DEL_P;
93  ///
94  double RAD_N;
95  ///
96  double RAD_P;
97  ///
98  double BETA;
99  ///
100  double Q20_N;
101  ///
102  double Q20_P;
103  */
104 
105  };
106 
107  /// Return the type, \c "nucmass_sdnp".
108  virtual const char *type() { return "nucmass_sdnp"; }
109 
110  /// Returns true if data has been loaded
111  bool is_loaded() { return (n>0); }
112 
113  /** \brief Return false if the mass formula does not include
114  specified nucleus
115  */
116  virtual bool is_included(int Z, int N);
117 
118  /// Return number of entries
119  virtual size_t get_nentries() { return n; }
120 
121  /// Given \c Z and \c N, return the mass excess in MeV
122  virtual double mass_excess(int Z, int N);
123 
124 #ifndef DOXYGEN_INTERNAL
125 
126  protected:
127 
128  /// The number of entries (about 3000).
129  size_t n;
130 
131  /// The reference for the original data
132  std::string reference;
133 
134  /// The array containing the mass data of length n
136 
137  /// The last table index for caching
138  int last;
139 
140 #endif
141 
142  };
143 
144 #ifndef DOXYGEN_NO_O2NS
145 }
146 #endif
147 
148 #endif
o2scl::nucmass_sdnp::entry::ENERGY
double ENERGY
HFB energy minimum (MeV)
Definition: nucmass_sdnp.h:73
o2scl::nucmass_sdnp
Nuclear structure from Stoitsov et al.
Definition: nucmass_sdnp.h:51
o2scl::nucmass_sdnp::entry::Z
int Z
Proton number.
Definition: nucmass_sdnp.h:69
o2scl::nucmass_sdnp::mass
entry * mass
The array containing the mass data of length n.
Definition: nucmass_sdnp.h:135
o2scl::nucmass_sdnp::get_nentries
virtual size_t get_nentries()
Return number of entries.
Definition: nucmass_sdnp.h:119
o2scl::nucmass_sdnp::entry
Entry structure.
Definition: nucmass_sdnp.h:64
o2scl::nucmass_sdnp::is_included
virtual bool is_included(int Z, int N)
Return false if the mass formula does not include specified nucleus.
o2scl::nucmass_sdnp::is_loaded
bool is_loaded()
Returns true if data has been loaded.
Definition: nucmass_sdnp.h:111
o2scl::nucmass_sdnp::last
int last
The last table index for caching.
Definition: nucmass_sdnp.h:138
o2scl::nucmass_table
Tabulated nuclear masses [abstract base].
Definition: nucmass.h:330
o2scl::nucmass_sdnp::mass_excess
virtual double mass_excess(int Z, int N)
Given Z and N, return the mass excess in MeV.
o2scl::nucmass_sdnp::type
virtual const char * type()
Return the type, "nucmass_sdnp".
Definition: nucmass_sdnp.h:108
o2scl::nucmass_sdnp::entry::N
int N
Neutron number.
Definition: nucmass_sdnp.h:71
o2scl::nucmass_sdnp::reference
std::string reference
The reference for the original data.
Definition: nucmass_sdnp.h:132
o2scl::nucmass_sdnp::n
size_t n
The number of entries (about 3000).
Definition: nucmass_sdnp.h:129

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