Why gyre.in could not input freq_units fields ?

Bug/problem reports for any of the GYRE executables (gyre_ad, gyre_nad, etc)
Post Reply
cdd
Posts: 22
Joined: Thu Jul 02, 2015 7:44 am

Why gyre.in could not input freq_units fields ?

Post by cdd » Sat Jan 11, 2020 4:52 am

Hi,

When i use GYRE to search frequency, i want to search frequency range of 0.001-0.003Hz. So i want the freq_units = 'HZ'. But when i write this namelist object in gyre.in file, it runs with below error:

ubuntu64@ubuntu64-virtual-machine:~/software/gyre/work$ ../bin/gyre gyre.in
gyre [5.2]
----------
Compiler : GCC version 8.3.0
Compiler options : -I /usr/include/x86_64-linux-gnu -I /home/ubuntu64/software/mesasdk/include -mtune=generic -march=x86-64 -ggdb -Wall -Wno-unused-dummy-argument -Wno-maybe-uninitialized -std=f2008 -ffpe-summary=none -finit-real=snan -fbacktrace -fmax-errors=25 -ffpe-trap=invalid,overflow,zero -fcheck=all -finline-limit=0 -fopenmp
OpenMP Threads : 2
Input filename : gyre.in

At line 112 of file gyre_scan_par.f90
Fortran runtime error: Cannot match namelist object name freq_units

Error termination. Backtrace:
#0 0x7f04105d7a07 in finalize_transfer
at /root/sdk2/build/gcc/libgfortran/io/transfer.c:3948
#1 0x4e55fb in __gyre_scan_par_MOD_read_scan_par
at /home/ubuntu64/software/gyre/src/build/gyre_scan_par.f90:112
#2 0x4059a3 in gyre
at /home/ubuntu64/software/gyre/src/build/gyre.f90:312
#3 0x40adaf in main
at /home/ubuntu64/software/gyre/src/build/gyre.f90:54

I go to the source code gyre_scan_par.fpp and find that it do not have freq_units in this file. But in the document of GYRE, it should be list in scan segment. What's wrong with my program?
Hope to hear from you soon and thank you for any help in advance.

Best Regards
Chen

User avatar
warrick
Posts: 84
Joined: Wed Aug 28, 2013 2:47 am

Re: Why gyre.in could not input freq_units fields ?

Post by warrick » Sat Jan 11, 2020 6:57 am

The control is freq_min_units, not freq_units. You can set freq_max_units to be something different, otherwise I think the default is to use the same units as freq_min_units.

Cheers,
Warrick

cdd
Posts: 22
Joined: Thu Jul 02, 2015 7:44 am

Re: Why gyre.in could not input freq_units fields ?

Post by cdd » Sat Jan 11, 2020 9:25 am

Hi Warrick,

Thank you for your reply. I tried freq_min_units = 'UHZ' (freq_min = 1000, freq_max = 3000), but it seems that the code do not use this unit since in the result summary.txt, the freq_units is still NONE. And if i use freq_min_units = 'HZ' (freq_min = 0.001, freq_max = 0.003), the code do not search out any frequency. So i think maybe freq_min_units do not equal to freq_units. Anyway, thank you for your reply.

Best Regards
Chen

User avatar
rhtownsend
Site Admin
Posts: 397
Joined: Sun Mar 31, 2013 4:22 pm

Re: Why gyre.in could not input freq_units fields ?

Post by rhtownsend » Sat Jan 11, 2020 3:46 pm

cdd wrote:
Sat Jan 11, 2020 9:25 am
Hi Warrick,

Thank you for your reply. I tried freq_min_units = 'UHZ' (freq_min = 1000, freq_max = 3000), but it seems that the code do not use this unit since in the result summary.txt, the freq_units is still NONE. And if i use freq_min_units = 'HZ' (freq_min = 0.001, freq_max = 0.003), the code do not search out any frequency. So i think maybe freq_min_units do not equal to freq_units. Anyway, thank you for your reply.

Best Regards
Chen
Hi Chen --

To get the output frequencies (written as the 'freq' item) in microhertz, you must set the 'freq_units' parameter of the &output namelist group to 'UHZ'.

