1 Introduction

The ground structure method (Dorn et al. 1964), is a discrete element topology optimization approach that can address relatively large problems on standard computers. Using a reduced (finite) number of discrete elements, the method can provide an approximation to the optimal Michell structure (Michell 1904; Hemp 1973), composed of an infinite number of members. The limited computational capability and lack of flexibility in current methods are to blame for the decreased interest in three–dimensional topology optimization. The problem of finding the least–weight (least volume) truss for a single load case, under elastic and linear conditions, subjected to stress constraints can be posed as a linear programming problem (Ohsaki 2010), and is the base of the method’s efficiency. The ground structure method tackles the topology optimization problem (sizing and geometry), as a sizing–only optimization problem for a highly interconnected and redundant truss, i.e. the ground structure.

The authors’ previous work (Zegard and Paulino 2014) in 2D, generates the ground structure using linear algebra operations. Members generated in concave regions or holes are detected and removed using collision tests, in an approach derived from the video–game and ray–tracing literature. In the present work, it will be shown that this approach can successfully scale to three–dimensional space, provided that the 3D analogues to the two–dimensional collision tests are developed. The algorithms are described in detail, and a MATLAB implementation of the method is provided, which is also used to provide examples and show the capabilities and limitations of the proposed method. Before addressing problems for which the solution is not known, the proposed method is verified against known solutions available in the literature.

Three–dimensional ground structure analysis has been successfully performed in the past (Gerdes 1994; Smith 1998; Gilbert et al. 2005; Tyas et al. 2006). Unfortunately, most of these works are restricted to structured and orthogonal discretizations. The interest in unstructured non–orthogonal domains is reasonable considering that applied engineering problems are often not boxes and may include geometrical constraints such as holes. The method does require the domain to be discretized, and as a consequence, the boundary is represented in a piecewise linear fashion.

Michell (1904) derived closed–form optimal structures for a variety of two–dimensional problems, with a single three–dimensional problem: The optimal structure to transfer a moment pair distributed over small circumferences with no constraint on the domain size (Fig. 1a). Michell’s derivations did not include details, and the solution was later re–derived by Hemp (1973) and Lewiński (2004). The optimal solution resembles a hollow ball with curved mutually–orthogonal members on its surface as shown in Fig. 1b. The proposed method’s capability to address unstructured non–orthogonal domains offers a reasonable numerical approximation to the analytical closed–form solution. The result obtained with the proposed algorithm is shown in Fig. 1c for comparison.

Fig. 1
figure 1

Optimal structure to transfer a moment pair. a Domain and loads: The moments are distributed on equal rings at a latitude ϕ F . b Analytical closed–form solution adapted from Michell (1904). c Numerical approximation obtained with GRAND3

The limitations and assumptions of the present implementation are:

  • single static load case scenario;

  • constant forces (design independent);

  • small deformations.

It can, however, address different limits in tension σ T and compression σ C (Sokół 2011).

Throughout this manuscript, the terms truss member and bar are used interchangeably. The manuscript is organized as follows: Section 2 briefly reviews the formulation used and its extension to three–dimensions. Section 3 provides details on the implementation of the method. The method and its implementation are verified against closed–form solutions in Section 4. Selected examples and their convergence are analyzed in Section 5. Conclusions and findings are summarized in Section 6. Appendix A has the nomenclature and symbols used in the manuscript. Finally, the derivations for the three–dimensional collision tests are given in Appendix B.

2 Formulations

This section briefly reviews the ground structure formulation based on plastic analysis. The reader can refer to Hemp (1973), Ohsaki (2010), Christensen and Klarbring (2009), and Gilbert and Tyas (2003) for additional details on the plastic and elastic versions of the method.

Consider a stable truss (no mechanisms), with N d o f nodal forces f (excluding the components with supports), and assume that the supports are sufficient to prevent rigid body motions. The minimum volume truss that satisfies the force equilibrium equations (plastic analysis) is (Hemp 1973; Ohsaki 2010):

$$ \begin{array}{rl} \min\limits_{\mathbf{a}} & V=\mathbf{l}^{T}\mathbf{a}\\ \mathrm{s.t.} & \mathbf{B}^{T}\mathbf{n}=\mathbf{f}\\ {~} & -\sigma_{C} a_{i} \leq n_{i} \leq \sigma_{T} a_{i} \quad i=1,2 {\dots} N_{b}~, \end{array} $$
(1)

with V the truss’ volume, a i , l i and σ i the cross–sectional area, length and stress of the ith truss member (for all N b members in the truss). The matrix B T is the nodal equilibrium matrix of size N d o f ×N b , built from the directional cosines of the members, and n is a vector with the internal (axial) force for all members in the ground structure. Theoretically, a member is absent (removed) from the truss if a i =0. The redundancy of the ground structure is N b N d o f and should be greater than zero to provide multiple layout options. This formulation, based on plastic analysis, only enforces force equilibrium, i.e. the compatibility or stress-strain relations are not included (Kirsch 1993).

The stress constraint, either in tension or compression, must be active for all members at the optimum. This can be proven intuitively: if the ith member has n i <σ T a i and n i >−σ C a i , then a i can be reduced (reducing the total volume) without violating the constraints. Incorporating slack variables s + and s in the stress constraints (Hemp 1973; Achtziger 2007), the inequalities can be converted into equalities, and the optimization problem in (1) becomes a linear programming problem as:

$$ \begin{array}{rl} \min\limits_{\mathbf{s}^{+},\mathbf{s}^{-}} & V=\mathbf{l}^{T}\left( \frac{\mathbf{s}^{+}}{\sigma_{T}} + \frac{\mathbf{s}^{-}}{\sigma_{C}} \right) \\[+7pt] \mathrm{s.t.} & \mathbf{B}^{T}\left( \mathbf{s}^{+} - \mathbf{s}^{-} \right)=\mathbf{f} \\ {~} & s_{i}^{+},s_{i}^{-} \geq 0 \:, \end{array} $$
(2)

