Skip to content

5.1 Architectural overview

5.1 Architectural overview

The product is a linear pipeline of pure, cacheable stages. A stage takes typed inputs and emits a typed, serialisable artefact carrying a content hash; every stage runs standalone, and every artefact may be inspected, exported, edited and substituted by hand (FR-27). The Python API, the CLI and the desktop shell drive the same stage objects (IF-01, IF-02, IF-09).

 PDB/mmCIF ──┐
 trajectory ─┼─►[1 structure]─►[2 density]─┬─►[3 symmetry]─►[4 contour]─►[5 CAD]─►[6 mesh]─┐
 pH, force field ┘                         │                                               │
                                           └─►[7 charge]────────────────────────────────────┤
 electrolyte, corrections ────────────────────►[8 materials]────────────────────────────────┼─►[9 case]
 bias, BCs, analyte ───────────────────────────────────────────────────────────────────────►┘     │
                                                                                                  ▼
                                                    [12 report / export]◄──[11 QoI]◄──[10 solve]
Module Responsibility
core/ Units, constants, validation, provenance, caching, logging
structure/ PDB/mmCIF and trajectory IO, alignment, symmetry-axis detection
density/ Gaussian smearing to grid, ensemble averaging, grid IO
symmetry/ Cₙ averaging, azimuthal reduction to (r, z), variance diagnostics
geometry/ Contour extraction, polyline conditioning, CAD assembly, analyte bodies
mesh/ Mesher adapters (netgen, gmsh), size fields, boundary layers, quality gates
numerics/ Linear-solver adapters, damped Newton, the state and increment gates, the axisymmetric measure (§8.2.8 H11)
charge/ PDB2PQR driver, partial charges, smearing, axisymmetric projection, dielectric
materials/ Electrolyte models and the pluggable correction registry
physics/ Weak forms: Poisson, Nernst–Planck, Navier–Stokes; the wall-distance field
solve/ Continuation ladder, warm start, the solve stage
post/ QoI extraction: current, transport number, EOF, rectification, forces
plot/ Figures of every stage's artefact and of a sweep, drawn from the stored results alone with Matplotlib (the plot extra); imports no backend (§8.2.14 P3)
sweep/ Sweep documents, planning and result collection; the members run through the Session (api/)
io/ Case-file schema, artefact and resolved-case types, the solution-field vocabulary, result store, provenance manifests: the base every stage imports, importing only core at run time (MOD-04; WP38)
pipeline/ Case resolution and the checks against the registries, the pipeline walk: the assembler, which imports the stages (MOD-04; WP38)
api/ The Python interface: the Case, the Session that runs, sweeps and reopens it, and reproduction; the command line, the shell and the sweep runner run through it, above sweep/ (IF-01; §8.2.23 Y4)
cli/ Command-line entry points
gui/ Desktop application
validation/ Benchmarks, MMS, COMSOL comparison harness, regression fixtures