Skip to contents

Convenience constructors for cubic keep-arrays that can be passed to edges.recursive.cube.mask() or recursive.cube.mask.surface.graph() to build cubical porous benchmark families. These helpers encode three qualitatively different void patterns: repeated tunnel lattices, interior asymmetric cavities, and deterministic channel networks.

Usage

mask.cube.periodic.tunnels(
  side = 5,
  tunnel_width = 1,
  tunnel_period = 2,
  tunnel_offset = 2
)

mask.cube.asymmetric.cavities(
  side = 5,
  cavity_size = 2,
  pocket_size = max(1L, cavity_size - 1L)
)

mask.cube.channel.network(side = 5, channel_width = 1, branch_offset = 2)

Arguments

side

Side length of the cubic keep-array.

tunnel_width

Width of each removed tunnel band.

tunnel_period

Spacing between successive tunnel bands.

tunnel_offset

Starting index of the first tunnel band.

cavity_size

Side length of the larger interior cavity block.

pocket_size

Side length of the smaller secondary cavity block.

channel_width

Width of each removed channel in the channel-network family.

branch_offset

Interior offset of the extra branch channel in mask.cube.channel.network().

Value

A logical cubic keep-array.

Details

The returned arrays use the same orientation as the recursive cube-mask helpers: the first dimension runs from top to bottom, the second from left to right, and the third from front to back.