*2.3. Data-Oriented Yield Function*

While the concept of mapping the equivalent stress in describing anisotropic flow behavior has been applied successfully in the approaches of Hill [2,3] and Barlat [4], for a data-oriented yield function, it is impracticable to calculate the necessary parameters for this stress mapping explicitly. Hence, it is of advantage to reformulate the flow rule in such a way that the yield strength is considered to be directionally dependent, whereas the equivalent stress is formulated in an objective way, without prior knowledge of the material behavior. This is achieved by using the J2 equivalent stress in the flow rule and formally considering the flow stress to be a function of the polar angle in the deviatoric plane, such that

$$f\_d(\mathbf{s}) = s\_1 - \sigma\_y(s\_2) = \sigma\_{\epsilon \eta}^{\text{J2}} - \sigma\_y(\theta). \tag{17}$$

A further advantage of this formulation is that the dependence of the yield function on the two degrees of freedom of the cylindrical stress notation is separated into two independent terms. Furthermore, for symmetry reasons, it is required that the yield strength is a periodic function of the polar angle with periodicity 2*π*. The gradient of the ML yield function w.r.t. the cylindrical coordinates reads

$$\begin{aligned} \frac{\partial f\_d}{\partial s\_1} &= \frac{\partial f\_d}{\partial \sigma\_{\varepsilon q}^{\mathbf{J}2}} = 1\\ \frac{\partial f\_d}{\partial s\_2} &= \frac{\partial f\_d}{\partial \theta} = \frac{d\sigma\_y}{d\theta} \\ \frac{\partial f\_d}{\partial s\_3} &= \frac{\partial f\_d}{\partial p} = 0 \end{aligned}$$

It is seen that in the cylindrical stress space *∂ fd*/*∂σ*eq = 1 and *∂ fd*/*∂p* = 0, under the condition that plasticity is independent of hydrostatic stress components. Hence, the only non-constant component of the gradient is *∂ fd*/*∂θ*, which simplifies the numerical implementation of the method. For isotropic J2 plasticity, *∂ fd*/*∂θ* = 0, and in this case it is particularly easy to calculate the gradient and to see that the formulations in both coordinate systems result in the same gradient. The transformation of this gradient into the principal stress space is achieved by multiplication with the Jacobian, according to Equation (16).

To establish a data-oriented formulation, we introduce a yield function in the form of a machine learning (ML) algorithm, rather than in a mathematically closed form with a number of model parameters that need to be fitted to the data. This enables us to use the available data directly for the training of the ML algorithm. Furthermore, ML methods allow for the use of higher dimensional feature vectors such that in future work, information about the material properties and the microstructure of the material can be directly used as input into one single ML yield function able to handle different microstructures.

In this work, Support Vector Classification (SVC) is applied to categorize data sets consisting of principal stresses into the classes "elastic" and "plastic". During training, SVC constructs a hyperplane in stress space, which separates the two regions from each other. Consequently, this hyperplane, defined by the zeros of the so-called SVC decision function, is the equivalent to the yield locus, defined by the zeros of the yield function, and it is constructed such that it has the largest distance to the nearest training data points of both classes. The SVC decision function is defined as [15]

$$f\_{\rm SVC}(\mathbf{s}) = \sum\_{k=1}^{n} y\_k a\_k K(\mathbf{s}\_{\rm SV}^{(k)}, \mathbf{s}) + \rho\_{\rm \text{\textquotedblleft}} \tag{18}$$

where *n* is the number of support vectors identified during the training process and

$$K(\mathfrak{s}\_{\rm SV}^{(k)}, \mathfrak{s}) = \exp\left(-\gamma \|\mathfrak{s} - \mathfrak{s}\_{\rm SV}^{(k)}\|^2\right) \tag{19}$$

is the radial basis function (RBF) kernel of the SVC, which is well suited for non-linear problems, with the parameter *γ* that determines how fast the influence of one support vector decays in stress space. The support vectors *s* (*k*) sv , the dual coefficients *ykα<sup>k</sup>* , and the intercept *ρ* are determined during the training. There are essentially two parameters that control the training process and thus the quality of the obtained decision function: (i) *γ* > 0 is a parameter of the RBF kernel function and controls how far-reaching the influence of each support vector is: the larger the value of *γ*, the more short-ranged and local the influence; (ii) *C* > 0 is a parameter that is used only during the training to regularize the decision function, but that does not directly enter the decision function (18). The larger the value of *C*, the more flexible but irregular the decision function will become by approximating the shape of the training data more accurately. The choice if these training parameters is critical for the successful use of the decision function in a flow rule. In short, the larger both values are, the more flexible and sensitive to local values the resulting decision function will become. Thus, too small values will result in a smooth but not accurate approximation of the true yield function, whereas too large values will result in a noisy yield function that cannot be used in FEA. The numerical example presented later on will demonstrate this effect and provide examples for values producing accurate yet sufficiently smooth results for the yield function.

