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 <h)
- 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 <h)
- 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 stellarcollapse.org 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 .

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).