23 #ifndef NUCMASS_DENSMAT_H 24 #define NUCMASS_DENSMAT_H 26 #include <boost/numeric/ublas/vector.hpp> 28 #include <o2scl/classical.h> 29 #include <o2scl/fermion_rel.h> 30 #include <o2scl/fermion_deriv_rel.h> 31 #include <o2scl/boson_rel.h> 33 #include <o2scl/nucmass_frdm.h> 34 #include <o2scl/nucmass_ame.h> 35 #include <o2scl/nucdist.h> 36 #include <o2scl/hdf_nucmass_io.h> 43 #ifndef DOXYGEN_NO_O2NS 89 std::vector<o2scl::nucleus>
dist;
123 for (
size_t i=0;i<dm.
dist.size();i++) {
124 dist.push_back(dm.
dist[i]);
149 for (
size_t i=0;i<dm.
dist.size();i++) {
150 dist.push_back(dm.
dist[i]);
165 void output(std::ostream &out,
int verbose=1);
294 virtual const char *
type() {
return "nucmass_densmat"; }
304 virtual void test_derivatives(
double eps,
double &t1,
double &t2,
305 double &t3,
double &t4);
325 virtual void binding_energy_densmat_derivs
326 (
double Z,
double N,
double npout,
double nnout,
327 double nneg,
double T,
double &E,
double &dEdnp,
double &dEdnn,
328 double &dEdnneg,
double &dEdT);
333 virtual void binding_energy_densmat
334 (
double Z,
double N,
double npout,
double nnout,
335 double nneg,
double T,
double &E);
339 #ifndef DOXYGEN_NO_O2NS
double np_tot()
Compute total density of protons.
double baryon_density()
Compute the total baryon density.
dense_matter()
Constructor.
o2scl::fermion n
Neutrons.
Nuclear mass formula base [abstract base].
std::vector< o2scl::nucleus > dist
Distribution of nuclei.
o2scl::boson photon
Photons.
void copy_densities_from(dense_matter &dm2)
Copy densities from those stored in another dense_matter object.
dense_matter(const dense_matter &dm)
Copy constructor.
double impurity()
Compute the impurity parameter.
double average_A()
Compute the number-averaged mass number.
double eta_p
Proton chemical potential.
double eta_n
Neutron chemical potential.
void prune_distribution(double factor)
Remove nuclei from the distribution which have a small density.
o2scl::thermo th
Total thermodynamic quantities.
double Ye
Electron fraction.
double T
Temperature (in )
double nn_tot()
Compute total density of neutrons.
o2scl::fermion e
Electrons.
double baryon_density_nuclei()
Compute the baryon density in nuclei.
nucmass * massp
Pointer to the nuclear mass formula.
double electron_fraction()
Compute the electron fraction.
o2scl::thermo drip_th
Thermodynamic quantities for dripped particles.
A nuclear mass formula for dense matter.
double average_a()
Compute an average inter-ionic spacing.
double average_N()
Compute the number-averaged neutron number.
dense_matter & operator=(const dense_matter &dm)
Copy constructor with operator=()
A container for the properties of dense matter at a specified baryon density, electron fraction and t...
double nB
Baryon number density (in )
virtual const char * type()
Return the type, "nucmass_densmat".
bool nuc_in_dist(int Z, int N, size_t &index)
Return true if nucleus (Z,N) is in the distribution and store it's index in index.
ubvector eta_nuc
Nuclear chemical potentials.
A class containing three thermodynamical variables (energy density, pressure, entropy density) ...
double average_Z()
Compute the number-averaged proton number.