1 Introduction

Traditionally the numerical simulations of fluid flows have been carried out with the Finite Element Method (FEM) using Eulerian formulations of the Navier–Stokes equations [1]. However, the continuous growth of computing power has led to more research into Lagrangian finite element models due to their intrinsic ability for tracking the domain deformations in fluid problems [2,3,4,5,6].

A particular class of Lagrangian methods developed by the authors is the so-called particle finite element method (PFEM) [6, 7]. It has been successfully applied to the simulation of free-surface hydrodynamics [6, 8], fluid–structure interaction [7, 9,10,11,12,13,14,15,16], immiscible two-fluid flows [17,18,19], thermo-mechanical forming processes [20], among others. There also exist Lagrangian models similar to PFEM that have been applied to modeling material forming problems [4, 21, 22].

Although the traditional PFEM approach has been improved in recent years, one of its main drawbacks is that an element can be inverted during the iterative solution process leading to solver failure. For this reason, all PFEM versions are equipped with a critical time estimator to avoid this situation. Although this alleviates considerably the restrictions due to the possibility of element inversion, the method remains computationally expensive, limiting its applicability for solving large practical 3D problems.

To overcome the mentioned shortcoming, in [23,24,25] the authors have developed semi-explicit PFEM approaches using the Lie–Trotter splitting operator [26,27,28]. In this kind of approaches, the Navier–Stokes equations are split in two parts, the advective one (\(\frac{d{\textbf {v}}}{dt}=0\)) and the diffusive one (Stokes equation). The advective part is solved together with the additional equation \({\textbf {v}}=\frac{d{\textbf {x}}}{dt}\), considering that the computational mesh has a virtual (massless) particle associated to it, motion of which is obtained explicitly using a sub-stepping-based streamline integration. Once the particle advection is performed, the Stokes equations are solved implicitly on a new mesh. This approach has many advantages such as making it possible to use large time steps without incurring into stability restrictions. The main reason for this is that mesh nodes move during the explicit step only and elements do not deform during the implicit solution. This ensures convergent solutions without severe time step restrictions. However, the poor accuracy of the temporal approximations of the first-order splitting [26] limits the quality of the results. To mitigate this problem, in [29] Marti and Ryzhakov applied the second-order Strang operator [30, 31] in such a way that the advective part of the equations is solved first. Then the diffusive part is solved, followed by a new solution of the advective equation. The two advective steps are solved using a Runge–Kutta-based streamline integration. Although the Strang-splitting-based PFEM approach [29] improves the accuracy and robustness of the method, the solution of the advective steps requires a constant particle velocity, while the particles are convected following the streamlines. Recently, the authors [32] have improved this approach allowing the update of the velocity of the particles as they are convected for cases when the inertial forces are high, as it occurs for a fluid contained in a spinning cylinder. The authors also have solved the advective steps using a SPH cubic spline kernel-based approach. The numerical results have confirmed that the enhanced PFEM scheme improves the accuracy of previous semi-explicit versions, but the necessity to check for the particle neighbors several times leads to a more expensive solver from the computational point of view. In addition, the kernel used is not able to correctly represent a linear velocity field.

This work aims to improving the PFEM Strang-based strategy developed in [32] by removing the drawbacks mentioned in the above lines. The key feature of the new method consist in evaluating the inertial (acceleration) term which appears in both the convective and diffusive steps, using a mesh-based procedure.

The organization of the paper is as follows. Section 2 presents the governing Navier–Stokes equations. Also, the new Strang splitting methodology is introduced. Section 3 briefly explains the discrete form of the split equations. Section 4 presents the test cases that have been used to confirm the desired convergence. Finally, Sect. 5 presents the conclusions of this work.

2 Governing equations at a continuum level

Let \(\varOmega ^{t}\) denote a domain containing a viscous incompressible fluid with a fixed boundary \(\varGamma _D\) and a free surface \(\varGamma _{N}\). The evolution of the velocity vector \({\textbf {v}} = {\textbf {v}} ( {\textbf {x}}, t)\) and the pressure \(p = p ( {\textbf {x}}, t)\) is governed by the Navier–Stokes equations given by

  • Momentum

    $$\begin{aligned} \rho \frac{\partial {\textbf {v}}}{\partial t} + \rho {\textbf {v}} \cdot \nabla {\textbf {v}}= -\nabla p + \ \nabla \cdot \left( 2 \mu \nabla ^s {\textbf {v}} \right) + \rho {\textbf {b}} \end{aligned}$$
    (1)
  • Incompressibility

    $$\begin{aligned} \nabla \cdot {\textbf {v}} =0 \end{aligned}$$
    (2)

