# Wiki

# gyre / Release Notes

# 5.1 (September 21, 2017)

## New Features

- Added the
`eddinton_approx`

flag to the`&osc`

namelist; set to`.TRUE.`

to enable the Eddington approximation (instead of the usual diffusion approximation). - Added the
`quasiad_eigfuncs`

flag to the`&osc`

namelist; set to`.TRUE.`

to calculate quasiadiabatic entropy and luminosity perturbations during adiabatic calculations. These are then used in the calculation of related quantities, such as work functions. - Added the
`deps_scheme`

parameter to the`&osc`

namelist; this (together with the`deps_file`

and`deps_file_format`

) can be used to incorporate frequency-dependent nuclear burning partials. - Added the
`complex_lambda`

flag to the`&osc`

namelist; set to`.TRUE.`

to use complex arithmetic when evaluating the angular eigenvalue lambda in non-adiabati calculationsc. If set to`.FALSE.`

, then lambda will be evaluated using real arithmetic, with the spin parameter q based on the adiabatic frequency of the mode being sought (this is preferable on numerical grounds). - Added the following output items:
`c_lum`

(luminosity thermal coefficient)`c_thn`

(optically-thin thermal coefficient)`c_thk`

(optically-thick thermal coefficient)`c_eps`

(energy generation thermal coefficient)`lag_S_ref`

(specific entropy perturbation at reference point)`lag_L_ref`

(radiative luminosity perturbation at reference point)`eps_rho`

(energy generation partial wrt density)`eps_T`

(energy generation partial wrt temperature)`kap_rho`

(opacity partial wrt density)`kap_T`

(opacity partial wrt temperature)

# 5.0 (July 1, 2017)

## New Features

- Introduced support for models containing density discontinuities (represented by a double point)
- Updated the
`build_poly`

executable to allow creation of mixed polytropes with density discontinuities - Added the
`poly_to_fgong`

executable, which creates FGONG-format files from polytrope files - Added the following parameters to the
`&model`

namelist:`Omega_units`

`dx_snap`

`repair_As`

- Added the
`rossby`

parameter to the`&mode`

namelist: - Added the following parameters to the
`&osc`

namelist:`nonadiabatic`

`time_factor`

`conv_scheme`

- Added the
`'MIRK'`

(mono-implicit Runge-Kutta) option to the`diff_solver`

parameter - Added the following options to the
`freq_min_units`

and`freq_max_units`

parameters:`'LOWER_DELTA'`

`'UPPER_DELTA'`

`'ROSSBY_I'`

`'ROSSBY_O'`

- Added the following output items:
`Delta_p`

(acoustic large frequency separation)`Delta_g`

(gravity inverse period separation)`H`

(total mode energy)`W_eps`

(work due to nuclear processes)`nabla`

(structure coefficient)`dnabla_ad`

(structure coefficient)`c_dif`

(structure coefficient)`c_thm`

(structure coefficient)`y_`

i (i=1,...,6; dimensionless eigenfunctions)`dW_dx_eps`

(differential work due to nuclear processes)`dtau_dx_ss`

(steady-state differential torque)`dtau_dx_tr`

(transient differential torque)

- Added support for versions 1.00 and 1.01 MESA-format files
- Added support for version >= 1000 FGONG-format files
- Added
`%m`

option to substitutions applied to`mode_template`

parameter

## Changed Functionality

- Replaced the separate
`gyre_ad`

and`gyre_nad`

executables with a monolithic executable,`gyre`

, which handles both adiabatic and non-adiabatic calculations - Replaced
`&output`

namelist by`&ad_output`

and`&nad_output`

namelists, to handle adiabatic and non-adiabatic output, respectively - Replaced multiple
`&shoot_grid`

and`&recon_grid`

namelist with a single`&grid`

namelist. Grid construction is now handled as a "one-and-done" operation, rather than a sequence of operations - Parameters for
`'HOM'`

models are now specified in the`&model`

inlist - Split the
`freq_units`

parameter into separate`freq_min_units`

and`freq_max_units`

parameters - Split the
`freq_frame`

parameter into separate`freq_min_frame`

and`freq_max_frame`

parameters - Renamed the
`ivp_solver`

parameter to`diff_solver`

(difference solver) - Renamed the
`'PER_DAY'`

option for the`freq_*_units`

parameters to`'CYC_PER_DAY'`

- The default
`variables_set`

parameter is now`'GYRE'`

--- a canonical set of variables specified in the equations.pdf document - Renamed the
`'ZERO'`

outer boundary option to`'VACUUM'`

- Replaced the
`C`

output item with`beta`

## Bug Fixes

`x_i`

