A wide variety of problems in many fields of physics—mechanics, thermics, rotor dynamics—can be handled with the Simcenter Samcef\(^{\hbox {TM}}\) software. In this study, we focus on the mechanical solver capable of solving any non-linear evolutionary problem including potentially materials non-linearities, contacts or large deformations. One of the goals is to combine ROM methods (by PGD in this work) with all possible non-linearities that already exist in the software.

### Types of mechanical problems involved

Following a generic manner, any physical system \(\Omega \) subjected to a whole set of external sollicitations (displacements, efforts, pressures, temperature...) over a time interval \(I = [0,T]\) is considered under quasi-static assumption. Using a classical finite element formulation, the problem to be solved can be systematically reduced to the following semi-discretized problem:

$$\begin{aligned} \text {Find } \varvec{q}(t) \in \varvec{\mathcal {Q}} \text { such as } \quad&\varvec{F}_{d}(t) = \varvec{F}_{i}\big (t, \varvec{q}(t)\big )&\forall t \in I \end{aligned}$$

(1)

$$\begin{aligned} \text { with } \quad&\varvec{F}_{i}\big (t, \varvec{q}(t)\big ) = \varvec{\mathcal {T}}\big (t, \varvec{q}(\tau \leqslant t)\big )&\forall t \in I \end{aligned}$$

(2)

where \(\varvec{\mathcal {Q}}\) defines the space of kinematically admissible fields subject to sufficient regularity, \(\varvec{q}\) groups all the displacements unknown, \(\varvec{F}_{d}\) gathers the external loadings, \(\varvec{F}_{i}\) represents the generalized force associated with internal cohesion efforts and \(\varvec{\mathcal {T}}\) symbolizes a characteristic operator describing all the material non-linearities. This operator \(\varvec{\mathcal {T}}\) is built from the processing of local elements within the considered industrial software. It will act as a black-box in our approach as explained later.

### Remark

Under the notation \(\varvec{\mathcal {T}}\), internal variables can be hidden if some visco-plastic behavioral laws are considered. Let us note in particular that there is an irreversibility in time within the various non-linearities characterized by the operator \(\varvec{\mathcal {T}}\) *i.e.* the expression at a given time *t* depends on the loading history according to a functional formalism.

In case of contacts, additional contact forces \(\varvec{F}_{c}\) have to be taken into account, which requires the introduction of two additional local variables \((\varvec{v},\varvec{\lambda })\) with \(\varvec{v}\) the trace of the displacements on the parts in contact and \(\varvec{\lambda }\) the Lagrange multipliers. Hence, the reference problem becomes:

$$\begin{aligned} \text {Find }&\big (\varvec{q}(t), \varvec{\lambda }(t) \big ) \text { such as } \end{aligned}$$

(3)

$$\begin{aligned}&\varvec{q}(t) \in \varvec{\mathcal {Q}}&\forall t \in I \end{aligned}$$

(4)

$$\begin{aligned}&\varvec{F}_{d}(t) = \varvec{F}_{i}\big (t, \varvec{q}(t)\big ) + \varvec{F}_{c}\big (t,\varvec{v}(t),\varvec{\lambda }(t)\big )&\forall t \in I \end{aligned}$$

(5)

$$\begin{aligned}&\varvec{F}_{i}\big (t, \varvec{q}(t)\big ) = \varvec{\mathcal {T}}\big (t, \varvec{q}(\tau \leqslant t)\big )&\forall t \in I \end{aligned}$$

(6)

$$\begin{aligned}&\varvec{\mathcal {R}}\big (t, \varvec{v}(t),\varvec{\lambda }(t)\big ) = \varvec{0}&\forall t \in I \end{aligned}$$

(7)

where in the finite element formulation, one can define an operator \(\varvec{B}\) such as \(\varvec{v} = \varvec{B}\varvec{q}\) and the operator \(\varvec{\mathcal {R}}\) represents the non-linear contact equations.

This problem is classically solved incrementally in industrial software including Simcenter Samcef\(^{\hbox {TM}}\) software. For quasi-static sollicitations, a time implicit scheme is commonly used which consists in solving for each time step a non-linear problem that can be treated by a Newton or a modified Newton–Raphson algorithm [28,29,30].

### LATIN-PGD methodology

The novelty of our approach is to natively set up a space–time PGD method directly in an industrial finite element software (Simcenter Samcef\(^{\hbox {TM}}\) here) in order to best integrate the reduced-order modeling tools into a unified workflow that can be easily handled by customers. One of the requirements is to integrate a new non-linear solver in the software which has to be non-incremental. We choose the non-linear LATIN solver [13, 31] designed to work well with the PGD method. This is a non-incremental iterative solver producing at each iteration a better approximation of the solution over the whole space and time. While standard industrial non-linear solvers generally used are incremental by nature, we propose in this work a gateway to effortlessly implement a non-incremental solver directly within incremental one.

