136 constexpr NekDouble ABcoefficients[5] = {0.,
143 constexpr NekDouble UVcoefficients[5][4] =
144 { { 0., 0., 0., 0. },
148 { 4./ 3., -1./ 3., 0., 0. },
150 { 18./11., -9./11., 2./11., 0. },
152 { 48./25., -36./25., 16./25., -3./25. } };
156 phase->m_order = order;
158 std::string(
"BDFImplicitOrder" + std::to_string(phase->m_order));
160 phase->m_numsteps = phase->m_order;
161 phase->m_numstages = 1;
178 phase->m_A[0][0][0] = ABcoefficients[phase->m_order];
179 phase->m_B[0][0][0] = ABcoefficients[phase->m_order];
182 for (
size_t n = 0; n < phase->m_order; ++n)
184 phase->m_U[0][n] = UVcoefficients[phase->m_order][n];
185 phase->m_V[0][n] = UVcoefficients[phase->m_order][n];
189 for (
size_t n = 1; n < phase->m_order; ++n)
191 phase->m_V[n][n - 1] = 1.0;
194 phase->m_numMultiStepValues = phase->m_order;
195 phase->m_numMultiStepImplicitDerivs = 0;
196 phase->m_numMultiStepExplicitDerivs = 0;
198 for (
size_t n = 0; n < phase->m_order; ++n)
200 phase->m_timeLevelOffset[n] = n;
203 phase->CheckAndVerify();