You do not have permission to edit this page, for the following reason:

You are not allowed to execute the action you have requested.


You can view and copy the source of this page.

x
 
1
<!-- metadata commented in wiki content
2
3
4
==A Second Order Semi-Lagrangian Particle Finite Element Method for Fluid Flows==
5
6
Jonathan Colom-Cobb<sup>(a,*)</sup>, Julio Garcia-Espinosa<sup>(a,b)</sup> , Borja Servan-Camas<sup>(a)</sup> Nadukandi, P.<sup> (a,c)</sup>;
7
8
:(1) Centre Internacional de Mètodes Numèrics a l'Enginyeria (CIMNE)
9
10
Edifici C1, Campus Norte, UPC, Gran Capitán s/n, 08034 Barcelona, Spain
11
12
:(2) Universidad Politécnica de Cataluña (UPC)
13
14
C. Gran Capitan s/n, Campus Nord, 08034 Barcelona, Spain.
15
16
:(3) Repsol Technology Lab
17
18
Ctra. Extremadura km 18, 28935 Móstoles, Madrid.
19
20
(*) Corresponding author.
21
-->
22
23
===Abstract===
24
25
In this paper, a second order SL-PFEM scheme for solving the incompressible Navier-Stokes equations is presented. This scheme is based on the second order velocity Verlet algorithm, which uses an explicit integration for the particle’s trajectory and an implicit integration for the velocity. The algorithm is completed with a predictor-multicorrector scheme for the integration of the velocity correction using the Finite Element Method. A second order projector based on least squares is used to transfer the intrinsic variables information from the particles onto the background mesh, while a second order interpolation scheme is used to transfer the accelerations from the mesh to the particles. Convergence analyses are carried out to assess the second order convergence.
26
27
<span id='_GoBack'></span>'''Keywords: '''Semi-Lagrangian, Particles, PFEM, FEM, Second-order
28
29
===1. Introduction===
30
31
Solving the convective terms in transport equations using Lagrangian particles avoids the instabilities introduced by the standard approaches in the Eulerian framework. Instead, it leads to the problem of solving the particles trajectories, which offers minimum numerical erosion. However, Lagrangian and semi-Lagrangian methods are usually based on first order in time integration schemes, which limits its rate of convergence. As an exception, a recent work [<span id='cite-_Ref535245996'></span>[[#_Ref535245996|4]]] within the semi-Lagrangian Particle Finite Element Method (SL-PFEM) framework, has proposed a second order scheme. It is based on Strang´s symmetric operator splitting, a third order projector to transfer data from the particle to the mesh, and on estimating the particle´s trajectories using a linear approximation to the instantaneous streamline determined by the velocity field.
32
33
<span id='_Ref532985341'></span><span id='_Ref535245996'></span><span id='_Ref532897341'></span><span id='_Ref536171694'></span><span id='_Ref536171696'></span><span id='_Ref535310419'></span>Until [<span id='cite-_Ref535245996'></span>[[#_Ref535245996|4]]], the SL-PFEM framework has been developed based on explicit integrators that compute streamlines to approximate the particle´s trajectories. This approach has been successfully applied to many different problems [<span id='cite-1'></span>[[#1|1]], <span id='cite-2'></span>[[#2|2]], <span id='cite-3'></span>[[#3|3]], <span id='cite-4'></span>[[#4|4]]]. In fact, the more convection dominates the flow, the better the streamlines approximate the pathlines and the larger the time step that can be used. However, in many problems, convection does not dominate and streamlines computed explicitly at the beginning of the time step are not a good approximation of pathlines. In these cases, small time steps are required to obtain accurate results.  An example of this was presented in [<span id='cite-5'></span>[[#5|5]]], where a linear wave problem was used as an example. <span id='cite-_Ref532897315'></span>[[#_Ref532897315|Figure 1]] has been extracted from [<span id='cite-_Ref532897341'></span>[[#_Ref532897341|5]]], and it shows how pathlines can be approximated by explicit streamlines and by an explicit acceleration method. It can be observed that the explicitly streamline is not such a good approximation and therefore it requires to use very small time steps. On the other hand, including information of the acceleration, even in an explicit way, can considerably improve the approximation. This is the motivation of this work, where an algorithm based on the second order velocity Verlet integrator [<span id='cite-6'></span>[[#6|6]], <span id='cite-7'></span>[[#7|7]], <span id='cite-8'></span>[[#8|8]]] is proposed, since it has some desirable properties such as being second order accurate over time, time reversible, and symplectic when applied to Hamiltonian systems [<span id='cite-_Ref535310419'></span>[[#_Ref535310419|8]]].
34
35
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
36
 [[Image:Draft_Garcia-Espinosa_450194514-image1.png|384px]] </div>
37
38
<div id="_Ref532897315" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
39
<span style="text-align: center; font-size: 75%;">Figure 1: Approximation of pathlines of fluid particles under an acceleration field induced by a linear wave. Top; using explicit streamlines. Down: computing trajectories with explicit acceleration. Figure extracted from [</span><span id='cite-_Ref532897341'></span>[[#_Ref532897341|<span style="text-align: center; font-size: 75%;">5</span>]]<span style="text-align: center; font-size: 75%;">]</span></div>
40
41
This paper is organized as follows: first, the problem of particles moving with a velocity field is introduced. Second, the velocity Verlet scheme is presented to integrate the particle´s equations of motion. Third, the incompressible Navier-Stokes equations are introduced in a semi-Lagrangian framework, where the divergence free condition is enforced using a predictor-multicorrector scheme inspired in the fractional step method. Fourth, a global least-square projector is analysed. And fifth, a number of convergence verification, validation and demonstration cases are carried out.
42
43
===2. Particles moving with a velocity field===
44
45
Along the paper, Eulerian variables (mesh values) are written with lower case letters, particle´s variables are written with upper case letters and vectors are written with bold letters. Let <math display="inline">\mathit{\boldsymbol{u}}(\mathit{\boldsymbol{x}},t)</math> be a velocity field, let <math display="inline">\left\{ \lambda \right\}</math> ''' '''be a set of particles each of them identified with a label <math display="inline">\lambda</math> . The position occupied by each particle at time <math display="inline">t</math> is denoted by <math display="inline">{\mathit{\boldsymbol{X}}}_{\lambda }\mathit{\boldsymbol{(}}t\mathit{\boldsymbol{)}}</math>, and the velocity of the particle by <math display="inline">{\mathit{\boldsymbol{U}}}_{\lambda }\mathit{\boldsymbol{(}}t\mathit{\boldsymbol{)}}</math>. If the particle velocity is given by the velocity field <math display="inline">\mathit{\boldsymbol{u}}</math>, then''' ''' <math display="inline">{\mathit{\boldsymbol{U}}}_{\lambda }\left( t\right) \mathit{\boldsymbol{=\, }}\mathit{\boldsymbol{u}}({\mathit{\boldsymbol{X}}}_{\lambda }\mathit{\boldsymbol{(}}t\mathit{\boldsymbol{)}},t)</math>, and the particles’s trajectories are the pathlines defined by the velocity field <math display="inline">\mathit{\boldsymbol{u}}</math>. The particle’s equations of motion are:
46
47
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
48
|-
49
| 
50
{| style="text-align: center; margin:auto;width: 100%;"
51
|-
52
| <math>\frac{d{\mathit{\boldsymbol{X}}}_{\lambda }\left( t\right) }{dt}={\mathit{\boldsymbol{U}}}_{\lambda }\left( t\right) =</math><math>\mathit{\boldsymbol{u}}({\mathit{\boldsymbol{X}}}_{\lambda }(t),t)</math>
53
|}
54
|  style="width: 5px;text-align: right;white-space: nowrap;"|<span id='_Ref7798987'></span>(1)
55
|-
56
| 
57
{| style="text-align: center; margin:auto;width: 100%;"
58
|-
59
| <math>\frac{d{\mathit{\boldsymbol{U}}}_{\lambda }\left( t\right) }{dt}={\mathit{\boldsymbol{A}}}_{\lambda }(t)</math>
60
|}
61
|  style="width: 5px;text-align: right;white-space: nowrap;"|<span id='_Ref7798989'></span>(2)
62
|}
63
64
65
where the particle’s acceleration <math display="inline">{\mathit{\boldsymbol{A}}}_{\lambda }\left( t\right)</math>  is the rate of change of <math display="inline">{\mathit{\boldsymbol{U}}}_{\lambda }\mathit{\boldsymbol{(}}t\mathit{\boldsymbol{)}}</math>. An acceleration field <math display="inline">\mathit{\boldsymbol{a}}(\mathit{\boldsymbol{x}},t)</math> can be derived from the velocity field as:
66
67
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
68
|-
69
| 
70
{| style="text-align: center; margin:auto;width: 100%;"
71
|-
72
| <math>\mathit{\boldsymbol{a}}\left( \mathit{\boldsymbol{x}},t\right) ={d}_{t}\mathit{\boldsymbol{u}}\left( \mathit{\boldsymbol{x}},t\right)</math> 
73
|}
74
|  style="width: 5px;text-align: right;white-space: nowrap;"|(3)
75
|}
76
77
78
where <math display="inline">{d}_{t}</math> is the total derivative
79
80
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
81
|-
82
| 
83
{| style="text-align: center; margin:auto;width: 100%;"
84
|-
85
| <math display="inline">{d}_{t}\mathit{\boldsymbol{u}}={\partial }_{t}\mathit{\boldsymbol{u}}+</math><math>\mathit{\boldsymbol{u}}\nabla \mathit{\boldsymbol{u}}</math>'''.'''
86
|}
87
|  style="width: 5px;text-align: right;white-space: nowrap;"|<span id='_Ref527448368'></span>(4)
88
|}
89
90
91
Given an acceleration field, <math display="inline">\mathit{\boldsymbol{a}}</math>,''' '''derived from a velocity field <math display="inline">\mathit{\boldsymbol{u}}</math> as in Eq. <span id='cite-_Ref527448368'></span>[[#_Ref527448368|(4)]], the particles’ velocities and positions can be obtained integrating the equations of motion with initial conditions:
92
93
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
94
|-
95
| 
96
{| style="text-align: center; margin:auto;width: 100%;"
97
|-
98
| <math>{\mathit{\boldsymbol{U}}}_{\lambda }\left( 0\right) =\mathit{\boldsymbol{u}}({\mathit{\boldsymbol{X}}}_{\lambda }(0),0)</math>
99
|}
100
|  style="width: 5px;text-align: right;white-space: nowrap;"|(5)
101
|}
102
103
104
===3. Numerical integration of particles’ equations of motion===
105
106
Let <math display="inline">\mathit{\boldsymbol{a}}\left( \mathit{\boldsymbol{x}},t\right) =</math><math>{d}_{t}\mathit{\boldsymbol{u}}\left( \mathit{\boldsymbol{x,}}t\right)</math>  be an acceleration field derived from an unknown velocity field <math display="inline">\mathit{\boldsymbol{u}}\left( \mathit{\boldsymbol{x,}}t\right)</math> . Given a set of particles <math display="inline">\left\{ \lambda \right\}</math>  with initial position and velocity <math display="inline">{\mathit{\boldsymbol{X}}}_{\lambda }(0)</math> and <math display="inline">{\mathit{\boldsymbol{U}}}_{\lambda }\left( 0\right) =</math><math>\mathit{\boldsymbol{u}}({\mathit{\boldsymbol{X}}}_{\lambda }(0),0)</math>. Then the position and velocity at time <math display="inline">t</math> is obtained integrating the equations of motion:
107
108
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
109
|-
110
| 
111
{| style="text-align: center; margin:auto;width: 100%;"
112
|-
113
| <math>{\mathit{\boldsymbol{X}}}_{\lambda }\left( {t}^{n+1}\, \right) ={\mathit{\boldsymbol{X}}}_{\lambda }\left( {t}^{n}\right) +</math><math>\int_{{t}^{n}}^{{t}^{n+1}}{\mathit{\boldsymbol{U}}}_{\lambda }\left( t\right) dt</math>
114
|}
115
|  style="width: 5px;text-align: right;white-space: nowrap;"|(6)
116
|-
117
| 
118
{| style="text-align: center; margin:auto;width: 100%;"
119
|-
120
| <math>{\mathit{\boldsymbol{U}}}_{\lambda }\left( {t}^{n+1}\, \right) ={\mathit{\boldsymbol{U}}}_{\lambda }\left( {t}^{n}\right) +</math><math>\int_{{t}^{n}}^{{t}^{n+1}}{\mathit{\boldsymbol{A}}}_{\lambda }\left( t\right) dt</math>
121
|}
122
|  style="width: 5px;text-align: right;white-space: nowrap;"|(7)
123
|}
124
125
126
In molecular  dynamics, a well-known numerical integration scheme for the equations of motion is the velocity Verlet integrator [<span id='cite-_Ref536171694'></span>[[#_Ref536171694|6]],<span id='cite-_Ref536171696'></span>[[#_Ref536171696|7]]], which reads:
127
128
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
129
|-
130
| 
131
{| style="text-align: center; margin:auto;width: 100%;"
132
|-
133
| <math>{\mathit{\boldsymbol{X}}}_{\lambda }\left( {t}^{n+1}\, \right) ={\mathit{\boldsymbol{X}}}_{\lambda }\left( {t}^{n}\right) +</math><math>\Delta t{\mathit{\boldsymbol{U}}}_{\lambda }\left( {t}^{n}\right) +\frac{\Delta {t}^{2}}{2}{\mathit{\boldsymbol{A}}}_{\lambda }\left( {t}^{n}\right) +</math><math>O(\Delta {t}^{3})</math>
134
|}
135
|  style="width: 5px;text-align: right;white-space: nowrap;"|<span id='_Ref527385792'></span>(8)
136
|-
137
| 
138
{| style="text-align: center; margin:auto;width: 100%;"
139
|-
140
| <math>{\mathit{\boldsymbol{U}}}_{\lambda }\left( {t}^{n+1}\right) ={\mathit{\boldsymbol{U}}}_{\lambda }\left( {t}^{n}\right) +</math><math>\frac{\Delta t}{2}\left( {\mathit{\boldsymbol{A}}}_{\lambda }\left( {t}^{n}\right) +\right. </math><math>\left. {\mathit{\boldsymbol{A}}}_{\lambda }\left( {t}^{n+1}\right) \right) +O(\Delta {t}^{3})</math>
141
|}
142
|  style="width: 5px;text-align: right;white-space: nowrap;"|<span id='_Ref527385793'></span>(9)
143
|}
144
145
146
where eq. <span id='cite-_Ref527385792'></span>[[#_Ref527385792|(8)]] is explicit in time and provides the particle position. We can rewrite  eqs. <span id='cite-_Ref527385792'></span>[[#_Ref527385792|(8)]] and <span id='cite-_Ref527385793'></span>[[#_Ref527385793|(9)]] as:
147
148
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
149
|-
150
| 
151
{| style="text-align: center; margin:auto;width: 100%;"
152
|-
153
| <math>{\mathit{\boldsymbol{X}}}_{\lambda }^{n+1}={\mathit{\boldsymbol{X}}}_{\lambda }^{n}+</math><math>\Delta t{\mathit{\boldsymbol{U}}}_{\lambda }^{n}+\frac{\Delta {t}^{2}}{2}{\mathit{\boldsymbol{a}}}^{n}({\mathit{\boldsymbol{X}}}_{\lambda }^{n})</math>
154
|}
155
|  style="width: 5px;text-align: right;white-space: nowrap;"|(10)
156
|-
157
| 
158
{| style="text-align: center; margin:auto;width: 100%;"
159
|-
160
| <math>{\mathit{\boldsymbol{U}}}_{\lambda }^{n+1}={\mathit{\boldsymbol{U}}}_{\lambda }^{n}+</math><math>\frac{\Delta t}{2}\left( {\mathit{\boldsymbol{a}}}^{n}({\mathit{\boldsymbol{X}}}_{\lambda }^{n})+\right. </math><math>\left. {\mathit{\boldsymbol{a}}}^{n+1}({\mathit{\boldsymbol{X}}}_{\lambda }^{n+1})\right)</math> 
161
|}
162
|  style="width: 5px;text-align: right;white-space: nowrap;"|(11)
163
|}
164
165
166
where <math display="inline">{\mathit{\boldsymbol{X}}}_{\lambda }^{n}={\mathit{\boldsymbol{X}}}_{\lambda }\left( {t}^{n}\right)</math> , <math display="inline">{\mathit{\boldsymbol{U}}}_{\lambda }^{n}=</math><math>{\mathit{\boldsymbol{U}}}_{\lambda }\left( {t}^{n}\right)</math> , <math display="inline">{\mathit{\boldsymbol{a}}}^{n}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{n}\right) =</math><math>\mathit{\boldsymbol{a}}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{n},{t}^{n}\right)</math> .
167
168
===4. A Semi-Lagrangian approach for solving the incompressible Navier-Stokes equations===
169
170
====1.1 Lagrangian formulation of the incompressible Navier-Stokes equations====
171
172
The incompressible Navier Stokes equations can be written as:
173
174
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
175
|-
176
| 
177
{| style="text-align: center; margin:auto;width: 100%;"
178
|-
179
| <math>{d}_{t}\mathit{\boldsymbol{u}}\boldsymbol{=-}\mathit{\boldsymbol{\nabla }}\left( \frac{P}{\rho }\right) +</math><math>\nu \Delta \mathit{\boldsymbol{u+f}}</math>
180
|}
181
|  style="width: 5px;text-align: right;white-space: nowrap;"|<span id='_Ref527449161'></span>(12)
182
|-
183
| 
184
{| style="text-align: center; margin:auto;width: 100%;"
185
|-
186
| <math>\mathit{\boldsymbol{\nabla }}\cdot \mathit{\boldsymbol{u}}=0</math>
187
|}
188
|  style="width: 5px;text-align: right;white-space: nowrap;"|<span id='_Ref535921834'></span>(13)
189
|}
190
191
192
Where  <math display="inline">P</math> is the fluid pressure, <math display="inline">\rho</math>  is the fluid density, <math display="inline">\nu</math>  is the kinematic viscosity and <math display="inline">\mathit{\boldsymbol{f}}</math>''' '''are mass forces. Eq. <span id='cite-_Ref527449161'></span>[[#_Ref527449161|(12)]] can be expressed as <math display="inline">{d}_{t}\mathit{\boldsymbol{u=}}\mathit{\boldsymbol{a}}</math>,''' '''where the acceleration field is given by:
193
194
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
195
|-
196
| 
197
{| style="text-align: center; margin:auto;width: 100%;"
198
|-
199
| <math>\mathit{\boldsymbol{a}}\boldsymbol{=-}\mathit{\boldsymbol{\nabla }}\left( \frac{P}{\rho }\right) +</math><math>\nu \Delta \mathit{\boldsymbol{u+f}}</math>
200
|}
201
|  style="width: 5px;text-align: right;white-space: nowrap;"|(14)
202
|}
203
204
205
Solving the Navier Stokes’ equation in a Lagrangian framework by integrating the fluid particles dynamics is not as simple, since the acceleration field depends on the fluid velocity and the pressure. In order to ensure the divergence free condition of the flow field, the pressure must fulfil an integral equation on the domain. This proves to be very complicated when imposing the continuity condition in a Lagrangian framework.
206
207
====1.2 Semi-Lagrangian integration of the incompressible Navier-Stokes equations====
208
209
Below, a Semi-Lagrangian (SL) approach is introduced to overcome the difficulties of estimating the pressure gradient and viscosity terms in a Lagrangian framework. To do so the acceleration field will be obtained in an Eulerian framework by projecting the particle´s velocity field onto the Eulerian space.
210
211
Let <math display="inline">\left\{ \lambda \right\}</math>  be a set of fluid particles. Then the equation of motions can be integrated using the velocity Verlet integrator:
212
213
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
214
|-
215
| 
216
{| style="text-align: center; margin:auto;width: 100%;"
217
|-
218
| <math>{\mathit{\boldsymbol{X}}}_{\lambda }^{n+1}={\mathit{\boldsymbol{X}}}_{\lambda }^{n}+</math><math>\Delta t{\mathit{\boldsymbol{U}}}_{\lambda }^{n}+\frac{\Delta {t}^{2}}{2}{\mathit{\boldsymbol{a}}}^{n}({\mathit{\boldsymbol{X}}}_{\lambda }^{n})</math>
219
|}
220
|  style="width: 5px;text-align: right;white-space: nowrap;"|<span id='_Ref527451108'></span>(15)
221
|-
222
| 
223
{| style="text-align: center; margin:auto;width: 100%;"
224
|-
225
| <math>\frac{{\mathit{\boldsymbol{U}}}_{\lambda }^{n+1}-{\mathit{\boldsymbol{U}}}_{\lambda }^{n}}{\Delta t}=</math><math>\frac{1}{2}\left( {\mathit{\boldsymbol{a}}}^{n}({\mathit{\boldsymbol{X}}}_{\lambda }^{n})+\right. </math><math>\left. {\mathit{\boldsymbol{a}}}^{n+1}({\mathit{\boldsymbol{X}}}_{\lambda }^{n+1})\right)</math> 
226
|}
227
|  style="width: 5px;text-align: right;white-space: nowrap;"|<span id='_Ref527451071'></span>(16)
228
|}
229
230
231
As stated above, this scheme is second order accurate over time. Let´s assume that all variables are known at time <math display="inline">{t}^{n}</math>. Then the new position of the fluid particles at time <math display="inline">{t}^{n+1}</math> can be easily calculated using Eq.<span id='cite-_Ref527451108'></span>[[#_Ref527451108|(15)]]. Reordering Eq. <span id='cite-_Ref527451071'></span>[[#_Ref527451071|(16)]]:
232
233
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
234
|-
235
| 
236
{| style="text-align: center; margin:auto;width: 100%;"
237
|-
238
| <math>{\mathit{\boldsymbol{U}}}_{\lambda }^{n+1,i+1}={\mathit{\boldsymbol{U}}}_{\lambda }^{n+1/2}+</math><math>\frac{\Delta t}{2}{\mathit{\boldsymbol{a}}}^{n+1}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{n+1}\right)</math> 
239
|}
240
|  style="width: 5px;text-align: right;white-space: nowrap;"|<span id='_Ref3545805'></span><span id='_Ref527454686'></span>(17)
241
|}
242
243
244
where <math display="inline">{\mathit{\boldsymbol{U}}}_{\lambda }^{n+1/2}={\mathit{\boldsymbol{U}}}_{\lambda }^{n}+</math><math>\frac{\Delta t}{2}{\mathit{\boldsymbol{a}}}^{n}({\mathit{\boldsymbol{X}}}_{\lambda }^{n})</math>. In order to solve eq. <span id='cite-_Ref527454686'></span>[[#_Ref527454686|(17)]], the term <math display="inline">{\mathit{\boldsymbol{a}}}^{n+1}</math> will be solved in an Eulerian framework. Then an equivalent Eulerian equation is imposed:
245
246
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
247
|-
248
| 
249
{| style="text-align: center; margin:auto;width: 100%;"
250
|-
251
| <math>{\mathit{\boldsymbol{u}}}^{n+1}\left( \mathit{\boldsymbol{x}}\right) ={\mathit{\boldsymbol{u}}}^{n+1/2}\left( \mathit{\boldsymbol{x}}\right) +</math><math>\frac{\Delta t}{2}{\mathit{\boldsymbol{a}}}^{n+1}(\mathit{\boldsymbol{x}})</math>
252
|}
253
|  style="width: 5px;text-align: right;white-space: nowrap;"|<span id='_Ref527457971'></span>(18)
254
|}
255
256
257
Where <math display="inline">{\mathit{\boldsymbol{u}}}^{n+1/2}</math>  is obtained via projection:
258
259
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
260
|-
261
| 
262
{| style="text-align: center; margin:auto;width: 100%;"
263
|-
264
| <math>{\mathit{\boldsymbol{u}}}^{n+1/2}\left( \mathit{\boldsymbol{x}}\right) ={P}_{\left\{ \lambda \right\} }^{n+1}\left[ \left\{ {\mathit{\boldsymbol{U}}}_{\lambda }^{n+1/2}\right\} \right]</math> 
265
|}
266
|  style="width: 5px;text-align: right;white-space: nowrap;"|(19)
267
|}
268
269
270
<math display="inline">{P}_{\left\{ \lambda \right\} }^{n+1}</math> is a projector operator that transfer the values of the variables from the set of particle with positions <math display="inline">\left\{ {\mathit{\boldsymbol{X}}}_{\lambda }^{n+1}\right\}</math>  onto the mesh.
271
272
We now introduce what we call the coherence condition for the projector:
273
274
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
275
|-
276
| 
277
{| style="text-align: center; margin:auto;width: 100%;"
278
|-
279
| <math display="inline">{\psi }^{n+1}\, (\mathit{\boldsymbol{x}})={P}_{\left\{ \lambda \right\} }^{n+1}\left[ \left\{ \psi \left( {\mathit{\boldsymbol{X}}}_{\lambda }^{n+1}\right) \right\} \right]</math> ,
280
|}
281
|  style="width: 5px;text-align: right;white-space: nowrap;"|<span id='_Ref7778240'></span>(20)
282
|}
283
284
285
where <math display="inline">\psi</math>  is an arbitrary variable defined on the Eulerian framework. This condition means that the projection of the nodal values interpolated at the particle´s return the original nodal values. If this condition is fulfilled, then from Eq. <span id='cite-_Ref527457971'></span>[[#_Ref527457971|(18)]] and <span id='cite-_Ref7778240'></span>[[#_Ref7778240|(20)]]:
286
287
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
288
|-
289
| 
290
{| style="text-align: center; margin:auto;width: 100%;"
291
|-
292
| <math>{\mathit{\boldsymbol{u}}}^{n+1}\left( \mathit{\boldsymbol{x}}\right) ={P}_{\left\{ \lambda \right\} }^{n+1}\left[ \left\{ {\mathit{\boldsymbol{U}}}_{\lambda }^{n+1/2}\right\} \right] +</math><math>\frac{\Delta t}{2}{P}_{\left\{ \lambda \right\} }^{n+1}\left[ \left\{ {\mathit{\boldsymbol{a}}}^{n+1}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{n+1}\right) \right\} \right]</math> 
293
|}
294
|  style="width: 5px;text-align: right;white-space: nowrap;"|<span id='_Ref7798820'></span>(21)
295
|}
296
297
298
which is equivalent to say that <math display="inline">\, {\mathit{\boldsymbol{u}}}^{n+1}\left( \mathit{\boldsymbol{x}}\right) =</math><math>{P}_{\left\{ \lambda \right\} }^{n+1}\left[ \left\{ {\mathit{\boldsymbol{U}}}_{\lambda }^{n+1}\right\} \right]</math> . There is another outcome from the fulfilment of the coherence condition. <span id='cite-_Ref7777391'></span>[[#_Ref7777391|Figure 2]] shows the conceptual implementation of a generic SL-PFEM. In general two iterative loops are required to avoid any sort of splitting error. However, if the coherence condition is fulfilled, there is no need of iterating at the outer loop. This is because the correction of the particles´ velocities, given by  <math display="inline">\frac{\Delta t}{2}{\mathit{\boldsymbol{a}}}^{n+1}({\mathit{\boldsymbol{X}}}_{\lambda }^{n+1})</math> , will be projected back to the mesh as it is, with no further need of correction.
299
300
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
301
 [[Image:Draft_Garcia-Espinosa_450194514-image2.jpeg|600px]] </div>
302
303
<div id="_Ref7777391" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
304
<span style="text-align: center; font-size: 75%;">Figure 2: Conceptual description of the SL-PFEM</span></div>
305
306
Eq. <span id='cite-_Ref527457971'></span>[[#_Ref527457971|(18)]] can be solved iteratively by further splitting into:
307
308
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
309
|-
310
| 
311
{| style="text-align: center; margin:auto;width: 100%;"
312
|-
313
| <math>{\hat{\mathit{\boldsymbol{u}}}}^{n+1,i+1}={\mathit{\boldsymbol{u}}}^{n+1/2}+\frac{\Delta t}{2}\left( -\right. </math><math>\left. \nabla \left( \frac{{P}^{n+1,i}}{\rho }\right) +\nu \Delta {\hat{\mathit{\boldsymbol{u}}}}^{n+1,i+1}+\right. </math><math>\left. {\mathit{\boldsymbol{f}}}^{n+1}\right)</math> 
314
|}
315
|  style="width: 5px;text-align: right;white-space: nowrap;"|<span id='_Ref527460900'></span>(22)
316
|-
317
| 
318
{| style="text-align: center; margin:auto;width: 100%;"
319
|-
320
| <math>{\mathit{\boldsymbol{u}}}^{n+1,i+1}-{\hat{\mathit{\boldsymbol{u}}}}^{n+1,i+1}=\frac{\Delta t}{2}\left( -\right. </math><math>\left. \nabla \left( \frac{{P}^{n+1,i+1}}{\rho }\right) +\nabla \left( \frac{{P}^{n+1,i}}{\rho }\right) \right)</math> 
321
|}
322
|  style="width: 5px;text-align: right;white-space: nowrap;"|<span id='_Ref527458693'></span>(23)
323
|}
324
325
326
Where <math display="inline">i</math> is the iteration index. Now in order to obtain the pressure <math display="inline">{P}^{n+1,i+1}</math>, the continuity condition is imposed. Introducing the continuity equation ( <math display="inline">\nabla \cdot {\mathit{\boldsymbol{u}}}^{n+1,i+1}=</math><math>0</math>) into Eq.<span id='cite-_Ref527458693'></span>[[#_Ref527458693|(23)]] and reordering
327
328
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
329
|-
330
| 
331
{| style="text-align: center; margin:auto;width: 100%;"
332
|-
333
| <math>\Delta \left( \frac{{P}^{n+1,i+1}}{\rho }\right) =2\frac{\nabla \cdot {\hat{\mathit{\boldsymbol{u}}}}^{n+1,i+1}}{\Delta t}+</math><math>\Delta \left( \frac{{P}^{n+1,i}}{\rho }\right)</math> 
334
|}
335
|  style="width: 5px;text-align: right;white-space: nowrap;"|<span id='_Ref527460073'></span>(24)
336
|}
337
338
339
Once the iterative process between Eqs. <span id='cite-_Ref527460900'></span>[[#_Ref527460900|(22)]]-<span id='cite-_Ref527458693'></span>[[#_Ref527458693|(23)]] has converged, from eq. <span id='cite-_Ref527457971'></span>[[#_Ref527457971|(18)]] we obtain:
340
341
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
342
|-
343
| 
344
{| style="text-align: center; margin:auto;width: 100%;"
345
|-
346
| <math>{\mathit{\boldsymbol{a}}}^{n+1}\left( \mathit{\boldsymbol{x}}\right) =2\frac{{\mathit{\boldsymbol{u}}}^{n+1}\left( \mathit{\boldsymbol{x}}\right) -{\mathit{\boldsymbol{u}}}^{n+1/2}\left( \mathit{\boldsymbol{x}}\right) }{\Delta t}</math>
347
|}
348
|  style="width: 5px;text-align: right;white-space: nowrap;"|(25)
349
|}
350
351
352
====1.3 The SL-PFEM method for solving the incompressible Navier-Stokes equations====
353
354
In the previous section, a projector operator was introduced to project the particle´s variables onto the Eulerian space. Then, a strategy to solve the acceleration due to the pressure gradient and viscous terms can be formulated in an Eulerian framework.
355
356
The finite element method (FEM) is introduced to solve Eq. <span id='cite-_Ref527460900'></span>[[#_Ref527460900|(22)]] and <span id='cite-_Ref527460073'></span>[[#_Ref527460073|(24)]]. First, we need to discretize it in space using a finite element mesh. Then, any intrinsic dependent variable <math display="inline">\psi</math>  can be expressed as:
357
358
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
359
|-
360
| 
361
{| style="text-align: center; margin:auto;width: 100%;"
362
|-
363
| <math>{\psi }_{h}(\mathit{\boldsymbol{x}})=\sum _{b}^{}{N}^{b}\left( \mathit{\boldsymbol{x}}\right) {\psi }_{b}</math>
364
|}
365
|  style="width: 5px;text-align: right;white-space: nowrap;"|(26)
366
|}
367
368
369
where <math display="inline">\lbrace b\rbrace</math>  is the set of mesh nodes, <math display="inline">{N}^{b}\left( \mathit{\boldsymbol{x}}\right)</math>  are the classic Finite Element (FE) linear shape functions, and <math display="inline">{\psi }_{b}</math> are the nodal values. And let <math display="inline">{\boldsymbol{\psi }}_{h}</math> be the vector of nodal values <math display="inline">{\psi }_{b}</math>.
370
371
Once the spatial discretization is set with a FE mesh, the projector operator must transfer values from particles onto the background mesh following Eq. <span id='cite-_Ref7798820'></span>[[#_Ref7798820|(21)]]:
372
373
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
374
|-
375
| 
376
{| style="text-align: center; margin:auto;width: 100%;"
377
|-
378
| <math>{\boldsymbol{u}}_{h}^{n+1}{=P}_{\left\{ \lambda \right\} }^{n+1}\left[ \left\{ {\mathit{\boldsymbol{U}}}_{\lambda }^{n+1}\right\} \right]</math> 
379
|}
380
|  style="width: 5px;text-align: right;white-space: nowrap;"|(27)
381
|}
382
383
384
Where <math display="inline">{P}_{h,\left\{ \lambda \right\} }</math> must fulfil the condition given in Eq. <span id='cite-_Ref7778240'></span>[[#_Ref7778240|(20)]] leading to:
385
386
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
387
|-
388
| 
389
{| style="text-align: center; margin:auto;width: 100%;"
390
|-
391
| <math>{\mathit{\boldsymbol{a}}}_{h}^{n+1}(\mathit{\boldsymbol{x}})={P}_{h,\left\{ \lambda \right\} }^{n+1}\left[ \left\{ {\mathit{\boldsymbol{a}}}_{h}^{n+1}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{n}\right) \right\} \right]</math> 
392
|}
393
|  style="width: 5px;text-align: right;white-space: nowrap;"|(28)
394
|}
395
396
397
<span id='_Ref6318173'></span>Using the FE Galerkin method as in [<span id='cite-9'></span>[[#9|9]],<span id='cite-10'></span>[[#10|10]]] to solve the variational formulation of Eqs. <span id='cite-_Ref527460900'></span>[[#_Ref527460900|(22)]] and <span id='cite-_Ref527460073'></span>[[#_Ref527460073|(24)]] we get:
398
399
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
400
|-
401
| 
402
{| style="text-align: center; margin:auto;width: 100%;"
403
|-
404
| <math>\left( \overline{\overline{\mathit{\boldsymbol{M}}}}-\frac{\Delta t\nu }{2}\overline{\overline{\mathit{\boldsymbol{L}}}}\right) {\hat{\boldsymbol{u}}}_{h}^{n+1,i+1}=</math><math>\overline{\overline{\mathit{\boldsymbol{M}}}}{\boldsymbol{u}}_{h}^{n+1/2}-\frac{\Delta t}{2\rho }\overline{\overline{\mathit{\boldsymbol{G}}}}{\boldsymbol{P}}_{h}^{n+1,i}+</math><math>\frac{\Delta t}{2}\overline{\overline{\mathit{\boldsymbol{M}}}}{\boldsymbol{F}}_{h}^{n+1,i}</math>
405
|}
406
|  style="width: 5px;text-align: right;white-space: nowrap;"|(29)
407
|-
408
| 
409
{| style="text-align: center; margin:auto;width: 100%;"
410
|-
411
| <math>\overline{\overline{\mathit{\boldsymbol{L}}}}{\boldsymbol{P}}_{h}^{n+1,i+1}=\frac{2\rho }{\Delta t}\overline{\overline{\mathit{\boldsymbol{D}}}}{\hat{\boldsymbol{u}}}_{h}^{n+1,i+1}+</math><math>\overline{\overline{\mathit{\boldsymbol{D}}}}{\overline{\overline{\mathit{\boldsymbol{M}}}}}^{-1}\overline{\overline{\mathit{\boldsymbol{G}}}}{\boldsymbol{P}}_{h}^{n+1,i}</math>
412
|}
413
|  style="width: 5px;text-align: right;white-space: nowrap;"|(30)
414
|}
415
416
417
Where <math display="inline">\overline{\overline{\mathit{\boldsymbol{M}}}}</math> is the FE mass matrix, <math display="inline">\overline{\overline{\mathit{\boldsymbol{L}}}}</math> is the FE Laplacian matrix, <math display="inline">\overline{\overline{\mathit{\boldsymbol{G}}}}</math> is the FE gradient matrix, and <math display="inline">\overline{\overline{\mathit{\boldsymbol{D}}}}</math> is the FE divergence matrix.  Once the iterative loop over <math display="inline">i</math> converges, then the new acceleration field is obtained from Eq. <span id='cite-_Ref527457971'></span>[[#_Ref527457971|(18)]]. The convergence criteria used for the pressure and velocity are:
418
419
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
420
|-
421
| 
422
{| style="text-align: center; margin:auto;width: 100%;"
423
|-
424
| <math>\frac{\left\| {\boldsymbol{P}}_{h}^{n+1,i+1}-{\boldsymbol{P}}_{h}^{n+1,i}\right\| }{\left\| {P}_{max}^{n+1,i+1}-{P}_{min}^{n+1,i+1}\right\| }<0.001</math>
425
|}
426
|  style="width: 5px;text-align: right;white-space: nowrap;"|(31)
427
|-
428
| 
429
{| style="text-align: center; margin:auto;width: 100%;"
430
|-
431
| <math>\frac{\left\| {\left| {\mathit{\boldsymbol{U}}}_{h}\right| }^{n+1,i+1}-{\left| {\mathit{\boldsymbol{U}}}_{h}\right| }^{n+1,i}\right\| }{{\left| \mathit{\boldsymbol{U}}\right| }_{max}}<0.001</math>
432
|}
433
|  style="width: 5px;text-align: right;white-space: nowrap;"|(32)
434
|}
435
436
437
===5. Global least square projector===
438
439
Let <math display="inline">\left\{ {\Psi }_{\lambda }\right\}</math>  be a set of values carried by a set of particles and <math display="inline">\left\{ {\psi }_{b}^{\ast }\right\}</math>  be the set of projected values on the mesh nodes. The projector operator used in this work is based on the minimization of the global least square error. The global least square error is given by:
440
441
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
442
|-
443
| 
444
{| style="text-align: center; margin:auto;width: 100%;"
445
|-
446
| <math>{\epsilon }_{\psi }=\sum _{\lambda }^{}{\left( {\psi }_{h}\left( {\mathit{\boldsymbol{X}}}_{\lambda }\right) -{\Psi }_{\lambda }\right) }^{2}</math>
447
|}
448
|  style="width: 5px;text-align: right;white-space: nowrap;"|(33)
449
|}
450
451
452
where <math display="inline">{\psi }_{h}\left( {\mathit{\boldsymbol{X}}}_{\lambda }\right) =</math><math>\sum _{b}^{}{N}^{b}\left( {\mathit{\boldsymbol{X}}}_{\lambda }\right) {\psi }_{b}^{\ast }</math>
453
454
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
455
|-
456
| 
457
{| style="text-align: center; margin:auto;width: 100%;"
458
|-
459
| <math>{\epsilon }_{\psi }=\sum _{\lambda }^{}{\left( \sum _{b}^{}{N}^{b}\left( {\mathit{\boldsymbol{X}}}_{\lambda }\right) {\psi }_{b}^{\ast }-{\Psi }_{\lambda }\right) }^{2}</math>
460
|}
461
|  style="width: 5px;text-align: right;white-space: nowrap;"|(34)
462
|}
463
464
465
Minimizing the least square error via <math display="inline">\partial {\epsilon }_{\psi }/\partial {\psi }_{b}^{\ast }=</math><math>0</math>:
466
467
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
468
|-
469
| 
470
{| style="text-align: center; margin:auto;width: 100%;"
471
|-
472
| <math>\sum _{\lambda }^{}\left( \sum _{c}^{}{{N}^{b}\left( {\mathit{\boldsymbol{X}}}_{\lambda }\right) N}^{c}\left( {\mathit{\boldsymbol{X}}}_{\lambda }\right) {\psi }_{c}^{\ast }\right) =</math><math>\sum _{\lambda }^{}{N}^{b}\left( {\mathit{\boldsymbol{X}}}_{\lambda }\right) {\Psi }_{\lambda }</math>
473
|}
474
|  style="width: 5px;text-align: right;white-space: nowrap;"|<span id='_Ref503780164'></span>(35)
475
|}
476
477
478
Eq. <span id='cite-_Ref503780164'></span>[[#_Ref503780164|(35)]] represents a linear system of equation with as many unknowns as mesh nodes. This system can be seen as a discrete version of the classic FE projection. Introducing an interpolated field on the particles  <math display="inline">{\Psi }_{\lambda }=</math><math>\sum _{c}^{}{N}^{c}\left( {\mathit{\boldsymbol{X}}}_{\lambda }\right) {\psi }_{c}</math> :
479
480
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
481
|-
482
| 
483
{| style="text-align: center; margin:auto;width: 100%;"
484
|-
485
| <math display="inline">\sum _{\lambda }^{}\left( \sum _{c}^{}{{N}^{b}\left( {\mathit{\boldsymbol{X}}}_{\lambda }\right) N}^{c}\left( {\mathit{\boldsymbol{X}}}_{\lambda }\right) {\psi }_{c}^{\ast }\right) =</math><math>\sum _{\lambda }^{}\left( \sum _{c}^{}{{N}^{b}\left( {\mathit{\boldsymbol{X}}}_{\lambda }\right) N}^{c}\left( {\mathit{\boldsymbol{X}}}_{\lambda }\right) {\psi }_{c}\right)</math> ,
486
|}
487
|  style="width: 5px;text-align: right;white-space: nowrap;"|(36)
488
|}
489
490
491
leading to <math display="inline">{\psi }_{c}^{\ast }={\psi }_{c}</math> and the fulfilment of the coherence condition given in eq. <span id='cite-_Ref7778240'></span>[[#_Ref7778240|(20)]].
492
493
In order to analyse the order of convergence of the projector, let’s assume that the particles values are given by a continuous and smooth function <math display="inline">\psi</math> . Then the equalities <math display="inline">{\Psi }_{\lambda }=</math><math>\psi \left( {\mathit{\boldsymbol{X}}}_{\lambda }\right)</math>  and <math display="inline">\psi \left( {\mathit{\boldsymbol{X}}}_{\lambda }\right) =</math><math>\sum _{c}^{}{N}^{c}\left( {\mathit{\boldsymbol{X}}}_{\lambda }\right) \psi \left( {\mathit{\boldsymbol{x}}}_{c}\right) +</math><math>O({h}_{e}^{2})</math> hold, where <math display="inline">{h}_{e}</math> is the characteristic length of the element where particle <math display="inline">\lambda</math>  is at. Using Eq. <span id='cite-_Ref503780164'></span>[[#_Ref503780164|(35)]]:
494
495
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
496
|-
497
| 
498
{| style="text-align: center; margin:auto;width: 100%;"
499
|-
500
| <math>\sum _{\lambda }^{}{N}^{b}\left( {\mathit{\boldsymbol{X}}}_{\lambda }\right) \left( \sum _{c}^{}{N}^{c}\left( {\mathit{\boldsymbol{X}}}_{\lambda }\right) {\psi }_{c}^{\ast }\right) =</math><math>\sum _{\lambda }^{}{N}^{b}\left( {\mathit{\boldsymbol{X}}}_{\lambda }\right) \left( \sum _{c}^{}{N}^{c}\left( {\mathit{\boldsymbol{X}}}_{\lambda }\right) \psi \left( {\mathit{\boldsymbol{x}}}_{c}\right) \right) +</math><math>\sum _{\lambda }^{}{N}^{b}\left( {\mathit{\boldsymbol{X}}}_{\lambda }\right) O({h}_{e}^{2})</math>
501
|}
502
|  style="width: 5px;text-align: right;white-space: nowrap;"|<span id='_Ref531339507'></span>(37)
503
|}
504
505
506
And, the solution to eq. <span id='cite-_Ref531339507'></span>[[#_Ref531339507|(37)]] can be expressed as:
507
508
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
509
|-
510
| 
511
{| style="text-align: center; margin:auto;width: 100%;"
512
|-
513
| <math>{\psi }_{c}^{\ast }=\psi \left( {\mathit{\boldsymbol{x}}}_{c}\right) +\delta {\psi }_{c}</math>
514
|}
515
|  style="width: 5px;text-align: right;white-space: nowrap;"|(38)
516
|}
517
518
519
Where <math display="inline">\delta {\psi }_{c}</math> is the solution of:
520
521
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
522
|-
523
| 
524
{| style="text-align: center; margin:auto;width: 100%;"
525
|-
526
| <math>\sum _{\lambda }^{}{N}^{b}\left( {\mathit{\boldsymbol{X}}}_{\lambda }\right) \left( \sum _{c}^{}{N}^{c}\left( {\mathit{\boldsymbol{X}}}_{\lambda }\right) \delta {\psi }_{c}\right) =</math><math>\sum _{\lambda }^{}{N}^{b}\left( {\mathit{\boldsymbol{X}}}_{\lambda }\right) O({h}_{e}^{2})</math>
527
|}
528
|  style="width: 5px;text-align: right;white-space: nowrap;"|(39)
529
|}
530
531
532
Then, the projected value converges with second order accuracy in space:
533
534
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
535
|-
536
| 
537
{| style="text-align: center; margin:auto;width: 100%;"
538
|-
539
| <math>{\psi }_{c}^{\ast }=\psi \left( {\mathit{\boldsymbol{x}}}_{c}\right) +O({h}_{e}^{2})</math>
540
|}
541
|  style="width: 5px;text-align: right;white-space: nowrap;"|(40)
542
|}
543
544
545
===6. Error accumulation in the SL-PFEM===
546
547
SL-PFEM methods are prone to accumulate errors as information is passed from the Lagrangian particles onto the background mesh and vice-versa. Those errors are originated in the projection and interpolation steps. And the accumulation of those errors could lead to several undesired effects such as the degradation of the rate of convergence of the numerical scheme, and the incapability to reach a steady state solution. This section aims at demonstrating that the rate of convergence of the proposed scheme is not degraded due to this phenomenon and that second order convergence can be achieved.
548
549
Given a velocity field <math display="inline">\mathit{\boldsymbol{u}}\left( \mathit{\boldsymbol{x}},{t}^{n}\right) =</math><math>{\mathit{\boldsymbol{u}}}^{n}\left( \mathit{\boldsymbol{x}}\right)</math>  and the corresponding acceleration field <math display="inline">\mathit{\boldsymbol{a}}\left( \mathit{\boldsymbol{x}},{t}^{n}\right) =</math><math>{\mathit{\boldsymbol{a}}}^{n}\left( \mathit{\boldsymbol{x}}\right) ={d}_{t}{\mathit{\boldsymbol{u}}}^{n}\left( \mathit{\boldsymbol{x}}\right)</math> , and a set of particles with initial condition <math display="inline">{\mathit{\boldsymbol{U}}}_{\lambda }^{0}=</math><math>{\mathit{\boldsymbol{u}}}^{0}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{0}\right)</math> , the velocity Verlet algorithm estimates the velocity and position at <math display="inline">{t}^{n}=</math><math>n\Delta t</math> with second order convergence:
550
551
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
552
|-
553
| 
554
{| style="text-align: center; margin:auto;width: 100%;"
555
|-
556
| <math>{\hat{\mathit{\boldsymbol{X}}}}_{\lambda }^{n+1}={\hat{\mathit{\boldsymbol{X}}}}_{\lambda }^{n}+</math><math>\Delta t{\hat{\mathit{\boldsymbol{U}}}}_{\lambda }^{n}+\frac{\Delta {t}^{2}}{2}{\mathit{\boldsymbol{a}}}^{n}\left( {\hat{\mathit{\boldsymbol{X}}}}_{\lambda }^{n}\right) =</math><math>{\mathit{\boldsymbol{X}}}_{\lambda }^{n+1}+O\left( {t}^{n}\Delta {t}^{2}\right)</math> 
557
|}
558
|  style="width: 5px;text-align: right;white-space: nowrap;"|<span id='_Ref3283373'></span>(41)
559
|-
560
| 
561
{| style="text-align: center; margin:auto;width: 100%;"
562
|-
563
| <math>{\hat{\mathit{\boldsymbol{U}}}}_{\lambda }^{n+1}={\hat{\mathit{\boldsymbol{U}}}}_{\lambda }^{n}+</math><math>\frac{\Delta {t}^{2}}{2}\left( {\mathit{\boldsymbol{a}}}^{n}\left( {\hat{\mathit{\boldsymbol{X}}}}_{\lambda }^{n}\right) +\right. </math><math>\left. {\mathit{\boldsymbol{a}}}^{n\mathit{\boldsymbol{+1}}}\left( {\hat{\mathit{\boldsymbol{X}}}}_{\lambda }^{n+1}\right) \right) =</math><math>{\mathit{\boldsymbol{u}}}^{n+1}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{n+1}\right) +</math><math>O\left( {t}^{n}\Delta {t}^{2}\right)</math> 
564
|}
565
|  style="width: 5px;text-align: right;white-space: nowrap;"|<span id='_Ref3283374'></span>(42)
566
|}
567
568
569
Now, we will evaluate the error accumulation over time, by estimating the error in the Lagrangian integration of a given acceleration field and subsequent mesh projection-interpolation. Let us consider a space discretization using a FE mesh, in which the given acceleration field is approximated by an interpolated field, as follows:
570
571
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
572
|-
573
| 
574
{| style="text-align: center; margin:auto;width: 100%;"
575
|-
576
| <math>{\mathit{\boldsymbol{a}}}_{h}^{n}\left( \mathit{\boldsymbol{x}}\right) =\sum _{b}^{}{N}^{b}\left( \mathit{\boldsymbol{x}}\right) \mathit{\boldsymbol{a}}\mathit{\boldsymbol{(}}{\mathit{\boldsymbol{x}}}_{b}\mathit{\boldsymbol{,}}{t}^{n}\mathit{\boldsymbol{)}}=</math><math>\sum _{b}^{}{N}^{b}\left( \mathit{\boldsymbol{x}}\right) {\mathit{\boldsymbol{a}}}_{b}^{n}</math>
577
|}
578
|  style="width: 5px;text-align: right;white-space: nowrap;"|(43)
579
|}
580
581
582
The velocity at the mesh nodes is initiated from the initial particle velocity <math display="inline">{\mathit{\boldsymbol{U}}}_{\lambda }^{0}</math>''' '''through the projection:
583
584
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
585
|-
586
| 
587
{| style="text-align: center; margin:auto;width: 100%;"
588
|-
589
| <math>\left\{ {\hat{\mathit{\boldsymbol{u}}}}_{b}^{0}\right\} ={P}_{\left\{ \lambda \right\} }^{0}\left[ \left\{ {\mathit{\boldsymbol{U}}}_{\lambda }^{0}\right\} \right] =</math><math>{P}_{\left\{ \lambda \right\} }^{0}\left[ \left\{ {\mathit{\boldsymbol{u}}}^{0}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{0}\right) \right\} \right] =</math><math>\left\{ {\mathit{\boldsymbol{u}}}_{b}^{0}+{\boldsymbol{\epsilon }}^{P,0}\right\}</math> 
590
|}
591
|  style="width: 5px;text-align: right;white-space: nowrap;"|(44)
592
|}
593
594
595
Where <math display="inline">{\boldsymbol{\epsilon }}^{P,0}</math> is the projection error. The projected velocity is then interpolated back to the particles using the projected values:
596
597
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
598
|-
599
| 
600
{| style="text-align: center; margin:auto;width: 100%;"
601
|-
602
| <math>{\hat{\mathit{\boldsymbol{u}}}}_{}^{0}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{0}\right) =</math><math>\sum _{b}^{}{N}^{b}\left( \mathit{\boldsymbol{x}}\right) {\hat{\mathit{\boldsymbol{u}}}}_{b}^{0}=</math><math>\sum _{b}^{}{N}^{b}\left( \mathit{\boldsymbol{x}}\right) \left( {\mathit{\boldsymbol{u}}}_{b}^{0}+{\boldsymbol{\epsilon }}^{P,0}\right) =</math><math>{\mathit{\boldsymbol{u}}}_{h}^{0}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{0}\right) +</math><math>{\boldsymbol{\epsilon }}_{h}^{P,0}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{0}\right)</math> 
603
|}
604
|  style="width: 5px;text-align: right;white-space: nowrap;"|(45)
605
|}
606
607
608
Then the interpolation error has to be taken into account (both for the velocity and acceleration):
609
610
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
611
|-
612
| 
613
{| style="text-align: center; margin:auto;width: 100%;"
614
|-
615
| <math>{\mathit{\boldsymbol{u}}}_{h}^{0}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{0}\right) =</math><math>{\mathit{\boldsymbol{u}}}^{0}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{0}\right) +</math><math>{\boldsymbol{\epsilon }}_{h}^{u,0}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{0}\right)</math>
616
617
<math>{\mathit{\boldsymbol{a}}}_{h}^{0}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{0}\right) =</math><math>{\mathit{\boldsymbol{a}}}^{0}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{0}\right) +</math><math>{\boldsymbol{\epsilon }}_{h}^{a,0}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{0}\right)</math> 
618
|}
619
|  style="width: 5px;text-align: right;white-space: nowrap;"|(46)
620
|}
621
622
623
Finally, the Verlet integrator is used to obtain the particles’ position and velocities:
624
625
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
626
|-
627
| 
628
{| style="text-align: center; margin:auto;width: 100%;"
629
|-
630
| <math>{\tilde{\mathit{\boldsymbol{X}}}}_{\mathit{\boldsymbol{\lambda }}}^{\mathit{\boldsymbol{1}}}=</math><math>{\mathit{\boldsymbol{X}}}_{\lambda }^{0}+\Delta t{\mathit{\boldsymbol{u}}}^{0}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{0}\right) +</math><math>\Delta t{\epsilon }^{\mathit{\boldsymbol{u}},0}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{0}\right) +</math><math>\Delta t{\boldsymbol{\epsilon }}_{h}^{P,0}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{0}\right) +</math><math>\frac{\Delta {t}^{2}}{2}{\mathit{\boldsymbol{a}}}^{0}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{0}\right) +</math><math>\frac{\Delta {t}^{2}}{2}{\epsilon }^{\mathit{\boldsymbol{a}},0}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{0}\right)</math> 
631
|}
632
|  style="width: 5px;text-align: right;white-space: nowrap;"|(47)
633
|-
634
| 
635
{| style="text-align: center; margin:auto;width: 100%;"
636
|-
637
| <math>{\tilde{\mathit{\boldsymbol{U}}}}_{\lambda }^{1}={\mathit{\boldsymbol{U}}}_{\lambda }^{0}+</math><math>\frac{\Delta t}{2}\left( {\mathit{\boldsymbol{a}}}^{0}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{0}\right) +\right. </math><math>\left. {\mathit{\boldsymbol{a}}}^{1}\left( {\tilde{\mathit{\boldsymbol{X}}}}_{\mathit{\boldsymbol{\lambda }}}^{\mathit{\boldsymbol{1}}}\right) \right) +</math><math>\frac{\Delta t}{2}\left( {\epsilon }^{\mathit{\boldsymbol{a}},0}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{0}\right) +\right. </math><math>\left. {\epsilon }^{\mathit{\boldsymbol{a}},1}\left( {\tilde{\mathit{\boldsymbol{X}}}}_{\mathit{\boldsymbol{\lambda }}}^{\mathit{\boldsymbol{1}}}\right) \right)</math> 
638
|}
639
|  style="width: 5px;text-align: right;white-space: nowrap;"|(48)
640
|}
641
642
643
Considering that the projector and the interpolator are second order accurate, and using Eq. <span id='cite-_Ref527385792'></span>[[#_Ref527385792|(8)]]-<span id='cite-_Ref527385793'></span>[[#_Ref527385793|(9)]]:
644
645
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
646
|-
647
| 
648
{| style="text-align: center; margin:auto;width: 100%;"
649
|-
650
| <math>{\tilde{\mathit{\boldsymbol{X}}}}_{\mathit{\boldsymbol{\lambda }}}^{\mathit{\boldsymbol{1}}}=</math><math>+++</math>
651
|}
652
|  style="width: 5px;text-align: right;white-space: nowrap;"|(49)
653
|-
654
| 
655
{| style="text-align: center; margin:auto;width: 100%;"
656
|-
657
| <math>{\tilde{\mathit{\boldsymbol{U}}}}_{\mathit{\boldsymbol{\lambda }}}^{\mathit{\boldsymbol{1}}}=</math><math>++</math>
658
|}
659
|  style="width: 5px;text-align: right;white-space: nowrap;"|(50)
660
|}
661
662
663
Which reads:
664
665
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
666
|-
667
| 
668
{| style="text-align: center; margin:auto;width: 100%;"
669
|-
670
| <math>{\tilde{\mathit{\boldsymbol{X}}}}_{\mathit{\boldsymbol{\lambda }}}^{\mathit{\boldsymbol{1}}}=</math><math>{\hat{\mathit{\boldsymbol{X}}}}_{\mathit{\boldsymbol{\lambda }}}^{\mathit{\boldsymbol{1}}}+</math><math>\Delta tO\left( {h}_{e}^{2}\right) ={\mathit{\boldsymbol{X}}}_{\lambda }^{1}+</math><math>O\left( \Delta {t}^{3}\right) +O({h}_{e}^{2}\Delta t)</math>
671
|}
672
|  style="width: 5px;text-align: right;white-space: nowrap;"|<span id='_Ref3284803'></span>(51)
673
|-
674
| 
675
{| style="text-align: center; margin:auto;width: 100%;"
676
|-
677
| <math>{\tilde{\mathit{\boldsymbol{U}}}}_{\mathit{\boldsymbol{\lambda }}}^{\mathit{\boldsymbol{1}}}=</math><math>{\hat{\mathit{\boldsymbol{U}}}}_{\mathit{\boldsymbol{\lambda }}}^{\mathit{\boldsymbol{1}}}+</math><math>\Delta t\mathit{\boldsymbol{O}}\left( {h}_{e}^{2}\right) =</math><math>{\mathit{\boldsymbol{U}}}_{\mathit{\boldsymbol{\lambda }}}^{\mathit{\boldsymbol{1}}}+</math><math>O\left( \Delta {t}^{3}\right) +O\mathit{\boldsymbol{(}}{h}_{e}^{2}\Delta t\mathit{\boldsymbol{)}}</math>
678
|}
679
|  style="width: 5px;text-align: right;white-space: nowrap;"|<span id='_Ref3284805'></span>(52)
680
|}
681
682
683
Eqs. <span id='cite-_Ref3284803'></span>[[#_Ref3284803|(51)]]-<span id='cite-_Ref3284805'></span>[[#_Ref3284805|(52)]] show that the error for the first time step is <math display="inline">O\left( \Delta {t}^{3}\right) +</math><math>O({h}_{e}^{2}\Delta t)</math>. It is straightforward to show that the resulting errors for the following time steps are those related to the accumulation, which reads:
684
685
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
686
|-
687
| 
688
{| style="text-align: center; margin:auto;width: 100%;"
689
|-
690
| <math>{\tilde{\mathit{\boldsymbol{X}}}}_{\mathit{\boldsymbol{\lambda }}}^{n+1}=</math><math>{\mathit{\boldsymbol{X}}}_{\lambda }^{n}+\left( n+1\right) O\left( \Delta {t}^{3}\right) +</math><math>\left( n+1\right) O\left( {h}_{e}^{2}\Delta t\right) ={\mathit{\boldsymbol{X}}}_{\lambda }^{n}+</math><math>{t}^{n+1}\left( O\left( \Delta {t}^{2}\right) +O\left( {h}_{e}^{2}\right) \right)</math> 
691
|}
692
|  style="width: 5px;text-align: right;white-space: nowrap;"|(53)
693
|-
694
| 
695
{| style="text-align: center; margin:auto;width: 100%;"
696
|-
697
| <math>{\tilde{\mathit{\boldsymbol{U}}}}_{\mathit{\boldsymbol{\lambda }}}^{n+1}=</math><math>{\mathit{\boldsymbol{U}}}_{\mathit{\boldsymbol{\lambda }}}^{n}+</math><math>(n+1)O\left( \Delta {t}^{3}\right) +(n+1)O\mathit{\boldsymbol{(}}{h}_{e}^{2}\Delta t\mathit{\boldsymbol{)}}=</math><math>{\mathit{\boldsymbol{U}}}_{\lambda }^{n}+{t}^{n+1}\left( O\left( \Delta {t}^{2}\right) +\right. </math><math>\left. O\left( {h}_{e}^{2}\right) \right)</math> 
698
|}
699
|  style="width: 5px;text-align: right;white-space: nowrap;"|(54)
700
|}
701
702
703
resulting in a second order scheme in space and time.
704
705
It is obvious that, when solving the Navier-Stokes equations, the exact acceleration field is not known. On the contrary, it must be estimated. In this work, a FE Galerkin method is used to solve the pressure and viscous terms, which is a second order accurate method [<span id='cite-_Ref6318173'></span>[[#_Ref6318173|9]]]. Then, this error is also interpolated to the particles and has to be added to the interpolation error considered previously. However, this error does not degrades the rate of convergence of the method since it is second order, too.
706
707
As a conclusion, the accumulated error of the projected velocity is:
708
709
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
710
|-
711
| 
712
{| style="text-align: center; margin:auto;width: 100%;"
713
|-
714
| <math>\left\{ {\hat{\boldsymbol{u}}}_{b}^{n+1}\right\} ={P}_{\left\{ \lambda \right\} }^{n}\left[ \left\{ {\tilde{\mathit{\boldsymbol{U}}}}_{\mathit{\boldsymbol{\lambda }}}^{n+1}\right\} \right] =</math><math>{P}_{\left\{ \lambda \right\} }^{0}\left[ \left\{ {\mathit{\boldsymbol{U}}}_{\mathit{\boldsymbol{\lambda }}}^{n+1}+\right. \right. </math><math>\left. \left. {t}^{n}\left( O\left( \Delta {t}^{2}\right) +O\left( {h}_{e}^{2}\right) \right) \right\} \right]</math> 
715
|}
716
|  style="width: 5px;text-align: right;white-space: nowrap;"|(55)
717
|}
718
719
720
Then:
721
722
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
723
|-
724
| 
725
{| style="text-align: center; margin:auto;width: 100%;"
726
|-
727
| <math>\left\{ {\hat{\mathit{\boldsymbol{u}}}}_{b}^{n+1}\right\} =\left\{ {\mathit{\boldsymbol{u}}}_{b}^{n+1}\right\} +</math><math>+</math>
728
|}
729
|  style="width: 5px;text-align: right;white-space: nowrap;"|(56)
730
|}
731
732
733
===7. Convergence analyses===
734
735
This section presents different examples showing the rate of convergence of the SL-PFEM presented.
736
737
<span id='_Ref3285335'></span>
738
739
====1.4 Linear wave trajectories====
740
741
As it was pointed out in the introduction, for non-dominant convective flows the explicit streamlines computed at the beginning of the time step are not good approximants to pathlines and therefore small time steps are required to achieve accurate results [<span id='cite-_Ref532897341'></span>[[#_Ref532897341|5]]]. The flow field induced by a linear wave is a good example used to demonstrate this point. And, if information regarding the acceleration is introduced, the required time step can be increased (see <span id='cite-_Ref532897315'></span>[[#_Ref532897315|Figure 1]]).
742
743
In this section, the velocity Verlet algorithm is used to estimate the trajectory of a particle moving in the acceleration field induced by the velocities of a linear wave. The 2D velocity potential of an Airy wave with mean free surface located at <math display="inline">y=</math><math>0</math> is given by:
744
745
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
746
|-
747
| 
748
{| style="text-align: center; margin:auto;width: 100%;"
749
|-
750
| <math>\phi (x,y,t)=\frac{Ag}{\omega }\frac{\mathrm{cosh}\,\left( K\left( H+y\right) \right) }{\mathrm{cosh}\,\left( KH\right) }\mathrm{sin}\,(Kx-</math><math>\omega t)</math>
751
|}
752
|  style="width: 5px;text-align: right;white-space: nowrap;"|(57)
753
|}
754
755
756
Where <math display="inline">\phi</math>  is the velocity potential, <math display="inline">A</math> is the wave amplitude, <math display="inline">K=</math><math>2\pi /L</math> is the wave number and <math display="inline">L</math> is the wave length, <math display="inline">H</math> is the water depth, <math display="inline">\omega =</math><math>2\pi /T</math> is the wave angular frequency and <math display="inline">T</math> is the wave period, <math display="inline">x</math> and <math display="inline">y</math> are the vertical and horizontal spatial coordinates, <math display="inline">t</math> is time. The velocity field is obtained as the gradient of the velocity potential <math display="inline">({u}_{x},{u}_{y})=</math><math>\left( {\phi }_{x},{\phi }_{y}\right)</math> . Then, the corresponding acceleration field is obtained via <math display="inline">\left( {a}_{x},{a}_{y}\right) =</math><math>{d}_{t}({u}_{x},{u}_{y})</math>. <span id='cite-_Ref532897315'></span>[[#_Ref532897315|Figure 1]] shows the velocity field induced by a linear wave. Using the velocity Verlet integrator we obtain the following equations for the position of the particle and its velocity components:
757
758
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
759
|-
760
| 
761
{| style="text-align: center; margin:auto;width: 100%;"
762
|-
763
| <math>{X}_{\lambda }^{n+1}={X}_{\lambda }^{n}+\Delta t{\phi }_{x}({\mathit{\boldsymbol{X}}}_{\lambda }^{n},{t}^{n})+</math><math>\frac{\Delta {t}^{2}}{2}\left( {\phi }_{xt}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{n},{t}^{n}\right) +\right. </math><math>\left. {\phi }_{x}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{n},{t}^{n}\right) {\phi }_{xx}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{n},{t}^{n}\right) +\right. </math><math>\left. {\phi }_{y}({\mathit{\boldsymbol{X}}}_{\lambda }^{n},{t}^{n}){\phi }_{xy}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{n},{t}^{n}\right) \right)</math> 
764
|}
765
|  style="width: 5px;text-align: right;white-space: nowrap;"|(58)
766
|-
767
| 
768
{| style="text-align: center; margin:auto;width: 100%;"
769
|-
770
| <math>{Y}_{\lambda }^{n+1}={Y}_{\lambda }^{n}+\Delta t{\phi }_{y}({\mathit{\boldsymbol{X}}}_{\lambda }^{n},{t}^{n})+</math><math>\frac{\Delta {t}^{2}}{2}\left( {\phi }_{yt}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{n},{t}^{n}\right) +\right. </math><math>\left. {\phi }_{x}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{n},{t}^{n}\right) {\phi }_{yx}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{n},{t}^{n}\right) +\right. </math><math>\left. {\phi }_{y}({\mathit{\boldsymbol{X}}}_{\lambda }^{n},{t}^{n}){\phi }_{yy}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{n},{t}^{n}\right) \right)</math> 
771
|}
772
|  style="width: 5px;text-align: right;white-space: nowrap;"|(59)
773
|-
774
| 
775
{| style="text-align: center; margin:auto;width: 100%;"
776
|-
777
| <math>\frac{{U}_{\lambda }^{n+1}-{U}_{\lambda }^{n}}{\Delta t}=\frac{1}{2}\left( {\phi }_{xt}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{n},{t}^{n}\right) +\right. </math><math>\left. {\phi }_{x}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{n},{t}^{n}\right) {\phi }_{xx}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{n},{t}^{n}\right) +\right. </math><math>\left. {\phi }_{y}({\mathit{\boldsymbol{X}}}_{\lambda }^{n},{t}^{n}){\phi }_{xy}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{n},{t}^{n}\right) \right) +</math><math>\frac{1}{2}\left( {\phi }_{xt}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{n+1},{t}^{n+1}\right) +\right. </math><math>\left. {\phi }_{x}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{n+1},{t}^{n+1}\right) {\phi }_{xx}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{n+1},{t}^{n+1}\right) +\right. </math><math>\left. {\phi }_{y}({\mathit{\boldsymbol{X}}}_{\lambda }^{n+1},{t}^{n+1}){\phi }_{xy}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{n+1},{t}^{n+1}\right) \right)</math> 
778
|}
779
|  style="width: 5px;text-align: right;white-space: nowrap;"|(60)
780
|-
781
| 
782
{| style="text-align: center; margin:auto;width: 100%;"
783
|-
784
| <math>\frac{{V}_{\lambda }^{n+1}-{V}_{\lambda }^{n}}{\Delta t}=\frac{1}{2}\left( {\phi }_{yt}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{n},{t}^{n}\right) +\right. </math><math>\left. {\phi }_{y}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{n},{t}^{n}\right) {\phi }_{yx}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{n},{t}^{n}\right) +\right. </math><math>\left. {\phi }_{y}({\mathit{\boldsymbol{X}}}_{\lambda }^{n},{t}^{n}){\phi }_{yy}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{n},{t}^{n}\right) \right) +</math><math>\frac{1}{2}\left( {\phi }_{yt}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{n+1},{t}^{n+1}\right) +\right. </math><math>\left. {\phi }_{y}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{n+1},{t}^{n+1}\right) {\phi }_{yx}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{n+1},{t}^{n+1}\right) +\right. </math><math>\left. {\phi }_{y}({\mathit{\boldsymbol{X}}}_{\lambda }^{n+1},{t}^{n+1}){\phi }_{yy}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{n+1},{t}^{n+1}\right) \right)</math> 
785
|}
786
|  style="width: 5px;text-align: right;white-space: nowrap;"|(61)
787
|}
788
789
790
The velocity Verlet has been used to estimate the particle trajectory due to a linear wave with <math display="inline">A=</math><math>0.01m</math>, <math display="inline">H=0.1m</math>, <math display="inline">L=1m</math>, and <math display="inline">T=</math><math>1.0726s</math> and with initial position <math display="inline">{x}_{0}=0.5m</math> and <math display="inline">{y}_{0}=</math><math>-0.02m</math>. The trajectory has been estimated for several time steps ( <math display="inline">\Delta t=</math><math>T/10</math>, <math display="inline">\, \Delta t=T/20</math>, <math display="inline">\, \Delta t=</math><math>T/40</math>, and <math display="inline">\, \Delta t=T/80</math>), using the analytical solution for the initial velocity. <span id='cite-_Ref531086640'></span>[[#_Ref531086640|Figure 3]] compares the analytical solution of the trajectory for one wave period with the numerical ones. Comparing the final position of the analytical solution and the numerical ones, an error estimate is obtained. We use this error to carry out a convergence analysis (<span id='cite-_Ref7188370'></span>[[#_Ref7188370|Table '''1''']]).
791
792
[[Image:Draft_Garcia-Espinosa_450194514-image3.jpeg|600px]]
793
794
<div id="_Ref531086640" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
795
<span style="text-align: center; font-size: 75%;">Figure 3: Particle trajectory integration in the wave problem using the velocity Verlet algorithm. Black solid line represents the analytical solution. Red dots represent de numerical solution for </span> <math display="inline">\boldsymbol{\Delta }\mathit{\boldsymbol{t=T/5}}</math><span style="text-align: center; font-size: 75%;">,</span> <math display="inline">\boldsymbol{\, \Delta }\mathit{\boldsymbol{t=T/10}}</math><span style="text-align: center; font-size: 75%;">,</span> <math display="inline">\boldsymbol{\, \Delta }\mathit{\boldsymbol{t=T/20}}</math><span style="text-align: center; font-size: 75%;">,</span> <math display="inline">\boldsymbol{\, \Delta }\mathit{\boldsymbol{t=T/40}}</math><span style="text-align: center; font-size: 75%;">, and </span> <math display="inline">\boldsymbol{\, \Delta }\mathit{\boldsymbol{t=T/80}}</math><span style="text-align: center; font-size: 75%;">.</span></div>
796
797
<span id='_Ref7188370'></span><span id='_Ref7188358'></span><div id="_Ref7188365" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
798
<span style="text-align: center; font-size: 75%;">Table 1: Values and errors for the position and velocity of a particle at </span> <math display="inline">=</math><math>\mathit{\boldsymbol{T}}</math><span style="text-align: center; font-size: 75%;"> .</span></div>
799
800
{| style="width: 100%;margin: 1em auto 0.1em auto;border-collapse: collapse;" 
801
|-
802
|  style="border: 1pt solid black;text-align: center;"|
803
|  style="border: 1pt solid black;text-align: center;"|<math>x(T)</math>
804
|  style="border: 1pt solid black;text-align: center;"|<math>y(T)</math>
805
|  style="border: 1pt solid black;text-align: center;"|<math display="inline">Error</math> X
806
|  style="border: 1pt solid black;text-align: center;"|vx(T)
807
|  style="border: 1pt solid black;text-align: center;"|vy(T)
808
|  style="border: 1pt solid black;text-align: center;"|Error V
809
|-
810
|  style="border: 1pt solid black;text-align: center;"|Analytical
811
|  style="border: 1pt solid black;text-align: center;"|0.508308
812
|  style="border: 1pt solid black;text-align: center;"|-0.020000
813
|  style="border: 1pt solid black;text-align: center;"|
814
|  style="border: 1pt solid black;text-align: center;vertical-align: bottom;"|-0.09850702
815
|  style="border: 1pt solid black;text-align: center;vertical-align: bottom;"|-0.00238937
816
|  style="border: 1pt solid black;text-align: center;"|
817
|-
818
|  style="border: 1pt solid black;text-align: center;"|<math>\Delta t=T/10</math>
819
|  style="border: 1pt solid black;text-align: center;"|0.503153
820
|  style="border: 1pt solid black;text-align: center;"|-0.020397
821
|  style="border: 1pt solid black;text-align: center;"|0.00517037
822
|  style="border: 1pt solid black;text-align: center;vertical-align: bottom;"|-0.09850997
823
|  style="border: 1pt solid black;text-align: center;vertical-align: bottom;"|-0.00178868
824
|  style="border: 1pt solid black;text-align: center;"|0.00060070
825
|-
826
|  style="border: 1pt solid black;text-align: center;"|<math>\Delta t=T/20</math>
827
|  style="border: 1pt solid black;text-align: center;"|0.507039
828
|  style="border: 1pt solid black;text-align: center;"|-0.020091
829
|  style="border: 1pt solid black;text-align: center;"|0.00127241
830
|  style="border: 1pt solid black;text-align: center;vertical-align: bottom;"|-0.09851727
831
|  style="border: 1pt solid black;text-align: center;vertical-align: bottom;"|-0.00222848
832
|  style="border: 1pt solid black;text-align: center;"|0.00016122
833
|-
834
|  style="border: 1pt solid black;text-align: center;"|<math>\Delta t=T/40</math>
835
|  style="border: 1pt solid black;text-align: center;"|0.507992
836
|  style="border: 1pt solid black;text-align: center;"|-0.020015
837
|  style="border: 1pt solid black;text-align: center;"|0.00031649
838
|  style="border: 1pt solid black;text-align: center;vertical-align: bottom;"|-0.09851019
839
|  style="border: 1pt solid black;text-align: center;vertical-align: bottom;"|-0.00234849
840
|  style="border: 1pt solid black;text-align: center;"|0.00004100
841
|-
842
|  style="border: 1pt solid black;text-align: center;"|<math>\Delta t=T/80</math>
843
|  style="border: 1pt solid black;text-align: center;"|0.508229
844
|  style="border: 1pt solid black;text-align: center;"|-0.019997
845
|  style="border: 1pt solid black;text-align: center;"|7.9029E-05
846
|  style="border: 1pt solid black;text-align: center;vertical-align: bottom;"|-0.09850785
847
|  style="border: 1pt solid black;text-align: center;vertical-align: bottom;"|-0.00237911
848
|  style="border: 1pt solid black;text-align: center;"|0.00001029
849
|}
850
851
852
Now, we will integrate Eqs. <span id='cite-_Ref7798987'></span>[[#_Ref7798987|(1)]]-<span id='cite-_Ref7798989'></span>[[#_Ref7798989|(2)]] using the semi-Lagrangian approach given the acceleration field induced by a linear wave. The acceleration and velocities at the mesh nodes ( <math display="inline">{\mathit{\boldsymbol{a}}}_{h}^{0}</math> and <math display="inline">{\mathit{\boldsymbol{u}}}_{h}^{0}</math>)  are initialized with the analytical values. The particle’s initial velocities and accelerations are interpolated from the mesh initial values ( <math display="inline">{\mathit{\boldsymbol{U}}}_{\lambda }^{0}=</math><math>{\mathit{\boldsymbol{u}}}_{h}^{0}\left( {\mathit{\boldsymbol{X}}}_{\lambda }^{0}\right)</math>  and <math display="inline">{\mathit{\boldsymbol{A}}}_{\lambda }^{0}=</math><math>{\mathit{\boldsymbol{a}}}_{h}^{0}({\mathit{\boldsymbol{X}}}_{\lambda }^{0})</math>) . Afterwards, during the simulation the acceleration field is imposed on the mesh nodes and interpolated at the particles, while the velocities are obtained via the semi-Lagrangian approach. The algorithm reads as follows:
853
854
Step 1: Move particles from <math display="inline">t=n\Delta t</math> to <math display="inline">t=</math><math>\left( n+1\right) \Delta t</math>:
855
{| class="formulaSCP" style="width: 100%; text-align: center;" 
856
|-
857
| <math>{\mathit{\boldsymbol{X}}}_{\lambda }^{n+1}={\mathit{\boldsymbol{X}}}_{\lambda }^{n}+</math><math>\Delta t{\mathit{\boldsymbol{u}}}_{h}^{n}({\mathit{\boldsymbol{X}}}_{\lambda }^{n})+</math><math>\frac{\Delta {t}^{2}}{2}{\mathit{\boldsymbol{a}}}_{h}^{n}({\mathit{\boldsymbol{X}}}_{\lambda }^{n})</math>
858
|}
859
860
861
Step 2: Interpolate the particle’s acceleration at the new position:
862
{| class="formulaSCP" style="width: 100%; text-align: center;" 
863
|-
864
| <math>{\mathit{\boldsymbol{A}}}_{\lambda }^{n+1}={\mathit{\boldsymbol{a}}}_{h}^{n+1}({\mathit{\boldsymbol{X}}}_{\lambda }^{n+1})</math>
865
|}
866
867
868
Step 3: The new particle´s velocity is updated:
869
{| class="formulaSCP" style="width: 100%; text-align: center;" 
870
|-
871
| <math>{\mathit{\boldsymbol{U}}}_{\lambda }^{n+1}={\mathit{\boldsymbol{U}}}_{\lambda }^{n}+</math><math>\frac{1}{2}\Delta t\left( {\mathit{\boldsymbol{A}}}_{\lambda }^{n}+{\mathit{\boldsymbol{A}}}_{\lambda }^{n+1}\right)</math> 
872
|}
873
874
875
Step 4: The particle´s velocities are projected onto the mesh to obtain the new velocity field on the background mesh:
876
{| class="formulaSCP" style="width: 100%; text-align: center;" 
877
|-
878
| <math>{\mathit{\boldsymbol{u}}}_{h}^{n+1}{=P}_{\left\{ \lambda \right\} }^{n+1}\left[ \left\{ {\mathit{\boldsymbol{U}}}_{\lambda }^{n+1}\right\} \right]</math> 
879
|}
880
881
882
In order to achieve second order convergence, each step must be at least second order in time and space. Step 1 has already been demonstrated that is second order. Step 2 interpolates from the mesh values to the particles using the FE linear shape functions. This interpolation is second order as demonstrated in [<span id='cite-_Ref532985341'></span>[[#_Ref532985341|3]]]. Step 3 integrates the velocity in time with a Crank-Nicolson scheme, which is known to be second order in time. And finally, Step 4 is the projection step using the global least square projector which, in the previous section has been demonstrated to be second order in space and time.
883
884
The time step has been setup such that <math display="inline">h/\Delta t=4.661</math>, being <math display="inline">h</math> the characteristic mesh size. <span id='cite-_Ref531605890'></span>[[#_Ref531605890|Table 2]] provides the values of the mean quadratic error (MQE) of the velocity on the mesh and <span id='cite-_Ref531778866'></span>[[#_Ref531778866|Figure 4]] shows that the rate of convergence is of second order, as expected.
885
886
<div id="_Ref531605890" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
887
<span style="text-align: center; font-size: 75%;">Table 2: Mean quadratic error of the velocity on the mesh at </span> <math display="inline">\boldsymbol{t=T}</math></div>
888
889
{| style="width: 56%;margin: 1em auto 0.1em auto;border-collapse: collapse;" 
890
|-
891
|  style="border: 1pt solid black;text-align: center;"|
892
|  style="border: 1pt solid black;text-align: center;"|<math display="inline">RMSE=</math><math>\sqrt{\sum _{i=1}^{N}{\left( {\mathit{\boldsymbol{u}}}_{h}\left( {\mathit{\boldsymbol{x}}}_{i}\right) -{\mathit{\boldsymbol{u}}}_{a}\left( {\mathit{\boldsymbol{x}}}_{i}\right) \right) }^{2}/N}</math> 
893
|-
894
|  style="border: 1pt solid black;text-align: center;"|<math>h=H\boldsymbol{/}2</math>
895
|  style="border: 1pt solid black;text-align: center;vertical-align: bottom;"|1.226E-03
896
|-
897
|  style="border: 1pt solid black;text-align: center;"|<math>h=H\boldsymbol{/}4</math>
898
|  style="border: 1pt solid black;text-align: center;vertical-align: bottom;"|2.345E-04
899
|-
900
|  style="border: 1pt solid black;text-align: center;"|<math>h=H\boldsymbol{/}6</math>
901
|  style="border: 1pt solid black;text-align: center;vertical-align: bottom;"|1.176E-04
902
|-
903
|  style="border: 1pt solid black;text-align: center;"|<math>h=H\boldsymbol{/}8</math>
904
|  style="border: 1pt solid black;text-align: center;vertical-align: bottom;"|6.951E-05
905
|-
906
|  style="border: 1pt solid black;text-align: center;"|<math>h=H/10</math>
907
|  style="border: 1pt solid black;text-align: center;vertical-align: bottom;"|4.742E-05
908
|}
909
910
911
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
912
 [[Image:Draft_Garcia-Espinosa_450194514-image4.png|462px]] </div>
913
914
<div id="_Ref531778866" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
915
<span style="text-align: center; font-size: 75%;">Figure 4: Convergence analysis for the velocity on the mesh for a linear wave using the semi-Lagrangian approach.</span></div>
916
917
====1.5 Lid driven cavity flow.====
918
919
The particulars for this case study are given in <span id='cite-_Ref6225834'></span>[[#_Ref6225834|Table 3]], and <span id='cite-_Ref6302688'></span>[[#_Ref6302688|Figure 5]] shows the discretization used and the boundary conditions applied. An average of 2 iterations is only required for convergence.
920
921
Although the steady state solution is achieved after one thousand time steps, the simulation time has been set to <math display="inline">T=</math><math>{10}^{5}\Delta t</math> to verify whether the steady state solution shows symptoms of error accumulation.
922
923
<span id='_Ref6225974'></span>The results obtained with the present second-order Verlet-SLPFEM are compared to those obtained using a high resolution spectral method in [<span id='cite-11'></span>[[#11|11]]]. Also results are shown for a first-order  SL-PFEM based on the Backward Euler integrator for the velocity equation. <span id='cite-_Ref6225882'></span>[[#_Ref6225882|Figure 6]] compares the streamlines and <span id='cite-_Ref6225884'></span>[[#_Ref6225884|Figure 7]] compares the horizontal velocity and pressure at the mid-section. While the second-order SL-PFEM based on the Verlet algorithm provides very similar results to those of [<span id='cite-_Ref6225974'></span>[[#_Ref6225974|11]]], the first-order SL-PFEM based on the Euler scheme produces a highly diffusive solution on the pressure and velocity. Despite being a steady-state problem the first-order method is incapable of achieving the right solution with the current time step. It would require a significant reduction of the time step, which leads to a significant increase of CPU time. On the other hand, the second-order scheme produces an accurate solution for the current time step.
924
925
<span id='cite-_Ref6225885'></span>[[#_Ref6225885|Figure 8]] shows the evolution of the horizontal velocity at the node located at (x,y)=(0.5,0.175). It is observed that an average of 0.392 meters per second is obtained with a variance of 0.001 m/s approximately. No symptoms of error accumulation are observed.
926
927
<div id="_Ref6225834" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
928
<span style="text-align: center; font-size: 75%;">Table 3: particular of the lid driven cavity flow</span></div>
929
930
{| style="width: 57%;margin: 1em auto 0.1em auto;border-collapse: collapse;" 
931
|-
932
|  style="border: 1pt solid black;vertical-align: top;"|Lid velocity <math display="inline">V</math>
933
|  style="border: 1pt solid black;vertical-align: top;"|<math>-1m/s</math>
934
|-
935
|  style="border: 1pt solid black;vertical-align: top;"|Reynolds number <math display="inline">Re</math>
936
|  style="border: 1pt solid black;vertical-align: top;"|<math>1000</math>
937
|-
938
|  style="border: 1pt solid black;vertical-align: top;"|Domain size
939
|  style="border: 1pt solid black;vertical-align: top;"|<math>1m\, x\, 1m</math>
940
|-
941
|  style="border: 1pt solid black;vertical-align: top;"|Domain discretization
942
|  style="border: 1pt solid black;vertical-align: top;"|<math>80x80</math>
943
|-
944
|  style="border: 1pt solid black;vertical-align: top;"|Number of triangle elements
945
|  style="border: 1pt solid black;vertical-align: top;"|<math>25600</math>
946
|-
947
|  style="border: 1pt solid black;vertical-align: top;"|Number of nodes
948
|  style="border: 1pt solid black;vertical-align: top;"|<math>12961</math>
949
|-
950
|  style="border: 1pt solid black;vertical-align: top;"|Average number of particles per element
951
|  style="border: 1pt solid black;vertical-align: top;"|<math>3</math>
952
|-
953
|  style="border: 1pt solid black;vertical-align: top;"|Mesh size <math display="inline">\Delta x=</math><math>\Delta y</math>
954
|  style="border: 1pt solid black;vertical-align: top;"|<math>0.0125</math>
955
|-
956
|  style="border: 1pt solid black;vertical-align: top;"|Time step <math display="inline">\Delta t</math>
957
|  style="border: 1pt solid black;vertical-align: top;"|<math>0.1</math>
958
|-
959
|  style="border: 1pt solid black;vertical-align: top;"|Courant number
960
|  style="border: 1pt solid black;vertical-align: top;"|<math>8</math>
961
|-
962
|  style="border: 1pt solid black;vertical-align: top;"|Simulation time
963
|  style="border: 1pt solid black;vertical-align: top;"|<math>{10}^{5}\Delta t</math>
964
|-
965
|  style="border: 1pt solid black;vertical-align: top;"|Sampling time
966
|  style="border: 1pt solid black;vertical-align: top;"|<math>{10}^{2}\Delta t</math>
967
|}
968
969
970
{| style="width: 63%;margin: 1em auto 0.1em auto;border-collapse: collapse;" 
971
|-
972
|  style="vertical-align: top;width: 0%;"|[[Image:Draft_Garcia-Espinosa_450194514-image5.jpeg|366px]] 
973
|}
974
975
976
<div id="_Ref6302688" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
977
<span style="text-align: center; font-size: 75%;">Figure 5: Structured mesh for lid driven cavity flow and boundary conditions.</span></div>
978
979
{| style="width: 74%;margin: 1em auto 0.1em auto;border-collapse: collapse;" 
980
|-
981
|  style="text-align: center;vertical-align: top;width: 0%;"|[[Image:Draft_Garcia-Espinosa_450194514-image6.jpeg|216px]]  [[Image:Draft_Garcia-Espinosa_450194514-image7.jpeg|216px]] 
982
|-
983
|  style="text-align: center;vertical-align: top;"|
984
|-
985
|  style="text-align: center;vertical-align: top;width: 0%;"|[[Image:Draft_Garcia-Espinosa_450194514-image8.jpeg|216px]]  [[Image:Draft_Garcia-Espinosa_450194514-image9.jpeg|216px]] 
986
|-
987
|  style="vertical-align: top;"|
988
|}
989
990
991
<span id='_Ref6225882'></span><div id="_Ref6225876" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
992
<span style="text-align: center; font-size: 75%;">Figure 6: Streamlines comparison. Up: Second order Verlet-SLPFEM. Down: First Order Euler SL-PFEM</span></div>
993
994
{| style="width: 57%;margin: 1em auto 0.1em auto;border-collapse: collapse;" 
995
|-
996
|  style="border: 1pt solid black;vertical-align: top;width: 0%;"|[[Image:Draft_Garcia-Espinosa_450194514-image10.png|336px]]
997
998
[[Image:Draft_Garcia-Espinosa_450194514-image11.png|336px]] 
999
|}
1000
1001
1002
<span id='_Ref6225884'></span><div id="_Ref6225877" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
1003
<span style="text-align: center; font-size: 75%;">Figure 7: Horizontal velocity and pressure profiles at the mid-section x=0.5. Red dots: spectral method [</span><span id='cite-_Ref6225974'></span>[[#_Ref6225974|<span style="text-align: center; font-size: 75%;">11</span>]]<span style="text-align: center; font-size: 75%;">]. Solid line: Second Order Verlet-SLPFEM. Dash line: First Order Euler-SLPFEM.</span></div>
1004
1005
{| style="width: 58%;margin: 1em auto 0.1em auto;border-collapse: collapse;" 
1006
|-
1007
|  style="vertical-align: top;width: 0%;"|[[Image:Draft_Garcia-Espinosa_450194514-image12.png|336px]] 
1008
|}
1009
1010
1011
<div id="_Ref6225885" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
1012
<span style="text-align: center; font-size: 75%;">Figure 8: Horizontal velocity evolution at (x,y)=(0.5,0.175) for the second-order Verlet -SLPFEM</span></div>
1013
1014
====1.6 Two-dimensional Taylor-Green vortex.====
1015
1016
The two-dimensional Taylor-Green vortex problem is used to evaluate the convergence order of the numerical strategy solving an incompressible flow problem for which an analytical solution is known. The analytical solution is given by:
1017
1018
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
1019
|-
1020
| 
1021
{| style="text-align: center; margin:auto;width: 100%;"
1022
|-
1023
| <math>{u}_{x}\left( x,y,t\right) =-\mathrm{sin}\,\left( x\right) \mathrm{cos}\,\left( y\right) {e}^{-2\nu t}</math>
1024
1025
<math>{u}_{y}\left( x,y,t\right) =\mathrm{cos}\,\left( x\right) \mathrm{sin}\,\left( y\right) {e}^{-2\nu t}</math>
1026
1027
<math>P\left( x,y,t\right) =\frac{1}{4}\left[ \mathrm{cos}\,\left( 2x\right) +\mathrm{cos}\,\left( 2y\right) \right] {e}^{-4\nu t}</math>
1028
|}
1029
|  style="width: 5px;text-align: right;white-space: nowrap;"|(62)
1030
|}
1031
1032
1033
where <math display="inline">\nu =0.001{m}^{2}/s</math> is the kinematic viscosity. The problem is solved using a square domain <math display="inline">[0,\pi ]x[0,\pi ]</math> and setting slip boundary conditions for the velocity. Also, to prevent the pressure to be undetermined, the following condition is imposed at <math display="inline">\left( x,y\right) =</math><math>\left( 0,0\right)</math> :
1034
1035
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
1036
|-
1037
| 
1038
{| style="text-align: center; margin:auto;width: 100%;"
1039
|-
1040
| <math>P\left( 0,0,t\right) =\frac{1}{2}{e}^{-4\nu t}</math>
1041
|}
1042
|  style="width: 5px;text-align: right;white-space: nowrap;"|(63)
1043
|}
1044
1045
1046
The velocity and pressure field are initialized at <math display="inline">t=0</math> with the analytical solution. The simulation is carried out until a final time of <math display="inline">t=</math><math>10s</math> is reached. <span id='cite-_Ref532827353'></span>[[#_Ref532827353|Table 4]] provides the values of the mesh size, time step, and the number of time steps computed. <span id='cite-_Ref532983488'></span>[[#_Ref532983488|Figure 9]] shows the mesh used for case 2.
1047
1048
<div id="_Ref532827353" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
1049
<span style="text-align: center; font-size: 75%;">Table 4: Numerical parameters use in the 2D Taylor-Green Vortex</span></div>
1050
1051
{| style="width: 52%;margin: 1em auto 0.1em auto;border-collapse: collapse;" 
1052
|-
1053
|  style="border: 1pt solid black;text-align: center;"|Case
1054
|  style="border: 1pt solid black;text-align: center;"|Mesh size
1055
|  style="border: 1pt solid black;text-align: center;"|Time step
1056
|  style="border: 1pt solid black;text-align: center;"|Number of
1057
1058
time steps
1059
|-
1060
|  style="border: 1pt solid black;text-align: center;"|1
1061
|  style="border: 1pt solid black;text-align: center;"|<math>\Delta x=\pi /8</math>
1062
|  style="border: 1pt solid black;text-align: center;"|<math>\Delta t=0.2s</math>
1063
|  style="border: 1pt solid black;text-align: center;"|50
1064
|-
1065
|  style="border: 1pt solid black;text-align: center;"|2
1066
|  style="border: 1pt solid black;text-align: center;"|<math>\Delta x=\pi /16</math>
1067
|  style="border: 1pt solid black;text-align: center;"|<math>\Delta t=0.1s</math>
1068
|  style="border: 1pt solid black;text-align: center;"|100
1069
|-
1070
|  style="border: 1pt solid black;text-align: center;"|3
1071
|  style="border: 1pt solid black;text-align: center;"|<math>\Delta x=\pi /24</math>
1072
|  style="border: 1pt solid black;text-align: center;"|<math>\Delta t=0.0667s</math>
1073
|  style="border: 1pt solid black;text-align: center;"|150
1074
|-
1075
|  style="border: 1pt solid black;text-align: center;"|4
1076
|  style="border: 1pt solid black;text-align: center;"|<math>\Delta x=\pi /32</math>
1077
|  style="border: 1pt solid black;text-align: center;"|<math>\Delta t=0.05s</math>
1078
|  style="border: 1pt solid black;text-align: center;"|200
1079
|-
1080
|  style="border: 1pt solid black;text-align: center;"|5
1081
|  style="border: 1pt solid black;text-align: center;"|<math>\Delta x=\pi /48</math>
1082
|  style="border: 1pt solid black;text-align: center;"|<math>\Delta t=0.0333s</math>
1083
|  style="border: 1pt solid black;text-align: center;"|300
1084
|-
1085
|  style="border: 1pt solid black;text-align: center;"|6
1086
|  style="border: 1pt solid black;text-align: center;"|<math>\Delta x=\pi /64</math>
1087
|  style="border: 1pt solid black;text-align: center;"|<math>\Delta t=0.025s</math>
1088
|  style="border: 1pt solid black;text-align: center;"|400
1089
|}
1090
1091
1092
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
1093
 [[Image:Draft_Garcia-Espinosa_450194514-image13.png|282px]] </div>
1094
1095
<div id="_Ref532983488" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
1096
<span style="text-align: center; font-size: 75%;">Figure 9: Structured mesh with </span> <math display="inline">\boldsymbol{\Delta }\mathit{\boldsymbol{x}}=</math><math>\mathit{\boldsymbol{\pi }}\boldsymbol{/16}</math><span style="text-align: center; font-size: 75%;">.</span></div>
1097
1098
<span id='cite-_Ref532890800'></span>[[#_Ref532890800|Figure 10]] shows the convergence of the proposed algorithm. It can be seen that both, pressure and velocity converge with second order convergence rate.
1099
1100
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
1101
 [[Image:Draft_Garcia-Espinosa_450194514-image14.png|600px]] </div>
1102
1103
<div id="_Ref532890800" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
1104
<span style="text-align: center; font-size: 75%;">Figure 10: Convergence analysis for the 2D Taylor-Green Vortex. Black dashed line represents first order convergence. Black dotted line represents second order convergence. Green: pressure errors. Red: velocity errors.</span></div>
1105
1106
====1.7 Two-dimensional Steady Taylor-Green vortex.====
1107
1108
A modified version of the two-dimensional Taylor-Green vortex problem is used to evaluate the convergence order of the numerical strategy solving an incompressible flow problem for which an analytical solution is known. In this version, a mass force is introduced to replace the energy dissipated by the viscous terms, so that a steady solution is obtained. The mass force to be introduced is:
1109
1110
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
1111
|-
1112
| 
1113
{| style="text-align: center; margin:auto;width: 100%;"
1114
|-
1115
| <math>{f}_{x}\left( x,y\right) =-2\nu \mathrm{sin}\,\left( x\right) \mathrm{cos}\,\left( y\right)</math>
1116
1117
<math>{f}_{y}\left( x,y\right) =2\nu \mathrm{cos}\,\left( x\right) \mathrm{sin}\,\left( y\right)</math> 
1118
|}
1119
|  style="width: 5px;text-align: right;white-space: nowrap;"|(64)
1120
|}
1121
1122
1123
and the analytical solution to the problem is:
1124
1125
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
1126
|-
1127
| 
1128
{| style="text-align: center; margin:auto;width: 100%;"
1129
|-
1130
| <math>{u}_{x}\left( x,y\right) =-\mathrm{sin}\,\left( x\right) \mathrm{cos}\,\left( y\right)</math>
1131
1132
<math>{u}_{y}\left( x,y\right) =\mathrm{cos}\,\left( x\right) \mathrm{sin}\,\left( y\right)</math>
1133
1134
<math>P\left( x,y\right) =\frac{1}{4}\left[ \mathrm{cos}\,\left( 2x\right) +\mathrm{cos}\,\left( 2y\right) \right]</math> 
1135
|}
1136
|  style="width: 5px;text-align: right;white-space: nowrap;"|(65)
1137
|}
1138
1139
1140
The problem is solved with <math display="inline">\nu =0.01{m}^{2}/s</math> ( <math display="inline">Re=</math><math>314</math>). The fluid domain is a square of <math display="inline">[0,\pi ]x[0,\pi ]</math>. Slip boundary conditions are used for the velocity. Also, to prevent the pressure to be undetermined, the following Dirichlet condition is imposed:
1141
1142
{| class="formulaSCP" style="width: 100%;width: 100%;text-align: center;" 
1143
|-
1144
| 
1145
{| style="text-align: center; margin:auto;width: 100%;"
1146
|-
1147
| <math>P\left( 0,0\right) =0.5</math>
1148
|}
1149
|  style="width: 5px;text-align: right;white-space: nowrap;"|(66)
1150
|}
1151
1152
1153
The velocity and pressure field are initialized with the analytical solution. And average of 2 iterations is only required for convergence.  The simulation is carried out for <math display="inline">t=</math><math>400s</math>. Based on the maximum velocity ( <math display="inline">{u}_{max}=1</math>), the Courant number used is <math display="inline">Cr=</math><math>\Delta t/\Delta x=2.04</math>. The case is initiated with 3 particles per element, and particles are removed when it exceeds 6 particles per element. At the end of the simulation the average number of particles per element is slightly lower than 3.
1154
1155
<span id='cite-_Ref7188377'></span>[[#_Ref7188377|Table 5]] provides the values of the mesh size, time step, and the number of time steps computed. <span id='cite-_Ref7188407'></span>[[#_Ref7188407|Figure 11]] shows an intermediate mesh used in the analysis. <span id='cite-_Ref7188426'></span>[[#_Ref7188426|Figure 12]] how the pressure on the mesh and the particle’s velocity obtained for case 64. Both results are quite close to the analytical solution. For this case, the root mean square error is in the order of 0.003 for both, velocity and pressure.
1156
1157
<div id="_Ref7188377" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
1158
<span style="text-align: center; font-size: 75%;">Table 5: Numerical parameters use in the 2D Steady Taylor-Green Vortex</span></div>
1159
1160
{| style="width: 55%;margin: 1em auto 0.1em auto;border-collapse: collapse;" 
1161
|-
1162
|  style="border: 1pt solid black;text-align: center;"|Case
1163
|  style="border: 1pt solid black;text-align: center;"|Mesh size
1164
|  style="border: 1pt solid black;text-align: center;"|Time step
1165
|  style="border: 1pt solid black;text-align: center;"|Number of
1166
1167
time steps
1168
|-
1169
|  style="border: 1pt solid black;text-align: center;vertical-align: top;"|16
1170
|  style="border: 1pt solid black;text-align: center;"|<math>\Delta x=\pi /16</math>
1171
|  style="border: 1pt solid black;text-align: center;"|<math>\Delta t=0.4s</math>
1172
|  style="border: 1pt solid black;text-align: center;"|1000
1173
|-
1174
|  style="border: 1pt solid black;text-align: center;vertical-align: top;"|24
1175
|  style="border: 1pt solid black;text-align: center;"|<math>\Delta x=\pi /24</math>
1176
|  style="border: 1pt solid black;text-align: center;"|<math>\Delta t=0.26667s</math>
1177
|  style="border: 1pt solid black;text-align: center;"|1500
1178
|-
1179
|  style="border: 1pt solid black;text-align: center;vertical-align: top;"|32
1180
|  style="border: 1pt solid black;text-align: center;"|<math>\Delta x=\pi /32</math>
1181
|  style="border: 1pt solid black;text-align: center;"|<math>\Delta t=0.2s</math>
1182
|  style="border: 1pt solid black;text-align: center;"|2000
1183
|-
1184
|  style="border: 1pt solid black;text-align: center;vertical-align: top;"|48
1185
|  style="border: 1pt solid black;text-align: center;"|<math>\Delta x=\pi /48</math>
1186
|  style="border: 1pt solid black;text-align: center;"|<math>\Delta t=0.13333s</math>
1187
|  style="border: 1pt solid black;text-align: center;"|3000
1188
|-
1189
|  style="border: 1pt solid black;text-align: center;vertical-align: top;"|64
1190
|  style="border: 1pt solid black;text-align: center;"|<math>\Delta x=\pi /64</math>
1191
|  style="border: 1pt solid black;text-align: center;"|<math>\Delta t=0.1s</math>
1192
|  style="border: 1pt solid black;text-align: center;"|4000
1193
|-
1194
|  style="border: 1pt solid black;text-align: center;vertical-align: top;"|96
1195
|  style="border: 1pt solid black;text-align: center;"|<math>\Delta x=\pi /96</math>
1196
|  style="border: 1pt solid black;text-align: center;"|<math>\Delta t=0.06667s</math>
1197
|  style="border: 1pt solid black;text-align: center;"|6000
1198
|-
1199
|  style="border: 1pt solid black;text-align: center;vertical-align: top;"|128
1200
|  style="border: 1pt solid black;text-align: center;"|<math>\Delta x=\pi /128</math>
1201
|  style="border: 1pt solid black;text-align: center;"|<math>\Delta t=0.05s</math>
1202
|  style="border: 1pt solid black;text-align: center;"|8000
1203
|-
1204
|  style="border: 1pt solid black;text-align: center;vertical-align: top;"|192
1205
|  style="border: 1pt solid black;text-align: center;"|<math>\Delta x=\pi /192</math>
1206
|  style="border: 1pt solid black;text-align: center;"|<math>\Delta t=0.03333s</math>
1207
|  style="border: 1pt solid black;text-align: center;"|12000
1208
|}
1209
1210
1211
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
1212
 [[Image:Draft_Garcia-Espinosa_450194514-image15.png|366px]] </div>
1213
1214
<div id="_Ref7188407" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
1215
<span style="text-align: center; font-size: 75%;">Figure 11: Structured mesh with </span> <math display="inline">\boldsymbol{\Delta }\mathit{\boldsymbol{x}}=</math><math>\mathit{\boldsymbol{\pi }}\boldsymbol{/64}</math><span style="text-align: center; font-size: 75%;"> and boundary conditions applied</span></div>
1216
1217
{| style="width: 87%;margin: 1em auto 0.1em auto;border-collapse: collapse;" 
1218
|-
1219
|  style="text-align: center;vertical-align: top;width: 0%;"|[[Image:Draft_Garcia-Espinosa_450194514-image16.jpeg|252px]]  [[Image:Draft_Garcia-Espinosa_450194514-image17.jpeg|252px]] 
1220
|}
1221
1222
1223
<div id="_Ref7188426" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
1224
<span style="text-align: center; font-size: 75%;">Figure 12: Case 64 results. Pressure (left) and velocity (right)</span></div>
1225
1226
<span id='cite-_Ref7188443'></span>[[#_Ref7188443|Figure 13]] shows the evolution of the errors along the simulation. It is observed that the errors achieved a constant value.  Hence no symptoms of error accumulation over time is appreciated. <span id='cite-_Ref7188509'></span>[[#_Ref7188509|Figure 14]] provides the rate of convergence obtained using an average of three particles per element. The root mean square error (RMSE) has been used for the analysis. <span id='cite-_Ref7188526'></span>[[#_Ref7188526|Table 6]] shows the convergence of the proposed algorithm for pressure and velocity.
1227
1228
{| style="width: 44%;margin: 1em auto 0.1em auto;border-collapse: collapse;" 
1229
|-
1230
|  style="border: 1pt solid black;text-align: center;vertical-align: top;width: 0%;"|[[Image:Draft_Garcia-Espinosa_450194514-image18.png|258px]]
1231
1232
[[Image:Draft_Garcia-Espinosa_450194514-image19.png|258px]] 
1233
|}
1234
1235
1236
<div id="_Ref7188443" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
1237
<span style="text-align: center; font-size: 75%;">Figure 13: Error evolution along time.</span></div>
1238
1239
<div id="_Ref7188526" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
1240
<span style="text-align: center; font-size: 75%;">Table 6: Rate of convergence. Root mean square error (RMSE) and maximum error (MaxE)</span></div>
1241
1242
{| style="margin: 1em auto 0.1em auto;border-collapse: collapse;" 
1243
|-
1244
|  colspan='2'  style="border: 1pt solid black;text-align: center;"|Convergence Rate
1245
|-
1246
|  style="border: 1pt solid black;text-align: center;"|Velocity
1247
|  style="border: 1pt solid black;text-align: center;"|Pressure
1248
|-
1249
|  style="border: 1pt solid black;text-align: center;"|2.59
1250
|  style="border: 1pt solid black;text-align: center;"|2.66
1251
|}
1252
1253
1254
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
1255
 [[Image:Draft_Garcia-Espinosa_450194514-image20.jpeg|390px]] </div>
1256
1257
<div id="_Ref7188509" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
1258
<span style="text-align: center; font-size: 75%;">Figure 14: Convergence analysis for the 2D Taylor-Green Vortex. Black dashed line represents first order convergence. Black dotted line represents second order convergence. Blue: pressure errors. Red: velocity errors.</span></div>
1259
1260
While in an Eulerian method all dependent variables remain unchanged once the steady state solution is reached, this is not the case in the SL-PFEM method. From the point of view of the particles, the flow is never steady since the intrinsic variables they transport are continually changing.
1261
1262
If a SL-PFEM is not properly tailored, then the error accumulation will make the method to be incapable of computing a steady-state solution. This is because the accumulation of errors along the simulation time will eventually cause a numerical blow up. The present SL-PFEM formulation is capable of computing steady state solutions without errors concerns.
1263
1264
====1.8 Three-dimensional flow past a cylinder.====
1265
1266
The three dimensional flow around a cylinder is simulated to assess the suitability of the present method for solving three dimensional problems. The particulars of the problem are given in <span id='cite-_Ref535835118'></span>[[#_Ref535835118|Table 7]]. An average of 2-3 iterations are only required for convergence.
1267
1268
<span id='_Ref535836174'></span>For a Reynolds number of 200 and an aspect ratio of the cylinder height (H) to the cylinder diameter (D) of H/D=1, the flow behaves as a two dimensional flow [<span id='cite-12'></span>[[#12|12]]].  A three dimensional structured mesh with five levels of refinement has been used, keeping the Courant number constant. <span id='cite-_Ref535840176'></span>[[#_Ref535840176|Figure 15]] shows the computational domain used, and <span id='cite-_Ref535840212'></span>[[#_Ref535840212|Figure 16]] shows the corresponding meshes used in this analysis. The particulars for each mesh are provided in <span id='cite-_Ref12462928'></span>[[#_Ref12462928|Table 8]], as well as the total number of time steps simulated. In average, two particles per elements are used.
1269
1270
<span id='_Ref535835118'></span><div id="_Ref535835114" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
1271
<span style="text-align: center; font-size: 75%;">Table 7: Flow past a cylinder particulars</span></div>
1272
1273
{| style="width: 35%;margin: 1em auto 0.1em auto;border-collapse: collapse;" 
1274
|-
1275
|  style="border: 1pt solid black;text-align: center;"|<math>Cylinder\, diameter\, (D)</math>
1276
|  style="border: 1pt solid black;text-align: center;vertical-align: top;"|<math>1m</math>
1277
|-
1278
|  style="border: 1pt solid black;text-align: center;"|<math>Cylinder\, height\, (H)</math>
1279
|  style="border: 1pt solid black;text-align: center;vertical-align: top;"|<math>1m</math>
1280
|-
1281
|  style="border: 1pt solid black;text-align: center;"|<math>Inlet\, velocity\, (V)</math>
1282
|  style="border: 1pt solid black;text-align: center;vertical-align: top;"|<math>1m/s</math>
1283
|-
1284
|  style="border: 1pt solid black;text-align: center;"|<math>Viscosity\, (\nu )</math>
1285
|  style="border: 1pt solid black;text-align: center;vertical-align: top;"|<math>0.005</math>
1286
|-
1287
|  style="border: 1pt solid black;text-align: center;"|<math>Re</math>
1288
|  style="border: 1pt solid black;text-align: center;vertical-align: top;"|<math>200</math>
1289
|}
1290
1291
1292
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
1293
 [[Image:Draft_Garcia-Espinosa_450194514-image21.jpeg|384px]] </div>
1294
1295
<div id="_Ref535840176" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
1296
<span style="text-align: center; font-size: 75%;">Figure 15: Computational domain used to generate the structured mesh.</span></div>
1297
1298
[[Image:Draft_Garcia-Espinosa_450194514-image22.jpeg|600px]]
1299
1300
<div id="_Ref535840212" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
1301
<span style="text-align: center; font-size: 75%;">Figure 16: Computational mesh refinement for the 3D flow past a cylinder.</span></div>
1302
1303
<div id="_Ref12462928" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
1304
<span style="text-align: center; font-size: 75%;">Table 8: Numerical data used in the 3D flow past a cylinder</span></div>
1305
1306
{| style="width: 57%;margin: 1em auto 0.1em auto;border-collapse: collapse;" 
1307
|-
1308
|  style="border: 1pt solid black;text-align: center;"|<math>Mesh</math>
1309
|  style="border: 1pt solid black;text-align: center;"|<math>\Delta x</math>
1310
|  style="border: 1pt solid black;text-align: center;"|<math>\Delta t</math>
1311
|  style="border: 1pt solid black;text-align: center;"|<math>N\, tetras</math>
1312
|  style="border: 1pt solid black;text-align: center;"|<math>N\, Nodes</math>
1313
|  style="border: 1pt solid black;text-align: center;"|<math>N\, \Delta t</math>
1314
|-
1315
|  style="border: 1pt solid black;text-align: center;"|1
1316
|  style="border: 1pt solid black;text-align: center;"|0.1333
1317
|  style="border: 1pt solid black;text-align: center;"|0.0667
1318
|  style="border: 1pt solid black;text-align: center;"|62208
1319
|  style="border: 1pt solid black;text-align: center;vertical-align: top;"|14487
1320
|  style="border: 1pt solid black;text-align: center;vertical-align: top;"|1500
1321
|-
1322
|  style="border: 1pt solid black;text-align: center;"|2
1323
|  style="border: 1pt solid black;text-align: center;"|0.1
1324
|  style="border: 1pt solid black;text-align: center;"|0.05
1325
|  style="border: 1pt solid black;text-align: center;"|147456
1326
|  style="border: 1pt solid black;text-align: center;vertical-align: top;"|33412
1327
|  style="border: 1pt solid black;text-align: center;vertical-align: top;"|2000
1328
|-
1329
|  style="border: 1pt solid black;text-align: center;"|3
1330
|  style="border: 1pt solid black;text-align: center;"|0.08
1331
|  style="border: 1pt solid black;text-align: center;"|0.04
1332
|  style="border: 1pt solid black;text-align: center;"|288000
1333
|  style="border: 1pt solid black;text-align: center;vertical-align: top;"|64185
1334
|  style="border: 1pt solid black;text-align: center;vertical-align: top;"|2500
1335
|-
1336
|  style="border: 1pt solid black;text-align: center;"|4
1337
|  style="border: 1pt solid black;text-align: center;"|0.0667
1338
|  style="border: 1pt solid black;text-align: center;"|0.0333
1339
|  style="border: 1pt solid black;text-align: center;"|497664
1340
|  style="border: 1pt solid black;text-align: center;vertical-align: top;"|109686
1341
|  style="border: 1pt solid black;text-align: center;vertical-align: top;"|3000
1342
|}
1343
1344
1345
<span id='cite-_Ref535840306'></span>[[#_Ref535840306|Table 9]] provides the Strouhal numbers obtained in each case study. It is observed how the lift force amplitude and the Strouhal number converge towards values of 0.27 and 0.196, respectively. <span id='cite-_Ref535854548'></span>[[#_Ref535854548|Figure 17]] plots the logarithmic errors for the Strouhal number versus the logarithmic mesh size for each case study. Comparing with the second order reference line, it is observed that the convergence rate of the Strouhal number is close to second order. <span id='cite-_Ref535854807'></span>[[#_Ref535854807|Figure 18]] and <span id='cite-_Ref536173038'></span>[[#_Ref536173038|Figure 19]] provides a snapshot of the pressure field, particles velocities, streamlines and vorticity for Case 2.
1346
1347
<div id="_Ref535840306" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
1348
<span style="text-align: center; font-size: 75%;">Table 9: Numerical results for the 3D flow past a cylinder</span></div>
1349
1350
{| style="width: 38%;margin: 1em auto 0.1em auto;border-collapse: collapse;" 
1351
|-
1352
|  style="border: 1pt solid black;text-align: center;"|<math>Case</math>
1353
|  style="border: 1pt solid black;text-align: center;"|<math>St</math>
1354
|  style="border: 1pt solid black;text-align: center;"|<math>Error\, St</math>
1355
|  style="border: 1pt solid black;text-align: center;"|<math>{C}_{L}</math>
1356
|-
1357
|  style="border: 1pt solid black;text-align: center;"|1
1358
|  style="border: 1pt solid black;text-align: center;"|0.133
1359
|  style="border: 1pt solid black;text-align: center;"|0.0630
1360
|  style="border: 1pt solid black;text-align: center;"|0.177
1361
|-
1362
|  style="border: 1pt solid black;text-align: center;"|2
1363
|  style="border: 1pt solid black;text-align: center;"|0.162
1364
|  style="border: 1pt solid black;text-align: center;"|0.0339
1365
|  style="border: 1pt solid black;text-align: center;"|0.255
1366
|-
1367
|  style="border: 1pt solid black;text-align: center;"|3
1368
|  style="border: 1pt solid black;text-align: center;"|0.178
1369
|  style="border: 1pt solid black;text-align: center;"|0.0184
1370
|  style="border: 1pt solid black;text-align: center;"|0.246
1371
|-
1372
|  style="border: 1pt solid black;text-align: center;"|4
1373
|  style="border: 1pt solid black;text-align: center;"|0.186
1374
|  style="border: 1pt solid black;text-align: center;"|0.0101
1375
|  style="border: 1pt solid black;text-align: center;"|0.258
1376
|-
1377
|  style="border: 1pt solid black;text-align: center;"|Ref. [<span id='cite-_Ref535836174'></span>[[#_Ref535836174|12]]]
1378
|  style="border: 1pt solid black;text-align: center;"|0.196
1379
|  style="border: 1pt solid black;text-align: center;"|
1380
|  style="border: 1pt solid black;text-align: center;"|
1381
|}
1382
1383
1384
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
1385
 [[Image:Draft_Garcia-Espinosa_450194514-image23.jpg|408px]] </div>
1386
1387
<div id="_Ref535854548" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
1388
<span style="text-align: center; font-size: 75%;">Figure 17: Rate of convergence for the Strouhal number. Circles represent the log (error) for each case study. Solid line represents the trend of the convergence. Dot line represents second order convergence.</span></div>
1389
1390
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
1391
 
1392
{|
1393
|-
1394
| [[Image:Draft_Garcia-Espinosa_450194514-image24.jpeg|264px]]
1395
| [[Image:Draft_Garcia-Espinosa_450194514-image25.jpeg|center|264px]]
1396
|}
1397
</div>
1398
1399
<div id="_Ref535854807" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
1400
<span style="text-align: center; font-size: 75%;">Figure 18: Case 2 snapshots: top view of pressure map on mesh (left) and particles velocities (right).</span></div>
1401
1402
<div class="center" style="width: auto; margin-left: auto; margin-right: auto;">
1403
 [[Image:Draft_Garcia-Espinosa_450194514-image26.jpeg|420px]] </div>
1404
1405
<div id="_Ref536173038" class="center" style="width: auto; margin-left: auto; margin-right: auto;">
1406
<span style="text-align: center; font-size: 75%;">Figure 19: Case 2 snapshots: oblique view of vorticity on particles.</span></div>
1407
1408
===Conclusions===
1409
1410
In this paper, a second order semi-Lagrangian (SL) method for solving the incompressible Navier-Stokes equations has been presented within the framework of the Particle Finite Element Method (PFEM). The method is based on the velocity Verlet integrator, which offers an explicit formulation for particle tracking with good numerical properties. Therefore, particles only need to be transported once per time step, which makes this integrator very attractive for the semi-Lagrangian PFEM (SL-PFEM). The algorithm is completed with a predictor-multicorrector scheme for integrating the velocity correction using the Finite Element Method. A second order global least square projector is used to make sure that the coherence condition is fulfilled, which avoids the need of iterating and projecting more than once per time step.  The proposed method has been tested for different types of flows in two and three dimensions, and the second order rate of convergence has been achieved. Moreover, it has been shown that there are no symptoms of error accumulation along time, which is a major concern for semi-Lagrangian schemes because it could compromise the rate of convergence and its capability to compute steady-state problems.
1411
1412
===Acknowledgements===
1413
1414
This work relates to Department of the Navy Grant N62909-16-1-2236 issued by Office of Naval Research Global. The United States Government has a royalty-free licence throughout the world in all copyrightable material contained herein.
1415
1416
===Conflict of interest===
1417
1418
On behalf of all authors, the corresponding author states that there is no conflict of interest
1419
1420
===References===
1421
1422
<div id="1"></div>
1423
[[#cite-1|[1]]] S.R. Idelsohn, J. Marti, P. Becker, E. Oñate: Analysis of multifluid flows with large time steps using the particle finite element method. International Journal for Numerical Methods in Fluids 75(9), 621–644 (2014). DOI 10.1002/fld.3908.
1424
1425
<div id="2"></div>
1426
[[#cite-2|[2]]] S. R. Idelsohn, N. Nigro, A. Limache, E. Oñate: Large time-step explicit integration method for solving problems with dominant convection. Computer Methods in Applied Mechanics and Engineering 217-220, 168–185 (2012). DOI 10.1016/j.cma.2011.12. 008.
1427
1428
<div id="3"></div>
1429
[[#cite-3|[3]]] P. Becker, S. R. Idelsohn, E. Oñate. A unified monolithic approach for multi-fluid flows and fluidâASstructure interaction using the Particle Finite Element Method with fixed mesh. Computational Mechanics (2014). DOI 10.1007/s00466-014-1107-0
1430
1431
<div id="4"></div>
1432
[[#cite-4|[4]]] J. M. Gimenez, H. J. Aguerrea, S. R. Idelsohnd, N. M. Nigro. A space-time second-order particle-based method to solve ow problems on arbitrary meshes. Accepted for publication in Journal of Computational Physics. DOI 10.1016/j.jcp.2018.11.034
1433
1434
<div id="5"></div>
1435
[[#cite-5|[5]]] P. Nadukandi, B. Servan-Camas, P. A. Becker, and J. Garcia-Espinosa. Seakeeping with the semi-Lagrangian Particle Finite Element Method. <span style="text-align: center; font-size: 75%;">Comp. Part. Mech. (2017) 4: 321. DOI 10.1007/s40571-016-0127-2</span>
1436
1437
<div id="6"></div>
1438
[[#cite-6|[6]]] L. Verlet. Computer "Experiments" on Classical Fluids. I. Thermodynamical properties of Lenard-Jones Molecules. Phys. Rev. E. 59(5), 98-103. (1967)
1439
1440
<div id="7"></div>
1441
[[#cite-7|[7]]] W. C. Swope, H. C. Andersen, P. H. Berens, and K. R. Wilson. A computer simulation method for the calculation of equilibrium constants for the formation of physical clusters of molecules: Application to small water clusters. J. Chem. Phys. 76, 637 (1982). DOI 10.1063/1.442716.
1442
1443
<div id="8"></div>
1444
[[#cite-8|[8]]] E. Hairer, C. Lubich and G. Wanner (2003). Geometric numerical integration illustrated by the Störmer–Verlet method. Acta Numerica, 12, pp 399-450. DOI 10.1017/S0962492902000144
1445
1446
<div id="9"></div>
1447
[[#cite-9|[9]]] J. Garcia-Espinosa, A. Valls, and E. Oñate. ODDLS: A new unstructured mesh finite element method for the analysis of free surface flow problems Int. J. Numer. Meth. Engng 76(9) 1297-1470 (2008).
1448
1449
<div id="10"></div>
1450
[[#cite-10|[10]]] E. Oñate , J. García-Espinosa, S.R. Idelsohn, F. Del Pin. Finite calculus formulations for finite element analysis of incompressible flows. Eulerian, ALE and Lagrangian approaches. Comput. Methods Appl. Mech. Engrg. 195 3001–3037 (2006).
1451
1452
<div id="11"></div>
1453
[[#cite-11|[11]]] O. Botella and R. Peyret. Benchmark spectral results on the lid-driven cavity flow. Computers & Fluids Vol. 27, No. 4, pp. 421-433, 1998.
1454
1455
<div id="12"></div>
1456
[[#cite-12|[12]]] H. Jiang and L. Cheng. Strouhal Reynolds number relationship for flow past a circular cylinder. J. Fluid Mech. (2017), vol. 832, pp. 170-188.
1457

Return to Colom Cobb et al 2019b.

Back to Top

Document information

Published on 01/01/2020

DOI: 10.1007/s40571-019-00258-9
Licence: CC BY-NC-SA license

Document Score

0

Views 162
Recommendations 0

Share this document