Computing NSE corrections to the entropy

In my last post, I included NSE (Coulomb) corrections to the chemical potentials of the nuclear species in a constant entropy calculation. These NSE corrections affect the relationship between the forward and reverse nuclear reaction rates in detailed balance and, consequently, the final NSE abundances to which the system evolved. The calculation did not, however, include corrections to the entropy. This is a slight inconsistency that I will address in this post.

I begin by comparing the constant entropy in the network calculation with that computed with compute_thermo_quantity. I begin by ensuring I have the necessary codes. I type

cd nucnet-tools-code

svn up

cd examples/analysis

make print_properties

cd ../thermo

make compute_thermo_quantity

I now compare the entropies. I type

cd ../network

../analysis/print_properties my_output_3e9_nse_correction.xml "entropy per nucleon"

where my_output_3e9_nse_correction.xml is the output from the constant entropy calculation with screening and NSE corrections on. The command prints out the total entropy per nucleon ("entropy per nucleon" is a property saved during the network calculation and, for the setup I used, is the total entropy). The quantity is indeed constant in the calculation. I can also look at the last five lines by typing

../analysis/print_properties my_output_3e9_nse_correction.xml "entropy per nucleon" | tail -5

I now compare this entropy with that computed from the temperature, density, and abundances in the output zones in the calculation. I type

../thermo/compute_thermo_quantity my_output_3e9_nse_correction.xml "total entropy per nucleon"

The numbers here are also constant through the calculation and agree (up to the same number of digits) with those from the print_properties command.

As I pointed out above, the entropy in this calculation does not include Coulomb corrections. I would now like to see what effect such corrections have. I do this by downloading the file 2016-08-04.tar.gz and placing it in my nucnet-tools-code directory. In that directory, I then type

gunzip 2016-08-04.tar.gz

tar xvf 2016-08-04.tar

or, more simply,

tar zxvf 2016-08-04.tar

This creates and places codes in the directories my_examples and my_users. These codes include Coulomb corrections to the entropy.

To begin, I change into the directory my_examples/thermo

cd my_examples/thermo

and consider the code compute_thermo_quantity. I compare this code to that in the examples/thermo directory by typing

diff -Naur ../../examples/thermo/compute_thermo_quantity.cpp compute_thermo_quantity.cpp

Lines beginning with a + show lines that compute_thermo_quantity.cpp has but ../../examples/thermo/compute_thermo_quantity.cpp does not. The added lines show how I override the default calculations of the baryon and total entropy. Those new calculations are in my_user/my_thermo.cpp. In that file, the baryon entropy is computed from the default calculation but then the Coulomb correction is added (in the "additive approximation" to the multi-component plasma). The total entropy includes that from the baryons, photons, and electrons. The electron and photon entropy components are computed with the default routines.

I now compile this new code and run


./compute_thermo_quantity ../../examples/network/my_output_3e9_nse_correction.xml "total entropy per nucleon"

This entropy is not constant through the calculation and does not agree with the entropy I previously computed. This is because the constant entropy calculation was computing the entropy without Coulomb corrections.

I need to run the constant entropy network calculation with a code that includes the Coulomb corrections. The downloaded codes include that. I change into my_examples/network and comute the run_entropy.cpp there with that in examples/run_entropy by typing

cd ../network

diff -Naur ../../examples/network/run_entropy.cpp run_entropy.cpp

This shows how I include the Coulomb corrections in the new code. I now compile and run this new code:


./run_entropy ../../data_pub/my_net.xml ../../data_pub/zone.xml my_output_3e9_nse_correction.xml --nuc_xpath "[z <= 60]" --reac_xpath "[not(product[contains(.,'neutrino')])]" --sdot_reac_xpath none

I make sure that the ../../data_pub/zone.xml has use screening and use nse correction both set to yes. Once this calculation is done, I compare the entropies. I type

../../examples/analysis/print_properties my_output_3e9_nse_correction.xml "entropy per nucleon"


../thermo/compute_thermo_quantity my_output_3e9_nse_correction.xml "total entropy per nucleon"

Here I see that the entropy is constant throughout the calculation and agrees with that output from print_properties (up to the same number of digits). In this way I have successfully included the default NSE corrections to the entropy in my network calculation.

Interestingly, the final temperature is slightly lower in the calculation that includes Coulomb corrections to the entropy. If I type

../../examples/thermo/compute_thermo_quantity ../../examples/network/my_output_3e9_nse_correction.xml "baryon entropy per nucleon"

I see that in the calculation without Coulomb corrections to the entropy that the baryon entropy released is 2.04929 kB - 1.48482 kB = 0.56447 kB per nucleon. In the calculation with Coulomb corrections, the baryon entropy released is 2.03669 kB - 1.47268 kB = 0.56401 kB per nucleon. This slightly lower baryon entropy release corresponds to less transfer of entropy to the photons and a lower final temperature.

Posted by Bradley S. Meyer 2016-08-05


Cancel  Add attachments

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks