16/02/2010

MESA/star is configured to accept settings and options using fortran namelists.

The basic functionality of MESA/star is accessible through two namelists:

 1 - star_job

 2 - controls

These can be conveniently combined into one file, which we call an inlist file.
There are several additional namelists for specific tasks, such solar model
calibration. More on these later.

MESA/star has default settings for all of the parameters in star_job and controls
built in to the code.  A record of these values is provided in 'inlist_standard'
as a reference for users. A number of individual examples are also provided.

To run MESA/star for a particular case, the user needs to create a namelist
file that contains the information that the code requires to model that case.
The developers highly recommend that the file includes only the minimum
number of parameters necessary rather than making a copy of inlist_standard and 
changing a few parameters. The former approach makes it easier for the user and 
others to understand what a given inlist is doing and will require a minimum 
number of adjustments if the settings change from one release to the next.

It is a good idea to browse through inlist_standard in order to become familiar
with the variety of options available. The file is quite long but it is broken
up into sections. The star_job namelist tells MESA/star what type of calculation
it's going to do, what sort of model it's going to start from, and some other 
information required at startup, such as the nuclear network and opacity tables.
The controls namelist tells MESA/star about mass, composition, certain aspects of
the physics to be considered, numerical tolerances, timesteps, and when the 
calculation should end.

When the MESA/star executable is run, it first reads the file 'inlist'. 'inlist'
can either include the desired parameter settings or point to another inlist
that includes these settings. The developers recommend the latter option because
it allows one to keep a record of settings used for a particular model for later
reference or sharing. If a parameter isn't specified, the default value (see 
inlist_standard) is assumed.

Example:
Let's say we want to compute a model of a 3 Solar mass, metal-free star with 
Reimers' mass loss and the o18_and_ne22 nuclear network. We'll start the evolution 
from the pre-main sequence and terminate at the end of core hydrogen burning.

First create a file called "inlist_M3_Z0" looking like this:

&star_job

      create_pre_main_sequence_model = .true.

      change_net = .true. ! switch nuclear reaction network
      new_net_name = 'o18_and_ne22.net'

      eos_file_prefix = 'mesa' ! select eos tables
      kappa_file_prefix = 'gs98' ! select opacity tables

/ !end of star_job

&controls

     ! starting specifications
         initial_mass = 3 ! in Msun units
         initial_Z = 0.00
         initial_Y = 0.25

     ! mass gain or loss
         RGB_wind_scheme = 'Reimers'
         Reimers_wind_eta = 0.4  

     ! when to stop
         xa_central_lower_limit_species(1) = 'h1' ! isotope name as defined in chem_def
         xa_central_lower_limit(1) = 1d-4                 
            ! stop when the center abundance by mass of h1 drops below this limit.

/


Then edit the "inlist" file so that it looks like this:


&star_job
            
      read_extra_star_job_inlist1 = .true.
      extra_star_job_inlist1_name = 'inlist_M3_Z0'

/ ! end of star_job namelist

&controls

      read_extra_controls_inlist1 = .true.
      extra_controls_inlist1_name = 'inlist_M3_Z0'

/ ! end of controls namelist


To make your local executable for star, do ./mk
It shouldn't have much to do -- perhaps compile 2 files before loading.
The output might look something like with (details will differ):

/Users/bpaxton/mesa/star/work: ./mk
ifort  -vec-report0 -traceback -error-limit 6 -openmp -threads -check uninit -check pointers -check bounds -check all -g -I/Users/bpaxton/mesa/include  -c -free ../src/run_star_extras.f
ifort  -vec-report0 -traceback -error-limit 6 -openmp -threads -check uninit -check pointers -check bounds -check all -g -I/Users/bpaxton/mesa/include  -c -free /Users/bpaxton/mesa/star/test/src/run_star.f
ifort  -vec-report0 -traceback -error-limit 6 -openmp -threads -check uninit -check pointers -check bounds -check all -g -I/Users/bpaxton/mesa/include  -c -free ../src/run.f
ifort -openmp -threads -o ../star run_star_extras.o run_star.o  run.o -L/Users/bpaxton/mesa/lib -lstar -lpulse -ldiffusion -lionization -lmlt -latm -lkaro -lcolors -leos -lkap -lnet -lscreen -lrates -lreaclib -lweak -lneu -lchem -linterp_2d -linterp_1d -lnum -lutils -lalert -lconst -lmtx -lmesaklu -lmesalapack -lmesablas -L/Users/bpaxton/mesa/utils/pgplot -lpgplot -L/usr/X11R6/lib -lX11 -lpng  


To run, execute the run script : ./rn

It would be a good idea for you to give this a try.
To judge how things are progressing, you might want to know that
a recent run using this inlist finished in a few thousand steps
and took a few minutes on a not-so-new laptop.  Your results
may differ somewhat, but this should give you an idea of
what to expect.

Take a moment to become familiar with the terminal output format
before you declare victory on this!

Cheers,
Bill