116 real(kind=
rp),
intent(out) :: coeffs(4)
117 real(kind=
rp),
intent(in) :: dt(10)
118 integer,
intent(in) :: order
120 call rzero(coeffs, 4)
128 coeffs(1) = (1 + dt(1)/(dt(1) + dt(2)))
129 coeffs(3) = -dt(1)**2/dt(2)/(dt(1) + dt(2))
130 coeffs(2) = coeffs(1) - coeffs(3)
132 coeffs(2) = (dt(1) + dt(2)) * (dt(1) + dt(2) + dt(3)) / &
133 (dt(1) * dt(2) * (dt(2) + dt(3)))
134 coeffs(3) = -dt(1) * (dt(1) + dt(2) + dt(3)) / &
135 (dt(2) * dt(3) * (dt(1) + dt(2)))
136 coeffs(4) = dt(1) * (dt(1) + dt(2)) / &
137 (dt(3) * (dt(2) + dt(3)) * (dt(1) + dt(2) + dt(3)))
138 coeffs(1) = coeffs(2) + coeffs(3) + coeffs(4)
139 coeffs = coeffs * dt(1)
141 call neko_error(
"The order of the BDF time scheme must be 1 to 3.")
Interface for setting the scheme coefficients.
Backward-differencing scheme for time integration.
subroutine bdf_time_scheme_compute_coeffs(coeffs, dt, order)
Compute the scheme coefficients.
subroutine, public rzero(a, n)
Zero a real vector.
integer, parameter, public rp
Global precision used in computations.
Base class for time integration schemes.
Implicit backward-differencing scheme for time integration.
Base abstract class for time integration schemes.