|
42 | 42 | ARKODE_BILLINGTON_3_3_2 SDIRK N N Y |
43 | 43 | ARKODE_TRBDF2_3_3_2 ESDIRK N N Y |
44 | 44 | ARKODE_KVAERNO_4_2_3 ESDIRK Y Y Y |
45 | | - ARKODE_ARK324L2SA_DIRK_4_2_3* ESDIRK Y Y N |
| 45 | + ARKODE_ARK324L2SA_DIRK_4_2_3* ESDIRK Y Y Y |
46 | 46 | ARKODE_ESDIRK324L2SA_4_2_3 ESDIRK Y Y Y |
47 | 47 | ARKODE_ESDIRK325L2SA_5_2_3 ESDIRK Y Y Y |
48 | 48 | ARKODE_ESDIRK32I5L2SA_5_2_3 ESDIRK Y Y Y |
@@ -246,28 +246,28 @@ ARK_BUTCHER_TABLE(ARKODE_ARK324L2SA_DIRK_4_2_3, { /* ARK3(2)4L[2]SA-ESDIRK */ |
246 | 246 | ARKodeButcherTable B = ARKodeButcherTable_Alloc(4, SUNTRUE); |
247 | 247 | B->q = 3; |
248 | 248 | B->p = 2; |
249 | | - B->A[1][0] = SUN_RCONST(1767732205903.0)/SUN_RCONST(4055673282236.0); |
250 | | - B->A[1][1] = SUN_RCONST(1767732205903.0)/SUN_RCONST(4055673282236.0); |
251 | | - B->A[2][0] = SUN_RCONST(2746238789719.0)/SUN_RCONST(10658868560708.0); |
252 | | - B->A[2][1] = SUN_RCONST(-640167445237.0)/SUN_RCONST(6845629431997.0); |
253 | | - B->A[2][2] = SUN_RCONST(1767732205903.0)/SUN_RCONST(4055673282236.0); |
254 | | - B->A[3][0] = SUN_RCONST(1471266399579.0)/SUN_RCONST(7840856788654.0); |
255 | | - B->A[3][1] = SUN_RCONST(-4482444167858.0)/SUN_RCONST(7529755066697.0); |
256 | | - B->A[3][2] = SUN_RCONST(11266239266428.0)/SUN_RCONST(11593286722821.0); |
257 | | - B->A[3][3] = SUN_RCONST(1767732205903.0)/SUN_RCONST(4055673282236.0); |
258 | | - |
259 | | - B->b[0] = SUN_RCONST(1471266399579.0)/SUN_RCONST(7840856788654.0); |
260 | | - B->b[1] = SUN_RCONST(-4482444167858.0)/SUN_RCONST(7529755066697.0); |
261 | | - B->b[2] = SUN_RCONST(11266239266428.0)/SUN_RCONST(11593286722821.0); |
262 | | - B->b[3] = SUN_RCONST(1767732205903.0)/SUN_RCONST(4055673282236.0); |
263 | | - |
264 | | - B->d[0] = SUN_RCONST(2756255671327.0)/SUN_RCONST(12835298489170.0); |
265 | | - B->d[1] = SUN_RCONST(-10771552573575.0)/SUN_RCONST(22201958757719.0); |
266 | | - B->d[2] = SUN_RCONST(9247589265047.0)/SUN_RCONST(10645013368117.0); |
267 | | - B->d[3] = SUN_RCONST(2193209047091.0)/SUN_RCONST(5459859503100.0); |
268 | | - |
269 | | - B->c[1] = SUN_RCONST(1767732205903.0)/SUN_RCONST(2027836641118.0); |
270 | | - B->c[2] = SUN_RCONST(3.0)/SUN_RCONST(5.0); |
| 249 | + B->A[1][0] = SUN_RCONST(0.4358665215084589994160194511935568425293); |
| 250 | + B->A[1][1] = SUN_RCONST(0.4358665215084589994160194511935568425293); |
| 251 | + B->A[2][0] = SUN_RCONST(0.2576482460664272457999960162840797092643); |
| 252 | + B->A[2][1] = SUN_RCONST(-0.09351476757488624521601546747763655179361); |
| 253 | + B->A[2][2] = SUN_RCONST(0.4358665215084589994160194511935568425293); |
| 254 | + B->A[3][0] = SUN_RCONST(0.1876410243467238251612921441668043913795); |
| 255 | + B->A[3][1] = SUN_RCONST(-0.5952974735769549480478230275858851737782); |
| 256 | + B->A[3][2] = SUN_RCONST(0.9717899277217721234705114322255239398694); |
| 257 | + B->A[3][3] = SUN_RCONST(0.4358665215084589994160194511935568425293); |
| 258 | + |
| 259 | + B->b[0] = SUN_RCONST(0.1876410243467238251612921441668043913795); |
| 260 | + B->b[1] = SUN_RCONST(-0.5952974735769549480478230275858851737782); |
| 261 | + B->b[2] = SUN_RCONST(0.9717899277217721234705114322255239398694); |
| 262 | + B->b[3] = SUN_RCONST(0.4358665215084589994160194511935568425293); |
| 263 | + |
| 264 | + B->d[0] = SUN_RCONST(0.2147402862233891404862383406484193714659); |
| 265 | + B->d[1] = SUN_RCONST(-0.4851622638849390928209050808398155895845); |
| 266 | + B->d[2] = SUN_RCONST(0.86872500252038755116621237682951240796); |
| 267 | + B->d[3] = SUN_RCONST(0.4016969751411624011684543633618838101586); |
| 268 | + |
| 269 | + B->c[1] = SUN_RCONST(0.8717330430169179988320389023871136850586); |
| 270 | + B->c[2] = SUN_RCONST(0.6); |
271 | 271 | B->c[3] = SUN_RCONST(1.0); |
272 | 272 | return B; |
273 | 273 | }) |
@@ -693,40 +693,32 @@ ARK_BUTCHER_TABLE(ARKODE_ARK548L2SAb_DIRK_8_4_5, { /* ARK5(4)8L[2]SAb-ESDIRK */ |
693 | 693 | }) |
694 | 694 |
|
695 | 695 | ARK_BUTCHER_TABLE(ARKODE_ESDIRK324L2SA_4_2_3, { /* ESDIRK3(2)4L[2]SA (A,L stable) */ |
696 | | - const sunrealtype g = SUN_RCONST(0.435866521508458999416019451193556843); |
697 | | - const sunrealtype g2 = g * g; |
698 | | - const sunrealtype g3 = g2 * g; |
699 | | - const sunrealtype g4 = g3 * g; |
700 | | - const sunrealtype g5 = g4 * g; |
701 | | - const sunrealtype c3 = SUN_RCONST(0.6); |
702 | | - |
703 | 696 | ARKodeButcherTable B = ARKodeButcherTable_Alloc(4, SUNTRUE); |
704 | 697 | B->q = 3; |
705 | 698 | B->p = 2; |
706 | 699 |
|
707 | | - B->b[1] = (-SUN_RCONST(2.0)+SUN_RCONST(3.0)*c3+SUN_RCONST(6.0)*g*(SUN_RCONST(1.0)-c3))/(SUN_RCONST(12.0)*g*(c3-SUN_RCONST(2.0)*g)); |
708 | | - B->b[2] = (SUN_RCONST(1.0)-SUN_RCONST(6.0)*g+SUN_RCONST(6.0)*g2)/(SUN_RCONST(3.0)*c3*(c3-SUN_RCONST(2.0)*g)); |
709 | | - B->b[3] = g; |
710 | | - B->b[0] = SUN_RCONST(1.0) - g - B->b[1] - B->b[2]; |
711 | | - |
712 | | - B->d[1] = c3*(-SUN_RCONST(1.0)+SUN_RCONST(6.0)*g-SUN_RCONST(24.0)*g3+SUN_RCONST(12.0)*g4-SUN_RCONST(6.0)*g5)/(SUN_RCONST(4.0)*g*(SUN_RCONST(2.0)*g-c3)*(SUN_RCONST(1.0)-SUN_RCONST(6.0)*g+SUN_RCONST(6.0)*g2)) |
713 | | - + (SUN_RCONST(3.0)-SUN_RCONST(27.0)*g+SUN_RCONST(68.0)*g2-SUN_RCONST(55.0)*g3+SUN_RCONST(21.0)*g4-SUN_RCONST(6.0)*g5)/(SUN_RCONST(2.0)*(SUN_RCONST(2.0)*g-c3)*(SUN_RCONST(1.0)-SUN_RCONST(6.0)*g+SUN_RCONST(6.0)*g2)); |
714 | | - B->d[2] = -g*(-SUN_RCONST(2.0)+SUN_RCONST(21.0)*g-SUN_RCONST(68.0)*g2+SUN_RCONST(79.0)*g3-SUN_RCONST(33.0)*g4+SUN_RCONST(12.0)*g5)/(c3*(c3-SUN_RCONST(2.0)*g)*(SUN_RCONST(1.0)-SUN_RCONST(6.0)*g+SUN_RCONST(6.0)*g2)); |
715 | | - B->d[3] = -SUN_RCONST(3.0)*g2*(-SUN_RCONST(1.0)+SUN_RCONST(4.0)*g-SUN_RCONST(2.0)*g2+g3)/(SUN_RCONST(1.0)-SUN_RCONST(6.0)*g+SUN_RCONST(6.0)*g2); |
716 | | - B->d[0] = SUN_RCONST(1.0) - B->d[1] - B->d[2] - B->d[3]; |
717 | | - |
718 | | - B->A[1][0] = g; |
719 | | - B->A[1][1] = g; |
720 | | - B->A[2][1] = c3*(c3-SUN_RCONST(2.0)*g)/(SUN_RCONST(4.0)*g); |
721 | | - B->A[2][0] = c3 - g - B->A[2][1]; |
722 | | - B->A[2][2] = g; |
723 | | - B->A[3][0] = B->b[0]; |
724 | | - B->A[3][1] = B->b[1]; |
725 | | - B->A[3][2] = B->b[2]; |
726 | | - B->A[3][3] = B->b[3]; |
727 | | - |
728 | | - B->c[1] = SUN_RCONST(2.0)*g; |
729 | | - B->c[2] = SUN_RCONST(3.0)/SUN_RCONST(5.0); |
| 700 | + B->A[1][0] = SUN_RCONST(0.4358665215084589994160194511935568425293); |
| 701 | + B->A[1][1] = SUN_RCONST(0.4358665215084589994160194511935568425293); |
| 702 | + B->A[2][0] = SUN_RCONST(0.2576482460664272457999960162840797092643); |
| 703 | + B->A[2][1] = SUN_RCONST(-0.09351476757488624521601546747763655179361); |
| 704 | + B->A[2][2] = SUN_RCONST(0.4358665215084589994160194511935568425293); |
| 705 | + B->A[3][0] = SUN_RCONST(0.1876410243467238251612921441668043913795); |
| 706 | + B->A[3][1] = SUN_RCONST(-0.5952974735769549480478230275858851737782); |
| 707 | + B->A[3][2] = SUN_RCONST(0.9717899277217721234705114322255239398694); |
| 708 | + B->A[3][3] = SUN_RCONST(0.4358665215084589994160194511935568425293); |
| 709 | + |
| 710 | + B->b[0] = SUN_RCONST(0.1876410243467238251612921441668043913795); |
| 711 | + B->b[1] = SUN_RCONST(-0.5952974735769549480478230275858851737782); |
| 712 | + B->b[2] = SUN_RCONST(0.9717899277217721234705114322255239398694); |
| 713 | + B->b[3] = SUN_RCONST(0.4358665215084589994160194511935568425293); |
| 714 | + |
| 715 | + B->d[0] = SUN_RCONST(0.1088966176158644541561307380704960821824); |
| 716 | + B->d[1] = SUN_RCONST(-0.9153258118707127534816380978168183454991); |
| 717 | + B->d[2] = SUN_RCONST(1.271273597302152167844715894135642876535); |
| 718 | + B->d[3] = SUN_RCONST(0.5351555969526961314807914656106793867813); |
| 719 | + |
| 720 | + B->c[1] = SUN_RCONST(0.8717330430169179988320389023871136850586); |
| 721 | + B->c[2] = SUN_RCONST(0.6); |
730 | 722 | B->c[3] = SUN_RCONST(1.0); |
731 | 723 | return B; |
732 | 724 | }) |
|
0 commit comments