Ideas for Future Development
Class o2scl::eos_crust

Can the pressure be made to match more closely?

Convert to a o2scl::eos_had_base object and offer an associated interface?

Class o2scl::eos_had_apr

There might be room to improve the testing of the finite temperature part a bit.

There is some repetition between calc_e() and calc_temp_e() that possibly could be removed.

Include the analytic relations from Constantinou et al.

Member o2scl::eos_had_apr::parent_method
This variable is probably unnecessary, as the syntax
Class o2scl::eos_had_base

Replace fmsom() with f_effm_scalar(). This has to wait until f_effm_scalar() has a sensible definition when mn is not equal to mp

Could write a function to compute the "symmetry free energy" or the "symmetry entropy"

Compute the speed of sound or the number susceptibilities?

A lot of the numerical derivatives here might possibly request negative number densities for the nucleons, which may cause exceptions, espescially at very low densities. Since the default EOS objects are GSL derivatives, one can get around these issues by setting the GSL derivative object step size, but this is a temporary solution.

Member o2scl::eos_had_base::saturation ()
It would be great to provide numerical uncertainties in the saturation properties.
Class o2scl::eos_had_ddc
Implement the finite temperature EOS properly.
Class o2scl::eos_had_potential
Calculate the chemical potentials analytically.
Class o2scl::eos_had_rmf
  • Finish putting the err_nonconv system into calc_p(), calc_temp_e() and fix_saturation(), etc.
  • It might be nice to remove explicit reference to the meson masses in functions which only compute nuclear matter since they are unnecessary. This might, however, demand redefining some of the couplings.
  • Fix calc_p() to be better at guessing
  • The number of couplings is getting large, maybe new organization is required.
  • Overload eos_had_base::fcomp() with an exact version
  • It would be nice to analytically compute the Jacobian of the field equations for the solver
Member o2scl::eos_had_rmf::calc_e (fermion &ne, fermion &pr, thermo &lth)
Improve the operation of this function when the proton density is zero.
Member o2scl::eos_had_rmf::calc_eq_p (fermion &neu, fermion &p, double sig, double ome, double rho, double &f1, double &f2, double &f3, thermo &th)
Probably best to have f1, f2, and f3 scaled in some sensible way, i.e. scaled to the fields?
Member o2scl::eos_had_rmf::calc_p (fermion &ne, fermion &pr, thermo &lth)
It may be possible to make the solver for the field equations more robust
Member o2scl::eos_had_rmf::n_charge
Should use eos_had_base::proton_frac instead?
Class o2scl::eos_had_rmf_delta
Finish the finite temperature EOS
Class o2scl::eos_had_skyrme
  • There is some code duplication between calc_e() and calc_temp_e() which could be simplified.
  • This EOS typically converges very well. One exception seems to be using calc_temp_p() at very low densities. I have had problems, for example, with mun=5.0, mup=6.5 at T=1.0/197.33.
Class o2scl::eos_had_tabulated

Storage in a o2scl::table object isn't necessary, and storing in a vector object is more efficient.

Allow the pressure to be specified to make the EOS more accurate?

Class o2scl::eos_nse_full

There is a bit of duplication between calc_density_noneq() and calc_density_fixnp() which could be streamlined.

Add fermion and boson statistics to the nuclei in the distribution.

Class o2scl::eos_nstar_rot_interp
Replace arrays with vectors
Class o2scl::eos_quark_cfl

This class internally mixes ubvector, ubmatrix, gsl_vector and gsl_matrix objects in a confusing and non-optimal way. Fix this.

Allow user to change derivative object? This isn't possible right now because the stepsize parameter of the derivative object is used.

Class o2scl::eos_sn_base

Add option to rescale energies and chemical potentials to different masses.

Create a o2scl::table object, possibly using tensor_grid::vector_slice.

Show how matrix_slice and vector_slice can be used with this object.

Add option to load and store a separate lepton/photon EOS

Add pions?

Create a standard output format? Output to HDF5 format?

Class o2scl::eos_sn_oo
Loading an EOS currently requires loading the HDF5 file and then copying it. This wouldn't be necessary if the O2scl tensor had the same ordering as the indices in the original HDF5 file.
Class o2scl::eos_tov_buchdahl
Figure out what to do with the buchfun() function
Class o2scl::eos_tov_interp
Create a sanity check where core_auxp is nonzero only if core_table is also nonzero. Alternatively, this complication is due to the fact that this class works in two ways: one where it reads a table (and adds a crust), and one where it reads in vectors (with no crust). Maybe these two modes of operation should be separated into two classes. (2/6/16: Now there is a new eos_tov_vector class. The best way forward may be to make this a child of eos_tov_vectors.)
Class o2scl::eos_tov_polytrope
The simple formulation fo the expressions here more than likely break down when their arguments are sufficiently extreme.
Class o2scl::nstar_cold

Warn if the EOS becomes pure neutron matter.

Some of the auxillary quantities can be computed directly without using the table methods and the EOS calculation would be a bit faster.

Class o2scl::nstar_rot

Make a GSL-like set() function

Rework EOS interface and implement better integration with the other O2scl_eos EOSs.

Remove the unit-indexed arrays.

Try moving some of the storage to the heap?

Some of the arrays seem larger than necessary.

The function o2scl::nstar_rot::new_search() is inefficient because it has to handle the boundary conditions separately. This could be improved.

Make the solvers more robust. The ang_vel() and ang_vel_alt() functions appear particularly unstable.

Class o2scl::nucleus_rmf

Sort energy levels at the end by energy

Improve the numerical methods

Make the neutron and proton orbitals more configurable

Generalize to $ m_n \neq m_p $ .

Allow more freedom in the integrations

Consider converting everything to inverse fermis.

Convert to zero-indexed arrays (mostly done)

Warn when the level ordering is wrong, and unoccupied levels are lower energy than occupied levels

Connect with o2scl::nucmass ?

Class o2scl::nucmass_ldrop_skin

Add translational energy?

Remove excluded volume correction and compute nuclear mass relative to the gas rather than relative to the vacuum.

In principle, Tc should be self-consistently determined from the EOS.

Does this work if the nucleus is "inside-out"?

Class o2scl::tov_love
Use o2scl::ode_iv_solve instead of several steps of type o2scl::astep_gsl .
Member o2scl::tov_solve::min_log_pres
Replace this with the proper value from std::limits?
Page Other Todos
Right now, the equation of state classes depend on the user to input the correct value of non_interacting for the particle inputs. This is not very graceful...

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