and`x_o`

parameters in`&grid`

inlist now actually work

# 4.4 (March 30, 2016)

## Bug Fixes

- Added regularization back into the
`MAGNUS_GL*`

schemes, to restore their convergence for giant models - Fixed bug in reading LOSC files

# 4.3 (September 17, 2015)

## New Features

- Added the
`COLLOC_GL6`

IVP solver - Allowed usage of
`COLLOC_GL4`

and`COLLOC_GL6`

IVP solvers for non-adiabatic calculations. These give much better results than the corresponding`MAGNUS_GL4`

and`MAGNUS_GL6`

solvers - Set
`COLLOC_GL2`

as the default IVP solver - Added
`narf_approx`

flag to`&osc`

namelist; set to`.TRUE.`

to turn on the non-adiabatic radial flux (NARF) approximation - Added
`x_i`

and`x_o`

parameters to`&scan_grid`

and`&recon_grid`

namelists, to allow the specification of the inner- and outermost grid points - Changed the assumed time dependence of oscillations to exp(-i omega t). This means that modes with positive Im(omega) are unstable, and vice versa -- the opposite of the behavior in previous versions of GYRE
- Changed the
`m`

output item to mean the azimuthal order; the interior mass is now accessed through the`M_r`

item

# 4.2 (July 2, 2015) -

## New Features

- Added
`cowling_approx`

flag to`&osc`

namelist; set to`.TRUE.`

to turn on the Cowling approximation

# 4.1 (May 15, 2015) -

## New Features

- Added
`GYRE_DIR`

parameter to`&constants`

namelist, as an alternative way of pointing to the top-level GYRE directory - Added
`Omega_rot`

,`l_0`

,`eul_phi_ref`

and`deul_phi_ref`

output items - Added
`label`

parameter to`&output`

namelist - Added
`restrict_roots`

parameter to`&num`

namelist

# 4.0 (February 2, 2015)

## New Features

- The
`GYRE_DIR`

environment variable now needs to be set, to point to the top-level GYRE directory - GYRE no longer needs gfortran 4.10 (aka gfortran 5.0) to compile; it works fine with gfortran 4.9.3
- Implemented dedicated code paths for real and complex arithmetic, resulting in significant speedups in many cases
- Added
`uniform_rot`

flag and`Omega_uni`

parameter to`&model`

namelist, to enforce rigid rotation on the model - Added
`reconstruct_As`

flag to`&model`

namelist, controlling numerical reconstruction of the dimensionless Brunt-Vaisala frequency - Added
`rotation_method`

parameter to`&osc`

namelist, to determine how rotation effects are treated. The possible treatments include the traditional approximation - Added
`inner_bound`

parameter to`&osc`

namelist, allowing specification of the inner boundary conditions - Added
`r_root_solver`

and`c_root_solver`

parameters to`&num`

namelist, allowing specification of the real and complex root solvers, respectively - Added
`grid_frame`

and`freq_frame`

parameters to`&scan`

namelist, allowing specification of the frames in which the frequency grid is distributed and the frequency units are defined, respectively - Added
`'GRAVITY_DELTA'`

and`'ACOUSTIC_DELTA'`

options for the`&freq_units`

parameter in the`&scan`

and`&output`

namelists - Added
`'MIXED_DELTA'`

option for the`&freq_units`

parameter in the`&scan`

namelist - Renamed
`ivp_solver_type`

parameter to`ivp_solver`

- Renamed
`outer_bound_type`

parameter to`outer_bound`

- Renamed
`inner_bound_type`

parameter to`inner_bound`

- Renamed
`inertia_norm_type`

parameter to`inertia_norm`

- Renamed
`variables_type`

parameter to`variable_set`

- Replaced
`use_banded`

parameter by`matrix_type`

parameter

# 3.3 (October 27, 2014)

## New Features

- GYRE now requires gfortran 4.10 to compile (earlier versions of the compiler contain bugs, which result in failed compilation and/or incorrect results)
- Implemented more-stringent checking of namelist counts
- Renamed
`X_n_pg_min`

and`X_n_pg_max`

parameters to`n_pg_min`

and`n_pg_max`