Schematically, this non-incremental iterative algorithm can be represented as shown in Fig. 1 where two sub-spaces \(\varvec{\mathrm {A}_{d}}\) and \(\varvec{\Gamma }\) are defined. Sub-space \(\varvec{\mathrm {A}_{d}}\) groups the linear equations of the problem—equilibrium and kinematic compatibility equations—while sub-space \(\varvec{\Gamma }\) groups the local non-linear equations—behavioral laws, contact equations... The solution of the problem (1–2) then results from the fulfillment of this iterative scheme with two search directions \(\varvec{\Upsilon }^{+}\) and \(\varvec{\Upsilon }^{-}\) representing the parameters of the method. More specifically, Eq. (1) can be identified as \(\varvec{\mathrm {A}_{d}}\) while Eq. (2) defines \(\varvec{\Gamma }\) sub-space. The unknowns in this iterative scheme are the generalized displacements \(\varvec{q}\) and forces \(\varvec{F}_{i}\) which differ from classical variables most recently used in the LATIN framework based on internal variables. This choice is guided by the finite element software.

Usually starting from a linear elastic initialization \(\varvec{q}_{0}(t)\), the algorithm leads us through a succession of *local* and *global* stages by means of the search directions to the terms of a convergent series \(\big (\varvec{q}_{k}(t)\big )_{k\in \mathbb {N}}\). We suppose to be at a given state of the algorithm where \(\varvec{q}_{n}(t)\) is considered to be known.

#### Local stage: \(\varvec{s}_{n}(t) \longrightarrow \varvec{\widehat{s}}_{n}(t)\)

Given \(\varvec{s}_{n}(t)\), a new solution \(\varvec{\widehat{s}}_{n}(t)\) is sought in \(\varvec{\Gamma }\) sub-space by solving the non-linear equations. One has:

$$\begin{aligned}&\text {Constitutive relations }\varvec{\Gamma } \nonumber \\&\qquad \varvec{\widehat{F}}_{i,n}\big (t, \varvec{\widehat{q}}_{n}(t)\big ) = \mathbf {\mathcal {T}}\big (t, \varvec{\widehat{q}}_{n}(\tau \leqslant t)\big ) \quad&\forall t \in I \end{aligned}$$

(8)

$$\begin{aligned}&\text {Ascent search direction } \varvec{{\Upsilon }^{+}} \nonumber \\&\qquad \varvec{\widehat{q}}_{n}(t) = \varvec{q}_{n}(t) \quad&\forall t \in I \end{aligned}$$

(9)

We use a vertical search direction because this is what is used naturally in Newton–Raphson’s algorithm. Indeed, at each iteration, one provides the displacement and one recovers the associated internal and external forces to be able to solve the equilibrium afterwards. Kinematics being imposed, this step is local in space and operates at each gauss point of each element. By making this choice for the ascent search direction, we can then reuse exactly the same routines as classically used. The only difference lies in the fact that these routines are no longer used once but several times in order to process all the time steps at each LATIN-PGD iteration.

#### Global stage: \(\varvec{\widehat{s}}_{n}(t) \longrightarrow \varvec{s}_{n+1}(t)\)

Given \(\varvec{\widehat{s}}_{n}(t)\) and an operator \(\varvec{\mathrm {H}}\) that defines \(\varvec{\Upsilon }^{-}\) as a parameter, a new solution \(\varvec{s}_{n+1}(t)\) is sought in \(\varvec{\mathrm {A}_{d}}\) sub-space by solving the equilibrium equations. One has:

$$\begin{aligned}&\text {Kinematic conditions and equilibrium equation } \varvec{\mathrm {A}_{d}} \nonumber \\&\qquad \varvec{q}_{n+1}(t) \in \varvec{\mathcal {Q}} \quad&\forall t \in I \end{aligned}$$

(10)

$$\begin{aligned}&\qquad \varvec{F}_{d}(t) = \varvec{F}_{i,n+1}\big (t, \varvec{q}_{n+1}(t)\big ) \quad&\forall t \in I \end{aligned}$$

(11)

