CheqFilters

This sub-module of TopOpt defines chequerboard filters that suppress mesh-dependent checkerboard patterns in the optimized design. There are two families: sensitivity filters (smooth the gradient) and density filters (smooth the design variables).

Abstract types

Sensitivity filter

TopOpt.CheqFilters.SensFilterFunType
SensFilterFun(solver; rmin)

Sensitivity chequerboard filter with radius rmin. Smooths the objective gradient by weighting each element's sensitivity with the sensitivities of neighboring elements within rmin, using the filter scheme from [3] (BESO): the weight is max(rmin - dist, 0) where dist is the distance from the element centroid to the neighboring node.

Call as y = flt(x). See also [1] §3.4 for general background on sensitivity filtering.

source

Density filters

TopOpt.CheqFilters.DensityFilterFunType
DensityFilterFun(solver; rmin)

Density chequerboard filter with radius rmin. Produces a filtered design where each element's density is a weighted average of neighboring densities within rmin, using the BESO filter weighting scheme w = max(rmin - dist, 0) from [3]. Implemented as a differentiable linear operator (sparse Jacobian). Call as y = flt(PseudoDensities(x)).

See also [1] §3.4 for general background on density filtering.

source
TopOpt.CheqFilters.ProjectedDensityFilterFunType
ProjectedDensityFilterFun

Density filter followed by a projection (e.g. Heaviside) to push the design toward 0/1. Useful for producing near-binary designs. See [1] §3.5 for projection-based filtering.

source