doesn't work when rotation larger than 0.5 cycle per day

Bug/problem reports for any of the GYRE executables (gyre_ad, gyre_nad, etc)
gali8292
Posts: 16
Joined: Wed Sep 27, 2017 7:05 pm

doesn't work when rotation larger than 0.5 cycle per day

Post by gali8292 » Thu Sep 28, 2017 10:56 pm

Hi GYRE staff,

In my work I'm interested in the fast rotation. However, gyre can not give the frequencies results when inputing a large rotation rate. The error is

Building frequency scan
added scan interval : 0.1193E+00 -> 0.1193E+01 (500 points, INVERSE)

ASSERT 'ALL(omega_c > 0._WP) .OR. ALL(omega_c < 0._WP)' failed at line 222 <gyre_r_search:check_scan>:
Critical layer encountered

The profile is generated by MESA with mass = 1.9 solar masses and Z=0.02

Is this calculation prohibited?

Cheers

Li Gang
Attachments
profile8.data.GYRE
(420.39 KiB) Downloaded 256 times
gyre.in
(1.8 KiB) Downloaded 224 times

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

Re: doesn't work when rotation larger than 0.5 cycle per day

Post by rhtownsend » Fri Sep 29, 2017 6:43 am

gali8292 wrote:Hi GYRE staff,

In my work I'm interested in the fast rotation. However, gyre can not give the frequencies results when inputing a large rotation rate. The error is

Building frequency scan
added scan interval : 0.1193E+00 -> 0.1193E+01 (500 points, INVERSE)

ASSERT 'ALL(omega_c > 0._WP) .OR. ALL(omega_c < 0._WP)' failed at line 222 <gyre_r_search:check_scan>:
Critical layer encountered

The profile is generated by MESA with mass = 1.9 solar masses and Z=0.02

Is this calculation prohibited?

Cheers

Li Gang
Hi Li --

This is happening because not all of the co-rotating frame frequencies in the scan grid have the same sign. This means that there are one or more points in the star where the co-rotating frequency

omega_c(r) = omega - m Omega(r)

...passes through zero. At such "critical layers", the local radial wavelength of waves approaches zero, and the adiabatic pulsation equations become ill conditioned.

To avoid critical layers, you must adjust freq_min and freq_max until there is no point in the star where omega_c(r) passes through zero. But to know what adjustments to make, you'll need to inspect the behavior of the rotation angular frequency Omega(r).

cheers,

Rich

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

Re: doesn't work when rotation larger than 0.5 cycle per day

Post by rhtownsend » Fri Sep 29, 2017 6:46 am

As an addendum: since you are considering uniform rotation, the task of choosing appropriate freq_min and freq_max should be more straightforward. In particular, it's possible to specify these frequencies in the co-rotating frame of reference (set freq_min_frame = 'COROT_I', and likewise for freq_max_frame), and if they both have the same sign then critical layers should not arise.

cheers,

Rich

gali8292
Posts: 16
Joined: Wed Sep 27, 2017 7:05 pm

Re: doesn't work when rotation larger than 0.5 cycle per day

Post by gali8292 » Sat Sep 30, 2017 5:57 am

rhtownsend wrote:As an addendum: since you are considering uniform rotation, the task of choosing appropriate freq_min and freq_max should be more straightforward. In particular, it's possible to specify these frequencies in the co-rotating frame of reference (set freq_min_frame = 'COROT_I', and likewise for freq_max_frame), and if they both have the same sign then critical layers should not arise.

cheers,

Rich
Hi Rich,

The code told me

Fortran runtime error: cannot match namelist object name freq_min_frame

What's wrong?

Cheers

Li Gang

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

Re: doesn't work when rotation larger than 0.5 cycle per day

Post by rhtownsend » Sat Sep 30, 2017 7:49 am

gali8292 wrote:
rhtownsend wrote:As an addendum: since you are considering uniform rotation, the task of choosing appropriate freq_min and freq_max should be more straightforward. In particular, it's possible to specify these frequencies in the co-rotating frame of reference (set freq_min_frame = 'COROT_I', and likewise for freq_max_frame), and if they both have the same sign then critical layers should not arise.

cheers,

Rich
Hi Rich,

The code told me

Fortran runtime error: cannot match namelist object name freq_min_frame

What's wrong?

Cheers

Li Gang
Hi Li --

What version of GYRE are you using? And which namelist group did you add the freq_min_frame parameter to?

cheers,

Rich

gali8292
Posts: 16
Joined: Wed Sep 27, 2017 7:05 pm

Re: doesn't work when rotation larger than 0.5 cycle per day

Post by gali8292 » Sat Sep 30, 2017 11:46 pm

