Skip to contents

Convenience constructors for cubic keep-arrays that can be passed to 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.

Examples

cavities <- mask.cube.asymmetric.cavities(
  side = 5, cavity.size = 1, pocket.size = 1
)
channels <- mask.cube.channel.network(
  side = 5, channel.width = 1, branch.offset = 2
)
tunnels <- mask.cube.periodic.tunnels(
  side = 5, tunnel.width = 1, tunnel.period = 2, tunnel.offset = 1
)