Diffusivity¶
Diffusivity measures how easily a species diffuses through the pore space compared with free fluid. Use it for the tortuosity factor of an electrode, a catalyst layer or a rock, or for the formation factor of a brine-saturated sample.
- Find it Tools › Transport › Diffusivity
- Needs a segmented 3D image with a connected pore path along the direction you choose
- Returns the tortuosity factor \(\tau\), \(D_\text{eff}/D_0\) and the formation factor \(F\), with the concentration field
- Runs on GPU, with Tortuosity.jl or TauFactor
- Science Diffusivity
Run it¶
- Open Tools, then Transport, and select Diffusivity. You can also start from an image's page, which fills in the image for you.
- Under Source, choose the Image, or a batch to run every image in it.
- Under Settings, pick the Direction of transport: X direction, Y direction or Z direction.
- Set the Target accuracy. The suggested
0.001accepts a 0.1% error in the tortuosity factor. - Under Compute, choose the Backend. Leave Compute tier on Auto unless you need a particular GPU.
- Select Run. The job page opens and follows the job until it finishes.
Before the solver starts, PoreStore checks that a connected pore path joins the inlet and outlet faces along your direction. The note under the image tells you when it already knows the image has none, and a job on such an image stops before it runs.

Settings¶
| Setting | Default | Range | What it does |
|---|---|---|---|
| Image | your team's images and batches | The image to analyse, or a batch to run one job per image. | |
| Direction | X direction | X, Y, Z direction | The axis the species diffuses along. The inlet is the first face along it. |
| Target accuracy | 0.001 |
10⁻⁶ or more | The largest relative error you accept in the tortuosity factor, as a fraction. The solver keeps going until its error estimate is below it. |
| Solver tolerance | 0.00001 |
10⁻⁶ or more | Tortuosity.jl only. How far the first linear solve goes before the target accuracy takes over. |
| Maximum iterations | 10000 |
1–1,000,000 | TauFactor only, under Advanced solver settings. TauFactor stops when it converges or reaches this limit. |
| Backend | Tortuosity.jl | Tortuosity.jl, TauFactor | The solver. Both solve the same problem; they place the fixed concentrations half a voxel apart, which shifts \(\tau\) slightly. |
| Compute tier | Auto (idle hardware first) | Auto, or a tier that fits the image | The GPU the job runs on. Every tier gives the same answer. See Compute and hardware. |
Results¶
The job page leads with the tortuosity factor \(\tau\). Below it, the Simulation Results table lists, with a target and a Met or Missed status for each check:
- Effective Diffusivity (D_eff/D_0): diffusion through the sample relative to free fluid, porosity included.
- Tortuosity factor: \(\tau = \varphi \,/\, (D_\text{eff}/D_0)\). Straight pores give 1; anything that lengthens or narrows the paths raises it.
- Formation factor (F = D_0/D_eff): the same number inverted, the form to compare with a resistivity measurement or Archie's law.
- Converged, Flux balance error and Iterations: whether the solver reached your target accuracy, and how much work it took. Tortuosity.jl adds Solver residual, how far its linear solve got against the Solver tolerance.
Under the table, a slice viewer shows the saved concentration field: 1 at the inlet, 0 at the outlet, with solid masked. Move through the slices to see where the concentration drops fastest; a steep drop across a few slices marks the layer that controls \(\tau\).

From the job page you can Download Report as PDF or HTML, Download scalar fields to keep the concentration field, and Run Again with the same settings, for example in another direction. Run all three directions to see whether the sample is anisotropic.
Common problems¶
- The job stops before the solver runs. No connected pore path joins the inlet and outlet along your direction, so nothing can diffuse through. Try another direction, or check the segmentation.
- Converged is False. Tortuosity.jl stopped short of your target accuracy; the Flux balance error row shows the accuracy it reached. Run it again with a smaller Solver tolerance.
- The job fails with TauFactor. TauFactor didn't converge within Maximum iterations. Raise the limit, loosen the target accuracy, or switch to Tortuosity.jl.
- Comparing two studies. The backends differ by about 0.1% on \(\tau\). Pick one backend and keep it for a whole study.
- No compute tier fits. The image is larger than the largest GPU takes. Trim or downsample it first.
Science¶
The equation, boundary conditions, how each backend converges and how to read \(\tau\) against the literature: Diffusivity in the Scientific reference.