# Topology Optimization Based Material Design for 3D Domains Using MATLAB
## 1 Introduction  
The main focus of this work is to present a compact and easy-to-use MATLAB code for 3D material design based on the topology optimization formulation and the homogenization theory. The MATLAB programming language was chosen based on the existing codes published in MATLAB, covering most of the required different parts. Since the first MATLAB Structural Topology Optimization (STO) code _top99_, which was published by [PERSON] [1], many others have been published, concerning different aspects of the topology optimization procedure. Most notably, after the release of the _top99_, an improved version labelled as _top8_ was published by [PERSON] et al. [2], where the advanced features of the matrix manipulation capabilities of MATLAB were utilized, aiming to reduce the computational cost of the entire procedure. Based on the _top8_ MATLAB code, its extension to 3D domains was published by [PERSON] and [PERSON] [3] and later a modified version developed by [PERSON] and [PERSON] [4] was presented. All these code implementations were based on the SIMP approach of the topology optimization formulation. Subsequently, [PERSON] and [PERSON] [5] published a MATLAB code that was based on the _top99_ code, which implemented the BESO approach in the topology optimization formulation; whereas [PERSON] [6], also based on the _top99_ code, published a script implementing the level set based approach. In the scope of the level set based topology optimization approach, additional MATLAB codeshave been published, e.g., by [PERSON] et al. [7], by [PERSON] et al. [8], where the reaction diffusion equation was utilized instead of the Hamilton-Jacobi equation, and by [PERSON] et al. [9], where radial basis functions were used to smoothen the level set function. [PERSON] et al. [10] published \(PolyTop\), utilizing unstructured mesh generation techniques in conjunction with the power-law approaches for 2D domains, while [PERSON] et al. [11] expanded this formulation to 3D domains through \(PolyTop3D\). As far as concerns the homogenization theory, two MATLAB codes have been published dealing with the theory of homogenization, covering both 2D and 3D domains. In particular, [PERSON] and [PERSON] [12] published a MATLAB code computing the homogenized elasticity matrix for the case of 2D domains and [PERSON] et al. [13] expanded this formulation for cases of 3D domains, computing the homogenized elasticity tensor. Based on the theory of homogenization and utilizing the \(top88\) MATLAB code [PERSON] and [PERSON] published a code for the design of materials using the theory of topology optimization and energy-based homogenization. [PERSON] et al. later published two codes [14] that perform a concurrent topology optimization formulation, i.e., optimization was performed both on the micro and macro scales. These codes also rely on the \(top88\) MATLAB code and are utilizing the energy-based homogenization method. Aiming to improve the computational efficiency for both 2D and 3D formulations of the topology optimization, [PERSON] et al., in Refs. [15; 16], published a MATLAB implementation of the multigrid preconditioned conjugate gradient (MGCG) applied onto a topology optimization. In addition, [PERSON] and [PERSON] recently published [17] a MATLAB implementation for the material design utilizing the theory of homogenization using its asymptotic approach and combining the computational efficiency of model order reduction (MOR) techniques for the case of 2D design domains. In this work, an extension of the recently published [17] work of the authors to 3D domains is presented, adding new features for efficient implementations of the MOR techniques, which are capable of being applied on both macro and micro scales. The layout of this study is composed of four sections, as well as _Introduction_ and _Conclusions_ sections. In further detail, the theoretical framework of material design using topology optimization and homogenization can be found in Section 2.