Impact of ivp_solver_type on omega_im

General discussion of all things GYRE-related (e.g., results, talks, ideas, tips)
Post Reply
ehsan
Posts: 88
Joined: Sun Jun 16, 2013 11:31 am

Impact of ivp_solver_type on omega_im

Post by ehsan » Wed Apr 23, 2014 8:41 am

Hello Rich,
I tried gyre_nad (v.3.0) with a 3.8 Msun model. In the first attempt, I had

Code: Select all

ivp_solver_type='MAGNUS_GL4
and I got an iteration error although

Code: Select all

n_iter_max=1500
This is my terminal output:

Code: Select all

Root Solving
       l    n_pg     n_p     n_g                 Re(omega)                 Im(omega)                       chi  n_iter        n
       0       1       1       0    0.3546430948846020E+01    0.0000000000000000E+00    0.2567783293256831E-13       8     5386
       0       2       2       0    0.4520325580039845E+01    0.0000000000000000E+00    0.2832529141389530E-11       7     5386
       0       3       3       0    0.5622297369409612E+01    0.0000000000000000E+00    0.1021653155937743E-11       8     5386
       0       4       4       0    0.6741824354990040E+01    0.0000000000000000E+00    0.1419554879701444E-11       8     5386
       0       5       5       0    0.6844971497992044E+01    0.0000000000000000E+00    0.1176393763661296E-11       8     5386
       0       6       6       0    0.7933823149579261E+01    0.0000000000000000E+00    0.2438112671416671E-10      10     5386
       0       7       7       0    0.9044068510056380E+01    0.0000000000000000E+00    0.1358829429839154E-10      12     5386
       0       8       8       0    0.1015766478071542E+02    0.0000000000000000E+00    0.2676521050101941E-11       5     5386
       0       9       9       0    0.1131639535951857E+02    0.0000000000000000E+00    0.1403066927200043E-11       5     5386
       0      10      10       0    0.1250167039637438E+02    0.0000000000000000E+00    0.9547029403666268E-13       5     5386
       0      11      11       0    0.1370526120352735E+02    0.0000000000000000E+00    0.1163223354873652E-11       9     5386
       0      12      12       0    0.1492811037052843E+02    0.0000000000000000E+00    0.5156609045225815E-12       5     5386
       0      13      13       0    0.1616146886700156E+02    0.0000000000000000E+00    0.4794999084569374E-12       7     5386
  Time elapsed :      5.783 s
Root Solving
       l    n_pg     n_p     n_g                 Re(omega)                 Im(omega)                       chi  n_iter        n
       0       1       1       0    0.3546409421771330E+01    0.1089269481921059E-03    0.3180141064626183E-09      21     5386
       0       1       2       1    0.4522463149341524E+01   -0.8441399808633975E-04    0.1045478894091837E-14      48     5386
       0       2       3       1    0.5622499840248222E+01   -0.8769164368286136E-04    0.2514489897819323E-11      14     5386
       0       5       5       0    0.6744071035665951E+01   -0.9041353448033509E-04    0.5160330503529757E-15      47     5386
       0       6       6       0    0.6845421401725274E+01   -0.9063605481942701E-04    0.8987922897521626E-14      17     5386
       0       5       6       1    0.7934196978970444E+01   -0.9283199934173781E-04    0.1508053943840671E-11      16     5386
       0       8       8       0    0.9044309487230226E+01   -0.9477077140050446E-04    0.6699199852117935E-11      16     5386
       0       9       9       0    0.1015936110676134E+02   -0.9648408361304041E-04    0.5675599014823772E-14      21     5386
       0      10      10       0    0.1131807439439661E+02   -0.9806871621234895E-04    0.8584315414884665E-14      37     5386
       0      11      11       0    0.1250187832660480E+02   -0.9952193924304713E-04    0.7699670261783081E-12      17     5386
 ASSERT 'n_iter <= this%np%n_iter_max' failed at line 516 <gyre_bvp_nad:mode_>:
 Too many iterations
ehsan:KIC-excitation ehsan$ $gyre_nad M03.80-eta0.00-ov0.024-sc0.01-Z0.014-MS-Yc0.8410-Xc0.1455-02927.nmlst 
To overcome it, I reduced my expectations to

Code: Select all

