*3.2. Optimisation*

Due to its simplicity and the implementation in Python®, the Hot-STARSHIP solver can be easily connected to a constrained optimisation algorithm. The constraints are given via maximum achievable temperatures at the boundaries.

For the ablative material case, the constraint is given only by the maximum back-face temperature of the material. As this is in contact with the support structure, which is often made of carbon fibre-reinforced polymers (CFRP), the maximum temperature is set to 80 °C. For the mass optimisation, in this case, it is sufficient and faster to solve a root-finding problem for the back-face temperature. As a thin TPS, while being lighter, will have higher back-face temperatures, the minimum mass, i.e., the minimum thickness *th*, is the one that matches the maximum allowable back-face temperature. The root-finding problem can be expressed as:

$$\text{Find } th \text{ so that } \quad f(th) = T - 353.15 \,\text{K} \stackrel{!}{=} 0 \tag{23}$$

where *th* is the material thickness and *T* is the back-face temperature. As each function evaluation of *f*(*th*) translates to a whole run of the transient solver, a fast convergence of the algorithm is key. As the function *f*(*th*) is univariate, algorithm 748 from Python's scipy package with a convergence order of 2.7 is chosen [34,35].

For the corrugated core ITPS, two temperature constraints must be fixed. The first one, i.e., TFS temperature, depends on the maximum operative temperature of the face sheet material. The second one, i.e., BFS temperature, is dependent on the underlying components. A common choice is to fix this to a maximum of 373 K (100 °C). This work considers C/SiC based CMCs for the corrugated core ITPS. The maximum operative temperature is fixed at 1400 K. The geometric variables that influence the thermal response are fitted into a vector of variables *x* = [*tT*, *tC*, *tB*, *tW*, *p*, Θ] *<sup>T</sup>*, with reference to Figure 3. The minimisation problem then takes the following form:

$$\min\_{\mathbf{x}} f(\mathbf{x}) \qquad \text{with } \mathbf{g}(\mathbf{x}) < 0 \tag{24}$$

where *f*(*x*) is the function to be minimised and *g* is a vector-valued function of constraints. The function *f* can be written as:

$$f(\mathbf{x}) = \rho\_T t\_T + \frac{\rho\_W t\_W + \rho\_F (p \sin \Theta - t\_W)}{p \sin \Theta} t\_C + \rho\_B t\_B \tag{25}$$

The constraint functions split the domain of *x* into a feasible range that fulfills the constraints function and an infeasible one.

$$\mathbf{g}(\mathbf{x}) = \begin{bmatrix} T\_B - 3\Im 3 \,\mathrm{K} \\ T\_{\mathrm{max}} - 1400 \,\mathrm{K} \end{bmatrix} \stackrel{!}{<} 0 \tag{26}$$

For this study, the sequential least squares programming algorithm (SLSQP) from the Python® scipy package [36] is chosen. It has a high success rate up to problem dimensions of 20 compared to similar methods [37]. It is therefore well-suitable for the size of this problem.
