Rheolef  7.1
an efficient C++ finite element environment
runge_kutta_semiimplicit.icc
Go to the documentation of this file.
1 namespace rk {
26  // see WanShuZha-2015 page 212
27  constexpr size_t pmax = 3;
28  const Float _g2 = 1 - 1/sqrt(Float(2));
29  const Float _d2 = 1 - 1/(2*_g2);
30  const Float _g3 = 0.435866521508459;
31  const Float _b31 = -3*(_g3*_g3)/2 + 4*_g3 - 1./4;
32  const Float _b32 = 3*(_g3*_g3)/2 - 5*_g3 + 5./4;
33  const Float _a31 = -0.356;
34  const Float _a32 = (1/Float(3) - 2*(_g3*_g3) - 2*_b32*_a31*_g3)/(_g3*(1-_g3));
35  Float alpha[][pmax+1][pmax+1]
36  = { {},
37  { {0},
38  {0, 1} },
39  { {0},
40  {0, _g2},
41  {0, 1-_g2, _g2} },
42  { {0},
43  {0, _g3},
44  {0, (1-_g3)/2, _g3},
45  {0, _b31, _b32, _g3} } };
46 
48  = { {},
49  { {},
50  {1} },
51  { {},
52  {_g2},
53  {_d2, 1-_d2} },
54  { {},
55  {_g3},
56  {(1+_g3)/2 - _a31, _a31},
57  {0, 1-_a32, _a32} } };
58 
59  Float beta [][pmax+1]
60  = { {},
61  {0, 1},
62  {0, 1-_g2, _g2},
63  {0, _b31, _b32, _g3} };
65  = { {},
66  {1},
67  {_d2, 1-_d2, 0},
68  {0, _b31, _b32, _g3} };
70  = { {},
71  {0, 1},
72  {0, _g2, 1},
73  {0, _g3, (1+_g3)/2, 1} };
74 } // namespace rk
rk::pmax
constexpr size_t pmax
Definition: runge_kutta_semiimplicit.icc:27
rk::_g2
const Float _g2
Definition: runge_kutta_semiimplicit.icc:28
rk::_a32
const Float _a32
Definition: runge_kutta_semiimplicit.icc:34
rk::_b31
const Float _b31
Definition: runge_kutta_semiimplicit.icc:31
rk
Definition: runge_kutta_semiimplicit.icc:25
rk::tilde_alpha
Float tilde_alpha[][pmax+1][pmax+1]
Definition: runge_kutta_semiimplicit.icc:48
rk::gamma
Float gamma[][pmax+1]
Definition: runge_kutta_semiimplicit.icc:70
rk::_g3
const Float _g3
Definition: runge_kutta_semiimplicit.icc:30
rk::_d2
const Float _d2
Definition: runge_kutta_semiimplicit.icc:29
rk::_b32
const Float _b32
Definition: runge_kutta_semiimplicit.icc:32
Float
see the Float page for the full documentation
rk::tilde_beta
Float tilde_beta[][pmax+1]
Definition: runge_kutta_semiimplicit.icc:65
rk::alpha
Float alpha[][pmax+1][pmax+1]
Definition: runge_kutta_semiimplicit.icc:36
rk::_a31
const Float _a31
Definition: runge_kutta_semiimplicit.icc:33
rk::beta
Float beta[][pmax+1]
Definition: runge_kutta_semiimplicit.icc:60