[us-commits] [ehb54/ultrascan3] e0d57b: somo/grpy: add self-contained in-process GRPY modu...

emre brookes noreply at github.com
Sat Jul 18 22:15:15 MDT 2026


  Branch: refs/heads/ehb54-issue-972
  Home:   https://github.com/ehb54/ultrascan3
  Commit: e0d57bc99cd1ff7d35f3b5a0a03c310b4fd4745d
      https://github.com/ehb54/ultrascan3/commit/e0d57bc99cd1ff7d35f3b5a0a03c310b4fd4745d
  Author: ehb54 <brookes at uthscsa.edu>
  Date:   2026-07-18 (Sat, 18 Jul 2026)

  Changed paths:
    A us_somo/develop/grpy/INTEGRATION.md
    A us_somo/develop/grpy/README.md
    A us_somo/develop/grpy/grpy_api.hpp
    A us_somo/develop/grpy/grpy_core.hpp
    A us_somo/develop/grpy/grpy_report.hpp
    A us_somo/develop/grpy/linalg.hpp
    A us_somo/develop/grpy/parallel_qt.hpp
    A us_somo/develop/grpy/parallel_std.hpp
    A us_somo/develop/grpy/tests/data/1znf.bead_model
    A us_somo/develop/grpy/tests/data/1znf_golden.txt
    A us_somo/develop/grpy/tests/data/dumbbell_golden.txt
    A us_somo/develop/grpy/tests/qt_proof.cpp
    A us_somo/develop/grpy/tests/run.sh
    A us_somo/develop/grpy/tests/test_api.cpp
    A us_somo/develop/grpy/tests/test_assemble.cpp
    A us_somo/develop/grpy/tests/test_linalg.cpp
    A us_somo/develop/grpy/tests/test_ooc.cpp
    A us_somo/develop/grpy/tests/test_threaded.cpp
    M us_somo/develop/libus_somo.pro

  Log Message:
  -----------
  somo/grpy: add self-contained in-process GRPY module (Eigen)

Adds us_somo/develop/grpy/: a C++ port of GRPY (generalized Rotne-Prager-Yamakawa
hydrodynamics) callable in-process, to replace the external Fortran binary run via
QProcess with stdout scraping.

The module is self-contained and isolated from the SOMO god classes:
- header-only, own namespace (grpy), dependency-injected threading (la::Parallel;
  QtParallel over QThreadPool for SOMO, std::thread for the CLI/tests);
- memory-lean tiled Cholesky (solve M X = T instead of forming the full inverse;
  upper-triangle, factored in place) with single-precision and out-of-core (mmap)
  options for large systems, and fine-grained in-inversion progress via callback;
- grpy::Solver::run(beads, params, progressCb) returns structured scalars AND the
  full report text, so the on-disk results file is preserved as before.
- tests/ validate against the captured GRPY golden (report + scalars) and prove the
  Qt in-process path; run standalone via tests/run.sh.

Wires the qmake build (QT += concurrent, INCLUDEPATH += include grpy, HEADERS).
No US_Hydrodyn changes yet; the QProcess call-site swap is a follow-up commit.

Refs ehb54/ultrascan-tickets#972

Co-Authored-By: Claude Opus 4.8 <noreply at anthropic.com>



To unsubscribe from these emails, change your notification settings at https://github.com/ehb54/ultrascan3/settings/notifications


More information about the us-commits mailing list