Neko
0.9.99
A portable framework for high-order spectral element flow simulations
|
Implicit backward-differencing scheme for time integration. More...
Public Member Functions | |
procedure, nopass | compute_coeffs => bdf_time_scheme_compute_coeffs |
Compute the scheme coefficients. More... | |
The explicit forumlas for the coefficients are taken from the following techincal note: "Derivation of BDF2/BDF3 for Variable Step Size" by Hiroaki Nishikawa, which can be found on ResearchGate.
For a contant time-step this corresponds to the following schemes for order 1 to 3:
It is assumed that all the coefficients but the first one premultiply terms that go to the right-hand side of the equation. Accordingly, the signs of these coefficients are reversed in the coeffs
array. This is taken into account, for example, in the implemeation of the rhs_maker
class.
Another important convention is that the coefficients are meant to be later divided by the current value of the timestep.
In line with the above assumptions, the first order scheme always returns the array \([1, 1]\), and not \([1/\Delta t, -1/\Delta t]\), as one might expect. Similar for the second and third order.
fd_weights_full
subroutine to compute the coefficients. A demonstration of this is implemented in a test in tests/ext_bdf_scheme/test_bdf.pf
Definition at line 103 of file bdf_time_scheme.f90.
procedure, nopass bdf_time_scheme::bdf_time_scheme_t::compute_coeffs |
Definition at line 106 of file bdf_time_scheme.f90.