ianchb
f345b0e520
Performance optimization for the TwoPunctures module
* Re-enabled OpenMP.
1. Batch spectral derivatives (Chebyshev & Fourier) via precomputed matrices:
Chebyshev/Fourier transforms and derivatives are precomputed as explicit physical-space operator matrices.
Batch DGEMM now applies to entire tensor fields, mathematically identical to original per-line transforms but vastly faster.
2. Gauss-Seidel relaxation & tridiagonal solver workspace reuse:
Per-thread reusable workspaces replace per-call heap new/delete in all tridiagonal and relaxation routines.
3. Efficient OpenMP multithreading throughout relaxation/deriv:
relax_omp and friends parallelize over grouped lines/planes, maximizing threading efficiency and memory independence.
Co-authored-by: copilot-swe-agent[bot] <198982749+copilot@users.noreply.github.com>
2026-02-07 14:48:47 +08:00
..
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-02-06 18:36:29 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-02-06 17:13:39 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-16 10:58:11 +08:00
2026-01-13 15:01:15 +08:00
2026-02-06 19:00:35 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-16 10:58:11 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-16 10:58:11 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-15 16:32:12 +08:00
2026-01-13 15:01:15 +08:00
2026-02-07 14:48:47 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-02-07 14:48:47 +08:00
2026-02-07 14:48:47 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00