where \({\mu }\) is the dynamic viscosity, \(\rho \) is the density, \(\textbf{b}\) is the body force vector, \(\nabla \) is the gradient operator, and \(\nabla ^s\) its symmetric part. Note that the term \(\frac{\partial {\textbf {v}}}{\partial t} + {\textbf {v}} \cdot \nabla {\textbf {v}}\) corresponds to the material derivative of the velocity \(\frac{D{\textbf {v}}}{Dt}\). Equations 1 and 2 are completed with the standard Neumann and Dirichlet boundary conditions at the boundaries \(\varGamma _{N}\) and \(\varGamma _{D}\), respectively,

$$\begin{aligned} -p {\textbf {n}} + 2 \mu \nabla ^s {\textbf {v}} \cdot {\textbf {n}}=\bar{{\textbf {t}}} \quad on\quad \varGamma _{N} \end{aligned}$$
(3)
$$\begin{aligned} {\textbf {v}}=\bar{{\textbf {v}}} \quad on \quad \varGamma _{D} \end{aligned}$$
(4)

3 Strang operator splitting for the PFEM

Adding and subtracting to the momentum equation a new variable acceleration \({\textbf {a}}\), which approximation is defined below, and applying the Strang splitting operator [29, 33], the unknown solution \({\textbf {v}}\) at \(t^n+\delta t\) of Eq. 1 is obtained in three steps as follows:

  • Step 1 (advection 1)

    $$\begin{aligned}{} & {} \rho \frac{\partial {\textbf {v}}^*}{\partial t}+ \rho {\textbf {v}}^*\cdot \nabla {\textbf {v}}^* = \rho {\textbf {a}}\quad \text {with} \nonumber \\{} & {} {\textbf {v}}^*(\text {t}^n,{\textbf {x}})= {\textbf {v}}(\text {t}^n,{\textbf {x}})\;\;\; \text {t}\epsilon [\text {t}^n,\text {t}^n+{\delta t/2}] \end{aligned}$$
    (5)
  • Step 2 (diffusion)

    $$\begin{aligned} \rho \frac{\partial {\textbf {v}}}{\partial t}= & {} - \nabla p + \nabla \cdot (2 \mu \nabla ^s {\textbf {v}}) + \rho {\textbf {b}} - \rho {\textbf {a}}\quad \text {with} \nonumber \\ {\textbf {v}}(\text {t}^n,{\textbf {x}})= & {} {\textbf {v}}^*(\text {t}^n+\delta t/2,{\textbf {x}})\;\;\; \text {t}\epsilon [\text {t}^n,\text {t}^n+{{\delta t}}] \end{aligned}$$
    (6)
  • Step 3 (advection 2)

    $$\begin{aligned}{} & {} \rho \frac{\partial {\hat{{\textbf {v}}}}}{\partial t} + \rho \hat{{\textbf {v}}}\cdot \nabla \hat{{\textbf {v}}} = \rho {\textbf {a}}\quad \text {with} \nonumber \\{} & {} \hat{{\textbf {v}}}(\text {t}^n+\delta t/2,{\textbf {x}})= {\textbf {v}}(\text {t}^n+\delta t,{\textbf {x}})\;\;\; \text {t}\epsilon [\text {t}^n+\delta t/2,\text {t}^n+\delta t] \end{aligned}$$
    (7)

Equation 5 is solved for the fractional velocity \({\textbf {v}}^*\) for half of the time increment \(\delta t/2\). The solution of Eq. 5 is used as the initial condition for solving Eq. 6 for the velocities \({\textbf {v}}\) and the pressure p for a full time increment \(\delta t\), as explained in Sect. 4.2. The velocity field obtained from Eq. 6 is the initial condition for solving Eq. 7 for the final velocity field for a half time increment, \(\delta t/2\).

Note that the original form of the Strang operator splitting for the PFEM developed in [29] is recovered by making \({\textbf {a}}={\textbf {0}}\).

4 Numerical solution

In the semi-explicit versions of the PFEM [23,24,25, 29, 34], the mesh remains fixed and the advective step is solved considering virtual particles. The particle positions \({\textbf {x}}_{p}\) only coincide with the nodes of the mesh \({\textbf {x}}_m\) at the beginning of the advective step and are moved following the streamlines of the flow using the last known velocity. Thus, there is no possibility that an element inverts due the fact that the mesh movement does not depend on the unknown velocity. Once the particles are moved to the new position, a new mesh is generated and is used for solving the implicit step (Sect. 4.2). In the following, the solution of the convective and diffusive parts of the algorithm is described.

