Skip to content

Outputs and quantities

outputs: in the case selects what a run reports. The extraction is one calculation (NUM-27), so quantities reported together always come from the same solution by the same route.

outputs: entry Reports Where
current current_A, per-species currents_A, conductance_S run.json, and printed
transport_numbers transport_number, the cation fraction of the current, and currents_A as above
eof_rate eof_m3_s, the electro-osmotic volume flow rate as above
rectification the ratio of the current magnitudes at opposite biases a sweep's dataset.json (below)
analyte_force the axial force on an embedded analyte, by more than one route (§6.7) as above
fields the solution fields as XDMF with HDF5 heavy data (IF-07) the report artefact, listed under file

Every run also records the bias and the route agreement (below). It records how many times the concentration clamp of PHY-13 was active, and, where a stabilisation mode is on, that mode's own contribution to each current. These are the context that makes the quantities readable.

Sign convention

The current is referenced to the grounded electrode: boundary_conditions.ground, cis by default, with the bias applied to the other one. With ground: cis, a positive bias drives a positive current, and the conductance I / V is positive at either sign of the bias (NUM-24).

Two routes to the current

The ionic current is extracted twice, by the domain-indicator form (NUM-24) and by the variational reaction flux (NUM-25), and the two must agree to a declared tolerance, species by species (NUM-26, QR-04). If they do not, one of them is wrong and there is no telling which from the numbers, so no current is reported and the run exits with code 4. Each run records the pair and their relative difference under route_agreement. The agreement is relative, so a run at exactly zero bias, where the current is zero and both routes return round-off, fails it. Use a small nonzero bias instead.

The current is never taken from a cross-section integral of the flux: on a continuous finite-element space that route converges more slowly and depends on where the cut is placed (knowledge/06-numerics-fem/07-quantities-of-interest-and-the-flux-trap.md).

Exported fields

With fields among the outputs, the report stage writes two XDMF files with HDF5 heavy data: fields_omega over the whole domain and fields_omega_w over the fluid alone. A concentration of zero inside a wall would look like a converged depletion, so fluid fields are never padded over a solid. Values are SI, at the P2 node set, with each unit in the attribute's name: phi_V, c_<species>_mol_m3, u_m_s, p_Pa, and wall_distance_nm. Coordinates are in nm. The azimuthal 2π is not applied, because exported fields are pointwise (the IF-07 NOTE). ParaView and meshio read them; example 04 does so from Python.

Figures

nanopnp plot draws the figure of a stage to a PNG, SVG or PDF file; the suffix of --out names the format. It needs the plot extra.

$ nanopnp plot run solve --out solve.png
$ nanopnp plot quickstart.case.yaml mesh --out mesh.svg --store store

The first argument is a run directory, a case file or a sweep directory. A run draws its solve by default; a case file needs the stage named, and its upstream stages are served from the store or computed. A sweep directory draws its collected dataset and takes no stage. Every stage has a figure except case and report; nanopnp stage --list lists the stages. In Python the same figures are methods of the result (The Python interface).