Indiana University-Purdue University Indianapolis

Errata – An efficient 3D topology optimization code written in Matlab

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 \tilde{\mathbf{x}} = \tilde{\mathbf{x}} \left( \tilde{\mathbf{x}} \right) are defined by (3),

should be:

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

 

 Section 4.3 Heat conduction

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

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

where \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

\mathbf{K}(\tilde{\mathbf{x}}) \mathbf{U}(\tilde{\mathbf{x}}) = \mathbf{F},

where \mathbf{U}(\tilde{\mathbf{x}}) now donates the finite element global nodal temperature vector,

 

(33):  The optimization problem for heat conduction is

Eq33

should be:

Correction_33

 

Section 6.1.3 Active and passive elements

Fig.7 bottom topology optimized beam

Cantilever beam with passive elements

should be:

Cantilever beam with passive elements - new

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

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;

should be written:

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;

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

Appendix A: Symbolic expression of \mathbf{k}^0

\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 \mathbf{k}_3^\text{T} instead of \mathbf{k}_4^\text{T}:

\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