## 2 Introduction to Performative Structural Design Optimization Method
### Finite Element Analysis  
In order to proceed with the FEA, starting from the retrieved model, it is necessary to specify the material and the cross-section dimensions. The _MeshttoShell_ component allows for the retrieval of a shell model from given meshes as input and, at the same time, to define the cross-section of shell elements through the _CrossSection_ component and the material by the _MatSelect_ component. The cross-section is given by a _ShellConstant_, which allows setting the shell height and material with a constant cross-section. The selected material is concrete belonging to C45/55 class.  
Since a more considerable thickness of the cross-section leads to a greater strength of the structural element, the problem concerning the cross-section is more controversial. Although the shape represents the main feature in the optimization problem (from both aesthetic and structural points of view), tensile stresses are herein minimized, so excluding the minimization of bending moments that would imply fewer thicknesses and costs. Moreover, in order to guarantee a concrete area able to accommodate the minimum reinforcement, a minimum thickness equal to 35 mm is introduced for the cross-section.  
Constraints and loads represent the last two FEM input data.  
As to constraints, at the two extremities of the beam, the points below are assumed clamped--considering them connected to the foundations--while a hinged roller constraint  
Figure 14: Joined geometry: (**a**) \(h_{m^{\prime}}=0\); (**b**) \(h_{m^{\prime}}>0\).  
Figure 13: Boolean test in visual script to create additional voids if \(h_{m^{\prime}}\) is larger than 4 m (Equation (14)).  
is imposed on the points above, thus accounting for all possible longitudinal translations due to rheological and thermal effects (Figure 15).  
Due to the nature of the problem, in this preliminary study, the structure is subject just to its self-weight by adopting the _Load_ command (Gravity).  
Thus, after performing a linear static analysis of the FEM, the _AssembleModel_ and _Analyse_ components allow us to extract the values related to the mass and the displacements of the model. Furthermore, two different solutions are evaluated: the solid beam and the voided case with \(h_{m^{\prime}}\in[0,0]\).  
Similarly, the shell principal stresses, described as _Sig1-Val_ and _Sig2-Val_, can be obtained from the _ShellVecResults_ components. The results are summarized in Table 1 and Figure 16.  
According to the Mohr circle model, the highest tensile stress _Sig1-Val_ results equal to about 1.43 kN/cm\({}^{2}\), while compressive stresses reach a maximum value equal to \(-1.92\) kN/cm\({}^{2}\) (Figure 16).  
\begin{table}
\begin{tabular}{c c c c c} \hline \hline \multirow{2}{*}{**Test Case**} & **Displacement** & **Mass** & **Sig1-Val** & **Sig2-Val** \\  & **(cm)** & **(Kg)** & **[Tensile Stress]** & **[Compressive Stress]** \\  & & & **(kN/cm\({}^{2}\))** & **(kN/cm\({}^{2}\))** \\ \hline Solid beam & 0.33 & 437,500 & 0 to 1.119294 & \(-1.033997\) to 0 \\ \hline \(h_{m^{\prime}}\in\ [0,\ 0]\) & 1.13 & 191,044 & 0 to 1.429453 & \(-1.922351\) to 0 \\ \hline \hline \end{tabular}
\end{table}
Table 1: FEA Results.  
Figure 16: Sig1-Val and Sig2-Val path.  
Figure 15: Supports implementation in visual scripting.  
By disassembling the structural model, it is possible to retrieve the complete list of the mechanical characteristics of all the shell elements. So, after associating different colors to each element depending on the tension sign, a visual graph distribution of tensile and compressive stresses can be obtained in Rhinoceros 3D ambient (Figure 17). Figure 17 also provides an enlargement of the FEM mesh, showing its resolution, set to 0.150 m.