(as they're no longer experimental). Also, the semantics of these parameters has changed: they now also apply to adiabatic calculations - Added
`prune_modes`

flag to`&output`

namelist. When set to`.TRUE.`

, eigenfunction data for each mode is discarded after the mode is (possibly) written to disk - Added support for reading unformatted AMDL-format stellar models
- Added new
`deflate_roots`

flag to`&num`

namelist. When set to`.TRUE.`

(now the default), root deflation allows gyre_nad to avoid converging on the same mode multiple times. - Changed the complex root solver in gyre_nad from secant method to a complex-modified Ridders' method; this seems to fix cases of slow convergence.
- Renamed the
`FINDIFF_GL2`

and`FINDIFF_GL4`

IVP solvers to`COLLOC_GL2`

and`COLLOC_GL4`

. - Added new
`FINDIFF`

IVP solver, which uses Sugimoto's approach to handle thermal instability in non-adiabatic calculations - Restricted non-adiabatic calculations to the two (currently) known-to-work IVP solvers:
`MAGNUS_GL2`

and`FINDIFF`

- Replaced
`omega_im`

output routine with`omega_int`

, which estimates the real & imaginary parts of the eigenfrequency from an integral expression (comparing this against`omega`

provides a good check on the reliability of results) - Moved the
`reduce_order`

flag from the`&num`

namelist to the`&osc`

namelist - Renamed
`delp`

output item to`lag_P`

, and other`del*`

items to`lag_*`

- Renamed
`phip`

output item to`eul_phi`

, and`dphip_dx`

to`deul_phi`

- Added
`eul_P`

,`eul_rho`

and`eul_T`

output items - Added
`RESAMP_STRUCT`

grid operation, which resamples based on changes in the structure variables - Changed the units of the
`dW_dx`

and`W`

output items

## Bug Fixes

- Fixed calculation of pressure and gravitational perturbation eigenfunctions for radial modes when the
`reduce_order`

flag is`.TRUE.`

# 3.2 (May 2, 2014)

## New Features

- Split off mode parameters (
`l`

,`m`

,`X_n_pg_min`

and`X_n_pg_max`

) from the`&osc`

namelist; they are now specified in their own`&mode`

namelist(s). - Added support for the Doppler shift due to (possibly-differential) rotation; set
`m`

to a non-zero value to enable this. - Added the ability to do non-adiabatic calculations in the MESA interface module.
- Added new
`regularize`

flag to the`&model`

namelist; this regularizes an input model, to try to iron out inconsistencies in hydrostatic equilibrium and mass conservation. - Added support for LOSC-format stellar models

## Bug Fixes

- Changed format specifiers for TXT output files, so that 3-digit exponents don't lead to a missing 'E' character.

# 3.1 (April 14, 2014)

## New Features

- Added new
`mode_template`

parameter to`&output`

namelist, as an alternative to the existing`mode_prefix`

for specifying the names of output mode files (if both parameters are set, then`mode_template`

is used and`mode_prefix`

is ignored). Filenames are constructed by performing pattern substitution on the`mode_template`

value; patterns can be one of the following:`%J`

: run index of mode, formatted in fixed-width field; counts from 1 upwards for each mode found during the GYRE run (unique)`%j`

: same as`%J`

, but formatted in variable-width field`%L`

: harmonic degree of mode, formatted in fixed-width field`%l`

: same as`%L`

, but formatted in variable-width field`%N`

: radial order of mode, formatted in fixed-width field`%n`

: same as`%N`

, but formatted in variable-width field

- Improved handling of stellar models containing duplicate radius points (a warning is now printed, instead of the code stopping).

## Bug Fixes

- Fixed bug which prevented
`CREATE_MIDPOINT`

being used for the shooting grid - Fixed bug which caused floating exception when l=0 and JCD variables used

# 3.0 (Feburary 26, 2014)

## New Features

- New
`op_type`

option,`CREATE_MIDPOINT`

, in`&shoot_grid`

and`&recon_grid`

namelists. This places grid points at the midpoints of the input grids.*This option is key to producing 'good' eigenfunctions when performing non-adiabatic calculations* - Renamed the
`&coeffs`

namelist to`&model`

, and the`coeffs_type`

parameter to`model_type`

- Added new
`&constants`

namelist, to allow overriding of physical constants - New output items:
`f_T`

,`f_g`

,`psi_T`

and`psi_g`

, being the non-adiabatic coefficients defined by Dupret et al. (2003). These are evaluated at x = x_ref - New
`&osc`

parameter:`x_ref`

- Added
`xi_r_ref`

and`xi_h_ref`

output items, which give the displacement eigenfunctions at x = x_ref - Added warnings when scan frequency range goes above/below atmospheric cutoffs

## Bug Fixes

- Removed incorrect factor of 4pi in inertia calculations
- Removed spurious factor of 4pi in work calculations
- Refactored code to avoid possible dangling pointer issues

# 2.4 (December 27, 2013)

## New Features

- Added support for singular outer boundaries

## Bug Fixes

- Fixed crash when
`reduce_order=.FALSE.`

and`variables_type='JCD'`

- Fixed crash when using
`op_type='RESAMP_CENTER'`

with radial modes of polytropic models - Fixed some ongoing memory leak issues caused by gfortran PR 57922

# 2.3 (October 26, 2013)

## New Features

- New
`'MIX'`

option for the`variables_type`

parameter - New
`&osc`

parameter:`inertia_norm_type`

- New output item:
`freq_units`

- Improved testing framework

## Bug Fixes

- Fixed bugs in Jacobian calculation for radial modes using JCD variables
- Fixed null pointer issue with radial modes when using DZIEM boundary condition
- Fixed bug in rotation kernel and beta calculation

# 2.2 (October 5, 2013)

## New Features

- New experimental
`&osc`

parameters:`X_n_pg_min`

and`X_n_pg_max`

- Switched to modular IVP solvers

## Bug Fixes

- Removed duplicate cache filling, which should improve initialization times
- Modified storage of structure coefficients, resulting in a dramatic reduction in memory usage (GYRE shouldn't run out of memory anymore)

# 2.1.1 (September 19, 2013)

## Bug Fixes

- Fixed bugs in Unno and JCD boundary conditions for radial pulsations
- Further modified extended-range arithmetic to handle underflow gracefully
- Modified FGONG file reader to handle r /= 0 central points

# 2.1 (September 13, 2013)

## New Features

- Support for multiple
`&num`

namelists in input files - Support for FAMDL-format stellar models
- New tag system for controlling parameter selection
- New numerical parameter:
`variables_type`

- New grid operation:
`'CREATE_FROM_FILE'`

- Discriminant output is replaced by a convergence measure
`chi`

## Bug Fixes

- Created workaround for gfortran PR 58007
- Modified extended-range arithmetic to handle underflow gracefully
- Changed testing so that return values are explicitly checked
- Fixed possible division-by-zero in Unno and JCD boundary conditions

# 2.0 (August 18, 2013)

## New Features

- Support for multiple
`&osc`

namelists in input files - Support for text (
`'TXT'`

) format output files - Checks for defective Magnus matrices
- Rearranged source tree
- Reworked build & test system
- Takata classification scheme for dipole modes
- Radial modes now handled by
`gyre_ad`

(replacing`gyre_rad`

) - API to allow integration with MESA
- Parallelized model initialization
- New output items:
`Yt_1`

,`Yt_2`

,`K`

,`prop_type`

- New
`&freq_units`

option:`'PER_DAY'`

- New
`&num`

parameters:`reduce_order`

and`use_banded`

- New
`&grid_op`

option:`'CREATE_UNIFORM'`

## Bug Fixes

- Fixed 'no such instruction' compilation issue on newer Macs
- Created workaround for gfortran PR 57922

## Known Issues

- In some circumstances, eigenfunction reconstruction can fail. The symptom is large numbers of 'Smallest element not in final block' warnings. The fix is being worked on; in the meantime, try setting the
`use_banded`

parameter in the`&num`

namelist to`.TRUE.`

# 1.1.2 (June 7, 2013)

## Bug Fixes

- Fixed compilation error in
`gyre_rad`

- Further optimized the system matrix solver

# 1.1.1 (June 4, 2013)

## Bug Fixes

- Fixed severe slowdown setting up coefficient caches for large grids
- Fixed memory access bug with
`HOM`

and`POLY`

models

# 1.1 (June 4, 2013)

## New Features

- Changed format of GSM files (non-backwardly compatible); see here
- Changed format of MESA files (backwardly compatible); see here
- Created a radial adiabatic code,
`gyre_rad`

(see the`rad`

subdirectory) - Added many performance enhancements, including
- real-arithmetic shortcuts
- coefficient caching
- calls to the BLAS library
- improved OpenMP scheduling

- Added hooks to interface with MESA
- Added a new
`RESAMP_THERMAL`

option to the`op_type`

field of the`&shoot_grid`

and`&recon_grid`

namelists. This can be used to ensure smooth entropy profiles when performing non-adiabatic calculations - Added a new
`data_format`

field to the`&coeffs_type`

namelist, to specify the Fortran data format when reading MESA- and OSC-format files. This allows reading of OSC-format files written by older versions of MESA, which used the wrong data format. - Added monotonicity checks for evolutionary stellar models

# 1.0.2 (May 21, 2013)

## Bug Fixes

- Added code to check that MESA input files have monotonic mass and radius coordinates

# 1.0.1 (May 20, 2013)

## Bug Fixes

- Fixed problem with gyre_nad giving incorrect non-adiabatic eigenfrequencies

# 1.0 (May 17, 2013)

Initial public release of GYRE.

Updated