4.1 Solution of the advective parts

As mentioned above, the convective part is solved in two steps. The first one goes from \(t^n\) to \(t^{n+1/2}\), and the second one goes from \(t^{n+1/2}\) to \(t^{n+1}\). The methodology used to solve the first of them is presented below.

The velocity and the position at time \(t^{n+1/2}\) for a particle p located at \({\textbf {x}}_p\) is obtained by integrating Eq. 5 and the additional equation \(\frac{\text {D} {\textbf {x}}}{\text {D} t}={\textbf {v}}^*\) from \(t^n\) to \(t^{n+1/2}\) as

$$\begin{aligned} {\textbf {v}}^{*n+1/2}({\textbf {x}}_p^{n+1/2})={\textbf {v}}_p^{n}+\int _{n}^{n+1/2}{} {\textbf {a}}^{t}({\textbf {x}}_p^{t})dt \end{aligned}$$
(8)

along with

$$\begin{aligned} {\textbf {x}}_p^{n+1/2}={\textbf {x}}_p^{n}+\int _{n}^{n+1/2}{} {\textbf {v}}^{*t}({\textbf {x}}_p^{t})dt \end{aligned}$$
(9)

where \({\textbf {x}}_p^{t}\) is the function describing the movement of the particle from its position at \(t^n\) to that at \(t^{n+1/2}\) \((t:{n}<t<{n+1/2})\). Note that Eqs. 8 and 9 are not only strongly coupled, but also highly nonlinear, as the computation of the position depends on the current velocity. In previous versions of the PFEM, this system is solved iterative limiting the stability of the scheme, due to the possibility of element inversion.

In order to avoid the iterative solutions of Eqs. 8 and 9, the X-IVS technique was proposed by Idelsohn et al. [25]. It is based on the idea of moving the particles (nodes) following the streamlines of the flow using the last known velocity field. As the particles are moved explicitly, the problem becomes a linear one. The new configuration is used to solve the momentum equation. In this work, this idea is also used to approximate the position and velocity field at \(t^{n+1/2}\). Applying the X-IVS technique to Eqs. 8 and 9, the terms \({a}^{t}\) and \({\textbf {v}}^{*t}\) are replaced by \({a}^{n}\) and \({\textbf {v}}^{n}\). According to this, the final set of equations read:

$$\begin{aligned} {\textbf {x}}_p^{n+1/2}= & {} {\textbf {x}}_p^{n}+\int _{n}^{n+1/2}{} {\textbf {v}}^n({\textbf {x}}_p^{t})dt \end{aligned}$$
(10)
$$\begin{aligned} {\textbf {v}}_p^{*,n+1/2}= & {} {\textbf {v}}_p^{n}+\int _{n}^{n+1/2}{} {\textbf {a}}^n({\textbf {x}}_p^{t})dt \end{aligned}$$
(11)

Equations 10 and 11 are explicit. Note that Eq. 11 modifies the particle velocity while it moves. Thus the time integration of the velocities and the position are improved, as we will show in Example 1.

Both the position (Eq. 10) and the velocities (Eq. 11) of the particles are computed by applying the following 4th order Runge–Kutta (RK4) scheme:

$$\begin{aligned} {\textbf {x}}_p^{n + 1/2}= & {} {\textbf {x}}_p^n + \frac{(\delta t/2)}{6} ( {\textbf {v}}_1+ 2{\textbf {v}}_2 + 2 {\textbf {v}}_3 + {\textbf {v}}_4 ) \end{aligned}$$
(12)
$$\begin{aligned} {\textbf {v}}_p^{*,n + 1/2}= & {} {\textbf {v}}_p^n + \frac{(\delta t/2)}{6} ( {\textbf {a}}_1+ 2{\textbf {a}}_2 + 2 {\textbf {a}}_3 + {\textbf {a}}_4 ) \end{aligned}$$
(13)

where \({\textbf {v}}_1,{\textbf {v}}_2,{\textbf {v}}_3\) and \({\textbf {v}}_4\) are the intermediate velocities and \({\textbf {a}}_1,{\textbf {a}}_2,{\textbf {a}}_3\) and \({\textbf {a}}_4\) are the intermediate accelerations. The algorithm to evaluate \({\textbf {x}}_p^{n + 1/2}\) and \({\textbf {v}}_p^{n + 1/2}\) is presented in Algorithm 1.

