Topology Optimization with Matlab: Geometrically Non-Linear Optimum Solid Structures at Random Force Strengths
Abstract
:1. Introduction
2. Materials and Methods
2.1. Continuum Mechanics
2.1.1. Displacement of Continuous Media
2.1.2. Green–Lagrangian Strain Tensor
2.1.3. Hooke’s Law
2.1.4. Voigt Notation
2.1.5. Cauchy Traction Vector
2.1.6. Nanson’s Formula
2.1.7. Static Equilibrium
2.1.8. Hyperelastic Material Model
2.1.9. Non-Linear Hookes Law
2.2. Finite Element Analysis
2.2.1. Weak Form of Problem
2.2.2. Element ID, Connectivity, and Edof
2.2.3. Parametric Domain
2.2.4. Ansatz Functions
2.2.5. Strain–Displacement Matrix
2.2.6. Residual of Equilibrium Equation
2.2.7. Tangential Stiffness Matrix
2.2.8. Gaussian Quadrature
2.2.9. Newton–Raphson Method
2.2.10. Compliance
2.3. Density Based Methods and Filtering Techniques
2.3.1. SIMP Method
2.3.2. Density Filter
2.3.3. Sensitivity Filter
2.3.4. BESO Method
2.4. Problem Formulation
2.4.1. Termination Criterion: Density Change
2.4.2. Termination Criterion: Compliance Change
2.5. Chemo-Mechanically Coupled Model
3. Results
3.1. Reference Parameter Definition
3.2. Calibration
3.3. Central Single Force
3.4. Forces with Random Strength and Zero Net Strength
3.5. Probability Density
3.6. Periodic Loading of Schwarz P Structure
3.7. Forces with Random Strength and Non-Zero Net Strength
4. Discussion
5. Conclusions
Author Contributions
Funding
Institutional Review Board Statement
Informed Consent Statement
Data Availability Statement
Conflicts of Interest
Abbreviations
BESO | Bi-evolutionary structural optimization |
dof | Degree of freedom |
ESO | Evolutionary structural optimization |
FEM | Finite element method |
Li | Lithium |
Si | Silicon |
SIMP | Solid isotropic material with penalization |
List of Symbols
• With respect to element | Normal vector | ||
• With respect to iteration number | p | Penalization power | |
Transpose of • | P | Probability density | |
Voigt notation of • | 1st Piola–Kirchhoff stress tensor | ||
Prescribed quantity | Filter radius | ||
Arranged with respect to nodal values | Residual vector | ||
Arranged with respect to elemental values | 2nd Piola–Kirchhoff stress tensor | ||
Sum of diagonal elements (trace) | t | time | |
Cauchy traction vector | |||
Zero matrix | Displacement vector | ||
Identity matrix | Volume | ||
Design domain | |||
Area | w | Weights | |
Optimality condition | Density variable, minimum density | ||
Body force density | Filtered density | ||
Strain–displacement matrix | Point of a continuum | ||
c | Compliance | ||
Ref Lithium ion concentration | Total strain energy of removed element | ||
Evolutionary ratio | Threshold constant | ||
Lithium ion concentration | Variational derivative | ||
Right Cauchy–Green strain tensor | Small number | ||
d | Polynomial degree | Small strain tensor | |
D | Deviation | Damping coefficient | |
edof array for a specific element | Lamé parameter | ||
E | Young’s modulus | Test function | |
Total strain energy of removed element | Poisson number | ||
Green–Lagrangian strain tensor | Local coordinate vector | ||
Force strength | Cauchy stress tensor | ||
Force | Strain energy density function | ||
Deformation gradient | Volume (parametric domain) | ||
Linear derivatives matrix | Normalized partial molar volume | ||
h | Equidistant nodal spacing | ||
J | Jacobian | Body (0 reference, t actual, parametric) | |
Stiffness matrix | Boundary of body | ||
l | Lagrange multiplier | Elasticity tensor | |
m | Move limit | Mobility tensor | |
Stress components matrix | Neighborhood | ||
Number of elements | |||
Number of Gauss points | Partial derivative | ||
Number of simulations | ∅ | Empty set | |
Interpolation function | Union and intersection of sets |
Appendix A. Matlab Code
- Listing A1.
- 3D Matlab source code for non-linear topology optimization based on the BESO method.
- 1
- function [x,U]=TopOptBesoNL3D_mdpi(nelx,nely,nelz,volfrac,er,rmin)
- 2
- %-- if no input, then use some default values:
- 3
- if nargin<6; nelx=50; nely=16; nelz=4; volfrac=0.5; er=0.02; rmin=1.5; end
- 4
- %-- force strength (F0)
- 5
- F0=1e-9; E=1; nu=0.3; xmin=3e-5; penal=1; tolx=0.0001; maxloop=500;
- 6
- vol=1; loop=0; change=1; pos=1;
- 7
- x=ones(nely,nelx,nelz); c=zeros(1,maxloop);
- 8
- nele=nelx*nely*nelz; ndof=3*(nelx+1)*(nely+1)*(nelz+1);
- 9
- %-- loads, here: at right end along z-direction
- 10
- [il,jl,kl] = meshgrid(nelx, 0, 0:nelz);
- 11
- loadnid=kl*(nelx+1)*(nely+1)+il*(nely+1)+(nely+1-jl);
- 12
- loaddof=3*loadnid(:)-1;
- 13
- F=sparse(loaddof,1,F0,ndof,1);
- 14
- %-- supports, here: at left end along y- and z-direction
- 15
- [iif,jf,kf]=meshgrid(0,0:nely,0:nelz);
- 16
- fixednid=kf*(nelx+1)*(nely+1)+iif*(nely+1)+(nely+1-jf);
- 17
- fixeddof=[3*fixednid(:); 3*fixednid(:)-1; 3*fixednid(:)-2];
- 18
- %-- get free dofs
- 19
- freedofs=setdiff(1:ndof,fixeddof);
- 20
- %-- edof
- 21
- edofMat=zeros(nele,24); ID=reshape(1:ndof/3,nely+1,nelx+1,nelz+1);
- 22
- for iz=1:nelz
- 23
- for ix=1:nelx
- 24
- for iy=1:nely
- 25
- edofMat_1=ID([0,1]+iy,[0,1]+ix,[0,1]+iz);
- 26
- edofMat_1=edofMat_1([2,4,3,1,6,8,7,5]);
- 27
- edofMat_1=3*(edofMat_1(:)-1)’ + (1:3)’;
- 28
- edofMat(pos,:)=edofMat_1(:)’;
- 29
- pos=pos+1;
- 30
- end
- 31
- end
- 32
- end
- 33
- %-- START WITH ITERATION
- 34
- while change>tolx && loop<maxloop
- 35
- loop=loop+1;
- 36
- if loop>1; olddc=dc; vol=max(vol*(1-er),volfrac); end
- 37
- %-- displacement (U), sensitivities (dc) and compliance (c) from FEA
- 38
- [U,dc,c(loop)]=FEA(nele,ndof,edofMat,x,penal,E,nu,F,freedofs);
- 39
- %-- filtering of sensivities
- 40
- dc=reshape(dc,nely,nelx,nelz); dc=check(nelx,nely,nelz,rmin,dc);
- 41
- %-- stabilization of evolutionary process
- 42
- if loop>1; dc=(dc+olddc)/2; end
- 43
- %-- BESO design update
- 44
- if loop>1; x=ADDDEL(nele,vol,dc,x,xmin); end
- 45
- %-- convergence factor (change)
- 46
- if loop>10; change=abs(sum(c(loop-9:loop-5))-sum(c(loop-4:loop)))/sum(c(loop-4:loop)); end
- 47
- %-- print results
- 48
- fprintf(’It.:%4i Obj.:%10.4f Vol.:%6.3f ch.:%6.3f\n’,loop,c(loop)*1e15,sum(x(:))/nele,change);
- 49
- %-- plot densities
- 50
- display_3D(x);
- 51
- end
- 52
- end
- 53
- %-- BESO design update
- 54
- function [x]=ADDDEL(nele,volfrac,dc,x,xmin)
- 55
- l1=min(dc(:)); l2=max(dc(:));
- 56
- while abs((l2-l1)/l2)>1e-5; th=(l1+l2)/2; x=max(xmin,sign(dc-th));
- 57
- if sum(x(:))>volfrac*nele; l1=th; else; l2=th; end
- 58
- end
- 59
- end
- 60
- %-- linear density filter
- 61
- function [dcf]=check(nelx,nely,nelz,rmin,dc)
- 62
- dcf=zeros(nely,nelx,nelz);
- 63
- for k1=1:nelz
- 64
- for i=1:nelx
- 65
- for j=1:nely
- 66
- zum=0;
- 67
- for k2=max(k1-floor(rmin),1):min(k1+floor(rmin),nelz)
- 68
- for k=max(i-floor(rmin),1):min(i+floor(rmin),nelx)
- 69
- for l=max(j-floor(rmin),1):min(j+floor(rmin),nely)
- 70
- fac=rmin-sqrt((i-k)^2+(j-l)^2+(k1-k2)^2);
- 71
- zum=zum+max(0,fac);
- 72
- dcf(j,i,k1)=dcf(j,i,k1)+max(0,fac)*dc(l,k,k2);
- 73
- end
- 74
- end
- 75
- end
- 76
- dcf(j,i,k1)=dcf(j,i,k1)/zum;
- 77
- end
- 78
- end
- 79
- end
- 80
- end
- 81
- %-- FEA
- 82
- function [U,dc,cloop]=FEA(nele,ndof,edofMat,x,penal,E,nu,F,freedofs)
- 83
- %-- initialization of global stiffness matrix (K), residuum (R) and displacement (U)
- 84
- K=sparse(ndof,ndof); R=zeros(ndof,1); dU=R; U=R; dc=zeros(nele,1); del=1; loop=0;
- 85
- %-- Iteratively solve the geometric nonlinear FE balance equation
- 86
- while del>0.001 && loop<4 % or increase for more iterations
- 87
- cloop=0; loop=loop+1;
- 88
- %-- loop over elements
- 89
- for ele=1:nele
- 90
- %-- elemental quantities
- 91
- xe=x(ele); edof=edofMat(ele,:)’; Ue=U(edof);
- 92
- [RE,KE,dce]=solver(E,nu,Ue,xe,penal);
- 93
- %-- assembly
- 94
- K(edof,edof)=K(edof,edof)+KE; R(edof)=R(edof)+RE; dc(ele)=dce;
- 95
- cloop=cloop+0.5*xe^penal*Ue’*KE*Ue;
- 96
- end
- 97
- %-- residual, tangent and displacement
- 98
- R=sparse(R+F); K=sparse((K+K’)/2);
- 99
- %-- direct solver
- 100
- dU(freedofs,:)=K(freedofs,freedofs)\R(freedofs,:); U=U+dU; del=norm(dU,2)/norm(U,2);
- 101
- end
- 102
- end
- 103
- %-- FE solver
- 104
- function [RE,KE,dc]=solver(E,nu,Ue,xele,penal)
- 105
- %-- initialization
- 106
- RE=zeros(24,1); KE=zeros(24,24); dc=0; sq=1/sqrt(3); Y=eye(3); Z=zeros(3);
- 107
- %-- displacements (uij) where i=number, j=direction
- 108
- u11=Ue(1); u21=Ue(4); u31=Ue(7); u41=Ue(10); u51=Ue(13); u61=Ue(16); u71=Ue(19); u81=Ue(22);
- 109
- u12=Ue(2); u22=Ue(5); u32=Ue(8); u42=Ue(11); u52=Ue(14); u62=Ue(17); u72=Ue(20); u82=Ue(23);
- 110
- u13=Ue(3); u23=Ue(6); u33=Ue(9); u43=Ue(12); u53=Ue(15); u63=Ue(18); u73=Ue(21); u83=Ue(24);
- 111
- %-- elasticity tensor (C)
- 112
- C=xele^penal*E/((1+nu)*(1-2*nu))*[(1-2*nu)*Y+nu*(Z+1),Z;Z,(0.5-nu)*Y];
- 113
- %-- Gaussian quadrature over 3^2=8 points and weights=1
- 114
- for gp=1:8
- 115
- %--sign (si) of ansatz functions
- 116
- s1=1-2*mod(gp,2); s2=sign(sin(pi/4*(1-2*gp))); s3=sign(gp-4.5);
- 117
- p1=1+s1*sq; m1=1-s1*sq; p2=1+s2*sq; m2=1-s2*sq; p3=1+s3*sq; m3=1-s3*sq;
- 118
- %-- derivative of ansatz functions Ni wrt j, (dNij) where e.g. dN21=-dN11
- 119
- dN11=-m2*m3/8;dN31= p2*m3/8;dN51=-m2*p3/8;dN71= p2*p3/8;
- 120
- dN12=-m1*m3/8;dN22=-p1*m3/8;dN52=-m1*p3/8;dN62=-p1*p3/8;
- 121
- dN13=-m1*m2/8;dN23=-p1*m1/8;dN33=-p1*p2/8;dN43=-m1*p2/8;
- 122
- dN1=[dN11,-dN11,dN31,-dN31,dN51,-dN51,dN71,-dN71];
- 123
- dN2=[dN12,dN22,-dN22,-dN12,dN52,dN62,-dN62,-dN52];
- 124
- dN3=[dN13,dN23,dN33,dN43,-dN13,-dN23,-dN33,-dN43];
- 125
- %-- components of deformation gradient (Fij)
- 126
- F11=dN11*(u11-u21)+dN31*(u31-u41)+dN51*(u51-u61)+dN71*(u71-u81)+1;
- 127
- F12=dN11*(u12-u22)+dN31*(u32-u42)+dN51*(u52-u62)+dN71*(u72-u82);
- 128
- F13=dN11*(u13-u23)+dN31*(u33-u43)+dN51*(u53-u63)+dN71*(u73-u83);
- 129
- F21=dN12*(u11-u41)+dN22*(u21-u31)+dN52*(u51-u81)+dN62*(u61-u71);
- 130
- F22=dN12*(u12-u42)+dN22*(u22-u32)+dN52*(u52-u82)+dN62*(u62-u72)+1;
- 131
- F23=dN12*(u13-u43)+dN22*(u23-u33)+dN52*(u53-u83)+dN62*(u63-u73);
- 132
- F31=dN13*(u11-u51)+dN23*(u21-u61)+dN33*(u31-u71)+dN43*(u41-u81);
- 133
- F32=dN13*(u12-u52)+dN23*(u22-u62)+dN33*(u32-u72)+dN43*(u42-u82);
- 134
- F33=dN13*(u13-u53)+dN23*(u23-u63)+dN33*(u33-u73)+dN43*(u43-u83)+1;
- 135
- F1=[F11,F21,F31]; F2=[F12,F22,F32]; F3=[F13,F23,F33];
- 136
- %-- strain-displacement matrix (B)
- 137
- B1=repmat([F1;F2;F3],1,8).*reshape(repmat([dN1;dN2;dN3],3,1),3,24);
- 138
- B2=repmat([F3;F1;F2],1,8).*reshape(repmat([dN2;dN3;dN1],3,1),3,24);
- 139
- B3=repmat([F2;F3;F1],1,8).*reshape(repmat([dN3;dN1;dN2],3,1),3,24);
- 140
- B=[B1;B2+B3]; BT=B’; CB=C*B; SV=CB*Ue;
- 141
- %-- elemental residuum (RE), stiffness matrix (KE), and compliance (dc) update
- 142
- Fint=BT*SV; RE=RE-Fint; dc=dc+0.5*Ue’*Fint;
- 143
- G=[dN11*Y,-dN11*Y,dN31*Y,-dN31*Y,dN51*Y,-dN51*Y,dN71*Y,-dN71*Y;
- 144
- dN12*Y,dN22*Y,-dN22*Y,-dN12*Y,dN52*Y,dN62*Y,-dN62*Y,-dN52*Y;
- 145
- dN13*Y,dN23*Y,dN33*Y,dN43*Y,-dN13*Y,-dN23*Y,-dN33*Y,-dN43*Y];
- 146
- M=[SV(1)*Y,SV(6)*Y,SV(5)*Y;SV(6)*Y,SV(2)*Y,SV(4)*Y;SV(5)*Y,SV(4)*Y,SV(3)*Y];
- 147
- KE=KE+BT*CB+G’*M*G;
- 148
- end
- 149
- end
- 150
- %--display
- 151
- function display_3D(rho)
- 152
- [nely,nelx,nelz]=size(rho); cla; face = [1 2 3 4; 2 6 7 3; 4 3 7 8; 1 5 8 4; 1 2 6 5; 5 6 7 8];
- 153
- for z=0:(nelz-1)
- 154
- for x=0:(nelx-1)
- 155
- for y=nely:-1:1
- 156
- R = rho(1+nely-y,x+1,z+1);
- 157
- if R>0.5
- 158
- vert=[x,-z,y;x,-z,y-1;x+1,-z,y-1;x+1,-z,y;x,-z-1,y;x,-z-1,y-1;x+1,-z-1,y-1;x+1,-z-1,y];
- 159
- patch(’Faces’,face,’Vertices’,vert,’FaceColor’,(0.2+0.8*(1-R))*[1,1,1]); hold on;
- 160
- end
- 161
- end
- 162
- end
- 163
- end
- 164
- axis equal; axis tight; axis off; box on; view([30,30]); pause(1e-9);
- 165
- end
- 166
- %-- Disclaimer:
- 167
- %-- The authors reserves all rights for the program.
- 168
- %-- The code may be distributed and used for educational purposes.
- 169
- %-- The authors do not guarantee that the code is free from errors, and
- 170
- %-- they shall not be liable in any event caused by the use of the code.
- 171
- %-- contact: [email protected]
References
- Schmit, L.A. Structural design by systematic synthesis. In Proceedings of the 2nd Conference on Electronic Computation, Pittsburgh, PA, USA, 8–10 September 1960; ASCE: New York, NY, USA, 1960; pp. 105–132. [Google Scholar]
- Bendsøe, M.P.; Kikuchi, N. Generating optimal topologies in structural design using a homogenization method. Comput. Methods Appl. Mech. Eng. 1988, 71, 197–224. [Google Scholar] [CrossRef]
- Ballo, F.M.; Gobbi, M.; Mastinu, G.; Previati, G. Optimal Lightweight Construction Principles, 1st ed.; Springer: Cham, Switzerland, 2021. [Google Scholar] [CrossRef]
- Czerwinski, F. Current Trends in Automotive Lightweighting Strategies and Materials. Materials 2021, 14, 6631. [Google Scholar] [CrossRef] [PubMed]
- Chen, L.; Zhang, Y.; Chen, Z.; Xu, J.; Wu, J. Topology optimization in lightweight design of a 3D-printed flapping-wing micro aerial vehicle. Chin. J. Aeronaut. 2020, 33, 3206–3219. [Google Scholar] [CrossRef]
- Orme, M.; Madera, I.; Gschweitl, M.; Ferrari, M. Topology Optimization for Additive Manufacturing as an Enabler for Light Weight Flight Hardware. Designs 2018, 2, 51. [Google Scholar] [CrossRef] [Green Version]
- Liu, S.; Hu, R.; Li, Q.; Zhou, P.; Dong, Z.; Kang, R. Topology optimization-based lightweight primary mirror design of a large-aperture space telescope. Appl. Opt. 2014, 53, 8318–8325. [Google Scholar] [CrossRef]
- Zhu, J.; Zhou, H.; Wang, C.; Zhou, L.; Yuan, S.; Zhang, W. A review of topology optimization for additive manufacturing: Status and challenges. Chin. J. Aeronaut. 2021, 34, 91–110. [Google Scholar] [CrossRef]
- Ismail, A.Y.; Na, G.; Koo, B. Topology and Response Surface Optimization of a Bicycle Crank Arm with Multiple Load Cases. Appl. Sci. 2020, 10, 2201. [Google Scholar] [CrossRef] [Green Version]
- Matsimbi, M.; Nziu, P.K.; Masu, L.M.; Maringa, M. Topology Optimization of Automotive Body Structures: A review. Int. J. Eng. Res. Technol. 2021, 13, 4282–4296. [Google Scholar]
- Omar, M.A. Chain Drive Simulation Using Spatial Multibody Dynamics. Adv. Mech. Eng. 2014, 6, 378030. [Google Scholar] [CrossRef] [Green Version]
- Jiang, Y.; Zhan, K.; Xia, J.; Zhao, M. Topology Optimization for Minimum Compliance with Material Volume and Buckling Constraints under Design-Dependent Loads. Appl. Sci. 2023, 13, 646. [Google Scholar] [CrossRef]
- Kang, Z.; Liu, P.; Li, M. Topology optimization considering fracture mechanics behaviors at specified locations. Struct. Multidiscip. Optim. 2017, 55, 1847–1864. [Google Scholar] [CrossRef]
- Li, D.; Kim, I.Y. Multi-material topology optimization for practical lightweight design. Struct. Multidiscip. Optim. 2018, 58, 1081–1094. [Google Scholar] [CrossRef]
- Rieser, J.; Zimmermann, M. Topology optimization of periodically arranged components using shared design domains. Struct. Multidiscip. Optim. 2021, 65, 18. [Google Scholar] [CrossRef]
- Vatanabe, S.L.; Lippi, T.N.; de Lima, C.R.; Paulino, G.H.; Silva, E.C. Topology optimization with manufacturing constraints: A unified projection-based approach. Adv. Eng. Softw. 2016, 100, 97–112. [Google Scholar] [CrossRef] [Green Version]
- Zhang, L.; Al-Mamun, M.; Wang, L.; Dou, Y.; Qu, L.; Dou, S.X.; Liu, H.K.; Zhao, H. The typical structural evolution of silicon anode. Cell Rep. Phys. Sci. 2022, 3, 100811. [Google Scholar] [CrossRef]
- Roy, T.; Salazar de Troya, M.A.; Worsley, M.A.; Beck, V.A. Topology optimization for the design of porous electrodes. Struct. Multidiscip. Optim. 2022, 65, 171. [Google Scholar] [CrossRef]
- Mitchell, S.L. Topology Optimization of Silicon Anode Structures for Lithium-Ion Battery Applications; California Institute of Technology: Pasadena, CA, USA, 2016. [Google Scholar] [CrossRef]
- Bai, X.; Zhang, H.; Lin, J. A three-dimensionally hierarchical interconnected silicon-based composite for long-cycle-life anodes towards advanced Li-ion batteries. J. Alloys Compd. 2022, 925, 166563. [Google Scholar] [CrossRef]
- Teki, R.; Datta, M.K.; Krishnan, R.; Parker, T.C.; Lu, T.M.; Kumta, P.N.; Koratkar, N. Nanostructured Silicon Anodes for Lithium Ion Rechargeable Batteries. Small 2009, 5, 2236–2242. [Google Scholar] [CrossRef]
- Liang, B.; Liu, Y.; Xu, Y. Silicon-based materials as high capacity anodes for next generation lithium ion batteries. J. Power Sources 2014, 267, 469–490. [Google Scholar] [CrossRef]
- Bluhm, G.L.; Sigmund, O.; Poulios, K. Internal contact modeling for finite strain topology optimization. Comput. Mech. 2021, 67, 1099–1114. [Google Scholar] [CrossRef]
- Wu, Y.; Guo, Z.S. Concentration Distribution and Stresses in Porous Electrodes with Particle-Particle Contact. J. Electrochem. Soc. 2021, 168, 090507. [Google Scholar] [CrossRef]
- Kristiansen, H.; Poulios, K.; Aage, N. Topology optimization for compliance and contact pressure distribution in structural problems with friction. Comput. Methods Appl. Mech. Eng. 2020, 364, 112915. [Google Scholar] [CrossRef]
- Niu, C.; Zhang, W.; Gao, T. Topology optimization of elastic contact problems with friction using efficient adjoint sensitivity analysis with load increment reduction. Comput. Struct. 2020, 238, 106296. [Google Scholar] [CrossRef]
- Lu, B.; Zhao, Y.; Feng, J.; Song, Y.; Zhang, J. Mechanical contact in composite electrodes of lithium-ion batteries. J. Power Sources 2019, 440, 227115. [Google Scholar] [CrossRef]
- Sigmund, O. A 99 line topology optimization code written in Matlab. Struct. Multidiscip. Optim. 2001, 21, 120–127. [Google Scholar] [CrossRef]
- Da, D.; Xia, L.; Li, G.; Huang, X. Evolutionary topology optimization of continuum structures with smooth boundary representation. Struct. Multidiscip. Optim. 2018, 57, 2143–2159. [Google Scholar] [CrossRef]
- Fu, Y.F.; Rolfe, B.; Chiu, L.; Wang, Y.; Huang, X.; Ghabraie, K. SEMDOT: Smooth-edged material distribution for optimizing topology algorithm. Adv. Eng. Softw. 2020, 150, 102921. [Google Scholar] [CrossRef]
- Huang, X.; Li, W. Three-field floating projection topology optimization of continuum structures. Comput. Methods Appl. Mech. Eng. 2022, 399, 115444. [Google Scholar] [CrossRef]
- Han, Y.; Xu, B.; Liu, Y. An efficient 137-line MATLAB code for geometrically nonlinear topology optimization using bi-directional evolutionary structural optimization method. Struct. Multidiscip. Optim. 2021, 63, 2571–2588. [Google Scholar] [CrossRef]
- Zhu, B.; Zhang, X.; Zhang, H.; Liang, J.; Zang, H.; Li, H.; Wang, R. Design of compliant mechanisms using continuum topology optimization: A review. Mech. Mach. Theory 2020, 143, 103622. [Google Scholar] [CrossRef]
- Buhl, T.; Pedersen, C.B.W.; Sigmund, O. Stiffness design of geometrically nonlinear structures using topology optimization. Struct. Multidiscip. Optim. 2000, 19, 93–104. [Google Scholar] [CrossRef]
- Wang, F.; Lazarov, B.S.; Sigmund, O.; Jensen, J.S. Interpolation scheme for fictitious domain techniques and topology optimization of finite strain elastic problems. Comput. Methods Appl. Mech. Eng. 2014, 276, 453–472. [Google Scholar] [CrossRef]
- Xue, R.; Liu, C.; Zhang, W.; Zhu, Y.; Tang, S.; Du, Z.; Guo, X. Explicit structural topology optimization under finite deformation via Moving Morphable Void (MMV) approach. Comput. Methods Appl. Mech. Eng. 2019, 344, 798–818. [Google Scholar] [CrossRef]
- Liu, K.; Tovar, A. An efficient 3D topology optimization code written in Matlab. Struct. Multidiscip. Optim. 2014, 50, 1175–1196. [Google Scholar] [CrossRef] [Green Version]
- Holzapfel, G. Nonlinear Solid Mechanics: A Continuum Approach for Engineering; Wiley: Hoboken, NJ, USA, 2000. [Google Scholar] [CrossRef]
- de Borst, R.; Crisfield, M.A.; Remmers, J.J.C.; Verhoosel, C.V. Non-linear Finite Element Analysis. In Non-Linear Finite Element Analysis of Solids and Structures; John Wiley & Sons, Ltd.: Hoboken, NJ, USA, 2012; Chapter 2; pp. 31–62. [Google Scholar] [CrossRef] [Green Version]
- Sautter, K.B.; Meßmer, M.; Teschemacher, T.; Bletzinger, K.U. Limitations of the St. Venant–Kirchhoff material model in large strain regimes. Int. J. Non-Linear Mech. 2022, 147, 104207. [Google Scholar] [CrossRef]
- Ogden, R.W.; Hill, R. Large deformation isotropic elasticity – on the correlation of theory and experiment for incompressible rubberlike solids. Proc. R. Soc. Lond. A. Math. Phys. Sci. 1972, 326, 565–584. [Google Scholar] [CrossRef]
- Miehe, C. Aspects of the formulation and finite element implementation of large strain isotropic elasticity. Int. J. Numer. Methods Eng. 1994, 37, 1981–2004. [Google Scholar] [CrossRef]
- Hartmann, S. The Class of Simo & Pister-Type Hyperelasticity Relations; Technical Report Series; Clausthal University of Technology: Clausthal-Zellerfeld, Germany, 2010. [Google Scholar]
- Bruns, T.E.; Tortorelli, D.A. Topology optimization of non-linear elastic structures and compliant mechanisms. Comput. Methods Appl. Mech. Eng. 2001, 190, 3443–3459. [Google Scholar] [CrossRef]
- Svanberg, K.; Svärd, H. Density filters for topology optimization based on the Pythagorean means. Struct. Multidiscip. Optim. 2013, 48, 859–875. [Google Scholar] [CrossRef]
- Sigmund, O. Morphology-based black and white filters for topology optimization. Struct. Multidiscip. Optim. 2007, 33, 401–424. [Google Scholar] [CrossRef] [Green Version]
- Werner, M.; Pandolfi, A.; Weinberg, K. A multi-field model for charging and discharging of lithium-ion battery electrodes. Contin. Mech. Thermodyn. 2021, 33, 661–685. [Google Scholar] [CrossRef]
- Werner, M.; Weinberg, K. B-Spline meshing for high-order finite element analyses of multi-physics problems. Tech.-Mech.-Eur. J. Eng. Mech. 2021, 41, 1–11. [Google Scholar] [CrossRef]
- Berla, L.A.; Lee, S.W.; Ryu, I.; Cui, Y.; Nix, W.D. Robustness of amorphous silicon during the initial lithiation/delithiation cycle. J. Power Sources 2014, 258, 253–259. [Google Scholar] [CrossRef]
- Werner, M.; Weinberg, K. Towards structural optimization of lithium battery anodes. PAMM 2018, 18, e201800227. [Google Scholar] [CrossRef]
E | p | |||||||
---|---|---|---|---|---|---|---|---|
E | nu | xmin | penal | volfrac | rmin | er | F0 | tolx |
1 | 0.3 | 1 | 0.5 | 1.5 | 0.02 |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2023 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Werner, M.; Bieler, S.; Weinberg, K. Topology Optimization with Matlab: Geometrically Non-Linear Optimum Solid Structures at Random Force Strengths. Solids 2023, 4, 94-115. https://doi.org/10.3390/solids4020007
Werner M, Bieler S, Weinberg K. Topology Optimization with Matlab: Geometrically Non-Linear Optimum Solid Structures at Random Force Strengths. Solids. 2023; 4(2):94-115. https://doi.org/10.3390/solids4020007
Chicago/Turabian StyleWerner, Marek, Sören Bieler, and Kerstin Weinberg. 2023. "Topology Optimization with Matlab: Geometrically Non-Linear Optimum Solid Structures at Random Force Strengths" Solids 4, no. 2: 94-115. https://doi.org/10.3390/solids4020007