$$\begin{aligned}&\text {Descent search direction } \varvec{{\Upsilon }^{-}} \nonumber \\&\qquad \varvec{{H}} \big ( \varvec{q}_{n+1}(t) - \varvec{\widehat{q}}_{n}(t) \big ) = \underbrace{\varvec{F}_{i,n+1}\big (t, \varvec{q}_{n+1}(t)\big )}_{\varvec{F}_{d}(t)} - \varvec{\widehat{F}}_{i,n}\big (t, \varvec{\widehat{q}}_{n}(t)\big ) \quad&\forall t \in I \end{aligned}$$

(12)

The choice of search direction operator \(\varvec{{H}}\) is the major parameter of the method. The optimal choice in terms of convergence rate would be to consider the tangent operator at each time steps, while a less costly choice could be to consider only the elastic Hooke operator.

In similar fashion, when contacts are involved, one considers \(\varvec{s}_{n} = \Big (\varvec{q}_{n}, \varvec{F}_{i,n}, \varvec{v}_{n}, \varvec{\lambda }_{n} \Big )\) which leads to the following LATIN scheme:

#### Local stage: \(\varvec{s}_{n}(t) \longrightarrow \varvec{\widehat{s}}_{n}(t)\)

$$\begin{aligned}&\text {Constitutive relations }\varvec{\Gamma } \nonumber \\&\qquad \varvec{\widehat{F}}_{i,n}\big (t, \varvec{\widehat{q}}_{n}(t)\big ) = \varvec{\mathcal {T}}\big (t, \varvec{\widehat{q}}_{n}(\tau \leqslant t)\big ) \quad&\forall t \in I \end{aligned}$$

(13)

$$\begin{aligned}&\qquad \varvec{\mathcal {R}}\big (t, \varvec{\widehat{v}}(t),\varvec{\widehat{\lambda }}(t)\big ) = \varvec{0} \quad&\forall t \in I \end{aligned}$$

(14)

$$\begin{aligned}&\text {Ascent search direction } \varvec{{\Upsilon }^{+}} \nonumber \\&\qquad \varvec{\widehat{q}}_{n}(t) = \varvec{q}_{n}(t) \quad&\forall t \in I \end{aligned}$$

(15)

#### Global stage: \(\varvec{\widehat{s}}_{n}(t) \longrightarrow \varvec{s}_{n+1}(t)\)

$$\begin{aligned}&\text {Kinematic conditions and equilibrium equation } \varvec{{A}_{d}} \nonumber \\&\qquad \varvec{q}_{n+1}(t) \in \varvec{\mathcal {Q}} \quad&\forall t \in I \end{aligned}$$

(16)

$$\begin{aligned}&\qquad \varvec{F}_{d}(t) = \varvec{F}_{i,n+1}\big (t, \varvec{q}_{n+1}(t)\big ) + \varvec{F}_{c,n+1}\big (t, \varvec{\widehat{v}}(t), \varvec{\widehat{\lambda }}(t) \big )\quad&\forall t \in I \end{aligned}$$

(17)

$$\begin{aligned}&\text {Descent search direction } \varvec{{\Upsilon }^{-}} \nonumber \\&\qquad \varvec{{H}} \big ( \varvec{q}_{n+1}(t) - \varvec{\widehat{q}}_{n}(t) \big ) = \varvec{F}_{i,n+1}\big (t, \varvec{q}_{n+1}(t)\big ) - \varvec{\widehat{F}}_{i,n}\big (t, \varvec{\widehat{q}}_{n}(t)\big ) \quad&\forall t \in I \end{aligned}$$

(18)

$$\begin{aligned}&\qquad \varvec{\lambda }(t) - \varvec{\widehat{\lambda }}(t) = \varvec{{h}} \big ( \varvec{v}(t) - \varvec{\widehat{v}}(t) \big ) \quad&\forall t \in I \end{aligned}$$

(19)

Both search directions \(\varvec{{H}}\) and \(\varvec{{h}}\) are the parameters of the method. One can interpret \(\varvec{{h}}\) as an interface rigidity [18]. The computation of the \(\varvec{\mathcal {R}}\) operator comes directly from the hosting software as a black-box. No particular modification is required for the local stage. In this form, the LATIN-PGD algorithm can be seen as the analogue of the Newton–Raphson algorithm to which convergent loop and time steps loop have been swapped. This is a crucial aspect in terms of ease of implementation as the method could be seamlessly integrated into Simcenter Samcef\(^{\hbox {TM}}\) software without breaking anything and without having to redevelop specific tools at this level. Thus, it is henceforth possible to choose the non-linear solver that will be used for the resolution: either Newton–Raphson or LATIN methods. In the latter case, as only linear equations on the whole space and time are involved in the global stage, one can use PGD technics [4, 32].

### Focus on the PGD