figure a

Once the particle advection is performed, the particles are connected by a new mesh generated with the Delaunay method [35] or the extended Delaunay tessellation procedure [36], equipped with the alpha-shape technique [37] for identifying the external boundaries. The mesh regeneration step is standard for all PFEM schemes and is not detailed here. The reader is referred to [7] for the standard implementation.

Similarly to other semi-explicit PFEM procedures, the proposed method is free of the advection stability issue. Namely, by performing an explicit advective step and then solving the Stokes equations on the fixed mesh, the stability restrictions induced by the CFL-number (CFL<1) are removed. Nevertheless, in comparison with the previous version of the PFEM, the current strategy improves the accuracy by considering the acceleration in the advective motion, as it will be shown in the examples.

Once the Stokes problem is solved, the explicit mesh motion step is repeated following the procedure described in Algorithm 1, but now applied from \(t^{n+1/2}\) to \(t^{n+1}\). Hence, the upper indices \(^{n}\) and \(^{n+1/2}\) are replaced by \(^{n+1/2}\) and \(^{n}\), respectively. Note that this second movement of the nodes could cause that some element of the mesh is inverted. Element inversion results in a negative Jacobian [38] of the corresponding element [39]. This leads to the failure of the simulation. In order to guarantee the mesh quality and diminish the amount of highly distorted elements, the Jacobian of the corresponding elements is evaluated, and if any of them is negative, a second remeshing is performed (See Algorithm 2). This considerably improves mesh quality, to the expense in a increase in the computational cost. In any case, the overall solver is still cheaper than the strategy presented in [32]. For the simulated examples in this work, it was not necessary to carry out a second remeshing.

4.2 Solution of the diffusive part

The Stokes problem (Eq. 6) is solved on the domain \(\varOmega ^{n+1/2}\) defined by the position of the particles \({\textbf {x}}_p^{n+1/2}\) obtained by solving the first advective step (Eq. 12). The particles velocity \({\textbf {v}}_p^{*,n+1/2}\) from Eq. 13 is used as the initial condition \({\textbf {v}}^n= {\textbf {v}}^{*,n+1/2}\) for solving Eq. 6.

In order to obtain the velocities \({\textbf {v}}\) and the pressure p for a full time increment \(\delta t\), the weak form of Eq. 6, following the standard FEM, the Crank–Nicolson time integration scheme and the fractional step method [40,41,42] can be written as

  • Fractional velocity

    $$\begin{aligned}{} & {} \sum _{\textrm{elem}}\left[ \int _{\varOmega _e} \rho {\textbf {N}} \cdot \tilde{{\textbf {v}}}^{n+1}d\varOmega + \delta t \int _{\varOmega _e}\nabla {\textbf {N}}: \mu \nabla ^s \tilde{{\textbf {v}}}^{n+1} d\varOmega \right. \nonumber \\{} & {} \quad =\int _{\varOmega _e} \rho {\textbf {N}} \cdot {\textbf {v}}^n d\varOmega + \delta t\int _{\varOmega _e} \nabla {\textbf {N}}: p^{n} d\varOmega \nonumber \\{} & {} +\quad \delta t \int _{\varOmega _e} \nabla {\textbf {N}}: \mu \nabla ^s {\textbf {v}}^{n} d\varOmega + \delta t\int _{\varOmega _e} \rho {\textbf {N}} \cdot {\textbf {b}}d\varOmega \nonumber \\{} & {} \quad \left. - \delta t \int _{\varOmega _e} \rho {\textbf {N}} \cdot {\textbf {a}}^n d\varOmega + \int _{\varGamma _{N_e}} {\textbf {N}} \cdot \bar{{\textbf {t}}} d\varGamma \right] \end{aligned}$$
    (14)
  • Computation of the pressure

    $$\begin{aligned}{} & {} \sum _{\textrm{elem}}\left[ \frac{\delta t }{2}\int _{\varOmega _e} \nabla N \cdot \nabla p^{n+1} d\varOmega \right. \nonumber \\{} & {} \left. \quad =\frac{\delta t }{2} \int _{\varOmega _e} \nabla N \cdot \nabla p^{n} d\varOmega + \int _{\varOmega _e} \rho N \nabla \cdot \tilde{{\textbf {v}}} d\varOmega \right] \end{aligned}$$
    (15)
  • Velocity update

    $$\begin{aligned}{} & {} \sum _{\textrm{elem}}\left[ \int _{\varOmega _e} \rho {\textbf {N}} \cdot {\textbf {v}}^{n+1} d\varOmega = \int _{\varOmega _e} \rho {\textbf {N}} \cdot \tilde{{\textbf {v}}} d\varOmega \right. \nonumber \\{} & {} \left. \quad + \frac{\delta t }{2} \int _{\varOmega _e} \nabla {\textbf {N}}: ( p^{n+1} - p^{n}) d\varOmega \right] \end{aligned}$$
    (16)

