grainBoundary.reduce edit page

coarsen a list of grain boundary segments

Description

Dissolves every vertex that is not needed, keeping only every n-th one along each chain. Junctions are always kept, so the topology of the boundary network is preserved - which grains touch which, and where, is unchanged. This merges segments rather than dropping them, so the boundary stays connected and its total length is preserved up to the straightening of the removed corners.

A grain that would be left with fewer than three vertices, and so collapse onto a line, is not coarsened at all.

The properties of the merged segments - grainId, ebsdId, misrotation - are inherited from the last segment of each run. They are constant along a chain anyway, apart from misrotation.

Syntax

gB_red = reduce(gB)
gB_red = reduce(gB,n)
gB_red = reduce(gB,n,'protect',vertexIds)

Input

gB grainBoundary
n keep every n-th vertex (default 2)

Output

gB_red grainBoundary

Options

protect ids of vertices that must survive, on top of the junctions

See also

grainBoundary.simplify grainBoundary.order grain2d.reduceBoundary EBSD.reduce