gemseo.problems.topology_optimization.density_filter_disc module#

A discipline for topology optimization density filter.

class DensityFilter(n_x=100, n_y=100, min_member_size=1.5, name='')[source]#

Bases: Discipline

Apply density filter to the design variables of a topology optimization problem.

This helps to avoid checkerboard patterns in density based topology optimization. A filter matrix \(H\) is assembled at instantiation. The discipline computes the physical density \(xPhys\) from the design variables \(x\) with the formula \(xPhys=Hx\). This physical density is an approximation of a convolution integral.

Initialize self. See help(type(self)) for accurate signature.

Parameters:
  • n_x (int) --

    The number of elements in the x-direction.

    By default it is set to 100.

  • n_y (int) --

    The number of elements in the y-direction.

    By default it is set to 100.

  • min_member_size (float) --

    The minimum structural member size.

    By default it is set to 1.5.

  • name (str) --

    The name of the discipline. If empty, use the name of the class.

    By default it is set to "".