extractEigenModes

fun extractEigenModes(mask: BooleanArray, width: Int, height: Int, count: Int, random: Random = Random(0)): List<GridEigenMode>(source)

Extracts the count lowest-frequency Dirichlet ("fixed edge") vibrational eigenmodes of the domain marked true in mask, a width x height grid. This is the discrete analogue of solving -Δu = λu on the domain with u = 0 on its boundary -- the same problem that produces Chladni figures on a clamped drum head.

Return

The requested modes, ascending by GridEigenMode.eigenvalue.

Parameters

mask

Interior/exterior flag per grid cell, size width * height. Must contain at least one true cell.

count

Number of modes to extract, ordered from lowest to highest frequency. Clamped to the number of interior grid cells.

random

Source of the eigensolver's random initial vectors. Defaults to a fixed seed (Random(0)) for reproducible results.