A collection of modules for computing neutron star structure and evolution.
As part of work with Rahul Jain and Hendrik Schatz, the crust composition is now specified by loading tables. Instructions are in the README file in the module dStar_crust
. There are now scripts to preprocess files in an abuntime
format (output from reaction network runs) into locally cached files of the composition.
Alex Deibel wrote routines to compute the thermal conductivity of normal neutrons (Deibel et al. [2017], Astrophys. Jour. 839: 95). In addition, the thermal conductivity via phonons in the superfluid phase (Aguilera et al. [2009], Phys. Rev. Lett. 102: 091101) is computed. The neutron conductivity is not included by default, but can be activated by setting
use_sf_conductivity = .TRUE.
use_nph_conductivity = .TRUE.
use_nQ_conductivity = .TRUE.
in the inlist.
You can specify a run with a number of accretion "epochs": distinct periods of time with a different accretion rate. For example, suppose you wish to accrete at 1.5e17 g/s for 1000 d (starting at t = 0 d) and then cool for 5000 d (that is, from t = 1000 d to t = 6000 d). In the inlist, you would set the following flags.
number_epochs = 2
basic_epoch_Mdots = 1.5e17,0.0
basic_epoch_boundaries = 0.0,1000.0,6000.0
You can also use this to specify times at which you want the surface effective temperature recorded. For example, suppose we want the surface effective temperature 50 d, 100 d, 500 d, 1000 d, 2000 d, and 5000 d after the end of the outburst in the above example. We would then put the following in the inlist.
number_epochs = 7
basic_epoch_Mdots = 1.5e17,6*0.0
basic_epoch_boundaries = 0.0,1000.0,1050.0,1100.0,1500.0,2000.0,3000.0,6000.0
We can make this even more convenient by setting the end of the outburst at t = 0 d.
number_epochs = 7
basic_epoch_Mdots = 1.5e17,6*0.0
basic_epoch_boundaries = -1000.0,0.0,50.0,100.0,500.0,1000.0,2000.0,5000.0
The number of "basic" epochs that can be set in the namelist is capped at 64. More complicated histories can be loaded from a file:
load_epochs = .TRUE.
epoch_datafile = 'accretion_history'
The epoch_datafile
, in this example "accretion_history" has a header followed by a table of times and accretion rates. Within the header, !
are used to indicate comments, and there are 4 control parameters, as indicated in the following example.
number_cycles 2
Mdot_scale 1.0e18 ! [g/s]
time_scale 1.0 ! [d]
columns 'time [d]' 'Mdot [Eddington]'
To repeat the outburst/quiescent cycle multiple times, set number_cycles
> 1. The scale factors, Mdot_scale
and time_scale
, are multipliers for the table that convert to g/s
and d
for the accretion rate and time. Finally, the columns
entry indicates the column order. Only the first 4 characters are examined to see if the column contains 'time' or 'Mdot'
The header ends with a line
epochs
Subsequent lines are assumed to contain two columns of time and accretion rate. These columns are read into a temporary buffer, scaled by Mdot_scale
and time_scale
, repeated number_cycles
times, and then used to integrate in time. See the example accretion
for an example.
Look in the examples/INT-16-2b-demo
directory for a demonstration of using this code that was presented in a talk given at the INT workshop 16-2b, "Phases of Dense Matter". See the README.md
file in that directory for instructions.
Both the history.data
and profile
datafiles now list the total mass (solar units) and radius (kilometers) in the header. By total, I mean the value at the top of the domain, not the photosphere.
The structure pointer now contains arrays t_monitor
and Teff_monitor
that contain the epoch end times (in days) and the observer-frame effective temperature (in K) at the end of each epoch. This facilitates comparison with observations.
Check out the examples basic_run
, fit_lightcurve
, and custom_Tc_Qimp
to see how to add command line options to your run.
Check out tools/reader.py
. This contains a python class for reading the output history and profile data files. The quantities are stored as class members for easy access when analyzing results.
- git-lfs: the data files are stored using
git lfs
, which needs to be installed prior to cloning the repository. - MESA:
dStar
makes use of theMESA
numerical, utility, and equation of state libraries. Because of changes to howMESA
handles physical constants, you must use version 15140 or later. - MESA SDK: the compilation of both
MESA
anddStar
has been tested using a specific build environment.
This version of dStar
has been tested with MESA
version 15140 and the 2020 December 18 version of the MESA SDK
for MacOS, mesasdk-x86_64-macos-20.12.2
.
- Follow the instructions on the MESA website to build a working version of
MESA
, and ensure that the environment variableMESA_DIR
points to that directory. - Install git lfs from https://git-lfs.github.com/ appropriate for the operating system you are using. Run the command: $ git lfs install. Reclone the dStar repository if necessary.
- After forking or cloning the dStar repository, go into the top-level directory and type
./install
. If you had compiled it previously, you should do a./clean
first to force a clean install.
For each module, the install script
- Downloads, verifies, and installs to the
data
directory the necessary data files. Note that themd5
utility is used first for checking data integrity. This may be an issue on linux systems which prefermd5sum
. If so, edit thefetch_data
scripts. - Compiles each module as a library.
- Performs a test of each module and compares the output against a sample. A deviation from allowed tolerances results in a install failure.
- Installs the library and module files into the top-level
install
andlib
directories.
For each module, look in the test
directory for an example of how to run the module. The primary module is NScool
.
For a basic example of how to run a neutron star model over an accretion/quiescent cycle, copy examples/basic_run
and follow the instruction in the README.md
file in that directory.
If you do use dStar
, we'd appreciate a citation! dStar
is listed in the Astrophysics Source Code Library ascl:1505.034 and can be cited as, e.g.,
Brown, E. F. 2015, Astrophysics Source Code Library, ascl:1505.034
A bibliographic entry can be obtained from ADS.
- add load/save options for models
- ability to generate an atmosphere model with an arbitrary composition.
- Add environment variable pointer to root directory and allow cache directories to be in a user-specified location.