For the supervised training, a set of *n<sup>t</sup>* feature vectors *s* (*j*) train has to be provided together with the result vector *y* (*j*) with *j* = (1, ..., *nt*), which takes values only in two categories: *y* (*j*) <sup>=</sup> <sup>−</sup>1 for those training data points *s* (*j*) train in the "elastic" regime and *y* (*j*) = +1 for training data in the "plastic" regime. This training data are within the core of the method outlined here, because during the training process they are directly used to define the support vectors that in turn determine the plastic properties of the material. It is, therefore, essential to have sufficiently many training data points in close proximity to the yield locus to approximate it accurately. However, the SVC training will create support vectors only in the region covered by the training data, and outside this region the decision function drops to zero, which could produce erroneous results if the elastic predictor step of the return mapping algorithm falls into such a region. Hence, data points that lie deeper within the elastic and plastic regions are required to prevent the decision function (18) from falling back to zero. Such data points, however, can be constructed from available raw data lying close to the yield locus simply by linearly scaling principal stresses in the elastic region towards smaller values, such that they stay within the elastic region, and, likewise in the plastic region, scaling principal stress data towards higher values. Thus, the raw data can be spread throughout the stress space, even without knowing the strain value associated with each data point. Only the knowledge of its class "elastic" or "plastic" is required as knowledge for this data extension step improving the training process. This property of the formalism introduced in this work is of critical importance, because it enables the creation of large volumes of training data from relatively few raw data points close to the yield locus, as demonstrated below.

As seen from Equation (18), the decision function is a continuous function constructed in a way to reproduce this category, i.e., the sign of the training data in the respective regions in the optimal way. To make predictions about the elastic or plastic material behavior at any given stress, the sign of the value of the decision function *f*SVC(*s*) at the given stress is evaluated. Furthermore, the yield locus of the material can be obtained in the same way as for traditional yield functions, simply by finding the

zeros of the continuous function. In this way, furthermore, the distance of any point in stress space to the yield locus can be evaluated, which is important for making efficient predictor steps during FEA and for calculating plastic strain increments for the return mapping algorithm. In particular, as described in the previous section, the gradient to the yield locus needs to be known in order to calculate plastic strain increments, that bring the stress back to the yield surface, because the plastic material does not support any stresses outside. Due to the definition of the ML yield function as convolution sum over the support vectors, the gradient to the SVC decision function can be calculated analytically as

$$\frac{\partial f\_{\rm SVC}}{\partial \mathbf{s}} = \sum\_{k=1}^{n} y\_k a\_k \frac{\partial K(\mathbf{s}\_{\rm SV}^{(k)}, \mathbf{s})}{\partial \mathbf{s}} \tag{20}$$

with

$$\frac{\partial K(\mathbf{s}\_{\rm sv}^{(k)}, \mathbf{s})}{\partial \mathbf{s}} = -2\gamma \exp\left(-\gamma \|\mathbf{s} - \mathbf{s}\_{\rm sv}^{(k)}\|^2\right) \left(\mathbf{s} - \mathbf{s}\_{\rm sv}^{(k)}\right). \tag{21}$$

The gradient of the yield function in the 3D principle stress space is obtained by multiplication of the gradient in the cylindrical stress space with the Jacobian defined in Equation (14). Thus, the formulation of the data-oriented yield function based on the SVC algorithm can be used directly as ML yield function in FEA, with the same formalism for plasticity as for standard yield functions.

#### **3. Results**

In the following, it will be demonstrated how the derived formulation of the ML yield function can be trained with data obtained from a reference material and used in FEA as constitutive law for plasticity. All numerical examples are conducted with the tools provided on the open-source platform Sci-Kit Learn [22] and a Python library for FEA written by the author of this work. The Python code used for generating the results presented here is provided as supplementary material in form of a Jupyter notebook.
