The AsteroFLAG Artificial Dataset Generator 3 (AADG3)¶
Introduction¶
AADG3 simulates lightcurves of solar-like oscillators. It is based on a series of programs derived from the original work by Chaplin et al. (1997), which describes the method of generating the oscillations using the Laplace transform solution of a damped harmonic oscillator. The use of a correlated excitation component to produce mode asymmetry was introduced by Toutain et al. (2006). Most recently, Howe et al. (2015) gave a detailed description of the code’s methods as part of their validation of BiSON results.
Variants of the code have been used by the Solar Fitting at Low Angular Degree (solarFLAG, e.g. Chaplin et al. 2006) and subsequent Asteroseismic Fitting at Low Angular Degree (asteroFLAG, e.g. Chaplin et al. 2008) consortia.
This version is derived from code delivered as version 2, which we incremented to the present version. We publicly released version 3.0 as part of Ball et al. (2018), in which we also presented a large catalogue of mock TESS targets for which we generated data using AADG3.
Please cite these papers appropriately if you use AADG3 in your research.
Download¶
AADG3 is hosted on GitLab, where you can find and download from the list of release versions or fork/clone the repo. For convenience, from here you can download archives of the
Installation¶
Extract the archive, change into the directory it creates, then run
cd make
make
This will place the standalone executable at bin/AADG3
under the
AADG3 folder.
The makefile
is set up to compile using gfortran
. Any
reasonably up-to-date version of gfortran
should be fine. The
code has been partially tested using versions 4.8.5 and 7.2.0 and
more extensively tested with versions 5.4.0 and 8.1.1. If you’re
having problems, you can install an up-to-date version of gfortran
on Mac OS or Linux by using the MESA SDK or MAD
SDK.
Note a subtle but important change of behaviour in the random number
generator (RNG) from gfortran
version 6 to 7. Before version 7,
calling random_seed
with no input sets the RNG to some default
state, which is always the same (at least on a given system). From
version 7 onwards, calling random_seed
with no input sets the RNG
using data from the operating system, which is different each time the
program is run. Thus, if you set user_seed=0
when compiling with
versions before 7, you’ll get the same timeseries each time you call
the program. If you used versions after 7, you’ll get a different
timeseries each time.
Running AADG3¶
The standalone executable file is placed in bin/AADG3
. You can
run it from anywhere on your system or add it to your $PATH
environment variable. I personally add a symbolic link to my
~/.local/bin
folder, which is in my $PATH
.
As of v3.0.1, AADG3 is parallelised using OpenMP. You can control the
number of threads that AADG3 uses through the $OMP_NUM_THREADS
environment variable.
You can run some basic tests using bin/test_AADG3
. Please let me
know if any failures are reported.
To get started, a few examples are provided in examples/
.
Navigate to any of those and run AADG3 <example>.in
. e.g.
cd examples/s4tess_llrgb
AADG3 s4tess_llrgb.in
The file s4tess_llrgb.asc
then contains the output timeseries.
The input file s4tess_llrgb.in
contains some information about
this example. These runs can take several minutes to finish, so don’t
be worried if you don’t see any output for a little while.
The various inputs are described in detail here.
Python module¶
The AADG3 distribution includes a small Python module under
python/
. This provides a handful of functions for reading and
writing input and output for the program. It also has a function
(PS_model
) to generate an approximate model of the power spectrum
that the code should produce, which is useful for basic testing and
cross-checking of results. To learn more about the Python module,
please read the API documentation.