  This paper presents a 55-line code written in python for 2D and 3D topology
optimization (TO) based on the open-source finite element computing software
(FEniCS), equipped with various finite element tools and solvers. PETSc is used
as the linear algebra back-end, which results in significantly less
computational time than standard python libraries. The code is designed based
on the popular solid isotropic material with penalization (SIMP) methodology.
Extensions to multiple load cases, different boundary conditions, and
incorporation of passive elements are also presented. Thus, this implementation
is the most compact implementation of SIMP based topology optimization for 3D
as well as 2D problems.
  Utilizing the concept of Euclidean distance matrix to vectorize the
computation of the weight matrix for the filter, we have achieved a substantial
reduction in the computational time and have also made it possible for the code
to work with complex ground structure configurations. We have also presented
the code's extension to large-scale topology optimization problems with support
for parallel computations on complex structural configuration, which could help
students and researchers explore novel insights into the TO problem with dense
meshes. Appendix-A contains the complete code, and the website:
\url{https://github.com/iitrabhi/topo-fenics} also contains the complete code.
