drainage_dt_fft

drainage_dt_fft(im, inlets=None, outlets=None, steps=None, smooth=True)[source]

Performs a distance transform based drainage simulation using distance transform thresholding for the erosion step and fft-based convolution for the dilation step.

Parameters:
  • im (ndarray) – The boolean image of the void space on which to perform the simulation

  • inlets (ndarray (optional)) – A boolean array with True values indicating the inlet locations for the invading (non-wetting) fluid. If not provided then access limitations will not be applied, meaning that the invading fluid cand appear anywhere within the domain.

  • outlets (ndarray (optional)) – A boolean array with True values indicating the outlet locations through which defending (wetting) phase would exit the domain. If not provided then trapping of the wetting phase is ignored.

  • steps (scalar or array_like) – A list of which sphere sizes to invade. If None (default) then each unique integer value in the distance transform is used. If a scalar then a list of steps is generated from steps to 1.

  • smooth (boolean) – If True (default) then the spheres are drawn without any single voxel protrusions on the faces.

Returns:

results – An object with the following attributes:

———– —————————————————————- Attribute Description ———– —————————————————————- im_seq The sequence map indicating the sequence or step number at which

each voxels was first invaded.

im_size The size map indicating the size of the sphere being drawn

when each voxel was first invaded.

———– —————————————————————-

Return type:

Dataclass-like object

Notes

The distance transform will be executed in parallel if porespy.settings.ncores > 1