The PGD method [31, 33] consists in approximating the correction calculated in the linear global stage by a finite sum of functions under separate variables:

$$\begin{aligned} \varvec{q}_{n+1}(t) - \varvec{\widehat{q}}_{n}(t) \approx \sum _{k=1}^{m}\lambda _{k}(t)\varvec{\Lambda }_{k} \end{aligned}$$

(20)

This low-rank approximation is the reduced-order basis of the problem (1–2), which is obtained using a greedy algorithm. More specifically, a first step consists in carrying out an update phase of the temporal modes already constituted, the spatial ones being kept orthogonal to each other according to the Hooke operator. Then, a second step consists in enhancing the reduced-order basis by adding some new modes if the update phase were proved to be not sufficiently effective. Thus, as the LATIN-PGD iterations progress, one comes to improve the solution until convergence. A criterion based on the energy norm averaged over the time interval enables to determine the state of convergence of the algorithm at each iteration and thus set a stop criterion when a certain threshold is reached.

Some actions are currently underway to bring out these modes directly within the post-processing graphical interface provided by Simcenter 3D\(^{\hbox {TM}}\) platform in order to visualized them as easily as possible. The interest is twofold insofar as this data format under separated variables also allows to significantly compress the information on the outputs and therefore increases even more the execution speed of such post-processing interface.

### Integration of the LATIN-PGD method into Simcenter Samcef\(^{\hbox {TM}}\) software

From a software developer’s point of view, only a few parsimonious modifications have been necessary to introduced the LATIN-PGD method in pre-existing Simcenter Samcef\(^{\hbox {TM}}\) software notably through the use of a dedicated LATIN-PGD fortran module gathering all the new functionalities in an unique place. Everything that makes up the signature and the richness of Simcenter Samcef\(^{\hbox {TM}}\) software—the way of treating behavioral laws, the way of managing contacts and so on—is fully recycled. In a sense, one of the strength of our approach lies in the privileged place granted to this *local* stage operating at the level of each element, each gauss point of each time steps, thus guaranteeing robustness and generality. A delicate point that has required particular attention concerns data storage since complete spatial-temporal approximations have to be stored at each LATIN-PGD iteration which is quite uncommon within incremental solvers. Nevertheless, the judicious use of pre-existing memory spaces, as well as the use of a few dynamic allocations ensure that the methodology can be carried out smoothly, taking advantage in particular of the fact that the solution can be written in a separable variables format. The result is a controlled memory increase. Seen in a macroscopic way, all this boils down to an interface management between different mathematical spaces grouping together the equations to solve, therefore to establish an efficient communication between the various parts of the code.

Another interesting thing is the notion of having a multi-fidelity solver [34]: typically in design offices, one often only needs to know an idea of the solution, a trend, especially in the upstream phases of the design. This allows a better understanding of the overall functioning of a new system before establishing afterwards which studies should then be carried out in greater depth by calculating high-fidelity solutions, always at low cost.

### Management of parametrized aspects

In an industrial environment, it is not uncommon to perform these non-linear space–time computations several times depending on some sets of parameters. The notion of parameter should be taken in a broad sense. By parameter, we mean for instance material data, boundary conditions, number of cycles, geometry variations (morphing),... In what follows, these parameters are managed in a completely external way taking into account an interesting property of the LATIN-PGD method: the algorithm can be initialized with any previous kinematically admissible field. Hence, we do not explicitly refer to the parameters in the notations although our methodology is designed to deal with models involving parameters as illustrated in the numerical results. There is nothing new here, we use the classical techniques as stated in [15, 26]. More precisely, if one notes \(\varvec{\mu }\) the set of *p* parameters \(\varvec{\mu } = (\mu _{1},...,\mu _{p})\), then each LATIN-PGD computation with Simcenter Samcef\(^{\hbox {TM}}\) software provides a space–time PGD approximation \(\varvec{q}^{(\varvec{\mu })}\) for one value of the parameters such as:

$$\begin{aligned} \varvec{q}^{(\varvec{\mu })}(t) = \sum _{k=1}^{m^{(\varvec{\mu })}} \xi _{k}^{(\varvec{\mu })}(t) \varvec{\Xi }_{k}^{(\varvec{\mu })} \end{aligned}$$

(21)

Next, if desired, one can then compress the information from these different reduced-order basis to reconstitute a posteriori a space–time-parameters PGD [8, 10]:

$$\begin{aligned} \varvec{q}(t, \varvec{\mu }) = \sum _{k=1}^{m} \xi _{k}(t) \varvec{\Xi }_{k} \prod _{i=1}^{p} \omega _{k}(\mu _{i}) \end{aligned}$$

(22)