π 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.
π 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-solversmonorepo and modernize it.Per-solver checklist: native execs (L/M/W) Β· Python wheels (L/M/W) Β· Docker container Β·
libvcellinput 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
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=
libvcellinput 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 legacyvcell-solversbundle (v0.0.44-dev4mac/linux,v0.0.40win) β except Langevin (1.4.7, its own, used by client + server).Notes β
libvcellsupports 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 thevcellrepo, shipped invcell-batch; never in the monorepo.Scope also includes
libvcell(legacy Java β native Python lib via GraalVM; the finite-volume + moving-boundary input generators; instrumental tovcellstandalone + each solver's Python bindings). (vcell-fenicsis its own initiative.)Coordination inbox: comment with progress/handoffs (what moved + PR/commit links); the lead posts a periodic status summary.