rhtownsend wrote:
gali8292 wrote:
rhtownsend wrote:As an addendum: since you are considering uniform rotation, the task of choosing appropriate freq_min and freq_max should be more straightforward. In particular, it's possible to specify these frequencies in the co-rotating frame of reference (set freq_min_frame = 'COROT_I', and likewise for freq_max_frame), and if they both have the same sign then critical layers should not arise.

cheers,

Rich
Hi Rich,

The code told me

Fortran runtime error: cannot match namelist object name freq_min_frame

What's wrong?

Cheers

Li Gang
Hi Li --

What version of GYRE are you using? And which namelist group did you add the freq_min_frame parameter to?

cheers,

Rich
Hi Rich

I use GYRE 5.1. I added it to scan namelist.

Cheers

Li

gali8292
Posts: 16
Joined: Wed Sep 27, 2017 7:05 pm

Re: doesn't work when rotation larger than 0.5 cycle per day

Post by gali8292 » Sun Oct 01, 2017 12:20 am

rhtownsend wrote:
gali8292 wrote:
rhtownsend wrote:As an addendum: since you are considering uniform rotation, the task of choosing appropriate freq_min and freq_max should be more straightforward. In particular, it's possible to specify these frequencies in the co-rotating frame of reference (set freq_min_frame = 'COROT_I', and likewise for freq_max_frame), and if they both have the same sign then critical layers should not arise.

cheers,

Rich
Hi Rich,

The code told me

Fortran runtime error: cannot match namelist object name freq_min_frame

What's wrong?

Cheers

Li Gang
Hi Li --

What version of GYRE are you using? And which namelist group did you add the freq_min_frame parameter to?

cheers,

Rich
HI Rich

Another question. I find that this problem doesn't happen if I calculate l=1 and m=0 modes. I assume that it is because m=0 modes don't split. Can I calculate m=0 modes frequencies, and transform them using f_{m=1}=f_{m=0}+(1-C)*rotation, in which C is the Ledoux constant? I make a comparison, the results look like similar.

Many thanks

Li

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

Re: doesn't work when rotation larger than 0.5 cycle per day

Post by rhtownsend » Sun Oct 08, 2017 11:06 am

gali8292 wrote:
rhtownsend wrote:
gali8292 wrote:
Hi Rich,

The code told me

Fortran runtime error: cannot match namelist object name freq_min_frame

What's wrong?

Cheers

Li Gang
Hi Li --

What version of GYRE are you using? And which namelist group did you add the freq_min_frame parameter to?

cheers,

Rich
Hi Rich

I use GYRE 5.1. I added it to scan namelist.

Cheers

Li
Well, something has clearly gone amiss when you added it to the scan namelist. Can you post your new input file?

cheers,

Rich

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

Re: doesn't work when rotation larger than 0.5 cycle per day

Post by rhtownsend » Sun Oct 08, 2017 11:08 am

gali8292 wrote: HI Rich

Another question. I find that this problem doesn't happen if I calculate l=1 and m=0 modes. I assume that it is because m=0 modes don't split. Can I calculate m=0 modes frequencies, and transform them using f_{m=1}=f_{m=0}+(1-C)*rotation, in which C is the Ledoux constant? I make a comparison, the results look like similar.

Many thanks

Li
That's understandable, given that the co-rotating frame and inertial-frame frequencies are identical when m=0.

Using the Ledoux approximation will work, but it won't give reliable results for modes whose co-rotating frequencies are small. This is because the Ledoux expression is correct only to first order in Omega_rot/omega_c, and for small omega_c it doesn't work well at all (in fact, it diverges).

I've already told you the correct approach: to specify a frequency scan in the co-rotating frame. So, let's focus on getting that working.

cheers,

Rich

gali8292
Posts: 16
Joined: Wed Sep 27, 2017 7:05 pm

Re: doesn't work when rotation larger than 0.5 cycle per day

Post by gali8292 » Thu Oct 12, 2017 11:40 pm

rhtownsend wrote:
gali8292 wrote:
rhtownsend wrote:
Hi Li --

What version of GYRE are you using? And which namelist group did you add the freq_min_frame parameter to?

cheers,

Rich
Hi Rich

I use GYRE 5.1. I added it to scan namelist.

Cheers

Li
Well, something has clearly gone amiss when you added it to the scan namelist. Can you post your new input file?

cheers,

Rich
Hi Rich,

I tried. It should be 'freq_frame', not 'freq_min_frame' even in the last GYRE version 5.1 . Can you check it?

Cheers

Li
Attachments
gyre_summary_l=1_m=1_from_profile964.data.GYRE.txt
(18 KiB) Downloaded 241 times
gyre.in
(1.71 KiB) Downloaded 207 times

Post Reply