File formats
============
Format of a file with a list of models and properties:
------------------------------------------------------
Description:
* The first line is a header. It contains the root folder
(including the final slash) with the grid of models and
optionally, a suffix for the names of the files with the
theoretical pulsation frequencies. For example::
/home/dreese/models_inversions/Grid_mesa_MS/ .freq
* Each of the following lines correspond to one model in
the grid. They are composed of 8 or more columns with the
following information:
1. The second part of the path for the given model.
When concatenated with the prefix on the first line,
this should give the full path to the model. If,
furthermore, the suffix from the first line is
appended to it, it gives the name of the file
with the frequencies.
2. The stellar mass in :math:`\mathrm{g}`
3. The stellar radius in :math:`\mathrm{cm}`
4. The stellar luminosity in :math:`\mathrm{g.cm^2.s^{-3}}`
5. The metallicity
6. The hydrogen content
7. The stellar age in :math:`\mathrm{Myrs}`
8. The effective temperature in :math:`\mathrm{K}`
9. (user-defined) This and the following columns correspond
to the parameters specified in the ``user_params``
variable given in ``AIMS_configure.py``.
* Except for the first line, the order of the lines does
not matter. AIMS will construct evolutionary tracks based
on the parameters selected in the ``grid_params`` variable
given in ``AIMS_configure.py``, and sort them according to
age.
Example:
Here's an example of a file read by AIMS (via the
:py:meth:`model.Model_grid.read_model_list` method)::
/home/dreese/models_inversions/Grid_mesa_MS/ .freq
M0.80/LOGS_M0.80/M0.80Z0.0028Y0.2536/m0.80Y0.2536Z0.0028a1.8ovh0.2ovhe0_n1.profile.FGONG 1.59136E+33 5.02248266E+10 2.3309799E+33 0.0028 0.7436 1.0000000E-04 6000.94326 7.432106E-01
M0.80/LOGS_M0.80/M0.80Z0.0028Y0.2536/m0.80Y0.2536Z0.0028a1.8ovh0.2ovhe0_n10.profile.FGONG 1.59136E+33 5.02990358E+10 2.1724140E+33 0.0028 0.7436 2.0974688E+03 5891.82623 6.146083E-01
M0.80/LOGS_M0.80/M0.80Z0.0028Y0.2536/m0.80Y0.2536Z0.0028a1.8ovh0.2ovhe0_n11.profile.FGONG 1.59136E+33 5.04940406E+10 2.2011824E+33 0.0028 0.7436 2.3237113E+03 5899.81040 6.001537E-01
It contains three models. The structure of the first model can
be found in the following file::
/home/dreese/models_inversions/Grid_mesa_MS/M0.80/LOGS_M0.80/M0.80Z0.0028Y0.2536/m0.80Y0.2536Z0.0028a1.8ovh0.2ovhe0_n1.profile.FGONG
and its frequencies in this file::
/home/dreese/models_inversions/Grid_mesa_MS/M0.80/LOGS_M0.80/M0.80Z0.0028Y0.2536/m0.80Y0.2536Z0.0028a1.8ovh0.2ovhe0_n1.profile.FGONG.freq
The ninth column corresponds to the central hydrogen
content, as specified by the contents of the ``user_params``
variable from ``AIMS_configure.py``::
user_params = (("Xc", r'Central hydrogen, $%sX_c%s$'),)
Format of a file with theoretical frequencies:
----------------------------------------------
As of version 1.2, AIMS is able to read two different formats
when reading the theoretical frequencies from a file. The first
is a text file described below. The second is the grand summary
file from `ADIPLS `_.
This is a FORTRAN binary format described on pages 32 and 33 of the ADIPLS
`documentation `_.
The following describes files in the text format:
Description:
* the first line is a header (and is skipped)
* the following lines contain five columns which correspond
to l, n, frequency, a_value, inertia
- the a_value column is ignored, so it could contain anything.
``InversionKit`` will typically put the difference between
the numerical and variational frequencies in that column.
Example:
Here's an example of a file with theoretical pulsation
frequencies which can be read by AIMS (via the
:py:meth:`model.Model.read_file` method)::
#l n nu_theo (muHz) nu_var-nu_theo (muHz) Inertia
0 15 3.225852209451052e+03 1.312960435370769e-03 3.233628965187502e-09
0 16 3.421699035498995e+03 -2.482639610207116e-03 2.229252226305757e-09
0 17 3.615805033992529e+03 3.993051574070705e-03 1.618154348529283e-09
0 18 3.809740380503104e+03 9.650666734160040e-04 1.250359548964621e-09
0 19 4.003716857281849e+03 -7.991676880010345e-03 1.033914933206195e-09
0 20 4.198691419457581e+03 1.742711681799847e-03 8.866985261874711e-10
1 15 3.316007619955153e+03 5.056100344972947e-03 2.715966891128009e-09
1 16 3.511258977705781e+03 1.855844971032639e-04 1.902147334986236e-09
1 17 3.705576731149742e+03 -2.505276897409203e-03 1.424266453221534e-09
1 18 3.899485457373566e+03 5.212276555539575e-03 1.134594720287415e-09
1 19 4.094401244305849e+03 6.020260397235688e-03 9.579611596023003e-10
1 20 4.289716814475406e+03 -1.019475706561934e-02 8.344804874142957e-10
2 15 3.399280335063532e+03 -8.466318249702454e-04 2.315947651745295e-09
2 16 3.594141943503532e+03 4.712417365681176e-03 1.665322627996223e-09
2 17 3.788792185755381e+03 -1.167229517704982e-03 1.277569745555387e-09
2 18 3.983271067684743e+03 -6.187409578615188e-03 1.048757367028520e-09
2 19 4.178866833517976e+03 6.893199766636826e-03 8.963691946280509e-10
2 20 4.374959711016754e+03 3.274638356742798e-03 7.911508926344487e-10
3 15 3.476224140192640e+03 -2.524210208321165e-03 2.009476926536794e-09
3 16 3.671438520072859e+03 2.351724720028869e-04 1.485336526791650e-09
3 17 3.866350877376991e+03 5.643782460992952e-03 1.167619144668003e-09
3 18 4.061929209725198e+03 -1.552865011490212e-03 9.789648655155361e-10
3 19 4.258077196700047e+03 -8.629839649984206e-03 8.472972126693386e-10
3 20 4.455063887754256e+03 1.484804296796938e-02 7.528069568152023e-10
Format of a file with observational constraints:
------------------------------------------------
Description:
* a collection of lines with frequency data with either
(l, freq, error_bar) or (l, n, freq, error_bar) (depending on
the value of ``read_n`` in the ``AIMS_configure.py``
file). For example::
0 1503.5 0.16
or the following if specifying the radial order::
0 15 1503.5 0.16
* a collection of lines with classical constraints. These
start with the name of the relevant parameter (see
possible options in :py:func:`model.Model.string_to_param`)
followed by a description of its probability distribution
function. This probability distribution function is
specified in two possible ways:
- it is implicitly assumed to be Gaussian. In this situation
it is only necessary to specify the mean value and the
one sigma error bar. For example::
Teff 6100 80
- it is explicitly specified (different options are given
in :py:class:`AIMS.Distribution`)::
Teff Uniform 6000 6200
* anything following a ``#`` is a comment
* the order of the lines does not matter
Examples:
* example of a file where n is *not* specified::
0 1582.20 0.13 # this is a (useless) comment
0 1684.02 0.16
0 1785.57 0.15
1 1526.55 0.29
1 1628.90 0.30
1 1730.45 0.17
2 1575.49 0.82
2 1676.25 0.51
2 1777.62 0.27
Teff 6060.00 84.00
Fe_H -0.20 0.09
* example of a file where n is specified::
0 15 1582.20 0.13
0 16 1684.02 0.16
Teff 6060.00 84.00 # AIMS doesn't worry about the order of the lines
0 17 1785.57 0.15
1 14 1526.55 0.29
1 15 1628.90 0.30
1 16 1730.45 0.17
2 14 1575.49 0.82
2 15 1676.25 0.51
2 16 1777.62 0.27
Fe_H -0.20 0.09
Differences with `AMP `_:
* the number of frequencies does not need to be specified
(if this line contains supplementary parameters, than
``AIMS.py`` may confuse it with frequency data)
* there are no flags (one should adjust the parameters in
``AIMS_configure.py`` instead)
* the order of the lines is not important (one can mix
the classic and seismic observables)
* it is possible to specify radial orders (depending on
the value of ``read_n`` in the ``AIMS_configure.py``
file)
* the treatment of non-seismic constraints is more flexible
- a larger variety of non-seismic constraints can be included
(see possible options in :py:func:`model.Model.string_to_param`)
- full parameter names are allowed (and preferred); for compatibility
with `AMP `_, the same one letter
abbreviations are also allowed
- it is possible to specify the probability distribution function