Time integrators¶
Hulbert-Chung generalized-alpha time integrator.
Function-style API kept independent of FEMOperators/ExplicitDynamics so the existing velocity-Verlet path stays bit-exact for current benchmarks.
Reference: Chung & Hulbert, J. Appl. Mech. 60 (1993) 371-375 (https://doi.org/10.1115/1.2900803); Borden 2012 §3.2.
- phast.solvers.time_integrators.gen_alpha_params(rho_inf)[source]¶
Spectral-radius parameterisation (Borden 2012 eqs 95-97).
rho_inf=0.5 is the Borden 2012 default (high-frequency dissipation); rho_inf=1.0 gives alpha_m = alpha_f = 0.5, beta = 1/4, gamma = 1/2 (zero numerical dissipation, second-order accurate).
- phast.solvers.time_integrators.gen_alpha_step(u, v, a, K, M, f_ext, dt, alpha_m, alpha_f, beta, gamma)[source]¶
One Hulbert-Chung generalized-alpha step for M*a + K*u = f_ext.
Solves the implicit residual:
(1 - alpha_m) M a_{n+1} + alpha_m M a_n + (1 - alpha_f) K u_{n+1} + alpha_f K u_n = f_ext_{n+1-alpha_f}together with the Newmark-beta predictor relations for u_{n+1}, v_{n+1}.
K, M may be dense matrices, vectors (lumped/diagonal), or scalars. Autograd-safe: no in-place ops, no .detach().