where \(\tilde{{\textbf {v}}}\) is the intermediate velocity vector.

The velocities, the accelerations and the pressure are approximated over each element with n nodes using standard linear elements as

$$\begin{aligned} \text {v}\left( {\textbf {x}} \right) = \sum _{l=1}^n {\textbf {N}}_l \left( {\textbf {x}}, t \right) {\textbf {{v}}}_{l}= {\textbf {N}}^T \left( {\textbf {x}} \right) \begin{pmatrix} \text {v}_{1x}\\ \text {v}_{1y}\\ \text {v}_{2x}\\ \text {v}_{2y}\\ \text {v}_{3x}\\ \text {v}_{3y}\\ \end{pmatrix} \end{aligned}$$
(17)
$$\begin{aligned} \text {a} \left( {\textbf {x}} \right) = \sum _{l=1}^n {\textbf {N}}_l \left( {\textbf {x}} \right) {\textbf {{a}}}_{l}={\textbf {N}}^T \left( {\textbf {x}} \right) \begin{pmatrix} \text {a}_{1x}\\ \text {a}_{1y}\\ \text {a}_{2x}\\ \text {a}_{2y}\\ \text {a}_{3x}\\ \text {a}_{3y}\end{pmatrix} \end{aligned}$$
(18)
$$\begin{aligned} p \left( \textbf{x} \right) = \sum _{l=1}^n N_l \left( {\textbf {x}} \right) p_l={\textbf {N}}_p^T \left( {\textbf {x}} \right) \begin{pmatrix} \text {p}_{1}\\ \text {p}_{2}\\ \text {p}_{3}\end{pmatrix} \end{aligned}$$
(19)

where

$$\begin{aligned} {\textbf {N}}= & {} \begin{pmatrix} N_1 &{} 0 &{} N_2 &{} 0 &{} N_3 &{} 0 \\ 0 &{} N_1 &{} 0 &{} N_2 &{} 0 &{} N_3 \end{pmatrix} \end{aligned}$$
(20)
$$\begin{aligned} {\textbf {N}}_p= & {} \begin{pmatrix} N_1&N_2&N_3\end{pmatrix} \end{aligned}$$
(21)

\({\textbf {N}}_l\) are the standard linear FE shape functions and l stands for the nodal index.

Substituting the finite element approximations into Eqs. 1416 leads to the following discrete form of Eqs. 1416.

$$\begin{aligned} \left( {\textbf {M}}+\delta t {\textbf {K}} \right) \tilde{{\textbf {v}}}= & {} \left( {\textbf {M}}+ \delta t {\textbf {K}} \right) {\textbf {v}}^n \nonumber \\{} & {} + \delta t {\textbf {G}} p^{n} + \delta t {\textbf {F}} {\textbf {b}} - \delta t {\textbf {M}} {\textbf {a}}^n \end{aligned}$$
(22)
$$\begin{aligned} \frac{\delta t}{2} {\textbf {L}} p^{n+1}= & {} \frac{\delta t}{2} {\textbf {L}} p^{n} - {\textbf {D}} \tilde{{\textbf {v}}} \end{aligned}$$
(23)
$$\begin{aligned} {\textbf {v}}^{n + 1}= & {} \tilde{{\textbf {v}}} + \frac{\delta t}{2} {\textbf {M}}^{- 1} {\textbf {G}}( p^{n + 1} - p^{n}) \end{aligned}$$
(24)

Equation 23 is stabilized using the ASGS stabilization technique for the pressure components [43]. For the sake of simplicity, the stabilization terms are omitted here. They can be consulted in [44]. Other stabilization techniques for the pressure equation can be used [45, 46].

Evaluation of the acceleration term \({\textbf {a}}\).

In the semi-explicit PFEM versions, the advective part (\(\frac{d{\textbf {v}}}{dt}= \frac{\partial {\textbf {v}}}{\partial t}+ {\textbf {v}}\cdot \nabla {\textbf {v}}={\textbf {0}}\)) of the Navier–Stokes equations is solved together with the additional equation \({\textbf {v}}=\frac{d{\textbf {x}}}{dt}\) using the streamlines. The convection of the particles depends on the velocity at every moment, while their velocities remain unchanged. This assumption is valid only when the inertial forces are negligible.

In order to generalize the formulation to problems where the inertial forces are not negligible, i.e \(\frac{\partial {\textbf {v}}}{\partial t}+ {\textbf {v}} \cdot \nabla {\textbf {v}} \ne 0\) an acceleration term is added consistently in the advective terms (see Eqs. 5 and 7) and the Stokes equation (Eq. 6). With this new term in the advective part, the particles change their positions following the streamlines Eq. 12, while the acceleration streamlines are used to modify the velocity Eq. 13. Next it is explained how the acceleration term is evaluated.

The acceleration \({\textbf {a}}\) (\({\textbf {a}}=\dfrac{\partial {\textbf {v}}}{\partial t} + {\textbf {c}}\cdot \nabla {\textbf {v}}\)) is computed by the following finite element discrete form

$$\begin{aligned} {\textbf {M}} {\textbf {a}}= {\textbf {M}} \dfrac{\partial { {\textbf {v}}}}{\partial t} + {\textbf {C}}{} {\textbf {v}} \end{aligned}$$
(25)

where M is the mass matrix and \({\textbf {C}}\) is given by Eq. 26.

$$\begin{aligned} {\textbf {C}} = \rho \sum _{\textrm{elem}} \int _{\varOmega _e} {\textbf {N}}\cdot {\textbf {c}} \cdot \nabla {\textbf {N}}^T d\varOmega \end{aligned}$$
(26)

\({\textbf {c}}\) is the convective velocity evaluated at the Gauss point as \({\textbf {N}}^T \left( {\textbf {x}} \right) {\textbf {v}}\).

According to Sect. 4.1, the acceleration term \({\textbf {a}}\) (Eq. 25) is evaluated at time \(t^n\) and it is assumed to be constant during the time step (see Algorithm 2). Therefore, Eq. 25 can be written as

$$\begin{aligned} {\textbf {M}} {\textbf {a}}^{n}={\textbf {C}}{} {\textbf {v}}^{n} \end{aligned}$$
(27)

The acceleration vector \({\textbf {a}}\) is obtained by using a lumped form of the mass matrix \({\textbf {M}}\). Thus, the solution of Eq. 27 has a negligible computational cost. Equation 27 is also stabilized using the ASGS stabilization technique [43].

The explicit mesh motion step is repeated following the procedure described in Algorithm 1, but now applied from \(t^{n+1/2}\) to \(t^{n+1}\). Hence, the upper indices \(^{n}\) and \(^{n+1/2}\) are replaced by \(^{n+1/2}\) and \(^{n}\), respectively.

5 Overall solution strategy

The solution procedure can be summarized as: Given the nodal positions, the velocity and the pressure at time \(t^n\) find these variables at \(t^{n+1}\). The solution steps are outlined in Algorithm 2.

figure b

6 Numerical examples

The new PFEM scheme has been implemented in the Kratos MultiPhysics code, an academic Open Source software [47]. In the following section, two numerical examples are presented that show the advantage of the new model. The first one is a 2D benchmark of a flow in a spinning cylindrical container. The second example is the well-known flow around a circular cylinder.

6.1 Viscous flow in a spinning circular container

The test presented in [32] is chosen here to show how the additional acceleration term improves the numerical solution, and secondly to evaluate the convergence of the modified approach. In the test, a cylinder of radius \(\text {Re}=0.5\) [m] is filled up with a fluid rotates about it axis with a constant angular velocity \(\text {w}\) in the absence of gravity forces. As a result of the centrifugal forces, the fluid presents a circular internal free surface of radius \(\text {Ri}=0.21\) [m]. The geometry, dimensions and boundary conditions are shown in Fig. 1.

The analytical solution (polar coordinates) of this problem is given by

$$\begin{aligned} {\textbf {v}}_{\theta }= & {} \text {w} {\textbf {r}} \end{aligned}$$
(28)
$$\begin{aligned} \text {p}= & {} \frac{\rho \text {w}^2}{2} (r^2-Ri^2 ) \end{aligned}$$
(29)

The fluid has a density of 1000 [kg/\(m^3\)] and a viscosity of 0.001 [kg/ms].

To simulate numerically this test, the velocity is prescribed to \({\textbf {v}}_{\theta } = {\textbf {R}}e\) at \(\text {Re}=0.5\) [m] and the pressure is fixed to zero at \(\text {Ri}=0.21\) [m].

Fig. 1
figure 1

Geometry

In this work the non-homogeneous boundary condition is imposed by employing a mixed Lagrangian–Eulerian (LE) technique presented in [48]. This technique is characterized by treating only the solid nodes as Eulerian (i.e., fixed). In other words, solid nodes are not changing their position along time although its velocity can be different from zero without altering the geometric definition of the boundary due to a Lagrangian motion. As a consequence of this, a convective velocity appears in the element containing these nodes and its discrete form is given by \({\textbf {c}} \left( {\textbf {x}} \right) = {\textbf {N}}^T \left( {\textbf {x}} \right) ({\textbf {v}}-{\textbf {v}}^L)\) where \({\textbf {v}}\) and \({\textbf {v}}^L\) are the Eulerian and Lagrangian velocities. For the fluid particles \({\textbf {v}}={\textbf {v}}^L\), while for the solid ones \({\textbf {v}}^L\)=0. Its effect is introduced by adding an additional matrix \({\textbf {C}}_{LE}=\rho \sum _{\textrm{elem}} \int _{\varOmega _e} {\textbf {N}} \cdot {\textbf {c}} \cdot \nabla {\textbf {N}}^T d\varOmega \) to the left-hand side of Eq. 22. Note that while the matrix \({\textbf {C}}\) given by Eq. 26 is evaluated in the entire domain in order to obtain the acceleration a and appear on the right-hand side of Eq. 22, the matrix resulting from the LE technique appears only on elements with Eulerian nodes [48], representing a small portion of the overall domain. In the case that the solid nodes have zero velocity, this matrix does not intervene in the formulation.

To show the effect of the acceleration term in the evaluation of the particle position and its velocity in the new method, the domain was discretized with a non-structured mesh (\(h=0.01\) [m]). The example was solved over a time span of 0.5 [s], and the time increment was set to 0.01 [s]. The results are compared with the ones obtained using the numerical formulation presented in [29], which from now on will be distinguished in the paper, as well as in the figures, as “without acceleration”. Figure 2 shows the trajectory of two particles. The first particle is located near the wall (\(\text {x}=0.0\) [m] and \(\text {y}=-0.355863\) [m]), while the second one in the middle of the domain (\(\text {x}=0.\) [m] and \(\text {y}=-0.485586\) [m]). The reference solution is obtained by integrating the velocity (Eq. 28) with the Runge–Kutta scheme (Fig. 2).

Figure 2b and d shows the trajectory of the two particles selected. It can be observed how the particle position without considering the acceleration term [29] deviate from the reference solution. However, as will be seen later, this error decreases over time.

Fig. 2
figure 2

Particle trajectories

The modulus of the velocity field at time \(t=0.5\) [s] is shown in Fig. 3. Note that flattened elements appear close to the wall in the approach without including the acceleration term (Fig. 3). This effect is noticeable by inspecting the right part of Fig. 3. We note that in this example no particles were seed or removed during the simulation to improve the mesh quality.

Fig. 3
figure 3

Velocity field at \(t=0.5\) [s]

The time accuracy of the new approach was obtained by running the example for the following time steps: 0.01, 0.005, 0.0025, 0.0008 and 0.0005 [s]. The error measure was estimated by the area enclosed between the obtained and the reference radial velocity distribution along the horizontal cut plane at \(y=0\) [m] from \(x=\text {R}_i\) to \(x=\text {R}_e\) at \(t=0.5\) [s] for the given time step. The influence of the spatial discretization error was excluded by considering as a reference solution the one obtained using \(dt=0.0005\) [s]. The convergence data (error versus time step size in logarithmic scale) is shown in Fig. 4a. One can observe that the approach without the acceleration term presents the same slope but a larger error than the version considering the acceleration. Also the strategy presented here shows the same spatial convergence than the strategy presented in [32], where the convective steps are solved using a SPH kernel.