ivp_solver_type='MAGNUS_GL2
, and retried. This is my terminal output for the second attempt:

Code: Select all

Root Solving
       l    n_pg     n_p     n_g                 Re(omega)                 Im(omega)                       chi  n_iter        n
       0       1       1       0    0.3546430789340620E+01    0.0000000000000000E+00    0.2632114003102752E-12       9     5386
       0       2       2       0    0.4520324058769784E+01    0.0000000000000000E+00    0.2616916908778287E-10       9     5386
       0       3       3       0    0.5622292284148068E+01    0.0000000000000000E+00    0.2493906260903311E-11      10     5386
       0       4       4       0    0.6741817462944688E+01    0.0000000000000000E+00    0.9608429275924158E-11       9     5386
       0       5       5       0    0.6844968538654171E+01    0.0000000000000000E+00    0.6725961576450101E-12       6     5386
       0       6       6       0    0.7933807851312934E+01    0.0000000000000000E+00    0.2028080165132141E-11       9     5386
       0       7       7       0    0.9044051212443966E+01    0.0000000000000000E+00    0.7529479132213684E-10       8     5386
       0       8       8       0    0.1015764657812825E+02    0.0000000000000000E+00    0.4211082468196023E-11       7     5386
       0       9       9       0    0.1131637515376910E+02    0.0000000000000000E+00    0.1577381335504681E-11       5     5386
       0      10      10       0    0.1250164917228236E+02    0.0000000000000000E+00    0.8931807739807094E-12       7     5386
       0      11      11       0    0.1370524001536177E+02    0.0000000000000000E+00    0.1483471385075771E-11       6     5386
       0      12      12       0    0.1492808801299586E+02    0.0000000000000000E+00    0.3852038574358461E-12       5     5386
       0      13      13       0    0.1616144242352433E+02    0.0000000000000000E+00    0.1175512952270526E-12       5     5386
  Time elapsed :      4.909 s
Root Solving
       l    n_pg     n_p     n_g                 Re(omega)                 Im(omega)                       chi  n_iter        n
       0       1       1       0    0.3546409009731610E+01    0.1082955718066512E-03    0.2439649769215823E-10       7     5386
       0       2       2       0    0.4520101091583708E+01    0.1335290384781869E-02    0.9245012806479594E-11      13     5386
       0       3       3       0    0.5621456720639486E+01    0.6564168730764998E-02    0.3808486997538706E-11      12     5386
       0       5       5       0    0.6776433386927926E+01    0.1707688231514881E-01    0.7674846525499716E-12      13     5386
       0       5       5       0    0.6776433386927900E+01    0.1707688231517441E-01    0.3114932229829809E-12      21     5386
       0       6       6       0    0.7915829442462906E+01    0.6041448640040457E-01    0.2498087327452515E-12      16     5386
       0       7       7       0    0.8992276472684013E+01    0.1330757069586771E+00    0.4810265108462471E-13      13     5386
       0       8       8       0    0.1003344841545000E+02    0.1785939562802858E+00    0.4365461080863581E-13      12     5386
       0       9       9       0    0.1112453340693479E+02    0.1619255742338408E+00    0.5244413458604502E-13      18     5386
       0      10      10       0    0.1226487499778048E+02    0.1262340590438531E+00    0.2306531832321431E-13      19     5386
       0      11      11       0    0.1343390198421084E+02    0.1007421449789462E+00    0.1730999129452556E-13      13     5386
       0      12      12       0    0.1460988383963225E+02    0.1013081686200158E+00    0.1841315922451870E-13      15     5386
       0      13      13       0    0.1576476248195273E+02    0.1332366689129433E+00    0.8388879610823207E-14      18     5386
  Time elapsed :     24.607 s
Then I noticed that changing the "ivp_solver_type" not only affects the node ordering, but also influences the imaginary part of the eigenfrequency drastically.
This solver dependence is annoying, but I do not know how to get around it and which result to trust.

Trying with "ivp_solver_type = 'MAGNUS_GL6'" just ends up in a crash

Code: Select all

Program received signal SIGFPE: Floating-point exception - erroneous arithmetic operation.
The input files and inlists are the same as I emailed you.

Cheers
Ehsan.

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

Re: Impact of ivp_solver_type on omega_im

