  In this paper, a topology optimization framework utilizing automatic
differentiation is presented as an efficient way for solving 2D density-based
topology optimization problem by calculating gradients through the fully
differentiable finite element solver. The optimization framework with the
differentiable physics solver is proposed and tested on several classical
topology optimization examples. The differentiable solver is implemented in
Julia programming language and can be automatically differentiated in reverse
mode to provide the pullback functions of every single operation. The entire
end-to-end gradient information can be then backed up by utilizing chain rule.
This framework incorporates a generator built from convolutional layers with a
set of learnable parameters to propose new designs for every iteration. Since
the whole process is differentiable, the parameters of the generator can be
updated using any optimization algorithm given the gradient information from
automatic differentiation. The proposed optimization framework is demonstrated
on designing a half MBB beam and compared to the results with the ones from the
efficient 88-line code. By only changing the objective function and the
boundary conditions, it can run an optimization for designing a compliant
mechanism, e.g. a force inverter where the output displacement is in the
opposite direction of the input.
