(It is "v-komp-t-h"; phonetically it is "viː-käm(p)-tiː-eɪʧ")
This is the Fortran version of the vKompth code from Bellavita et al. 2022, MNRAS 515, 2099 which was originally developed in Karpouzas et al. 2020, MNRAS 492, 1399 and García et al. 2021, MNRAS 501, 3173.
In order to invert the matrix of the linear problem, vKompth
requires the DGTSV
, ZGETRF
and ZGETRS
routines from the Lapack or openBLAS libraries, which have to be installed in your system. Before compiling the code check the lopenblas
choice under the LDLIBS
variable in the Makefile
and change it to lopenblas
, lopenblasp
or llapack
, depending the one you have installed in your system, and LDFLAGS
to the directory where the library is installed.
Make sure you have HEASOFT installed from the source version, and set it up before compiling the XSPEC models. This model has to be compiled with the same compiler version used for HEASOFT to ensure compatibility. Read the HEASOFT pages about compilers.
In order to compile the python wrappers, you need to have a working python3
environment set up, including numpy
and matplotlib
packages.
Run make
to compile the main program vKompth
source code, together with the corresponding XSPEC models and python wrappers, including the different model variants: bb=blackbody seed-photon source; dk=diskbb seed-photon source; dual=two coronas.
To run vKompth
in multithread mode set, for instance:
export OPENBLAS_NUM_THREADS=2 #(BASH version)
setenv OPENBLAS_NUM_THREADS 2 #(CSH version)
Go into pyvkompth
subdirectory and run python3 pyvkompth.py
. A GUI will load plotting both rms and lags for vkompthbb
and vkompthdk
model variants, allowing to modify parameters on-the-fly with interactive sliders.
In an XSPEC session, for instance, vkompthbb
can be then loaded using:
lmod vkompthbb /PATHTO/vkompthbb/
(and similar commands for the other wrappers: vkompthdk
, vkdualbb
and vkdualdk
).
Alternatively, the four model variants can be loaded using the XSPEC
script provided as @load_vkompth.xcm
. This script also includes plotting commands like plrl
which can be used to produce a fancy plot for both rms and lags in XSPEC if data are loaded as data 1:1 rms.pha 2:2 lag.pha
.
Examples of those can be found under the MAXI_J1348-630
subdirectory, which correspond to data published under Bellavita et al. 2022, MNRAS 515, 2099.
Under the directory DILUTION
you can find an example of the simultaneous fit to the spectrum of the source and the rms and lag spectra of the QPO including the effect of dilution on the rms spectrum. See for instance Ma et al. 2023, MNRAS, 525, 854, or Zhang et al. 2023, MNRAS, 520, 5144 for details.
We also provide a bash
script named asciiTOvkompth.sh
, which uses FTOOLS
to convert ASCII files with energy-dependent rms, lags and time-averaged spectra, into PHA and RMF FITS files fully compatible with our vKompth
model variants (by including both QPO frequency and mode as XFLT variables for XSPEC).
For questions, comments and issues, please contact the authors of Bellavita et al. 2022, MNRAS 515, 2099 preferably through the vKompth GitHub.