Frequency Grids
The gyre frontend 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).
A fresh frequency grid is constructed for each iteration of the main
computation loop (see the flowchart in the gyre section). 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
(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
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 corotating 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 corotating 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
where \(f_{\rm min,max}\) are userdefinable,
\(\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 the inertial frame. The actual value of this shift depends
on the freq_frame
parameter, which behaves 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
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 singlecolumn ASCII table; the number of points \(M\) is
determined implicitly from the number of lines in the file. Then, it
transforms these frequencies via
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
the inertial frame. The actual value of this shift depends on the
freq_frame
parameter, which behaves analogously to the
grid_frame
parameter discussed above.
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
(the factor of \(2\pi\) comes from the transformation between linear and 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 userdefinable controls
appearing in the expressions above, and the corresponding namelist
parameters:
Symbol 
Parameter 

\(f_{\rm min}\) 

\(f_{\rm max}\) 

\(M\) 

Recommended Values
The default values freq_min=1
, freq_max=10
,
n_freq=10
, together with grid_type='LINEAR'
are
sufficient to find some modes — although unlikely the modes that
you want. Choosing good values for these parameters requires some
degree of judgment, but here are some suggestions:
The number of points in the frequency grid should be a factor of 2–3 larger than the number of modes you expect gyre will find. This is to ensure that the frequency spacing of the grid is everywhere smaller than the anticipated eigenfrequency spacing between adjacent modes (see the Limitations of the Numerical Method section for further discussion).
The distribution of points in the frequency grid should follow anticipated distribution of mode frequencies; this again is to ensure adequate frequency resolution. For p modes, which tend toward a uniform frequency spacing in the asymptotic limit of large radial order, you should chose
grid_type = 'LINEAR'
; likewise, for g modes, which tend toward a uniform period spacing in the asymptotic limit, you should choosegrid_type = 'INVERSE'
.When modeling rotating stars, you should choose
grid_frame = 'COROT_I'
orgrid_frame = 'COROT_O'
, because the asymptotic behaviors mentioned above apply in the corotating reference frame rather than the inertial one.