- Class o2scl::fermion_deriv_rel_tl< fp_t >
The option err_nonconv=false is not really implemented yet.
The pair_density() function is a bit slow because it computes the non-derivative thermodynamic quantities twice, and this could be improved.
- Class o2scl::fermion_deriv_thermo_tl< fp_t >
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_tl< fp_t >::calc_mu_deg (fermion_deriv &f, fp_t temper, fp_t prec)
- There is some repetition of the code for this function and the function o2scl::fermion_thermo_tl::calc_mu_deg() . which could be avoided.
- Member o2scl::fermion_deriv_thermo_tl< fp_t >::calc_mu_ndeg (fermion_deriv &f, fp_t temper, fp_t prec, bool inc_antip=false)
- There is some repetition of the code for this function and the function o2scl::fermion_thermo_tl::calc_mu_ndeg() . which could be avoided.
- Class o2scl::fermion_eff
Use bracketing to speed up one-dimensional root finding.
Implement the same method of allowing the user to turn on or off the degenerate and nondegenerate expansions as in o2scl::fermion_rel_tl .
- Class o2scl::fermion_nonrel_tl< inte_t, fp_t >
Implement o2scl::fermion_nonrel_tl::pair_density() and o2scl::fermion_nonrel_tl::pair_mu(). [AWS, 1/23/19: it is not entirely clear to me that antiparticles will be useful.]
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_tl< fp_t >
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_tl< fp_t >::calc_density_tlate (fermion_t &f, fp_t temper)
- There is still quite a bit of code duplication between this function and calc_mu_tlate() .
- Member o2scl::fermion_rel_tl< fp_t >::pair_fun (fp_t x, fermion &f, fp_t 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_thermo_tl< fp_t >
- Create a Chebyshev approximation for inverting the the Fermi functions for massless_calc_density() functions?
- Member o2scl::fermion_thermo_tl< fp_t >::calc_mu_deg (fermion &f, fp_t temper, fp_t prec=1.0e-18)
- Make a function like this for dndm, dsdT, etc. for fermion_deriv .
- Member o2scl::fermion_thermo_tl< fp_t >::massless_pair_density (fermion &f, fp_t temper)
- This could be improved by including more terms in the expansions.
- Class o2scl::fermion_zerot_tl< fp_t >
- 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_dz_fit
- This appears to be limited for large nuclei because 'i' becomes larger than imax and then statements like noc[i][j]=moc-ju and noc[i+1][j]=ju become invalid. This needs to be more carefully understood and documented. For now, is_included() just arbitrarily chooses 240 as a maximum for N and Z.
- Class o2scl::nucmass_fit
- Convert to a real fit with errors and covariance, etc.
- Class o2scl::nucmass_frdm
- Add microscopic part.
- 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.
- Member o2scl::part_calibrate_class::part_calibrate (part_t &p, thermo_t &th, bool test_pair, std::string file, bool nr_mode=false, int verbose=0, bool external=false)
- Also calibrate massless fermions?