nanopnp¶
Continuum simulation of biological nanopores with the extended Poisson–Nernst–Planck and Navier–Stokes (ePNP-NS) framework of Willems et al., Nanoscale 12, 16775–16795 (2020) (10.1039/D0NR03114C). nanopnp is an open-source Python reimplementation of that model, which was built in COMSOL Multiphysics.
Given a pore geometry, an electrolyte and an applied bias, nanopnp solves the coupled electrostatics, ion transport and flow at steady state on a 2D-axisymmetric finite-element mesh. It returns the ionic current and conductance, the transport numbers, the current rectification and the electro-osmotic flow rate. It is built around three rules:
- A result carries its provenance. Every run writes a manifest recording its inputs by content hash, the library versions, the mesh and its quality, the solver settings, the stabilisation mode, and every switch set away from the validated model. A run whose manifest cannot reconstruct it does not count as a result.
- Gates, not hope. A mesh sliver, a negative concentration, a charge field that does not conserve its declared charge, or two current-extraction routes that disagree each abort the run, naming the quantity and where it failed. nanopnp does not return a plausible wrong answer.
- The model is data and configuration. The fitted corrections live in data files, and classical PNP-NS is ePNP-NS with its corrections switched off, not a second code path.
Pre-alpha: the v0.5 scope, not yet tagged
The solver core, the case file, the command line, parameter sweeps, provenance, the desktop shell, the geometry pipeline from a PDB structure to a mesh, the charge pipeline that protonates the structure and deposits its charge on the mesh, and the Python interface are delivered. v0.4.0 is the last tagged release; v0.5 is in progress. Nothing here is a validated release yet, and the comparison against the paper's published results gates v0.7, the Phase 6 release.
Where to start¶
| You want to… | Read |
|---|---|
| Run your first case | Getting started, then example 01 |
| Understand what a run is made of | Concepts |
| Write a case file | Case files and the case-file reference |
| Run a sweep on a cluster | Sweeps and HPC and example 05 |
| Script it from Python | The Python interface, example 04 and the API reference |
| Use the desktop application | Desktop shell |
| Know exactly what is solved | The model: the specification and knowledge base, verbatim |
Who it is for¶
The specification names three kinds of user (§2.4). Method developers script the API, change the physics, and need full introspection. Collaborating computational scientists drive reproducible, case-file runs and sweeps from the command line. Experimental nanopore laboratories want a desktop application: choose a pore, set the salt and the voltage, and get a prediction. The first two are served today. The third is served by the desktop shell from a development install. A double-clickable Windows build of the packaging probe has been confirmed on a real desktop; a bundled shell and installers come later.