Note that all of GYRE's internal calculations are done using dimensionless frequencies (i.e., normalized by the inverse of the dynamical timescale). Parameters like 'freq_min_units' and 'freq_units' only affect the units of input and output quantities.

cheers,

Rich

cdd
Posts: 22
Joined: Thu Jul 02, 2015 7:44 am

Re: Why gyre.in could not input freq_units fields ?

Post by cdd » Sat Jan 11, 2020 11:49 pm

Hi Rich,

Thank you for you reply. I tried using freq_units='UHZ' in the ad_output namelist and they give me some result. But as you said that the "Note that all of GYRE's internal calculations are done using dimensionless frequencies (i.e., normalized by the inverse of the dynamical timescale). Parameters like 'freq_min_units' and 'freq_units' only affect the units of input and output quantities.", the dynamical timesacle is tau=sqrt(R^3/GM) (from your paper Townsend 2013). In my calculations, M_star=0.2387040000000000E+035g, R_star=0.6244106112781844E+012cm, so tau=1.2362e+04s.

below is the segment of summary.txt:

1 2 3 4 5 6 7 8 9
l m n_pg n_p n_g Re(omega) Im(omega) Re(freq) Im(freq)
0 0 1004 1004 0 0.1262603464153258E+004 0.0000000000000000E+000 0.1625600242161147E+005 0.0000000000000000E+000
0 0 1245 1245 0 0.1565692910624517E+004 0.0000000000000000E+000 0.2015827492100294E+005 0.0000000000000000E+000
0 0 1502 1502 0 0.1888930874682275E+004 0.0000000000000000E+000 0.2431995931017381E+005 0.0000000000000000E+000
0 0 1759 1759 0 0.2212191790500210E+004 0.0000000000000000E+000 0.2848193920294466E+005 0.0000000000000000E+000
0 0 2064 2064 0 0.2595895973947243E+004 0.0000000000000000E+000 0.3342212534403091E+005 0.0000000000000000E+000
0 0 2343 2343 0 0.2946998088401004E+004 0.0000000000000000E+000 0.3794256029042234E+005 0.0000000000000000E+000

from the document of output file,
omega : dimensionless eigenfrequencies
freq : dimensioned eigenfrequencies
should the freq is the scaling eigenfrequencies of omega? But Re(freq)/Re(omega) <> tau. I don't know whether my scaling is right or not (In my understand that omega=freq/tau^-1=freq*tau), but that's obviously inconsistent with the result.
And also i find that if i want to search the frequency from 0.001Hz-0.003Hz, the result is omega that fall between this range instead of freq field. So i need to scale them in advance to get the freq fall into this range, right?
Could you give me any help? Attached files are gyre.in, the star model from mesa and the result summary.txt.

Best Regrads
Chen
Attachments
summary5.txt
(13.98 KiB) Downloaded 238 times
profile5.data.GYRE
(489.24 KiB) Downloaded 226 times
gyre.in
(643 Bytes) Downloaded 193 times

User avatar
warrick
Posts: 84
Joined: Wed Aug 28, 2013 2:47 am

Re: Why gyre.in could not input freq_units fields ?

Post by warrick » Mon Jan 13, 2020 5:07 am

Your calculation of the dynamical timescale τ is basically correct but subtly depends on whether its defined as an angular or cyclic frequency, from which we get a factor of 2π. You've also missed out that the frequencies are being reported in μHz. So to get from 'Re(omega)' to 'Re(freq)' you need to multiply by 10⁶/(2π τ).

As for your inlist, the one you've attached doesn't set the minimum and maximum units in the scan. You want that block to look like

Code: Select all

&scan
        grid_type = 'LINEAR'
        freq_min = 1000
        freq_max = 3000
        n_freq = 100
        freq_min_units = 'UHZ'
        freq_max_units = 'UHZ'
/
where I've added the lines with 'UHZ'. The rest of the input looks correct.

Cheers,
Warrick

cdd
Posts: 22
Joined: Thu Jul 02, 2015 7:44 am

Re: Why gyre.in could not input freq_units fields ?

Post by cdd » Mon Jan 13, 2020 10:03 am

Hi Warrick,

Thank you so much for your explanation, now i see the relationship of these parameters. :-) Thank you!

Cheers
Chen

Post Reply