Vpro: velocity profile broadening model

This multiplicative model broadens an arbitrary additive component with an arbitrarily shaped Doppler profile, characterized by the half-width \(v\) and a profile shape \(f(x)\). The resulting spectrum \(S_c(E)\) is calculated from the original spectrum \(S(E)\) as

\[S_c(E) = \int f \bigl( \frac{E-E_0}{E_0} \frac{v}{c} \bigr) S(E_0) {\mathrm d}E_0.\]

The function \(f(x)\) must correspond to a probability function, i.e. for all values of \(x\) we have

\[f(x)\ge 0\]

and furthermore

\[\int_{-\infty}^{\infty} f(x) {\mathrm d}x = 1.\]

In our implementation, we do not use \(f(x)\) but instead the cumulative probability density function \(F(x)\), which is related to \(f(x)\) by

\[F(x)\equiv \int_{-\infty}^{x} f(y){\mathrm d}y,\]

where obviously \(F(-\infty)=0\) and \(F(\infty)=1\). The reason for using the cumulative distribution is that this allows easier interpolation and conservation of photons in the numerical integrations.

If this component is used, you must have a file available which we call here vprof.dat (but any name is allowed). This is a simple ascii file, with \(n\) lines, and at each line two numbers: a value for \(x\) and the corresponding \(F(x)\). The lines must be sorted in ascending order in \(x\), and for \(F(x)\) to be a proper probability distribution, it must be a non-decreasing function i.e. if \(F(x_{i})\le F(x_{i+1})\) for all values of \(i\) between 1 and \(n-1\). Furthermore, we demand that \(F(x_1)\equiv 0\) and \(F(x_n)\equiv 1\).

Note that both \(x\) and \(F(x)\) are dimensionless. The parameter \(v\) serves as a scaling parameter for the total amount of broadening. Of course for a given profile there is freedom for the choice of both the \(x\)-scale as well as the value of \(v\), as long as e.g. \(x_n v\) remains constant. In practice it is better to make a logical choice. For example, for a rectangular velocity broadening (equivalent to the vblo broadening model) one would choose \(n=2\) with \(x_1=-1\), \(x_2=1\), \(F(x_1)=0\) and \(F(x_2)=1\), and then let \(v\) do the scaling (this also allows you to have \(v\) as a free parameter in spectral fits). If one would instead want to describe a Gaussian profile (for which of course also the vgau model exists, Vgau: gaussian velocity broadening model), one could for example approximate the profile by taking the \(x\)-scale in units of the standard deviation; an example with a resolution of 0.1 standard deviation and a cut-off approximation at 5 standard deviations would be \(x=\)-5, -4.9, -4.8, \(\ldots\), 4.8, 4.9, 5.0 with corresponding values for \(F\) given by \(F=\) 0, 0.00000048, 0.00000079, \(\ldots\), 0.99999921, 0.99999952, 1.

The parameters of the model are:

v : Velocity broadening parameter \(v\), in km/s. Default value: 1 km/s.
file : Ascii character string, containing the actual name of the vprof.dat file