Skip to content

πŸ—‚ VCell solver refactoring / modernizationΒ #36

Description

@jcschaff

πŸ—‚ Master issue β€” VCell solver refactoring / modernization Β· on the VCell board.

Why β€” The solvers historically lived in the monolithic vcell-solvers. Extracting and modernizing each makes them independently buildable, portable, and usable both as standalone executables and from Python β€” and lets VCell adopt them in place of the legacy builds.

What β€” Extract each solver from the legacy vcell-solvers monorepo and modernize it.

Per-solver checklist: native execs (L/M/W) Β· Python wheels (L/M/W) Β· Docker container Β· libvcell input generator Β· native wired into the VCell client (vcell/pom.xml) Β· Docker wired into the VCell server (vcell-fluxcd/.../submit.env).

Per-solver progress grid (2026-07-07) β€” βœ… done Β· ❌ missing Β· ❓ unverified Β· βž– n/a

Solver repo (latest) natΒ·L natΒ·M natΒ·W whlΒ·L whlΒ·M whlΒ·W Docker lib cli srv
vcell-fvsolver (0.10.5) βœ… βœ… βœ… ❓ ❓ ❓ βœ… βœ… ❌ βœ…
vcell-ode (0.9.0) βœ… βœ… βœ… βœ… βœ… βœ… βœ… ❌ ❌ ❌
vcell-stochastic (ci) βœ… βœ… βœ… ❌ ❌ ❌ ❌ ❌ ❌ ❌
vcell-mbsolver (v1.0.3) βœ… βœ… ❌ βœ… βœ… ❓ ❌ βœ… ❌ ❌
vcell-nfsim (v0.1.0) ❓ ❓ ❓ βœ… βœ… βœ… ❌ ❌ ❌ ❌
cam-center/LangevinNoVis01 (1.4.7) βœ… βœ… βœ… βž– βž– βž– βœ… βž– βœ… βœ…

nat=native exec, whl=Python wheel (L/M/W=Linux/macOS/Windows); Docker=own/injected container; lib=libvcell input generator; cli=native in VCell client; srv=container in VCell server.

Server containers now: vcell-fvsolver:0.9.7 (dedicated) Β· vcell-solvers:v0.8.2 (ode/stochastic/mbsolver/nfsim) Β· vcell-batch:8.0.0.06 (Langevin native Linux exe injected in). Client natives all from the legacy vcell-solvers bundle (v0.0.44-dev4 mac/linux, v0.0.40 win) β€” except Langevin (1.4.7, its own, used by client + server).

Notes β€” libvcell supports fvsolver (vcml_to_finite_volume_input) + mbsolver (vcml_to_moving_boundary_input) via GraalVM native; nfsim publishes multi-platform wheels; ode advertises wheels + has a Dockerfile (server not cut over); mbsolver native is Linux/macOS only. Integration gap dominates: only fvsolver (server) and Langevin (client + server + Docker) are wired into VCell; the rest still run legacy.

Not in scope (Java solvers): RungeKutta{2,4,Fehlberg}, ForwardEuler, AdamsMoulton β€” Java solvers in the vcell repo, shipped in vcell-batch; never in the monorepo.

Scope also includes libvcell (legacy Java β†’ native Python lib via GraalVM; the finite-volume + moving-boundary input generators; instrumental to vcell standalone + each solver's Python bindings). (vcell-fenics is its own initiative.)

Coordination inbox: comment with progress/handoffs (what moved + PR/commit links); the lead posts a periodic status summary.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions