- Class o2scl::classical
- Write a calc_density_zerot() function for completeness?
- Member o2scl::classical::calc_mu (part &p, double temper)
- Handle the case
properly.
- Class o2scl::fermion_deriv_rel
This class may need more corrections to ensure quantities like
are computed accurately when
.
It might be worth coding up direct differentiation, or differentiating the eff results, as these may succeed more generally.
This class will have difficulty with extremely degenerate or extremely non-degnerate systems. Fix this.
Create a more intelligent method for dealing with bad initial guesses for the chemical potential in calc_density().
- Class o2scl::fermion_deriv_thermo
Include explicit zero-temperature calculation, maybe by making this a child of fermion_zerot or by making a new fermion_deriv_zerot?
There is also a closed form for the derivatives of massless fermions with pairs at finite temperature in Constantinou et al. 2014 which could be implemented here.
- Member o2scl::fermion_deriv_thermo::calc_mu_deg (fermion_deriv &f, double temper, double prec)
- There is some repetition of the code for this function and the function o2scl::fermion_eval_thermo::calc_mu_deg() . which could be avoided.
- Member o2scl::fermion_deriv_thermo::calc_mu_ndeg (fermion_deriv &f, double temper, double prec, bool inc_antip=false)
- There is some repetition of the code for this function and the function o2scl::fermion_eval_thermo::calc_mu_ndeg() . which could be avoided.
- Class o2scl::fermion_eff
- Use bracketing to speed up one-dimensional root finding.
- Class o2scl::fermion_eval_thermo
- Create a Chebyshev approximation for inverting the the Fermi functions for massless_calc_density() functions?
- Member o2scl::fermion_eval_thermo::calc_mu_deg (fermion &f, double temper, double prec=1.0e-18)
- Make a function like this for dndm, dsdT, etc. for fermion_deriv .
- Member o2scl::fermion_eval_thermo::calibrate (fermion &f, int verbose=0, bool test_pair=false, std::string fname="")
Also calibrate massless fermions?
Convert into separate class?
- Member o2scl::fermion_eval_thermo::massless_pair_density (fermion &f, double temper)
- This could be improved by including more terms in the expansions.
- Class o2scl::fermion_nonrel
- This could be improved by performing a Chebyshev approximation (for example) to invert the density integral so that we don't need to use a solver.
- Class o2scl::fermion_rel
The expressions which appear in in the integrand functions density_fun(), etc. could likely be improved, especially in the case where o2scl::part::inc_rest_mass is false
. There should not be a need to check if ret
is finite.
It appears this class doesn't compute the uncertainty in the chemical potential or density with calc_density(). This could be fixed.
I'd like to change the lower limit on the entropy integration, but the value in the code at the moment (stored in ll
) makes bm_part2.cpp worse.
The function pair_mu() should set the antiparticle integrators as done in fermion_deriv_rel.
- Member o2scl::fermion_rel::nu_from_n (fermion &f, double temper)
- This function might be improved by generating a bracket for a bracketing solver, rather than o2scl::root_cern which is the default for o2scl::fermion_rel::density_root.
- Member o2scl::fermion_rel::pair_fun (double x, fermion &f, double T, bool log_mode)
- Particles and antiparticles have different degeneracy factors, so we separately use the expansions one at a time. It is probably better to separately generate a new expansion function which automatically handles the sum of particles and antiparticles.
- Class o2scl::fermion_zerot
- Use hypot() and other more accurate functions for the analytic expressions for the zero temperature integrals. [Progress has been made, but there are probably other functions which may break down for small but finite masses and temperatures]
- Class o2scl::nucmass_ame
Create a caching and more intelligent search system for the table. The table is sorted by A and then N, so we could probably just copy the search routine from mnmsk_mass, which is sorted by Z and then N (some code written for this, but it doesn't work yet).
Should m_neut and m_prot be set to the neutron and proton masses from the table by default?
- Class o2scl::nucmass_densmat
- If this isn't going to be in a child of nucmass, then maybe we can simplify binding_energy_densmat_derivs() to just
binding_energy()
.
- Member o2scl::nucmass_densmat::binding_energy_densmat_derivs (double Z, double N, double npout, double nnout, double nneg, double T, double &E, double &dEdnp, double &dEdnn, double &dEdnneg, double &dEdT)
- Extend to negative N and Z?
- Class o2scl::nucmass_fit
- Convert to a real fit with errors and covariance, etc.
- Class o2scl::nucmass_frdm
- Add microscopic part.
- Class o2scl::nucmass_info
- Add the full names for each element.
- Member o2scl::nucmass_info::parse_elstring (std::string ela, int &Z, int &N, int &A)
Warn about malformed combinations like Carbon-5
Right now, n4
is interpreted incorrectly as Nitrogen-4, rather than the tetraneutron.
Interpret strings with the full name rather than just the abbreviation.