# Frequency Grids

GYRE evaluates its discriminant function $$\Dfunc(\omega)$$ on a grid $$\{\omega_{1},\omega_{2},\ldots,\omega_{M}\}$$ in the dimensionless frequency, and scans for changes in the sign of $$\Dfunc(\omega)$$ that are indicative of a bracketed root. The computational cost of a calculation scales with the total number of points $$M$$ in this grid, while the grid’s resolution — i.e., the spacing between adjacent points — impacts the completeness of the modes found by GYRE (see the Limitations of the Numerical Method section for a discussion of these behaviors).

GYRE constructs a fresh frequency grid for each combination of harmonic degree $$\ell$$ and azimuthal order $$m$$ specified in the &mode namelist groups (see the Namelist Input Files chapter for more details). This is done under the control of the &scan namelist groups; there must be at least one of these, subject to the tag matching rules (see the Working With Tags chapter). Each &scan group creates a separate frequency grid; these are then combined and the discriminant function is evaluated on the merged grid.

## Grid Types

The grid_type parameter of the &scan namelist group controls the overall distribution of points in a frequency grid. There are currently three options:

### Linear Grid

When grid_type = 'LINEAR', GYRE first evaluates a sequence of dimensionless angular frequencies in the grid reference frame according to the formula

$\omega^{\rm g}_{j} = \frac{1}{M-1} \left[ (M - j)\, \omega^{\rm g}_{\rm min} + (j - 1) \, \omega^{\rm g}_{\rm max} \right] \qquad j = 1,2,\ldots,M.$

(here, the superscript ‘g’ indicates that these are frequencies in the grid reference frame). Then, it transforms from the grid frame to the inertial reference frame via

$\omega_{j} = \omega^{\rm g}_{j} + \Delta \omega$

where $$\Delta\omega$$ is the frequency shift that transforms from the grid frame to the inertial frame. The actual value of this shift depends on the grid_frame parameter:

• When grid_frame = 'INERTIAL', the shift is $$\Delta \omega = 0$$; the grid frame and the inertial frame coincide.

• When grid_frame = 'COROT_I', the shift is $$\Delta \omega = m \, \Omega_{\rm i}$$, where $$\Omega_{\rm i}$$ is the dimensionless rotation angular velocity at the inner boundary of the spatial grid; the grid frame coincides with the local co-rotating frame at that boundary.

• When grid_frame = 'COROT_O', the shift is $$\Delta \omega = m \, \Omega_{\rm o}$$, where $$\Omega_{\rm o}$$ is the dimensionless rotation angular velocity at the outer boundary of the spatial grid; the grid frame coincides with the local co-rotating frame at that boundary.

The range spanned by the frequency grid, in the grid frame, is set by $$\omega^{\rm g}_{\rm min}$$ and $$\omega^{\rm g}_{\rm max}$$. These are evaluated via

$\omega^{\rm g}_{\rm min} = \frac{f_{\rm min}}{\widehat{f}_{\rm min}} - \delta \omega, \qquad \qquad \omega^{\rm g}_{\rm max} = \frac{f_{\rm max}}{\widehat{f}_{\rm max}} - \delta \omega,$

where $$f_{\rm min,max}$$ are user-definable, $$\widehat{f}_{\rm min,max}$$ will be discussed below in the Frequency Units section, and $$\delta\omega$$ is the frequency shift that transforms from the frame in which $$f_{\rm min,max}$$ are defined to inertial frame. The actual value of this shift depends on the freq_min_frame and freq_max_frame parameters, which behave analogously to the grid_frame parameter discussed above.

### Inverse Grid

When grid_type = 'INVERSE', GYRE first evaluates a sequence of dimensionless angular frequencies in the grid reference frame according to the formula

$\omega_{{\rm g},j} = (M-1) \left[ \frac{(M - j)}{\omega^{\rm g}_{\rm min}} + \frac{(j - 1)}{\omega^{\rm g}_{\rm max}} \right]^{-1} \qquad j = 1,2,\ldots,M.$

The grid creation then proceeds as described above in the Linear Grid section.

### File Grid

When grid_type = 'FILE', GYRE first reads a sequence of dimensioned frequencies $$\{f_{1},f_{2},\ldots,f_{M}\}$$ from an external file named by the grid_file parameter. This file is a single-column ASCII table; the number of points $$M$$ is determined implicitly from the number of lines in the file. Then, it transforms these frequencies via

$\omega_{j} = \frac{f_{j}}{\widehat{f}} - \delta \omega,$

where $$\widehat{f}$$ will be discussed below in the Frequency Units section, and $$\delta\omega$$ is the frequency shift that transforms from the frame in which $$f$$ is defined to inertial frame. The actual value of this shift depends on the freq_frame and parameter, which behave analogously to the grid_frame parameter discussed above in the Linear Grid section.

## Frequency Units

In the expressions above, terms of the form $$f/\widehat{f}$$ are used to transform a dimensioned frequency $$f$$ into a dimensionless one $$\omega$$. The scale factor $$\widehat{f}$$ depends on the freq_units parameter. Thus, for example, if freq_units = 'UHZ, then $$f$$ is treated as a linear frequency expressed in $${\rm \mu Hz}$$, and the scale factor is set by

$\widehat{f} = \sqrt{\frac{GM}{R^{3}}} \frac{1\,{\rm \mu Hz}}{2\pi}$

(the factor of $$2\pi$$ converts from linear to angular frequency).

The full set of values supported by the freq_units parameter is listed in the Frequency Scan Parameters section.

## Namelist Parameters

The full set of parameters supported by the &scan namelist group is listed in the Frequency Scan Parameters section. However, the table below summarizes the mapping between the user-definable controls appearing in the expressions above, and the corresponding namelist parameters:

Symbol

Parameter

$$f_{\rm min}$$

freq_min

$$f_{\rm max}$$

freq_max

$$M$$

n_freq