April 1, 2025

About

In this article, I am going to summarize simple derivation of Topology Optimization.

Topology Optimization and Force Equilibrium

In any kind of static analysis, the formulation must be satisfied Force Equilibrium,

K(\rho) u = f

What we need to optimize here is that the density \rho in an object. So, the stiffness matrix is represented with this parameter. The objective function that is used for the algorithm is called as *Compliance, C*. The meaning of this Compliance is inverted measure of stiffness, or just softness. If it is minimized, we would obtain an object that is close to rigid.

C= f^\top u

Since we would like to optimize C, what we are interested in is the differential of compliance with respect density \rho.

\frac{dC}{d\rho} = f^\top \frac{du}{d\rho}

Bud sadly, the displacement u is not represented by density diretory, it is difficult to get it. So, let’s think back of force equilibrium, and its differential.

\frac{d}{d\rho} (Ku) = \frac{df}{d\rho}

As force f is not influenced by density, that differential must be zero.

\frac{d\mathbf{K}}{d\rho} \mathbf{u} + \mathbf{K} \frac{d\mathbf{u}}{d\rho} = 0

If we transfer 1st term, we get the differential that we are interested in.

\frac{du}{d\rho} = -K^{-1} \frac{dK}{d\rho} u

So, compliance is represented as follows:

\frac{dC}{d\rho} = f^\top \left( -K^{-1} \frac{dK}{d\rho} u \right)

As the force balance f=Ku must be satisfied

\frac{dC}{d\rho} = -u^\top \frac{dK}{d\rho} u

Oh, this is quadratic form we are familiar with.

Solid Isotropic Material with Penalization(SIMP)

The Solid Isotropic Material with Penalization algorithm which is one of the most simple topology optimization, parameterize stiffness matrix with a parameter \rho and p.

K_e(\rho_e) = \rho_e^p K_e^0

So, the differential and its compliance are simply represented as follws:

\frac{d K_e}{d \rho_e} = p \rho_e^{p-1} K_e^0
\frac{d C}{d \rho_e} = - p \rho_e^{p-1} u_e^T K_e^0 u_e

Constraint for Volume

V(\rho) = \sum_e \rho_e V_e - V_{\max} \leq 0

\frac{d V}{d \rho_e} = V_e