with \(a_{i} = s_{i}^{+} / \sigma _{T} + s_{i}^{-} / \sigma _{C}\) and \(n_{i} = s_{i}^{+} - s_{i}^{-}\). Note that for any active member, only one of \(s_{i}^{+}\) and \(s_{i}^{-}\) is non–zero. The member is in tension if \(s_{i}^{+} > 0\), and in compression if \(s_{i}^{-} > 0\). If the truss structure is stable and has no repeated or overlapping members, then the rank of matrix B T is N d o f (i.e. the solution lies on a corner of the feasible domain). The solution of the linear program in (2) yields at most N d o f non–zero basic variables, with the remainder non–basic variables absent from the optimal structure (i.e. a i =0). Therefore, the optimal truss is statically determinate and the solution is also globally optimal (Sved 1954; Kicher 1966): The optimal solution will automatically satisfy the kinematic compatibility and stress–strain relations (Dorn et al. 1964; Hemp 1973).

Defining the stress limits ratio as κ=σ T /σ C and using matrix notation, (2) can be rewritten as:

$$\begin{array}{@{}rcl@{}} \underset{\mathbf{s}^{+},\mathbf{s}^{-}}{\min} && V^{\star} = \frac{V}{\sigma_{T}} = \underset{1 \times 2N_{b}}{\left\{\mathbf{l}^{T} \kappa \, \mathbf{l}^{T}\right\}} {\begin{array}{c}\left\{\begin{array}{c} \mathbf{s^{+}} \\ \mathbf{s^{-}} \end{array} \right\}\\2N_{b} \times 1 \end{array}}\\ \mathrm{s.t.} && {\begin{array}{c} \left[\mathbf{B}^{T} -\mathbf{B}^{T}\right]\\ N_{dof} \times 2N_{b} \end{array} } {\begin{array}{c} \left\{ \begin{array}{c} \mathbf{s^{+}} \\ \mathbf{s^{-}} \end{array} \right\}\\2N_{b} \times 1 \end{array} }= \underset{N_{dof} \times 1}{\mathbf{f}}\\ {~} && s_{i}^{+},s_{i}^{-} \geq 0 \end{array} $$
(3)

The number of degrees–of–freedom (DOFs) is N d o f =3N n N s u p , with N n the number of nodes in the ground structure and N s u p the number of fixed (supported) degrees of freedom. The optimal volume V is calculated for σ T =1, and should be scaled by 1/σ T for values other than unity. Equation (3) highlights the sizes of the variables involved. By introducing slack variables, the number of design variables in (3) is doubled compared to the number of design variables in (1). However, while (1) is a nonlinear program, (3) is a linear program and can be solved more efficiently using the interior-point algorithm (Karmarkar 1984; Wright 2004). Problems with solutions that lie on a facet (or edge) of the feasible domain are called degenerate, and tend to be computationally more difficult to solve.

3 Implementation

The implementation is an extension of the two–dimensional GRAND (Zegard and Paulino 2014). The concepts and algorithms from the previous two–dimensional implementation are directly extended with a few exceptions that are detailed here.

3.1 Domain definition — Base mesh

The ground structure generation algorithm requires a base mesh from where to generate the nodal connectivity matrix. No edge, facet or volume information is needed from this base mesh—it is strictly used to obtain nodal connectivity information. The ground structure generation process begins by connecting all nodes within an element: this is referred as level 1 connectivity. Take the 2 element mesh in Fig. 2a for example (a hexahedron and a wedge element); the ground structure with a level 1 connectivity will generate bars between all the nodes belonging to an element, as shown in Fig. 2b. These nodes are direct neighbors of each other based on the element connectivity provided by the mesh. At level 2, the proposed method will generate bars up to the neighbors or my neighbors, therefore including level 1 bars. The (new) bars at level 2, will traverse 2 elements in the base mesh as shown in Fig. 2c. The generated ground structure will become more redundant and dense with each connectivity level. The method can use any base mesh provided that it is built from convex polytopes; this because at level 1, all nodes within an element are connected regardless. While the elements in the base mesh need to be convex, the mesh itself does not. This and other details on the ground structure generation are addressed in Section 3.2.

Fig. 2
figure 2

Ground structure generation algorithm based on element connectivities. Base mesh composed of a single hexahedron and a wedge. b Ground structure for level 1 connectivity: all nodes within an element are interconnected with bars. c Ground structure for level 2 connectivity: the new bars added at level 2 are plotted with solid lines

The fact that no edge or facet information is provided can prove to be challenging for plotting routines if complicated convex polytopes are given. In addition, the maturity of 3D polytope meshing algorithms (Barber et al. 1996; Herceg et al. 2013; Rycroft 2014) is lagging behind that of more traditional meshing algorithms based on standard elements (hedrahedra, tetrahedra, wedges, etc). Therefore, while the algorithm for ground structure generation and analysis can address any element type in the base mesh, for practical purposes, the current implementation is limited to 7 simple elements: 4 volumetric and 3 surface elements (the segment, although not flat, is grouped with surface elements). The 7 elements supported in the current implementation are illustrated in Fig. 3.

Fig. 3
figure 3

Elements supported by GRAND3 and their corresponding node numbering scheme. a Volumetric elements: Hexahedron (8-nodes), Prism (6-nodes), Pyramid (5-nodes) and Tetrahedron (4-nodes). b Surface elements: Quadrangle (4-nodes), Triangle (3-nodes) and Segment (2-nodes)