To check the spatial accuracy of the new PFEM technique, the example was solved with a small time step (\(dt=0.0005\) [s]) and different mesh sizes of \(h=0.05\) [m], \(h=0.015\) [m] and \(h=0.008\) [m]. The analytical solution was taken as the reference solution. Figure 4b shows the error versus the mesh size. The method exhibits second-order convergence with respect to the mesh size. Also the error with the SPH kernel methodology presented in [32] is displayed. Marti and Oñate [32] presented an enhanced version of the semi-explicit PFEM which was obtained by applying the Strang operator splitting to the Navier–Stokes equations and solving the advetive steps using a SPH kernel.

Table 1 shows the average computational times of the element-based and kernel-based [32] solutions corresponding to the two advective steps on a given mesh. The time required to generate the mesh was 0.06139655 [s], which is the step that cannot be easily parallelized. One can see that the element-based implementation is approximately five times “cheaper” than the SPH kernel one. Parallel implementation leads to a reduction in the computational times, which is, however, lower than the ideal are. On the other hand, the new PFEM strategy presented has second-order accuracy in time and in space, with a slighly larger error than the one of [32] even though this uses a kernel that not correctly represent a linear field, however the new PFEM strategy is computationally more efficient and, thus, best suited for practical applications.

Fig. 4
figure 4

Flow in spinning circular container

The same example was run for 2.5 [s] to show the importance of the acceleration term.

Figure 5 shows how the particle position without considering the acceleration term deviate from the reference solution, leading to failure of the solver. The former is presented in more detail in Figs. 6 and 7.

6.2 Flow around a circular cylinder.

This test has been chosen to show the capability of the new PFEM scheme for solving complex problems. According to Fig. 8, a circle with a diameter of 1 [m] has been placed inside a rectangular domain of 21 [m] width and 11 [m] height. The velocity has been set to \({\textbf {v}}_\text {x}=1.0\) [m/s] in the inlet and the bottom and upper walls are slip. The Dirichlet boundary condition has been imposed by employing the LE technique presented before. The pressure is fixed to zero in the oulet. The density and viscosity are \(\rho =1.0\) [kg/\(m^3\)] and \(\mu =0.001\) [kg/(ms)], respectively. The geometry and the material properties are taken from [25].

The domain is discretized with an unstructured mesh of 3-nodes triangles where the minimum and the maximum mesh sizes were: \(h_{\textrm{min}}=0.0073\) [m] and \(h_{\textrm{max}}=0.2\) [m], respectively. In this, test particles were seed or removed during the simulation to further improve the mesh quality.

The example was run using a time step of 0.0025 [s].

Figure 9 shows the velocity and the pressure fields at 80 [s]. Figures 10 and 11 compares the drag and the lift with the ones using the first-order version of the PFEM-2 approach [25]. Note that in [25] the authors only reported the periodic part of the solution without mentioning when it started. Also the drag and the lift obtained by Mittal [49] are introduced.

We can observed that Figs. 10 and 11 show a good agreement in the oscillation frequency and amplitude with the results from the semi-explicit PFEM approach with fixed mesh [25]. From the graph, the drag mean value is 8% above the reference mean value and the lift force oscillates with an amplitude is 13% above the reference value. These values are slightly smaller than the ones presented in [25]. However, the approach presented here obtain practically the same results (lift and drag) than [25] without the need to solve the convective term with an excessive number of particles.

Table 1 Computational cost of different solution steps of the proposed PFEM strategy
Fig. 5
figure 5

Particle trajectories

Fig. 6
figure 6

Zoom of the last positions for first particle

Fig. 7
figure 7

Zoom of the last positions for second particle

Fig. 8
figure 8

Geometry

Fig. 9
figure 9

Flow around a circular cylinder. Velocity and pressure fields at 80 [s]

Fig. 10
figure 10

Flow around a circular cylinder. Drag coefficient

Fig. 11
figure 11

Flow around a circular cylinder. Lift coefficient

7 Summary and conclusions

A modified new semi-explicit Strang-based PFEM technique has been proposed for modeling incompressible flows. The improvement of the PFEM strategy has consisted in calculating the convective step using an auxiliary acceleration term. The integration of both the position and the velocities, which emanate from the convective step, have been performed using a fourth Runge–Kutta scheme and interpolating from the mesh the intermediate velocities and accelerations. As a consequence, the new PFEM approach leads to a more efficient computationally solver.

The enhanced PFEM scheme has been compared with results for 2D test cases from the literature. The first test has shown the importance of taking into account the acceleration term proposed in [32] and reveals second-order convergence versus mesh size and time. The second example has shown the good features of the new PFEM scheme for solving a more complicated setting. The numerical results have confirmed that the new PFEM scheme improves the accuracy and speed of previous semi-explicit versions.