This lists all known errors in K. Liu and A. Tovar, "An efficient 3D topology optimization code written in Matlab", Struct Multidisc Optim, doi:10.1007/s00158-014-1107-x.

### Section 4.1 Minimum compliance

Line under (18):

where the physical densities $latex \tilde{\mathbf{x}} = \tilde{\mathbf{x}} \left( \tilde{\mathbf{x}} \right)$ are defined by (3),

should be:

where the physical densities $latex \tilde{\mathbf{x}} = \tilde{\mathbf{x}} \left( \mathbf{x} \right) &fg=0000ff$ are defined by (3),

### Section 4.3 Heat conduction

The equilibrium condition for heat transfer in finite element formulation is described by

$latex \mathbf{K}(\mathbf{k}_i^0) \mathbf{U}(\mathbf{k}_i^0) = \mathbf{F},$

where $latex \mathbf{U}(\mathbf{k}_i^0)$ now donates the finite element global nodal temperature vector,

should be:

The equilibrium condition for heat transfer in finite element formulation is described by

$latex \mathbf{K}(\tilde{\mathbf{x}}) \mathbf{U}(\tilde{\mathbf{x}}) = \mathbf{F},&fg=0000ff$

where $latex \mathbf{U}(\tilde{\mathbf{x}})&fg=0000ff$ now donates the finite element global nodal temperature vector,

(33):  The optimization problem for heat conduction is

should be:

### Section 6.1.3 Active and passive elements

Fig.7 bottom topology optimized beam

should be:

for more details see: https://top3dapp.com/tutorials/active-and-passive-elements-top3d/

### Section 6.1.4 Alternative filters

Fig. 8 Topology optimized design used a mesh with 30 x 10 x 2 elements. Left optimized design using density filter, middle left optimized design using density filter, middle right optimized design using density filter and gray scale filter, and right optimized design using sensitivity filter and gray scale filter

should be written:

Fig. 8 Topology optimized design used a mesh with 60 x 20 x 4 elements. Left optimized design using density filter, middle left optimized design using sensitivity filter, middle right optimized design using density filter and gray scale filter, and right optimized design using sensitivity filter and gray scale filter

for more details see: Sensitivity filter, Grayscale filter

### Section 6.2 Compliant mechanism synthesis

[matlab firstline="74"]
Ud = U(:,1);
U = U(:,2);
ce = reshape(sum((U(edofMat)*KE).Ud(edofMat),2),[nely,nelx,nelz]);
c  = U(dout,1);
dc = penal
(E0-Emin)*xPhys.^(penal-1).*ce;
[/matlab]

should be written:

[matlab firstline="74" highlight="74-76,"]
U1 = U(:,1);
U2 = U(:,2);
ce = reshape(sum((U1(edofMat)*KE).U2(edofMat),2),[nely,nelx,nelz]);
c  = U(dout,1);
dc = penal
(E0-Emin)*xPhys.^(penal-1).*ce;
[/matlab]

for more details see: https://top3dapp.com/tutorials/compliant-mechanisms-synthesis-top3d/

### Appendix A: Symbolic expression of $latex \mathbf{k}^0&s=2$

$latex \mathbf{k}_i^0 = \frac{1}{(\nu + 1)(1-2\nu)} \begin{bmatrix} \mathbf{k}_1 && \mathbf{k}_2 && \mathbf{k}_3 && \mathbf{k}_4 \\ \mathbf{k}^\text{T}_2 && \mathbf{k}_5 && \mathbf{k}_6 && \mathbf{k}^\text{T}_4 \\ \mathbf{k}^\text{T}_3 && \mathbf{k}_6 && \mathbf{k}^\text{T}_5 && \mathbf{k}^\text{T}_2 \\ \mathbf{k}_4 && \mathbf{k}_3 && \mathbf{k}_2 && \mathbf{k}^\text{T}_1 \end{bmatrix},$

On 4th column and 2nd row should be $latex \mathbf{k}_3^\text{T}$ instead of $latex \mathbf{k}_4^\text{T}$:

$latex \mathbf{k}_i^0 = \frac{1}{(\nu + 1)(1-2\nu)} \begin{bmatrix} \mathbf{k}_1 && \mathbf{k}_2 && \mathbf{k}_3 && \mathbf{k}_4 \ \mathbf{k}^\text{T}_2 && \mathbf{k}_5 && \mathbf{k}_6 && \mathbf{k}^\text{T}_3 \ \mathbf{k}^\text{T}_3 && \mathbf{k}_6 && \mathbf{k}^\text{T}_5 && \mathbf{k}^\text{T}_2 \ \mathbf{k}_4 && \mathbf{k}_3 && \mathbf{k}_2 && \mathbf{k}^\text{T}_1 \end{bmatrix},$

Thanks to Sebastian Białkowski, Technical University of Lodz in Poland

### Appendix B: Derivation of the Hessian Matrix

The reduced Hessian matrix presented in the paper is inaccurate. Please see Evgrafov, A. Struct Multidisc Optim (2014) 50: 1197. https://doi.org/10.1007/s00158-014-1204-x for the detailed discussion.

### Appendix C: Line 103 k

The factor of the $latex k$ matrix should be $latex 1/144$ instead of $latex 1/72$. Line 103 should be written as:

[matlab firstline="103"]
k = 1/144 * A' * [1; nu];
[/matlab]

This change has been applied on the $latex \texttt{top3d.m}$