Post by rhtownsend » Fri Apr 25, 2014 12:50 pm

ehsan wrote:Hello Rich,
I tried gyre_nad (v.3.0) with a 3.8 Msun model. In the first attempt, I had

Code: Select all

ivp_solver_type='MAGNUS_GL4
and I got an iteration error although

Code: Select all

n_iter_max=1500
This is my terminal output:

Code: Select all

Root Solving
       l    n_pg     n_p     n_g                 Re(omega)                 Im(omega)                       chi  n_iter        n
       0       1       1       0    0.3546430948846020E+01    0.0000000000000000E+00    0.2567783293256831E-13       8     5386
       0       2       2       0    0.4520325580039845E+01    0.0000000000000000E+00    0.2832529141389530E-11       7     5386
       0       3       3       0    0.5622297369409612E+01    0.0000000000000000E+00    0.1021653155937743E-11       8     5386
       0       4       4       0    0.6741824354990040E+01    0.0000000000000000E+00    0.1419554879701444E-11       8     5386
       0       5       5       0    0.6844971497992044E+01    0.0000000000000000E+00    0.1176393763661296E-11       8     5386
       0       6       6       0    0.7933823149579261E+01    0.0000000000000000E+00    0.2438112671416671E-10      10     5386
       0       7       7       0    0.9044068510056380E+01    0.0000000000000000E+00    0.1358829429839154E-10      12     5386
       0       8       8       0    0.1015766478071542E+02    0.0000000000000000E+00    0.2676521050101941E-11       5     5386
       0       9       9       0    0.1131639535951857E+02    0.0000000000000000E+00    0.1403066927200043E-11       5     5386
       0      10      10       0    0.1250167039637438E+02    0.0000000000000000E+00    0.9547029403666268E-13       5     5386
       0      11      11       0    0.1370526120352735E+02    0.0000000000000000E+00    0.1163223354873652E-11       9     5386
       0      12      12       0    0.1492811037052843E+02    0.0000000000000000E+00    0.5156609045225815E-12       5     5386
       0      13      13       0    0.1616146886700156E+02    0.0000000000000000E+00    0.4794999084569374E-12       7     5386
  Time elapsed :      5.783 s
Root Solving
       l    n_pg     n_p     n_g                 Re(omega)                 Im(omega)                       chi  n_iter        n
       0       1       1       0    0.3546409421771330E+01    0.1089269481921059E-03    0.3180141064626183E-09      21     5386
       0       1       2       1    0.4522463149341524E+01   -0.8441399808633975E-04    0.1045478894091837E-14      48     5386
       0       2       3       1    0.5622499840248222E+01   -0.8769164368286136E-04    0.2514489897819323E-11      14     5386
       0       5       5       0    0.6744071035665951E+01   -0.9041353448033509E-04    0.5160330503529757E-15      47     5386
       0       6       6       0    0.6845421401725274E+01   -0.9063605481942701E-04    0.8987922897521626E-14      17     5386
       0       5       6       1    0.7934196978970444E+01   -0.9283199934173781E-04    0.1508053943840671E-11      16     5386
       0       8       8       0    0.9044309487230226E+01   -0.9477077140050446E-04    0.6699199852117935E-11      16     5386
       0       9       9       0    0.1015936110676134E+02   -0.9648408361304041E-04    0.5675599014823772E-14      21     5386
       0      10      10       0    0.1131807439439661E+02   -0.9806871621234895E-04    0.8584315414884665E-14      37     5386
       0      11      11       0    0.1250187832660480E+02   -0.9952193924304713E-04    0.7699670261783081E-12      17     5386
 ASSERT 'n_iter <= this%np%n_iter_max' failed at line 516 <gyre_bvp_nad:mode_>:
 Too many iterations
ehsan:KIC-excitation ehsan$ $gyre_nad M03.80-eta0.00-ov0.024-sc0.01-Z0.014-MS-Yc0.8410-Xc0.1455-02927.nmlst 
To overcome it, I reduced my expectations to

Code: Select all

ivp_solver_type='MAGNUS_GL2
, and retried. This is my terminal output for the second attempt:

Code: Select all

