Bohrer, Rubens
Kim, Il Yong https://orcid.org/0000-0003-3386-8626
Article History
Received: 24 September 2020
Revised: 1 April 2021
Accepted: 27 April 2021
First Online: 20 May 2021
Declarations
:
: The authors declare that they have no conflict of interest.
: ! Below is a pseudo code used to solve the numerical case studies in this paperPROGRAM MAIN! This function imports all user parametersCALL SUBROUTINE IMPORT_USER_PARAMETERS! Initialize design variables and optimization parametersCALL SUBROUTINE INITIALIZE! Main optimization loopDO I = 1, MAXITER! Start Optimization CPU timeCALL CPU_TIME( START )! Update material properties! uses SIMP equation to define the interpolated material tensorCALL SUBROUTINE UPDATE_MATERIAL_PROPERTIES! Run FEACALL SUBROUTINE RUN_FEA! Compute Objective Function and its SensitivitiesCALL SUBROUTINE OBJECTIVE_FUNCTION_SENSITIVITIES! Checkboard filterCALL SUBROUTINE CHECKBOARD_FILTER! Compute Constraint and SensitivitiesCALL SUBROUTINE CONSTRAINT_FUNCTION_SENSITIVITIES! MMA design variable updateCALL SUBROUTINE MMA_DESIGN_VARIABLE_UPDATE! Write results to ASCII files for usersCALL SUBROUTINE WRITE_RESULTS! Set design variables the updated value from MMACALL SUBROUTINE SET_DESIGN_VARIABLES! Check for convergenceCALL SUBROUTINE CONVERGENCE_CHECK! Exit if convergence is metIF(CONVERGENCE_TOLERANCE <= USERDEFINEDVALUE) EXIT! Finish Optimization CPU timeCALL CPU_TIME( FINISH )ENDDOEND PROGRAM MAIN