## 3 Architecture Design and Implementation Workflow of the ABAQUS-MATLAB Cooperative Framework  
### Hierarchical Architecture Design of the Cooperative Framework  
The ABAQUS-MATLAB collaborative framework proposed in this study achieves organic integration of algorithmic efficiency and industrial-grade engineering capabilities through deep integration and complementary advantages of toolchains. The software version information used in this study is as follows: ABAQUS (Version 2024, Dassault Systemes, France) and MATLAB (Version R2024a, The MathWorks, Inc., Natick, MA, USA). MATLAB leverages its high-efficiency matrix computation strengths to focus on matrix-intensive calculations in the BESO algorithm (sensitivity analysis, density filtering, and variable updates). However, constructing complex 2D or 3D models in MATLAB remains highly cumbersome. In contrast, ABAQUS utilizes its user-friendly graphical user interface (GUI) to rapidly accomplish complex modeling, analysis configuration, and post-processing tasks, while offering robust finite element solving capabilities, versatility for complex engineering problems, and large-scale computational efficiency, supporting distributed parallel computing (MPI) and GPU acceleration. In the MATLAB-based BESO optimization workflow, critical tasks--including design domain establishment, meshing, finite element computations, and topology visualization--are executed by ABAQUS. The collaborative framework is illustrated in Figure 1. ABAQUS reads updated design variables from MATLAB to refine the topological structure, while MATLAB retrieves structural responses from ABAQUS's finite element computations to update design variables. This iterative data exchange drives continuous updates until convergence is achieved, completing the topology optimization process.  
The implementation workflow of the framework is illustrated in Figure 2. Prior to initiating the program, a.cae model file must be preconfigured in ABAQUS via its GUI. This file encompasses the part's geometric model, material properties, meshing details, boundary conditions, and load definitions.  
The workflow commences under MATLAB control. Upon task initiation, MATLAB first generates element IDs paired with their corresponding initial design variables (e.g., all set to 1 for BESO initialization) and stores these in a data file (e.g., xlsx or.txt). Subsequently, MATLAB invokes ABAQUS via the operating system, launching Abaqus CAE to execute a pre-written Python script. The script employs the openMdb function to access the.cae file, extracts part information, and retrieves element/node data. It then reads the design variables from the data file, groups elements based on their density values (design variables), assigns material properties accordingly, and submits the finite element analysis (FEA) job to the ABAQUS solver.  
Figure 1: A schematic of the ABAQUS–MATLAB collaborative framework.  
Upon solver completion, the script accesses the. odb results file to extract element output variables (e.g., element strain energy) from the final analysis step (Step 1). A new data file is created to record element IDs and their corresponding output results. MATLAB resumes control, reads the output data, and executes the BESO optimization steps: sensitivity computation, sensitivity filtering, design variable updates, and convergence evaluation. If convergence is unmet, updated design variables are written to the data file, completing one iteration cycle. This loop repeats until the convergence criteria are satisfied.  
By leveraging ABAQUS Scripting Interface (ASI), this framework directly manipulates CAE model databases (.cae files) and result databases (.odb files) to enable automated model parameter updates and data exchange, thereby driving the FEA process. The MATLAB-based BESO component follows the core methodology established by [PERSON] and [PERSON] [12].