Using METISSE to evolve single stars

METISSE can be used independently to compute the evolution of one star or a population of single stars. Once you have downloaded the code package for METISSE, you first need to compile it. To do so, open a command line shell and inside the METISSE folder execute:

$ ./mk

You will now see an executable named metisse which was not there before.

Note

The code does not need to be re-compiled unless you make changes inside the source src directory.

1.  Evolving one star

Let us compute the evolution of a star with initial mass 1 M_\odot star, metallicity Z = 0.02 up to the age of 12 billion years. Input to METISSE in the standalone mode is provided through two Fortran namelists: SSE_input_controls and METISSE_input_controls. See sections SSE input controls and METISSE input controls for a complete list of input options.

SSE_input_controls is contained in the file called main.input and is used to provide evolution details of the star.

&SSE_input_controls

initial_Z = 0.02

max_age = 1.2d4   

number_of_tracks = 1
min_mass = 1.d0

write_output_to_file = .true.   
/

We also need to provide the details of the input tracks to METISSE through the namelist METISSE_input_controls. In the standalone mode of METISSE, METISSE_input_controls is contained in the file called metisse.input.

We use the variable METALLICITY_DIR to supply paths to the folder containing Metallicity File for normal hydrogen stars and the variable METALLICITY_DIR_HE for naked helium stars. For the pre-packaged grid of stellar tracks available with METISSE, this is the path to the hydrogen and helium folders respectively.

&METISSE_input_controls


METALLICITY_DIR = '/Users/poojan/Downloads/sample_tracks_solarZ/Hydrogen/'
            
METALLICITY_DIR_HE = '/Users/poojan/Downloads/sample_tracks_solarZ/Helium/'

verbose = .true.

/

Important

The paths provided above are just examples. Users should provide METALLICITY_DIR and METALLICITY_DIR_HE based on the actual location of the Hydrogen and the Helium folders on their machine after downloading the grid.

Note that we have also set verbose to true so that we can see details of the input tracks on the screen. If verbose is False, then these details are saved in the tracks_log.txt file in the METISSE directory.

To run METISSE simply type ./metisse on the command line and hit enter. METISSE will produce the following output on the screen:

 $ ./metisse
 Input Z is :  2.00000E-02
 Reading naked helium star tracks
 Found matching Z_files   2.00000E-02
 Found           33  tracks.
 Minimum initial mass    0.4
 Maximum initial mass  148.8
 Reading main (hydrogen star) tracks
 Found matching Z_files   2.00000E-02
 Found           85  tracks.
 Minimum initial mass    0.1
 Maximum initial mass  299.3
 count        1  input mass =   1.000
     Time        0.0    Phase         MS     Mass   1.000
     Time     9515.7    Phase         HG     Mass   1.000
     Time    11251.0    Phase        FGB     Mass   0.999
     Time    12000.0    Phase        FGB     Mass   0.999
 -------------------------------------------------------------------------
 Reached the end of the program

Since we had set write_output_to_file = .true. in SSE_input_controls, a SSE-style file output file named ‘evolve_00100M.dat’ will also be generated in the output directory, containing a more detailed evolutionary history of the star.

2.  Evolving a stellar population

To compute the evolution of a single stellar population containing, for example, 10,000 stars with initial masses uniformly distributed between 1 and 100 M_\odot, we modify the SSE_input_controls from the single star case as shown below.

&SSE_input_controls

initial_Z = 0.02
max_age = 1.2d4   
number_of_tracks = 1d+4
min_mass = 1.d0
max_mass = 100.d0
sampling_scheme = 'uniform'
write_track_to_file = .true.   
/
 

We also set verbose = .false. in metisse.input to avoid flooding our screen with evolution details of 10,000 stars.

Running METISSE does not produce any on-screen output this time.

$ ./metisse

We also kept write_track_to_file = .true. in SSE_input_controls. Therefore, the output directory will now contain the evolutionary histories of all 10,000 stars.

sampling_scheme can also be set to Kroupa2001 to compute a population of stars with initial masses distributed according to Kroupa P., (2001). To compute a population of single stars with any other distribution of initial masses, we can list initial masses in a text file (one per line) and provide the location of that file through input_mass_file. If the masses are listed in a file called my_custom_distribution.txt, then SSE_input_controls will look like this:

&SSE_input_controls

initial_Z = 0.02

max_age = 1.2d4   

number_of_tracks = 1d+4

read_mass_from_file = .true.  

input_mass_file = 'my_custom_distribution.txt'

write_track_to_file = .true.  

/
 

Note that we still need to define number_of_tracks as METISSE will read input_mass_file for that many stars and will raise error if the file contains fewer stars.

3.  If the metallicity value is not present in the input grid

Let’s say in the above example of a single star, we set initial_Z = 0.016. Running METISSE now gives an error, as the metallicity value is not present in the grid of input tracks.

$ ./metisse 
 Input Z is :  1.60000E-02
 Reading naked helium star tracks
 No matching Z_files found with Z_accuracy_limit =  1.00000E-02
 Switching to SSE formulae for helium stars 
 Reading main (hydrogen star) tracks
 No matching Z_files found with Z_accuracy_limit =  1.00000E-02
 If needed, Z_accuracy_limit can be increased to match one of the available Z_files 
    2.00000E-02
STOP Fatal error: terminating METISSE

METISSE does not interpolate in metallicity. So ideally, we should compute input tracks with Z = 0.016 and provide them to METISSE.

Another option is that we can ask METISSE to use nearby metallicity values. This is achieved by increasing Z_accuracy_limit in METISSE_input_controls. METISSE lists available metallicity values in the grid, whenever it cannot find the input value.

In the example set, we have tracks for only one metallicity. However, if we were working with a larger grid of stellar tracks, with metallicity values normally distributed between 10-5 to 10-1, we could increase Z_accuracy_limit to 8d-2. This would allow METISSE to run using the closest metallicity in the list, which is 0.0148.

$ ./metisse
 Input Z is :  1.60000E-02
 Reading naked helium star tracks
 Found matching Z_files   1.48740E-02
 Found           35  tracks.
 Minimum initial mass    0.4
 Maximum initial mass  148.7
 Reading main (hydrogen star) tracks
 Found matching Z_files   1.48740E-02
 Found           85  tracks.
 Minimum initial mass    0.1
 Maximum initial mass  299.4
 count        1  input mass =   1.000
     Time        0.0    Phase         MS     Mass   1.000
     Time     8024.2    Phase         HG     Mass   1.000
     Time     9563.4    Phase        FGB     Mass   0.999
     Time    10340.5    Phase       CHeB     Mass   0.958
     Time    10461.4    Phase       EAGB     Mass   0.955
     Time    10471.1    Phase      CO_WD     Mass   0.421
     Time    12000.0    Phase      CO_WD     Mass   0.421
 -------------------------------------------------------------------------
 Reached the end of the program