These elements have a unique topology (facets and edges), provided that they are numbered properly. The surface elements are not two–dimensional, but three–dimensional entities that can be used to define shells, domes and membranes for example. The segment element is special: it can be used to fine–tune the nodal connectivity matrix by allowing two non–neighboring nodes to share level 1 connectivity.

The input specification for the base mesh, supports and loads for the provided implementation, is detailed in Table 1. The ELEM variable is a structure (or struct) with fields V and S for volumetric and surface elements respectively. The analysis can comprise volumetric, surface or a combination of elements in the base mesh. In other words, at least one field in ELEM must be defined (V or S). The total number of volumetric and surface elements are N v e and N s e respectively. Therefore, the total number of elements in the base mesh is N e =N v e +N s e .

Table 1 Domain definition (base mesh) input requirements for GRAND; the provided implementation of the method

3.2 Ground structure generation

The ground structure generation follows the procedure outlined in the two–dimensional implementation (Zegard and Paulino 2014). The connectivity level parameter (L v l) indirectly controls the level of redundancy, or inter–connectedness, of the initial ground structure (refer to Fig. 2). Two nodes are considered neighbors and share level 1 connectivity if they belong to the same element in the base mesh. From this idea of neighbors, the connectivity level can be explained as follows:

  • Level 1 connectivity will generate members between all neighboring nodes.

  • Level 2 connectivity will generate members up to the neighbors of the neighbors.

  • Level 3 connectivity will generate members up to the neighbors of the neighbors of the neighbors.

This process scales rapidly and only decelerates when the member generation is reaching full connectivity throughout the domain. The nodal connectivity matrix for level 1, A 1, is built from the base mesh and is defined as follows:

