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
TopOpt.CheqFilters.AbstractCheqFilter — Type
AbstractCheqFilterAbstract type for chequerboard filters. Subtypes: AbstractSensFilter, AbstractDensityFilter.
TopOpt.CheqFilters.AbstractSensFilter — Type
AbstractSensFilterAbstract type for sensitivity filters, which smooth the gradient of the objective/constraint with respect to the design.
TopOpt.CheqFilters.AbstractDensityFilter — Type
AbstractDensityFilterAbstract type for density filters, which smooth the design variables themselves before they enter the objective/constraint.
Sensitivity filter
TopOpt.CheqFilters.SensFilterFun — Type
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.
Density filters
TopOpt.CheqFilters.DensityFilterFun — Type
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.
TopOpt.CheqFilters.ProjectedDensityFilterFun — Type
ProjectedDensityFilterFunDensity 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.