Permeability
The Permeability wizard estimates permeability from the log curves of a well and writes the result as a permeability curve, in millidarcy by default. Nine methods are offered, grouped by the data they need: the empirical porosity–irreducible-water family, the NMR pair, and the core-calibrated transforms. Coefficients can be typed, taken from a curve, set per zone, or fitted against core permeability loaded into the wizard.
The wizard works on a single well or in Batch calculation mode. It shares the well selection, depth-range tabs, unit handling, batch behaviour, Save to workflow integration and run reporting of the other calculators of the Petrophysics bar; only the parts that are specific to permeability are described below.
Launching the wizard
Open the Petrophysics ribbon bar and click Permeability. Select the well, choose a method, supply the input curves and coefficients, and check the result in the Input/Output panel on the right before saving. The wizard is modeless, so the main window stays available while it is open.

Input parameters
- Well and depth range: choose one well, or enable Batch calculation to process a group of wells. The calculated interval is limited on the MD range, TVD range, TVDSS range, Markers range and Zones range tabs.
- Method: a grouped list. The group headings Porosity - Swirr (empirical), NMR and Core-calibrated cannot be selected. Changing the method swaps the parameter block and the equation card below it and refills the output curve name; the porosity curve, the limits, the vertical-permeability setting and the loaded core data are kept. Coefficients are remembered per well and per method, so switching methods back and forth does not lose typed or fitted values.
- Porosity (φ), total or NMR: required by every method, with its own unit list (fraction or %). The label states which porosity the selected method expects — effective porosity for Kozeny-Carman, total or NMR porosity for the others.
- Swirr: used by the empirical methods. The source list offers Constant (Swirr value, 0.150 v/v by default), Curve, Minimum Sw over the active range (taken from a selected Sw curve) and Per zone.
- Method-specific inputs: BVI with a Curve or Derived from Swirr source for Coates; a T2gm curve in ms for SDR; FZI for Kozeny-Carman and R35 in µm for Winland R35, each with a Constant / Curve / Per zone source; a Hydrocarbon type pair (Oil or Gas) for Morris-Biggs; a Preset list for Wyllie-Rose; and a Form list for the k-φ transform.
- Coefficients: the editable coefficients of the selected method. Their own source list offers Constant or Per zone. The coefficient labels follow the method, for example A, x (porosity exponent) and y (Swirr exponent) for Timur.
- Limits: k min (0.0001 mD) and k max (100000 mD). They are applied after the equation: a sample outside the range is clamped to the limit, not nulled.
- Also output vertical permeability: writes a second curve named <output curve name> - kv, obtained by multiplying the result by the kv/kh value (0.10 by default).
- Output curve: the name is filled in from the selected method, in the form Permeability - <method name>, and it is refilled every time the method changes, so enter a custom name last. The unit list next to it offers mD (the default), D, µm² and m², and sets the scale and the unit of the saved curve.
The Equation card under the parameter block always shows the formula of the selected method together with the unit convention it is evaluated in. A sample is left empty when a required input is missing or would make the equation undefined, for example a zero Swirr or BVI, or a porosity of 1 or more for Kozeny-Carman.
Calculation methods
All methods return permeability in mD. The unit convention of the inputs differs between the published relations, and the wizard converts the selected curves accordingly, so the curves are always supplied in their own units.
Porosity - Swirr (empirical)
These methods need a porosity curve and an irreducible water saturation, both used as fractions (v/v). Use them where no core or NMR data is available.
- Timur — k = A · φ^x / Swirr^y, with A = 8581, x = 4.4 and y = 2.
- Tixier — the same form, with A = 62500, x = 6 and y = 2.
- Morris-Biggs — k = (C · φ^x / Swirr^y)², with x = 3 and y = 1. Hydrocarbon type switches C between 250 (Oil) and 79 (Gas).
- Wyllie-Rose — the same squared form with fully editable coefficients (C = 100, x = 2.25, y = 1). The Preset list loads the Timur, Tixier, Morris-Biggs (oil) or Morris-Biggs (gas) coefficients as a starting point.
NMR
- Coates (free fluid) — k = [ (φ / C)^a · (FFI / BVI)^b ]², with C = 10, a = 2 and b = 1. Porosity is used in porosity units (%), and the free fluid index is taken as FFI = φ - BVI. Supply BVI as a curve, or let the wizard derive it from Swirr.
- SDR — k = a · φ⁴ · T2gm², with a = 4. Porosity is used as a fraction and the geometric-mean relaxation time T2gm in ms.
Core-calibrated
These methods expect a value or a relation that comes from core or rock typing. They are the ones that benefit most from the core calibration described below.
- k-φ transform — a log-linear transform whose Form list selects log10 k = a · φ + b (exponential) or log10 k = a · log10 φ + b (power). The slope and intercept stay blank until they are typed or fitted, so this method is normally filled in with Fit.
- Kozeny-Carman (FZI) — k = 1014 · FZI² · φe³ / (1 - φe)², evaluated on effective porosity as a fraction. The flow zone indicator FZI (1.0 by default) is the value the core identifies, and it can be a constant, a curve or a per-zone value.
- Winland R35 — log10 R35 = A + B · log10 k - C · log10 φ, solved for k. R35 is an input pore-throat radius (2.0 µm by default, constant, curve or per zone), porosity is used in %, and the regression coefficients A = 0.732, B = 0.588 and C = 0.864 remain editable.
Core calibration
The Core calibration row loads measured core permeability and fits the coefficients of the current method to it. Until plugs are loaded the row reads no core data loaded and Fit is unavailable.
- Load core k... reads a depth and a permeability column from a .csv or .txt file. A confirmation window names the file, reports how many points were accepted and how many rows were skipped and previews the first plugs; depths are used exactly as loaded and permeability is read as mD. After the import the wizard offers to store the plugs as a project table under Statistics / Tables, which is what lets a saved run reopen with its core data.
- From table... takes the plugs from a table already stored in the project.
- Fit adjusts the coefficients that are set to Constant so that the method reproduces the loaded plugs, working in log10 permeability. Parameters taken from a curve are used as they are. The fitted numbers are written into the coefficient fields and stay editable, and the report next to the button gives the number of points used, R² in log space, the RMS in log10 units and the share of points within a factor of 2 and of 10.
- Per zone opens an editable table of the zones selected on the Zones range tab, with one column per parameter; a blank cell falls back to the constant on the main form. Fitting then runs zone by zone, using only the core points inside each zone: a zone with fewer than three points keeps its typed value and is named in the fit report, which also summarises the pooled fit over all points. A filled table can be stored with Save as table... and reused later with Load from table....
Results
The right-hand panel carries two tabs. Input/Output plots the input curves of the selected well next to the calculated Output track; because permeability is log-normal, that track uses a logarithmic scale, and loaded core plugs are drawn on it as points in the same unit as the output. Crossplot shows porosity on a linear axis against permeability on a logarithmic axis, with the core plugs as points and the response of the current method as a line — one line per zone when a per-zone table is in use.
Run reports how many wells were calculated and lists them, followed by the number of samples that were left empty and the number that were clamped to the k limits. A well whose required curves cannot be used is reported separately and is skipped. Save then writes the permeability curve, and the vertical-permeability curve when it is enabled, into the wells.
A saved run keeps its settings with the curve. Right-click the resulting curve in the Data manager and choose Show permeability settings to reopen the wizard with the method, coefficients and their sources, input curves, limits, core source and fit statistics of that run restored.
Recommendations
- Check that the porosity curve matches what the method expects, and that its unit list is set to the way the log is stored; a fraction curve read as a percentage shifts the result by orders of magnitude.
- Where core plugs exist, load them and use Fit rather than the published default coefficients, and read the crossplot before saving: the published constants rarely fit a specific reservoir.
- Handle several rock types with the Per zone parameter tables instead of running one method after another; a single run applies one method.
- Store loaded core plugs as a project table if the run is to be saved to a Workflow or reopened later, because a file kept outside the project can only be named by the saved run.
See Also