$$ \left[\mathbf{A}_{1}\right]_{p,q} = \left\{ \begin{array}{lll} 1 \text{ or} & \verb+true+ & \text{ if nodes }p,q \text{ share an element }\\ 0 \text{ or } & \verb+false+ & \text{ otherwise or if }p=q \end{array} \right.\!\! \:, $$
(4)

resulting in a symmetric A 1, i.e. bi–directional.

The second level connectivity can be obtained as \(\mathbf {A}_{2}=\mathbf {A}_{1}\mathbf {A}_{1}=\left [ {\mathbf {A}_{1}^{2}} \right ]\). However, some entries may well be >1 and have values other than zero in the diagonal. Therefore, the nodal connectivity matrix for levels n>1 is then:

$$ \left[\mathbf{A}_{n}\right]_{p,q} = \left\{ \begin{array}{lll} 0 \text{ or} & \verb+false+ & \text{ if } \left[\mathbf{A}_{1}^{n}\right]_{p,q}=0\text{ or if }p=q\\ 1 \text{ or} & \verb+false+ & \text{ if }\left[\mathbf{A}_{1}^{n}\right]_{p,q}>0\text{ and }p \neq q \end{array} \right. $$
(5)

The new bars for level n can be obtained as:

$$ \mathbf{G}_{n}=\mathbf{A}_{n}-\mathbf{A}_{n-1} \:, $$
(6)

where G n has non–zero entries for the bars generated at level n (note that G 1=A 1). The new bars obtained from G n are considered candidate bars: they still need to pass the collinearity and restriction zone checks (Sections 3.3 and 3.4 respectively) to be included in the final ground structure.

The number of bars, and therefore the number of variables in the optimization problem, grow rapidly with an increase of the connectivity level. In general, it is not recommended to use high values for the connectivity level; i.e. connect nodes that are far away from each other. The analytical closed–form solutions are typically composed of curved members (Michell 1904; Lewiński 2004). The method can better approximate these curved–member solutions with many short bars in a piecewise fashion, as opposed to the long members that result from a high connectivity level.

3.3 Collinearity check

The collinearity (or overlapping) member check assumes the following:

  1. 1.

    New bars added at level n are deleted if found collinear with bars from previous levels.

  2. 2.

    New bars added at level n are assumed not to be collinear between them. They are only checked for collinearity against previously generated bars (not to each other).

In general, new bars are longer than those generated at lower connectivity levels, thus justifying the decision to eliminate the newly generated bar as opposed to the previously accepted one. The second assumption may be violated if the base mesh has elements that are not strictly convex, although most meshing algorithms will generate meshes with strictly convex elements. More uncommonly, as the ground structure for higher levels is generated, the algorithm expansion may reach two collinear nodes at a single step: this unlikely situation may occur in domains that curl or spiral around themselves and is generally not a concern within the scope of this work.

The length of a member spanning between nodes p and q with coordinates \(\left \{x_p,y_p,z_p\right \}\) and \(\left \{x_q,y_q,z_q\right \}\) is defined as:

$$ L_{p,q} = \sqrt{ (x_q-x_p)^2 + (y_q-y_p)^2 + (z_q-z_p)^2 } $$
(7)

The directional cosines vector for the bar between nodes p and q is \(\boldsymbol {\hat {\mathrm {d}}}_{p,q}\):

$$ \boldsymbol{\hat{\mathrm{d}}}_{p,q} = \frac{\left\{ x_q-x_p , y_q-y_p , z_q-z_p \right\}}{L_{p,q}} $$
(8)

Note that the bar length and directional cosines are also used in the formulation of the ground structure optimization problem (3).

Once G n is obtained, the new (candidate) bars must be checked not to be collinear with members already in the ground structure. A candidate bar \(\overline {pq}\) is rejected due to collinearity if it has a small–enough angle with a previously accepted bar in the ground structure. The angle between bars is checked using the dot product of the directional cosinesFootnote 1:

$$ \left\{\begin{array}{ll} \text{accept bar }\overline{pq}\text{ if} & \quad\hat{\mathbf{d}}_{p,q} \cdot \hat{\mathbf{d}}_{p,i} < ColTol \quad \forall \, i \\ \text{reject bar }\overline{pq} & \quad\text{otherwise} \end{array} \right. $$
(9)

The user–defined \(ColTol \lesssim 1\) controls the admissible collinearity between members: the minimum angle between generated bars is \(\alpha \geq \text {acos}\left (ColTol\right )\). Additional details (with examples) on the collinearity check can be found in Zegard and Paulino (2014).

3.4 Restriction zones

Analogous to the two–dimensional implementation of the method, the restriction zone idea is inspired by known collision detection algorithms used in video–games and in computational geometry (Ericson 2004).

The domain may have concave regions or holes that no bar should intersect. To prevent the ground structure generation algorithm from laying out members in these regions, the user defines restriction zones (i.e. hitboxes): geometric entities that no bar should intersect. The current implementation of GRAND3 provides the following restriction primitives:

  • box

  • cylinder

  • disc

  • quadrangle (flat)

  • rod (finite cylinder)

  • sphere

  • triangle (flat)

  • surfaceFootnote 2

These primitives can be combined to create complicated regions or boundaries, and the user can easily implement new collision primitives in GRAND3. The derivation and details on these primitives are given in Appendix B.

Nodes in the base mesh must not intersect the restriction zones nor its boundary. If this happens, then all bars originating from such node will be flagged for removal during the restriction zone check. Thus, a small reduction in size of the restriction primitives is advised. This setback (or margin) is in the form of a small tolerance tol as shown in Fig. 4. The setback distance tol is defined by the user when defining the restriction zones, and should be relative to the scale of the problem.

Fig. 4
figure 4

Restriction zone setback: this user–defined setback is a margin of comparatively small size tol in order to ensure that the domain’s nodes remain outside the restriction zones. a Example of the restriction zone for a domain with a circular concavity. The concavity radius is R, however the actual restriction zone applied is Rt o l. b Detail of the restriction zone setback: the nodes on the domain’s concave boundary (shown in the Figure) must remain clear of the restriction primitive

The ground structure generation, after the collinearity and restriction zone checks, returns a list of (accepted) bars (or members). This process operates over symmetric (or bi–directional) matrices. However, to prevent duplicate members, only bars \(\overline {pq}\) with p<q are reported.

4 Verification

The following examples aim to verify GRAND3 by approximating optimal closed–form solutions. Members with cross–sectional area \(a_{i} < \left (\mathit {Cutoff}\,\right ) \max \left (\mathbf {a}\right )\) are not plotted. Unless otherwise stated, the stress limit ratio is κ=1.0 with σ T =1, the collinear tolerance is C o l T o l=0.999999 and the plotting cutoff is C u t o ff=0.005.

4.1 Torsion cylinder

A cylindrical domain of radius r and height H is subjected to an end moment distributed over the outer ring of the upper end cap (Fig. 5a). The domain is fully supported on the bottom end cap. This problem is of interest since the analytical volume for the theoretical optimal structure can be derived. A moment pair causes a pure–shear condition on the cylinder surface. Therefore, the principal stress lines are oriented at ±π/4. The members in the optimal solution must follow the lines of principal stresses (Michell 1904; Hencky 1923; Hemp 1973). A single fiber following a principal stress line has a length \(l_{f} = \sqrt {2} H\). The force in the fiber due to the moment pair is \(n_{f} = \sqrt {2} M / 4 \pi r^{2}\) for tension, and −n f for compression. Finally, the volume of the optimal cylinder in torsion is:

$$\begin{array}{@{}rcl@{}} V_{opt} &= &\left[ \frac{ \left( n_{f}\right) \left( l_{f}\right) }{\sigma_{T}} - \frac{ \left( -n_{f}\right) \left( l_{f}\right) }{\sigma_{C}} \right] \left( 2\pi r\right) \\ {~} &=& \left( \frac{\sqrt{2}M}{4 \pi r^{2}}\right) \left( \sqrt{2}H\right) \left[ \frac{1}{\sigma_{T}} + \frac{1}{\sigma_{C}} \right] \left( 2\pi r\right)\\ {~} &= &\frac{MH}{r} \left[ \frac{1}{\sigma_{T}} + \frac{1}{\sigma_{C}} \right] \end{array} $$
(10)
Fig. 5
figure 5

Torsion cylinder problem. a Domain definition, loading and supports. b Sample mesh for H=11, r=3 discretized with N z =11, N r =6 and N 𝜃 =18. c Axisymmetric plot of the sample mesh with H=11, r=3, N z =11 and N r =6. d Solution obtained for N b =152,795, generated from a cylindrical domain with N e =1,188, N n =1,308 and L v l=3

Using cylindrical coordinates, the model is discretized in N z ×N r ×N 𝜃 elements corresponding to the z, r and 𝜃 coordinate axes respectively. The problem is analyzed for the specific case where H=11, r=3 and M=5. A sample mesh discretized with \(\left \{ N_{z} , N_{r} , N_{\theta } \right \} = \left \{ 12 ,6 ,16 \right \}\) is shown in Fig. 5b. An axisymmetrical plot of this mesh is given in Fig. 5c. One of the solutions obtained with the proposed method is plotted in Fig. 5d as an example. The convergence of the ground structure method with refinement of the base mesh is given in Table 2 and Fig. 6. There is a convergence towards the optimal volume V o p t =36.6667.

Fig. 6
figure 6

Convergence for the cylinder problem with base mesh refinement

Table 2 Convergence for a cylinder under torsion with M=5, H=11 and r=3

4.2 Torsion cone

A capped cone domain of height H=10 with lower and upper radius r L =7 and r U =2 respectively, is subjected to an end moment M=3 distributed over the outer ring at the upper end cap (Fig. 7a). The analytical solution for this problem was derived by Lewiński (2004), by constraining the solution to exist in the cone’s surface:

$$ V_{opt} = M \frac{ \sqrt{H^{2} + \left( r_{L} - r_{U} \right)^{2} } }{r_{L} - r_{U}} \log \left( \frac{r_{L}}{r_{U}} \right) \left[ \frac{1}{\sigma_{T}} + \frac{1}{\sigma_{C}} \right] \:, $$
(11)

that for the specific geometry and loads being considered results in V o p t =16.8076.

Fig. 7
figure 7

Torsion cone problem. a Domain definition, loading and supports. b Sample mesh for H=10, r L =7 and r U =2 discretized with N z =9, N r =5, N 𝜃 =20 and λ=0.870058. c Axisymmetric plot of the sample mesh with H=10, r L =7, r U =2, N z =9, N r =5 and λ=0.870058. d Solution obtained for N b =115,789, generated using a discretization in cylindrical coordinates with N e =900, N n =1,010 and L v l=3

Using cylindrical coordinates, the model is discretized in N z ×N r ×N 𝜃 elements corresponding to the z, r and 𝜃 coordinate axes respectively. An axisymmetrical plot of this mesh is given in Fig. 7c. In an effort to preserve the aspect ratio of the elements in the mesh, the spacing in the z direction is such that Δh i+1h i =λ, with λ being constant. A sample mesh discretized with \(\left \{ N_{z} , N_{r} , N_{\theta } \right \} = \left \{ 9 , 5 , 20 \right \}\) and λ=0.87006 is shown in Fig. 7b. One of the solutions obtained with the proposed method is plotted in Fig. 7d as an example. The convergence of the ground structure method with refinement of the base mesh is given in Table 3 and Fig. 8. The increasingly refined solutions converge smoothly toward the optimum, with a relatively small oscillation appearing when the number of bars is N b >400,000. The reason behind this oscillation being that the node positions do not precisely match the locations dictated by the analytical closed–form solution; i.e. the height is not a multiple of π. The quality of the approximation will therefore depend on the aspect ratio of the elements in the base mesh, as defined by N z , N 𝜃 and λ. However, the overall trend does converge to the analytical optimum as expected.

Fig. 8
figure 8

Convergence for the cone problem with base mesh refinement

Table 3 Convergence for a capped cone under torsion with M=3, H=10, r L =7 and r U =2

4.3 Torsion ball (orthogonal domain)

The optimal structure for transmitting a torsion pair is a ball, provided that the domain is large enough to allow the full solution to develop (Fig. 1b). In contrast, the torsion cylinder (Section 4.1) addresses a similar problem but with a constrained domain. With no previous knowledge of the optimal solution, it is reasonable to use a regular and orthogonal base mesh. The moment (and support) is applied at the four nodes closest to the poles, as shown in Fig. 9a and b.

Fig. 9
figure 9

Torsion ball problem modeled using an orthogonal domain. a Domain definition, loading and supports. b Sample mesh with N=5. c Optimal structure obtained with N=5, L v l=4 and N b =15,980. d Optimal solution obtained with N=13, L v l=4 and N b =475,996

The optimal volume for this problem was obtained by Michell (1904), but a detailed derivation was not given. The solution for the torsion ball was later re–derived (Hemp 1973; Lewiński 2004) and confirmed.Footnote 3 The optimal volume of the torsion ball is:

$$ V_{opt} = 2M \log \left( \tan \left\{ \frac{\pi}{4} + \frac{\phi_{F}}{2} \right\} \right) \left[\frac{1}{\sigma_{T}}+\frac{1}{\sigma_{C}}\right] \:, $$
(12)

where ϕ F is the latitude of the small rings where the moment is applied (Fig. 14a). It should be noted that the optimal volume is independent of the sphere’s radius R. Nonetheless, the domain must be large enough to allow the solution’s sphere with radius R to develop.

The problem domain considered has L=1 and M=1, and is discretized regularly into N×N×N elements. Sample solutions obtained for two different discretizations are shown in Fig. 9c and d. The convergence of the ground structure method for increasingly refined base meshes is given in Table 4 and Fig. 10. Because the problem considers applying the loads and supports at the four nodes closest to the poles, this distance will decrease with refinement, i.e. the angle ϕ F will increase as the element size in the base mesh decreases (Fig. 14c). Thus, the optimal volume V o p t changes with the discretization. For a regular structured–orthogonal cube mesh of dimension L, discretized with N elements in each direction (Fig. 9), the angle ϕ F is:

$$\begin{array}{@{}rcl@{}} dx &= &\frac{L}{N} \\ r_{F} &=& \frac{1}{2}\sqrt{dx^{2}+dx^{2}} = \frac{\sqrt{2}L}{2N} \\ \phi_{F} &=& \text{atan} \left( \frac{L/2}{r_{F}} \right) = \text{atan} \left( \frac{\sqrt{2}N}{2} \right)\\ R &=& \sqrt{\left( \frac{L}{2}\right)^{2} + {r_{F}^{2}}} = \frac{L}{2N} \sqrt{N^{2} + 2} \:, \end{array} $$
(13)

where dx is the dimension of a single hexahedral element in the base mesh, r F is the distance from the pole to the loaded nodes (radius of the moment application ring), and R is the radius of the (optimal) sphere.

Fig. 10
figure 10

Convergence to the optimal solution of increasingly refined regular orthogonal base meshes under torsion. For this problem, increasing the ground structure connectivity level does have much impact on the quality of the solution

Table 4 Convergence for a regular orthogonal domain of side L=1 under torsion with M=1

The poor convergence rate observed with mesh refinement, and even worse with connectivity level, is attributed to a number of reasons:

  • This is a particularly unfavourable scenario for the method: approximating a sphere with a box.

  • The load and supports are applied at four discrete locations as opposed to continuously throughout the ring.

  • Increasing ϕ F (equivalent to reducing the radius of the ring where the moment is applied), makes the problem more difficult to approximate numerically. Truss elements, cannot equilibrate a moment applied at a single point, and thus as ϕ F π/2 the optimal volume \(V_{opt} \rightarrow \infty \) (refer to (12)).

  • The radius of the (optimal) sphere R (13), exceeds the boundaries of the domainFootnote 4, i.e. 2R>L=1. Thus, the domain does not fully accommodate the optimal analytical solution (refer to the values of R given in Table 4). This situation, however, improves with mesh refinement due to an increase in ϕ F (see Fig. 11a).

  • For this problem in particular, the theoretical optimal solution is comprised solely of curved members. A high connectivity level will generate longer straight members, which do not improve the approximation for this analytical solution. Figure 11b shows the analytical solution viewed from the poles, along with a fictitious discretization illustrating some members at different connectivity levels: lower level members (shorter) have a better chance at approximating the solution.

  • The method is discrete, and therefore sensitive to the shape and level of the discretization.

  • Finite computational precision, inherent nature of a numerical optimizer, and tolerance parameters used.

Fig. 11
figure 11

Sources of poor accuracy and convergence for the torsion ball problem approximated with a regular structured–orthogonal cube mesh of dimension L. a A cube domain is not able to accommodate the optimal solution. The radius of the (optimal) sphere R is larger than half of the domain’s width L/2 (refer to (13)). b Polar view of the analytical closed–form solution for the torsion ball problem. A fictitious regular discretization with some members is shown to highlight the inability of higher level members to approximate the solution

4.4 Torsion ball (orthogonal domain) with constant moment latitude ϕ F

Again using and orthogonal box domain as in the previous example, the error coming from an increase in ϕ F can be eliminated. Starting with a domain discretized as in Fig. 12a, the mesh can be refined while keeping the locations of the loads and supports fixed as shown in Fig. 12b and c. For a level 3 connectivity, the convergence in this case is shown in Table 5 and Fig. 13. While there is an improvement in the results, these are not yet satisfactory: the optimal solution, a sphere, is discretized and approximated by a box, is a naïve initial guess for this problem, but likely to be made with no a priori knowledge of the solution.

Fig. 12
figure 12

Top view of the orthogonal domains used in approximating the torsion ball problem, while maintaining a constant angle ϕ F . a Domain discretized into N=5 elements in each direction. b Domain discretized into N=10 elements in each direction. c Domain discretized into N=15 elements in each direction

Fig. 13
figure 13

Convergence to the optimal solution of increasingly refined regular orthogonal base meshes under torsion, while maintaining the moment application latitude ϕ F constant

Table 5 Convergence for the torsion ball problem in an orthogonal domain, with constant moment application latitude ϕ F

4.5 Torsion ball (spherical domain)

Once knowledge is gained that the solution lies in a close–to–spherical domain, the base mesh can be modified to provide a better approximation. The base mesh in this case is a thick hollow sphere. This is not a shell, for it allows the solution to modify its radii if needed. The load is applied at an intermediate radius r m between the inner and outer radii of the hollow sphere, r i and r o respectively, as shown in Fig. 14a. The domain is represented using spherical coordinates, and is discretized in the 𝜃, ϕ and r directions using N 𝜃 , N ϕ and N r elements respectively. A sample mesh discretized with \(\left \{ N_{\theta } , N_{\phi } , N_{r} \right \} = \left \{ 30 ,14 ,2 \right \}\) is shown in Fig. 14b, with an axisymmetrical plot given in Fig. 14c. The sphere is hollow, and thus a spherical restriction zone with radius r i is used.

Fig. 14
figure 14

Torsion ball problem. a Domain definition, loading and supports. b Sample mesh with r i =2.9, r m =3 and r o =3.1 discretized with N 𝜃 =30, N ϕ =14 and N r =2. c Axisymmetric plot of the sample mesh with π/2−ϕ F =π/10, r i =2.9, r m =3 and r o =3.1 discretized with N ϕ =14 and N r =2

If the domain is discretized with a constant spacing on ϕ, then the angle ϕ F of the applied force is:

$$ \phi_{F} = \frac{\pi}{2} \frac{N_{\phi} - 2}{N_{\phi}} $$
(14)

The optimal volume, given by (12), will increase with refinement on the base mesh due to an increase in ϕ F . Optimal volumes for increasingly refined base meshes with constant spacing in ϕ are given in Table 6.

Table 6 Convergence for a hollow spherical domain with M=7, r i =2.9, r m =3.0 and r o =3.1

In order to fix the latitude of the applied loads ϕ F , the size of the first and last element on the ϕ partition are fixed, and the remaining elements are evenly distributed. Thus making ϕ F constant for all discretizations (Fig. 14c), and consequently V o p t constant regardless of the refinement in the base mesh. Taking π/2−ϕ F =π/10, the analytical optimal volume is V o p t =51.5964. The optimized volumes for increasingly refined base meshes are given in Table 7, with one of these solutions previously shown in Fig. 1c.

Table 7 Convergence for a hollow spherical domain with M=7, r i =2.9, r m =3.0 and r o =3.1

Making ϕ F constant ensures that the refinement is approximating the same boundary value problem, and thus a smooth convergence to the analytical closed–form solution is obtained. If ϕ F is variable, then the method is approximating a different problem with each discretization, and thus convergence is not guaranteed. The torsion ball problem becomes more difficult to approximate numerically if the radius where the moment couple is applied is small (large ϕ F ). Convergence curves for both cases, variable and constant ϕ F , are shown in Fig. 15.

Fig. 15
figure 15

Convergence to the optimal solution of increasingly refined spherical base meshes. The case where ϕ F increases with refinement begins to diverge as ϕ F π/2. The case where ϕ F is constant converges as expected

5 Examples

The following problems were selected to showcase features and issues of the method and its implementation (named GRAND3, and provided as ESM accompanying this publication). Members with cross–sectional area \(a_{i} < \left (\mathit {Cutoff}\,\right ) \max \left (\mathbf {a}\right )\) are not plotted. Unless otherwise stated, the stress limit ratio is κ=1.0 with σ T =1, the collinear tolerance is C o l T o l=0.999999 and the plotting cutoff is C u t o ff=0.005.

5.1 Edge–supported (double) cantilever beam

This problem consists of a three–dimensional box domain, fixed at one end on two (opposite) vertical edges, and loaded at the center of the other end (Fig. 16a). The domain has dimensions L x =3 and L y =L z =1, is loaded with P=1, and is discretized with a regular partition in all three dimensions. Examples for a coarse and a fine base mesh are given in Fig. 16b and c. The optimal volumes obtained from a series of increasingly refined meshes exhibit convergence to a unique value as expected.

Fig. 16
figure 16

Edge–supported double cantilever problem. a Domain with loads, boundary conditions and dimensions. b Base mesh used to generate a coarse ground structure: L x =3, L y =L z =1 and P=1, discretized with N x =6 and N y =N z =2, resulting in N e =24 and N n =63. c Base mesh used to generate a fine ground structure: L x =3, L y =L z =1 and P=1, discretized with N x =30 and N y =N z =10, resulting in N e =3,000 and N n =3,751. d Solution for a coarse base mesh with L v l=2 and N b =962. e Solution for a fine base mesh with L v l=6 and N b =1,474,218

Two sample solutions obtained for the coarse and a fine base meshes are shown in Fig. 16d and e. These results hint that the optimal closed–form solution consists of two flat cantilever beams (as in Lewiński et al. (1994)), meeting at the load application point. With this assumption, a new base mesh is created for the problem: this (improved) base mesh allows for perfectly flat cantilevers to develop if the optimal structure requires it, as shown in Fig. 17a. The optimal structure obtained for this new base mesh can be seen in Fig. 17b, and confirms the flat cantilever hypothesis.

Fig. 17
figure 17

Edge–supported double cantilever problem with improved base mesh discretization. a Base mesh used to generate the ground structure: discretized with N x =5 and N y =N z =10, resulting in N e =1,000 and N n =726. b Solution using the improved base mesh with L v l=6 and N b =137,877. The resulting optimal volume is V=14.2725

The optimal volumes obtained using regular base meshes show convergence to an absolute optimal in the vicinity of V o p t ≈13.93: this value was obtained using the two–dimensional implementation described in Zegard and Paulino (2014). Convergence data and plots are shown in Table 8 and Fig. 18 respectively.

Fig. 18
figure 18

Convergence of the optimal volume for the edge–supported double cantilever problem, for a set of increasingly refined ground structures

Table 8 Convergence for the three–dimensional double cantilever beam with L x =3, L y =L z =1 and P=1, approximated using a regular–orthogonal mesh

5.2 Diamond problem

The diamond problem is a cylindrical domain with a coin–shaped (or disc) discontinuity in the middle. This problem shows the capability of the method to find optimal load paths for problems that include discontinuities, imperfections or barriers in their structure. The domain has a vertical load along it’s z axis, as shown in Fig. 19a. The domain is meshed as in Fig. 19b and c. The ground structure is generated for a L v l=3 connectivity, resulting in N b =109,820. The restriction zone is a disc primitive in the coin–shaped discontinuity. The resulting optimal structure resembles a diamond: the members fan away from the axis to evade the discontinuity. At the point of maximum width, it creates a strong ring with the purpose of shifting the member orientation back into the support as shown in Fig. 19d.

Fig. 19
figure 19

Diamond problem: Vertically loaded cylinder with a coin–shaped discontinuity. a Half–domain with loads, boundary conditions and dimensions. b Base mesh used to generate the ground structure: N z =12, N 𝜃 =16 and N r =5. c Axisymmetric plot of the base mesh with N z =12 and N r =5. d Optimal solution obtained with L v l=3 and N b =109,820

5.3 Cup problem (spider)

This problem consists of an inverted cup–shaped domain, loaded vertically in the interior. Figure 20a shows the half–domain with loads, boundary conditions and dimensions. The domain is discretized using cylindrical coordinates, and the restriction zone is a single rod primitive in the interior of the cup. The resulting mesh is shown in Fig. 20b, with a axisymmetric view given in Fig. 20c. The solution to this problem is shown in Fig. 20d.

Fig. 20
figure 20

Vertically loaded inverted cup problem. a Half–domain with loads, boundary conditions and dimensions. b Base mesh used to generate the ground structure. c Axisymmetric plot of the base mesh. d Optimal structure generated with L v l=3 and N b =168,436, resulting in an optimal volume of V=2.9384. e Detail of the optimal structure

Inspecting the top part of the solution (Fig. 20e), it can be seen that this problem is degenerate; the solution lies on a facet of the feasible domain. This is not an issue of the ground structure method, but rather a characteristic of the problem: it does not have a unique solution (Rozvany 1997). This situation can be better understood with a simple 3 force problem (Mazurek et al. 2011): the optimal structure to carry 3 radial forces evenly distributed on a circle of radius R is not unique, as shown in Fig. 21. For the topology in Fig. 21a, the force in each member is N i =P, and the length of the members is L i =R. Thus, the optimal volume is:

$$V_{opt1} = 3\left( \frac{P}{\sigma_{T}}\right)\left( R\right) = 3 \frac{PR}{\sigma_{T}} $$

Repeating the analysis for the topology in Fig. 21b, the force in each member is \(N_{i}=P/\sqrt {3}\), and the member’s length is \(L_{i}=\sqrt {3}R\). Thus, the optimal volume is:

$$V_{opt2} = 3\left( \frac{P/\sqrt{3}}{\sigma_{T}}\right)\left( \sqrt{3}R\right) = 3 \frac{PR}{\sigma_{T}} $$

In fact, any combination of the previous two cases, as in Fig. 21c and d for example, will result in the same optimal volume. In practice, when facing an optimal structure with a degenerate solution like in Fig. 20d, the engineer can decide the final topology. Figure 22a and b are examples of possible optimal topologies for the problem in Fig. 20e.

Fig. 21
figure 21

Structural optimization problem with a non–unique (degenerate) solution: a, b, c and d are all optimal topologies

Fig. 22
figure 22

Options of topologies for a degenerate problem: a Spoke and hub option. b Slab option

5.4 Crane problem

The crane (or tower) problem was introduced by Smith (1998), in whose work the domain had to be partitioned into regions in a specialized CAD system. A three–dimensional ground structure was then generated within these regions.

The approach presented here, requires no subdivision of the domain, but does require the definition of restriction zones. Domains are often procedurally generated using geometric primitives. Because the restriction zone is typically a subset of the primitives used to construct the domain, the additional work required is comparatively small.

The domain in Fig. 23a is discretized with two different degrees of refinement as in Fig. 23b and c. The restriction zone is the union of two boxes under both of the tower’s arms. The optimized ground structures for each case are shown in Fig. 23d and e. This example showcases the capability of the method (and implementation) to provide solutions with different levels of detail. Highly detailed solutions provide information into the optimal load transfer mechanism, while coarse solutions are more likely to be developed into real structures.

Fig. 23
figure 23

Crane problem: Tower with arms loaded at four points. a Domain with loads, boundary conditions and dimensions. b Base mesh used to generate a coarse ground structure: N e =10 and N n =38. c Base mesh used to generate a fine ground structure: N e =768 and N n =935. d Solution for the coarse base mesh: L v l=3 and N b =315. e Solution for the fine base mesh: L v l=3 and N b =47,076; the plotting cutoff is C u t o f f=0.002 to prevent members from ending mid–air

5.5 Lotte tower (Seoul, South Korea)

The Lotte tower is a shell–like domain (no thickness) that is square at the base and circular at the top. This problem was inspired by the design competition of the same name by Skidmore, Owings & Merill LLP (Fig. 24a), and has been previously optimized using a density–based optimization approach by Stromberg et al. (2010). In the present example, the domain is optimized for two loading scenarios: lateral load at the tip acting at 4 points (Fig. 24b), and a torsional load distributed over the top circumference (Fig. 24c).

Fig. 24
figure 24

Lotte tower problem: a Rendering of the Lotte tower [Ⓒ Skidmore, Owings & Merrill LLP]. b Domain definition, loading and boundary conditions for the laterally loaded tower. c Domain definition, loading and boundary conditions for the torsionally loaded tower. d Base mesh for the ground structure generation, with the restriction surface also shown

The domain’s height is H=80, the square at the base has sides 2a=10, and the circle at the top has a diameter of 2r=10. The domain is discretized using quadrangular surface elements; partitioned into N z =12 elements along its height, and N 𝜃 =16 elements around, resulting in N e =192 and N n =208. The restriction zone is a surface primitive set–back from the interior of the domain by a small spacing, as shown in Fig. 24d.

The ground structure is generated for a L v l=5 connectivity, resulting in N b =4,100 potential members. The optimized ground structures for the lateral loading and torsional loading cases are shown in Fig. 25a and b respectively.

Fig. 25
figure 25

Lotte tower problem: a Optimized ground structure for a lateral loading at the top. b Optimized ground structure for a torsional load at the top

The lateral loading causes part of the resulting topology to work as a web (front view in Fig. 25a); developing an arrangement similar to an optimal cantilever, and analogous to optimal flat cantilever beams (Lewiński et al. 1994). The other side of the solution (side view in Fig. 25a) acts as a flange, transferring the load in tension/compression away from the web and to the foundation supports. On the other hand, the problem optimized for torsion results in a diagrid pattern, similar to those used in high–rise buildings.

6 Conclusions

The ground structure generation and analysis methodology presented in Zegard and Paulino (2014) is successfully extended to three–dimensional space. Concavities and holes in the domain are addressed using three–dimensional collision primitives—an extension of the two–dimensional approach. Collision primitives for a variety of shapes are developed, among which the surface primitive offers a viable alternative in the eventual case that no other primitive is adequate.

The method is verified and benchmarked using three problems for which the solutions are known, with the method converging to the analytical solution. Features and details of the convergence process are explored in detail. Additional problems showcase the capability of the method to address complicated domains, and to generate structures with various levels of detail. The ability to handle domains other than boxes has resulted in innovative bio–inspired and natural designs, as is the case with the “Diamond problem” and the “Cup domain or spider” (Figs. 19b and 20d respectively).

The rapid scaling of the complexity in three–dimensional space, make it necessary for the user to employ engineering judgement in order to obtain reasonably good solutions for applied problems. A good solution is such that it can be obtained within reasonable computer time, is detailed enough, and can be manufactured. The “Lotte tower” problem loaded under torsion (Section 5.5), for example, results in a diagrid structure that is both; attractive and feasible.