Root Solving
       l    n_pg     n_p     n_g                 Re(omega)                 Im(omega)                       chi  n_iter        n
       0       1       1       0    0.3546430789340620E+01    0.0000000000000000E+00    0.2632114003102752E-12       9     5386
       0       2       2       0    0.4520324058769784E+01    0.0000000000000000E+00    0.2616916908778287E-10       9     5386
       0       3       3       0    0.5622292284148068E+01    0.0000000000000000E+00    0.2493906260903311E-11      10     5386
       0       4       4       0    0.6741817462944688E+01    0.0000000000000000E+00    0.9608429275924158E-11       9     5386
       0       5       5       0    0.6844968538654171E+01    0.0000000000000000E+00    0.6725961576450101E-12       6     5386
       0       6       6       0    0.7933807851312934E+01    0.0000000000000000E+00    0.2028080165132141E-11       9     5386
       0       7       7       0    0.9044051212443966E+01    0.0000000000000000E+00    0.7529479132213684E-10       8     5386
       0       8       8       0    0.1015764657812825E+02    0.0000000000000000E+00    0.4211082468196023E-11       7     5386
       0       9       9       0    0.1131637515376910E+02    0.0000000000000000E+00    0.1577381335504681E-11       5     5386
       0      10      10       0    0.1250164917228236E+02    0.0000000000000000E+00    0.8931807739807094E-12       7     5386
       0      11      11       0    0.1370524001536177E+02    0.0000000000000000E+00    0.1483471385075771E-11       6     5386
       0      12      12       0    0.1492808801299586E+02    0.0000000000000000E+00    0.3852038574358461E-12       5     5386
       0      13      13       0    0.1616144242352433E+02    0.0000000000000000E+00    0.1175512952270526E-12       5     5386
  Time elapsed :      4.909 s
Root Solving
       l    n_pg     n_p     n_g                 Re(omega)                 Im(omega)                       chi  n_iter        n
       0       1       1       0    0.3546409009731610E+01    0.1082955718066512E-03    0.2439649769215823E-10       7     5386
       0       2       2       0    0.4520101091583708E+01    0.1335290384781869E-02    0.9245012806479594E-11      13     5386
       0       3       3       0    0.5621456720639486E+01    0.6564168730764998E-02    0.3808486997538706E-11      12     5386
       0       5       5       0    0.6776433386927926E+01    0.1707688231514881E-01    0.7674846525499716E-12      13     5386
       0       5       5       0    0.6776433386927900E+01    0.1707688231517441E-01    0.3114932229829809E-12      21     5386
       0       6       6       0    0.7915829442462906E+01    0.6041448640040457E-01    0.2498087327452515E-12      16     5386
       0       7       7       0    0.8992276472684013E+01    0.1330757069586771E+00    0.4810265108462471E-13      13     5386
       0       8       8       0    0.1003344841545000E+02    0.1785939562802858E+00    0.4365461080863581E-13      12     5386
       0       9       9       0    0.1112453340693479E+02    0.1619255742338408E+00    0.5244413458604502E-13      18     5386
       0      10      10       0    0.1226487499778048E+02    0.1262340590438531E+00    0.2306531832321431E-13      19     5386
       0      11      11       0    0.1343390198421084E+02    0.1007421449789462E+00    0.1730999129452556E-13      13     5386
       0      12      12       0    0.1460988383963225E+02    0.1013081686200158E+00    0.1841315922451870E-13      15     5386
       0      13      13       0    0.1576476248195273E+02    0.1332366689129433E+00    0.8388879610823207E-14      18     5386
  Time elapsed :     24.607 s
Then I noticed that changing the "ivp_solver_type" not only affects the node ordering, but also influences the imaginary part of the eigenfrequency drastically.
This solver dependence is annoying, but I do not know how to get around it and which result to trust.

Trying with "ivp_solver_type = 'MAGNUS_GL6'" just ends up in a crash

Code: Select all

Program received signal SIGFPE: Floating-point exception - erroneous arithmetic operation.
The input files and inlists are the same as I emailed you.

Cheers
Ehsan.
Hi Ehsan --

This behavior arises because I haven't yet implemented additional code to make the GL4 and GL6 magnus solvers work well for non-adiabatic calculations. This is something I'm actively working on, but for the moment you should stick to GL2.

Best wishes,

Rich

Post Reply