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
==ERROR ESTIMATION AND MESH ADAPTIVITY IN INCOMPRESSIBLE VISCOUS FLOWS USING  A RESIDUAL POWER APPROACH ==
3
4
'''Eugenio Oñate, Joaquin Arteaga, Julio García and Roberto Flores
5
6
~&nbsp;
7
8
International Center for Numerical Methods in Engineering (CIMNE)
9
10
Universidad Politécnica de Cataluña
11
12
Campus Norte UPC, 08034 Barcelona, Spain
13
14
E-mail: cimne@cimne.upc.es, web page: http://www.cimne.upc.es/'''
15
-->
16
17
==Abstract==
18
19
A methodology for error estimation and mesh adaptation for finite element (FE) analysis of incompressible viscous flow is presented. The error estimation method is based on the evaluation of the energy rate (the power) of the FE residuals of the momentum and incompressibility equations. The residuals are computed using recovered values of the derivatives of the velocity and pressure variable obtained via a nodal derivative recovery technique. Two mesh adaptation procedures based on: a)  the equi-distribution of the residual power  among the elements in the mesh and b) the equi-distribution of the density of the total residual power are presented. The stabilized form of the Navier-Stokes equations using a finite calculus (FIC) formulation is solved with  a fractional step FE scheme. This allows the use of linear triangles and tetrahedra with an equal order interpolation for the velocity and pressure variables. A nodal-based approach is used for computing  the residual power integrals. The examples show the ability of the error estimation  and the mesh adaptation process to capture the high gradients of the solution in the vecinity of boundary layers and in zones of high vorticity of the fluid for both steady state and transient flow situations.
20
21
==1 INTRODUCTION==
22
23
The estimation of the error in the finite element solution of the Navier-Stokes equations for an incompressible fluid is a difficult problem <span id='citeF-1'></span>[[#cite-1|[1]]]. The presence of convective terms in the momentum equations prevents the use of standard error estimators based on the energy norm of the error developed for elliptic type problems typical of solid mechanics and heat transfer analysis <span id='citeF-2'></span>[[#cite-2|[2-4]]]. Extension of these methods to fluid mechanics problems have been reported in <span id='citeF-5'></span>[[#cite-5|[5]]]. A different class of mesh refinement procedures for fluid flow problems based on error indicators using approximations of the Hessian operator has been reported in <span id='citeF-6'></span>[[#cite-6|[6-10]]]. Alternative error estimation approaches for fluid flow problems  can be found in <span id='citeF-11'></span>[[#cite-11|[11-16]]].
24
25
The error estimation method presented in this paper is based on the evaluation of a particular form of the energy rate (the power) of the finite element residuals of the momentum and mass balance (incompressibility) equations. The residuals are computed using recovered values of the derivatives of the velocity and pressure variable obtained via a nodal derivative recovery technique. Two mesh adaptation processes based on: a)  the equi-distribution of the residual power  among the elements in the mesh and b) the equi-distribution of the density of the total residual power are presented. The stabilized form of the Navier-Stokes equations using a finite calculus (FIC) procedure developed by the authors <span id='citeF-17'></span>[[#cite-17|[17-21]]] is used for the FE solution of the examples presented in the paper using a fractional step scheme. This allows the use of linear triangles and tetrahedra with an equal order interpolation for the velocity and pressure variables. A nodal-based approach is used for computation of the residual power error and the total power generated by the viscous stresses and the pressure terms in the mesh. The residual power form derived from the FIC approach includes power terms emanating from the velocity field and from the gradient of the velocity field. It is shown that accounting for the terms involving the velocity gradient provides an effective  error estimation and mesh adaptation procedure for CFD problems. Also the FIC form of the residual power expression can be effectively extended for error estimation and mesh adaptivity of other problems in computational mechanics <span id='citeF-22'></span>[[#cite-22|[22]]].
26
27
The examples show the ability of the error estimation  and the mesh adaptation process to capture the high gradients of the solution in the vecinity of boundary layers and in zones of high vorticity of the fluid for both steady state and transient flow situations.
28
29
==2 STABILIZED FINITE ELEMENT SOLUTION OF THE INCOMPRESSIBLE NAVIER-STOKES EQUATIONS==
30
31
We consider here the solution of the Navier-Stokes equations for an incompressible fluid written as
32
33
'''Momentum'''
34
35
{| class="formulaSCP" style="width: 100%; text-align: left;" 
36
|-
37
| 
38
{| style="text-align: left; margin:auto;width: 100%;" 
39
|-
40
| style="text-align: center;" | <math>r_{m_i}=0 \qquad \hbox{in }\Omega  </math>
41
|}
42
| style="width: 5px;text-align: right;white-space: nowrap;" | (1)
43
|}
44
45
'''Mass balance'''
46
47
{| class="formulaSCP" style="width: 100%; text-align: left;" 
48
|-
49
| 
50
{| style="text-align: left; margin:auto;width: 100%;" 
51
|-
52
| style="text-align: center;" | <math>r_v=0 \qquad \hbox{in }\Omega  </math>
53
|}
54
| style="width: 5px;text-align: right;white-space: nowrap;" | (2)
55
|}
56
57
For the transient case
58
59
{| class="formulaSCP" style="width: 100%; text-align: left;" 
60
|-
61
| 
62
{| style="text-align: left; margin:auto;width: 100%;" 
63
|-
64
| style="text-align: center;" | <math>r_{m_i}=\rho \left[{\partial u_i \over \partial t} + u_j {\partial u_i \over \partial x_j}\right]+{\partial p\over \partial x_i}-{\partial \tau _{ij}\over \partial x_j}-b_i </math>
65
|}
66
| style="width: 5px;text-align: right;white-space: nowrap;" | (3)
67
|}
68
69
{| class="formulaSCP" style="width: 100%; text-align: left;" 
70
|-
71
| 
72
{| style="text-align: left; margin:auto;width: 100%;" 
73
|-
74
| style="text-align: center;" | <math>r_v = {\partial u_i\over \partial x_i} </math>
75
|}
76
| style="width: 5px;text-align: right;white-space: nowrap;" | (4)
77
|}
78
79
with <math display="inline">i,j=1,n_d</math> when <math display="inline">n_d</math> is the number of space dimensions (<math display="inline">n_d =2</math> for 2D flow problems).
80
81
In eq.(3) <math display="inline">\rho </math> is the fluid density (here assumed to be constant), <math display="inline">u_i</math> is the velocity component in the <math display="inline">i</math>-th direction, <math display="inline">p</math> the pressure, <math display="inline">b_i</math> the body forces and <math display="inline">\tau _{ij}</math> the viscous stress tensor components related to the velocity gradients through the fluid viscosity <math display="inline">\mu </math> by
82
83
{| class="formulaSCP" style="width: 100%; text-align: left;" 
84
|-
85
| 
86
{| style="text-align: left; margin:auto;width: 100%;" 
87
|-
88
| style="text-align: center;" | <math>\tau _{ij}=2\mu \left(\varepsilon _{ij}-{1\over 3} {\partial u_k\over \partial x_k}\delta _{ij}\right)</math>
89
|}
90
| style="width: 5px;text-align: right;white-space: nowrap;" |  (5a)
91
|}
92
93
with
94
95
{| class="formulaSCP" style="width: 100%; text-align: left;" 
96
|-
97
| 
98
{| style="text-align: left; margin:auto;width: 100%;" 
99
|-
100
| style="text-align: center;" | <math>\varepsilon _{ij}={1\over 2}\left({\partial u_i\over \partial x_j}+{\partial u_j\over \partial x_i}\right)</math>
101
|}
102
| style="width: 5px;text-align: right;white-space: nowrap;" |  (5b)
103
|}
104
105
Summation convention for repeated indexes in products and derivatives is used unless otherwise specified.
106
107
The field equations are completed by the standard boundary conditions
108
109
{| class="formulaSCP" style="width: 100%; text-align: left;" 
110
|-
111
| 
112
{| style="text-align: left; margin:auto;width: 100%;" 
113
|-
114
| style="text-align: center;" | <math>\sigma _{ij}n_j - t_i^p = 0 \quad \hbox{ on }  \Gamma _t</math>
115
| style="width: 5px;text-align: right;white-space: nowrap;" | (6)
116
|-
117
| style="text-align: center;" | <math> u_i-u_i^p  = 0 \quad \hbox{ on }  \Gamma _u </math>
118
| style="width: 5px;text-align: right;white-space: nowrap;" | (7)
119
|}
120
|}
121
122
where <math display="inline">t_i^p</math> and <math display="inline">u_i^p</math> are prescribed tractions and the prescribed displacement at the Neuman and Dirichlet boundaries <math display="inline">\Gamma _t</math> and <math display="inline">\Gamma _u</math>, respectively.
123
124
We will choose an equal order finite element (FE) approximation for the velocity and pressure
125
126
{| class="formulaSCP" style="width: 100%; text-align: left;" 
127
|-
128
| 
129
{| style="text-align: left; margin:auto;width: 100%;" 
130
|-
131
| style="text-align: center;" | <math>u_i\simeq \hat u_i =  \sum \limits _{j=1}^n N_j (\hat u_i)_j = {N}\hat{u}_i </math>
132
|}
133
| style="width: 5px;text-align: right;white-space: nowrap;" |  (8a)
134
|}
135
136
{| class="formulaSCP" style="width: 100%; text-align: left;" 
137
|-
138
| 
139
{| style="text-align: left; margin:auto;width: 100%;" 
140
|-
141
| style="text-align: center;" | <math>p\simeq \hat p =   \sum \limits _{j=1}^n N_j \hat p_j = {N}\hat{p}</math>
142
|}
143
| style="width: 5px;text-align: right;white-space: nowrap;" |  (8b)
144
|}
145
146
where <math display="inline">\hat {(\cdot )}</math> denotes approximate values, <math display="inline">N_j</math> are the shape functions, <math display="inline">(\cdot )_j</math> are nodal values and <math display="inline">n</math> is the number of nodes in the mesh <span id='citeF-1'></span>[[#cite-1|[1]]]. Standard  three node linear triangles are used in the examples given in the paper.
147
148
It is well known that stabilized finite element schemes are needed for overcoming the numerical instabilities induced by high values of the convective terms and by the incompressibility constraint when equal order interpolation for the velocities and the presure are used. A number of stabilized FE methods are available in the literature and most of them can be casted in the following form
149
150
{| class="formulaSCP" style="width: 100%; text-align: left;" 
151
|-
152
| 
153
{| style="text-align: left; margin:auto;width: 100%;" 
154
|-
155
| style="text-align: center;" | <math>\int _\Omega N_k \hat r_{m_i} d\Omega +\int _{\Gamma _t} N_k (\hat \sigma _{ij} n_j - t_i^p)d\Gamma +\sum _e \int _{\Omega ^e}\tau _{m_i}^e P_{m_i} (N_k)\hat r_{m_i} d\Omega =0 </math>
156
|}
157
| style="width: 5px;text-align: right;white-space: nowrap;" | (9)
158
|}
159
160
{| class="formulaSCP" style="width: 100%; text-align: left;" 
161
|-
162
| 
163
{| style="text-align: left; margin:auto;width: 100%;" 
164
|-
165
| style="text-align: center;" | <math>\int _\Omega N_k \hat r_v d\Omega + \sum _e \int _{\Omega ^e}\tau _v ^e P_v (N_k)\hat r_v d\Omega =0 </math>
166
|}
167
| style="width: 5px;text-align: right;white-space: nowrap;" | (10)
168
|}
169
170
In above <math display="inline">\hat r_{m_i}\equiv r_{m_i}(\hat u_j, \hat p)</math> and <math display="inline">\hat r_v =r_v(\hat u_j, \hat p)</math> denote the approximate finite element residuals for the momentum and mass balance equations, respectively, <math display="inline"> P_{m_i} (N_k)</math> and <math display="inline">P_v (N_k)</math> are appropriate functions of the shape functions <math display="inline">N_k</math> and <math display="inline">\tau _{m_i}^e</math> and <math display="inline">\tau _v ^e</math> are stabilization parameters which depend on the element dimensions and the physical variables of the problem.
171
172
Eqs.(9) and (10) can be interpreted as  extended  Galerkin expressions where the last integrals over the element interiors has been added to the standard Galerkin forms of the momentum and mass balance equations in order to get a physically meanful (stabilized) numerical solution. Many popular stabilized methods (SUPG, GLS, SGS, etc.) can be written in the form of Eqs.(9) and (10) and they just differ in the choice of the weighting functions <math display="inline">P_{m_i}</math> and <math display="inline">P_v</math> and in the values of the stabilization parameters <span id='citeF-1'></span>[[#cite-1|[1,24-30]]].
173
174
A somehow different class of stabilized method developed by the authors is based on a finite calculus (FIC) formulation <span id='citeF-17'></span>[[#cite-17|[17-21]]]. Here the standard momentum and mass balance equations are modified by enforcing the balance laws in a domain of finite size. The modified governing equations contain additional terms which play the role of stabilizing terms in the numerical solution. The Galerkin FE form of the FIC equations of an incompressible fluid can also be written by integral forms analogous to Eqs.(9) and (10) and hence we will retain these equations as general expressions applicable to any stabilized method. Details on the FIC formulation used for the solution of the examples presented in the paper are given in a later section.
175
176
==3 RESIDUAL POWER FORMS BASED ON THE RECOVERED BALANCE EQUATIONS==
177
178
We will assume that a finite element solution has been found for the velocity and pressure variables ''using any stabilized FE scheme''. The next step in the error estimation and mesh adaptivity method proposed is to compute the ''enhanced recovered values'' of the derivatives of the velocity and the pressure at the element nodes. The derivative recovery procedure used here is explained in the next section.
179
180
The recovered nodal derivative fields of the velocities and the pressure are used now to compute the finite element residuals of the discretized momentum and mass balance equations (1) and (2) and the Neumann boundary conditions (6) as:
181
182
{| class="formulaSCP" style="width: 100%; text-align: left;" 
183
|-
184
| 
185
{| style="text-align: left; margin:auto;width: 100%;" 
186
|-
187
| style="text-align: center;" | <math>\begin{array}{c}\displaystyle R_{m_i}= \bar{\hat r}_{m_i} \\  ~~\\ \displaystyle R_v=\bar{\hat r}_v \\  ~~\\ \displaystyle R_{\Gamma _i}=n_j \bar{\hat \sigma }_{ij}-t_i^p \end{array} </math>
188
|}
189
| style="width: 5px;text-align: right;white-space: nowrap;" | (11)
190
|}
191
192
where <math display="inline">\bar{\hat{(\cdot )}}</math> denote values computed using the recovered derivative fields. In Eqs.(11) <math display="inline">R_{m_i}</math> can be interpreted as the ith component of an out-of-balance body force, whereas <math display="inline">R_v</math> represents an spurious non-zero volumetric strain rate. Similarly, the recovered residuals <math display="inline">R_{\Gamma _i}</math> are out-of-balance tractions at the Neuman boundary.
193
194
The ''power'' due to the recovered residuals can be written as
195
196
{| class="formulaSCP" style="width: 100%; text-align: left;" 
197
|-
198
| 
199
{| style="text-align: left; margin:auto;width: 100%;" 
200
|-
201
| style="text-align: center;" | <math>\displaystyle P_{m_i}= \int _\Omega W_i^u  R_{m_i} d\Omega + \int _{\Gamma _t} \bar W_i^u  R_{\Gamma _i} d\Gamma \qquad \hbox{no sum in }i</math>
202
|}
203
| style="width: 5px;text-align: right;white-space: nowrap;" |  (12a)
204
|}
205
206
{| class="formulaSCP" style="width: 100%; text-align: left;" 
207
|-
208
| 
209
{| style="text-align: left; margin:auto;width: 100%;" 
210
|-
211
| style="text-align: center;" | <math>\displaystyle P_v= \int _\Omega \bar W^p  R_v d\Omega </math>
212
|}
213
| style="width: 5px;text-align: right;white-space: nowrap;" |  (12b)
214
|}
215
216
where the weights <math display="inline">(W_i^u,\bar W_i^u)</math> and <math display="inline">W^p</math> are functions of the approximate velocity vector field and the pressure, respectively. Indeed the simplest choice is <math display="inline">W_i^u=\bar W_i^u =\hat u_i</math> and <math display="inline">W^p =\hat p</math>. However, many other options are possible. In this work we have chosen
217
218
{| class="formulaSCP" style="width: 100%; text-align: left;" 
219
|-
220
| 
221
{| style="text-align: left; margin:auto;width: 100%;" 
222
|-
223
| style="text-align: center;" | <math>W_i^u=\hat u_i + {h_j\over 2} {\partial \hat u_i\over \partial x_j}\quad ,\quad \bar W_i^u  = 0\quad \hbox{and} \quad  W^p =\hat p + {h_j\over 2} {\partial \hat p\over \partial x_j} </math>
224
|}
225
| style="width: 5px;text-align: right;white-space: nowrap;" | (13)
226
|}
227
228
where <math display="inline">h_j</math> is a characteristic length of the order of the element size. This choice is a result of the ''finite calculus'' formulation described in a next section.
229
230
Note that at the solid boundaries <math display="inline">\hat {u}=0</math>  and  at the exterior boundary <math display="inline">\hat \sigma _{ij}n_j\simeq t_i</math> on <math display="inline">\Gamma _t</math>.  This justifies neglecting the  boundary integral in Eq.(12a) by choosing <math display="inline">\bar W_i^u  = 0</math>.
231
232
The weights <math display="inline">W_i^u</math> and <math display="inline">W^p</math> as defined in Eq.(13) are discontinuous for standar finite element interpolations. A continuous discrete form of these weights can be found by using the recovered values of the derivatives of <math display="inline">\hat u_i</math> and <math display="inline">\hat p</math> as explained in Section 4.
233
234
The integrals over the domain can be computed by summing up the individual element contributions in the usual manner. However in the examples presented in the paper the volume integrals in Eqs.(12)  are computed using a ''nodal integration scheme'' as
235
236
{| class="formulaSCP" style="width: 100%; text-align: left;" 
237
|-
238
| 
239
{| style="text-align: left; margin:auto;width: 100%;" 
240
|-
241
| style="text-align: center;" | <math>\begin{array}{l}\displaystyle P_{m_i} = \sum \limits _{k=1}^{\bar N} [P_{m_i}]_k= \sum \limits _{k=1}^{\bar N} \left|\left[W_i^u R_{m_i}\right]_k \right|\Omega _k \quad \hbox{no sum in } i\\ \\ \displaystyle P_v= \sum \limits _{k=1}^{\bar N} [P_v]_k= \sum \limits _{k=1}^{\bar N} \left|\left[W_i^p  R_v\right]_k\right|\Omega _k  \end{array} </math>
242
|}
243
| style="width: 5px;text-align: right;white-space: nowrap;" | (14)
244
|}
245
246
where <math display="inline">[\cdot ]_k</math> denotes values computed at node <math display="inline">k</math>, <math display="inline">\bar N</math> is the number of ''internal'' nodes in the mesh and <math display="inline">\Omega _k </math> is the tributary area of node <math display="inline">k</math> (Figure 1). In Eqs.(14) absolute values are used to avoid random cancelation of the residual power terms. Indeed Eqs.(14) imply nodal continuity of the weighting functions obtained via the derivative recovery process explained in the next Section. The global error for a given mesh is estimated as
247
248
{| class="formulaSCP" style="width: 100%; text-align: left;" 
249
|-
250
| 
251
{| style="text-align: left; margin:auto;width: 100%;" 
252
|-
253
| style="text-align: center;" | <math>\Vert P\Vert _\Omega = \sum \limits _{k=1}^{\bar N} \Vert P\Vert _{\Omega ^k}  </math>
254
|}
255
| style="width: 5px;text-align: right;white-space: nowrap;" | (15)
256
|}
257
258
where <math display="inline">\Vert P\Vert _{\Omega ^k} </math> is the estimated error value for an individual node defined as
259
260
{| class="formulaSCP" style="width: 100%; text-align: left;" 
261
|-
262
| 
263
{| style="text-align: left; margin:auto;width: 100%;" 
264
|-
265
| style="text-align: center;" | <math>\Vert P\Vert _{\Omega ^k} = \sum \limits _{i=1}^{n_d} [P_{m_i}]_k +[P_v]_k </math>
266
|}
267
| style="width: 5px;text-align: right;white-space: nowrap;" | (16)
268
|}
269
270
===Remark===
271
272
We note that the residual power expressions chosen can be interpreted as the projection of the recovered residuals of the momentum and incompressibility equations against the weighting functions <math display="inline">P_{m_i}</math> and <math display="inline">P_v</math>, respectively. In this sense, Eqs.(12) can be viewed as a particular class of residual projection method. A review of these procedures can be found in <span id='citeF-15'></span>[[#cite-15|[15]]] and references herein.
273
274
275
==4 RECOVERY OF THE NODAL DERIVATIVES OF THE VELOCITIES AND THE PRESSURE==
276
277
The recovered derivative field <math display="inline">\left(\displaystyle \overline{\partial \hat u_i\over \partial x_j}\right)</math> is defined so as to satisfy the following variational form
278
279
{| class="formulaSCP" style="width: 100%; text-align: left;" 
280
|-
281
| 
282
{| style="text-align: left; margin:auto;width: 100%;" 
283
|-
284
| style="text-align: center;" | <math>\int _\Omega N_k \left[\left(\overline{\partial \hat u_i\over \partial x_j}\right)- {\partial \hat u_i\over \partial x_j}\right]d\Omega =0\quad \hbox{no sum in }i </math>
285
|}
286
| style="width: 5px;text-align: right;white-space: nowrap;" | (17)
287
|}
288
289
where <math display="inline">N_k</math> are the same shape functions used to approximate the velocity field and <math display="inline">\displaystyle{\partial \hat u_i\over \partial x_j}</math> are known derivatives values directly obtained from the finite element solution.
290
291
A standard finite element approximation is chosen for the recovered derivative field; i.e.
292
293
{| class="formulaSCP" style="width: 100%; text-align: left;" 
294
|-
295
| 
296
{| style="text-align: left; margin:auto;width: 100%;" 
297
|-
298
| style="text-align: center;" | <math>\left(\overline{\partial \hat u_i\over \partial x_j}\right)=\sum \limits _k N_k \left(\overline{\partial \hat u_i\over \partial x_j}\right)_k </math>
299
|}
300
| style="width: 5px;text-align: right;white-space: nowrap;" | (18)
301
|}
302
303
Substituting Eq.(18) into (17) gives the following system of equations from which the recovered nodal derivative values can be obtained
304
305
{| class="formulaSCP" style="width: 100%; text-align: left;" 
306
|-
307
| 
308
{| style="text-align: left; margin:auto;width: 100%;" 
309
|-
310
| style="text-align: center;" | <math>{M} \bar{\hat {d}}_{ij}= {f}_{ij} </math>
311
|}
312
| style="width: 5px;text-align: right;white-space: nowrap;" | (19)
313
|}
314
315
with
316
317
{| class="formulaSCP" style="width: 100%; text-align: left;" 
318
|-
319
| 
320
{| style="text-align: left; margin:auto;width: 100%;" 
321
|-
322
| style="text-align: center;" | <math>\bar{\hat {d}}_{ij}= \left[\left(\overline{\partial \hat u_i\over \partial x_j}\right)_1,\left(\overline{\partial \hat u_i\over \partial x_j}\right)_2,\cdots , \left(\overline{\partial \hat u_i\over \partial x_j}\right)_N\right]^T </math>
323
|}
324
| style="width: 5px;text-align: right;white-space: nowrap;" | (20)
325
|}
326
327
where <math display="inline">N</math> is the number of nodes in the mesh.
328
329
The element contributions to <math display="inline">{M}</math> and '''f''' are
330
331
{| class="formulaSCP" style="width: 100%; text-align: left;" 
332
|-
333
| 
334
{| style="text-align: left; margin:auto;width: 100%;" 
335
|-
336
| style="text-align: center;" | <math>M_{kl}^e =\int _{\Omega ^e} N_k N_l d\Omega \quad , \quad (f_{ij}^e)_k = \int _{\Omega ^e} N_k {\partial \hat u_i\over \partial x_j} d\Omega  </math>
337
|}
338
| style="width: 5px;text-align: right;white-space: nowrap;" | (21)
339
|}
340
341
We recall that in above <math display="inline">\displaystyle{\partial \hat u_i\over \partial x_j}</math> is the (discontinuous) derivative field obtained from the finite element solution and <math display="inline">\left(\displaystyle \overline{\partial \hat u_i\over \partial x_j}\right)_k</math> are the recovered derivative values at node <math display="inline">k</math>. The process is repeated for <math display="inline">i,j=1,n_d</math>.
342
343
The full form of matrix <math display="inline">{M}</math> is used for the solution of Eq.(19) using a standard Jacobian iterative scheme.
344
345
The same procedure is followed in order to recover the nodal derivatives of the pressure and the nodal second derivatives of the velocity field <math display="inline">\left(\displaystyle{\partial ^2 \hat u_k\over \partial x_i\partial x_j}\right)</math> needed for computation of all the terms in the recovered momentum equations <math display="inline">R_{m_i}</math>.
346
347
==5 ERROR INDICATORS AND MESH ADAPTATION PROCEDURES==
348
349
A ''global error parameter'' is defined as
350
351
{| class="formulaSCP" style="width: 100%; text-align: left;" 
352
|-
353
| 
354
{| style="text-align: left; margin:auto;width: 100%;" 
355
|-
356
| style="text-align: center;" | <math>\xi _g = {\Vert P\Vert _\Omega \over \mu U} </math>
357
|}
358
| style="width: 5px;text-align: right;white-space: nowrap;" | (22)
359
|}
360
361
where <math display="inline">\mu </math> is the prescribed global error value and <math display="inline">U</math> is the total power in the mesh defined here as
362
363
{| class="formulaSCP" style="width: 100%; text-align: left;" 
364
|-
365
| 
366
{| style="text-align: left; margin:auto;width: 100%;" 
367
|-
368
| style="text-align: center;" | <math>U= \int _\Omega \left[\tau _{ij} \varepsilon _{ij} + {\partial p\over \partial x_i}u_i\right]d\Omega  </math>
369
|}
370
| style="width: 5px;text-align: right;white-space: nowrap;" | (23)
371
|}
372
373
The first term in Eq.(23) is the power of the viscous stresses, whereas the second one is the power of the pressure gradient terms. The integral in Eq.(23) is computed using nodal information by an expression analogous to Eq.(15).
374
375
The mesh adaption process aims to reduce the global error (leading to a value of <math display="inline">\xi _g =1</math>) while satisfying a local error condition for each individual element. The two options considered in this work for the local error condition are presented next.
376
377
===5.1 Mesh adaptation based on the equidistribution of the global error===
378
379
A ''local error parameter'' <math display="inline"> \xi _g</math> is defined for each element as
380
381
{| class="formulaSCP" style="width: 100%; text-align: left;" 
382
|-
383
| 
384
{| style="text-align: left; margin:auto;width: 100%;" 
385
|-
386
| style="text-align: center;" | <math>\xi ^e= {\Vert P\Vert _{\Omega ^e} N\over \Vert P\Vert _\Omega } </math>
387
|}
388
| style="width: 5px;text-align: right;white-space: nowrap;" | (24)
389
|}
390
391
where <math display="inline">\Vert P\Vert _{\Omega ^e}</math> is the residual power error for element <math display="inline">e</math> and <math display="inline">N</math> is the total number of elements in the mesh. Eq.(24) is based in the so called equi-distribution of the global error, i.e. if <math display="inline">\xi ^e= 1</math> for all elements then the total residual power error is uniformly distributed in the mesh <span id='citeF-4'></span>[[#cite-4|[4]]].
392
393
The error indicator for the element is defined as
394
395
{| class="formulaSCP" style="width: 100%; text-align: left;" 
396
|-
397
| 
398
{| style="text-align: left; margin:auto;width: 100%;" 
399
|-
400
| style="text-align: center;" | <math>\gamma ^e = (\xi ^e)^\alpha (\xi _g)^\beta  </math>
401
|}
402
| style="width: 5px;text-align: right;white-space: nowrap;" | (25)
403
|}
404
405
Parameters <math display="inline">\alpha </math> and <math display="inline">\beta </math> are found by analyzing the convergence rate of the global and local error parameters as described in <span id='citeF-4'></span>[[#cite-4|[4]]]. In the examples presented in the paper the following values of <math display="inline">\alpha </math> and <math display="inline">\beta </math> have been used
406
407
{| class="formulaSCP" style="width: 100%; text-align: left;" 
408
|-
409
| 
410
{| style="text-align: left; margin:auto;width: 100%;" 
411
|-
412
| style="text-align: center;" | <math>\alpha = {1\over p+n_d}\quad ,\quad \beta = {1\over p+1} </math>
413
|}
414
| style="width: 5px;text-align: right;white-space: nowrap;" | (26)
415
|}
416
417
where <math display="inline">p</math> is the order of the finite element interpolation (i.e. <math display="inline">p=1</math> for linear elements).
418
419
The new element size <math display="inline">h_{new}</math> is computed in terms of the error indicator <math display="inline">\gamma ^e</math> and the current element size as
420
421
{| class="formulaSCP" style="width: 100%; text-align: left;" 
422
|-
423
| 
424
{| style="text-align: left; margin:auto;width: 100%;" 
425
|-
426
| style="text-align: center;" | <math>h_{new}= h_{old} [\gamma ^e]^{-1} </math>
427
|}
428
| style="width: 5px;text-align: right;white-space: nowrap;" | (27)
429
|}
430
431
===5.2 Mesh adaptation based on the equidistribution of the error density===
432
433
An alternative local error parameter based on the equidistribution of the density of the residual power can be defined as
434
435
{| class="formulaSCP" style="width: 100%; text-align: left;" 
436
|-
437
| 
438
{| style="text-align: left; margin:auto;width: 100%;" 
439
|-
440
| style="text-align: center;" | <math>\xi ^e= {\Omega \Vert P\Vert _{\Omega ^e} \over \Omega ^e \Vert P\Vert _\Omega } </math>
441
|}
442
| style="width: 5px;text-align: right;white-space: nowrap;" | (28)
443
|}
444
445
where <math display="inline">\Omega </math> and <math display="inline">\Omega ^e</math> are the area of the analysis domain and the area of an individual element, respectively. Now <math display="inline">\xi ^e = 1</math> if the density of the error (error per unit area) is uniformly distributed over the mesh.
446
447
The expression for the error indicator for the element is again given by Eq.(25). The following values of <math display="inline">\alpha </math> and <math display="inline">\beta </math> are now chosen as deduced following the procedure described in <span id='citeF-4'></span>[[#cite-4|[4]]]
448
449
{| class="formulaSCP" style="width: 100%; text-align: left;" 
450
|-
451
| 
452
{| style="text-align: left; margin:auto;width: 100%;" 
453
|-
454
| style="text-align: center;" | <math>\alpha = {1\over p} \quad ,\quad \beta = {1\over p} </math>
455
|}
456
| style="width: 5px;text-align: right;white-space: nowrap;" | (29)
457
|}
458
459
The new element sizes are computed  from Eq.(27).
460
461
This mesh adaptation criteria leads to meshes where the smaller elements are concentrated in zones where the higher gradients of the velocity and pressure occur, whereas much larger elemens are placed in other zones of the domain <span id='citeF-4'></span>[[#cite-4|[4]]]. This is adequate for capturing accurate solutions in the vecinity of boundary layers or singularity zones. The drawback of this procedure is that it tends to refine progressively (and very fast) the mesh in these zones until <math display="inline">\xi ^e=1</math>. This  leads to regions with very small elements and hence to an extremely large number of elements in the mesh. A limiting value in the size of the smallest element in the new mesh is mandatory in these cases.
462
463
Alternatively the criterium based on the equidistribution of the global error described in the previous section leads to meshes with a “smoother” distribution of the element sizes between the regions where high gradients occur and the other zones in the domain.
464
465
A comparison of these two mesh adaptions procedures for linear structural analysis can be found in <span id='citeF-4'></span>[[#cite-4|[4]]].
466
467
===5.3 Mesh refinement strategy===
468
469
The mesh refinement strategy is as follows.
470
471
'''Step 1''' Compute the nodal recovered values of the derivatives of the velocity and pressure fields using the algorithm described in  Section 4. 
472
473
'''Step 2''' Compute the residual power error for each element in the mesh and the total residual power error using Eqs.(15) and (16). 
474
475
'''Step 3''' Compute the global and local (element) error parameters <math display="inline">\xi _g</math> and <math display="inline">\xi ^e</math>. 
476
477
'''Step 4''' Compute the new element sizes using Eq.(27). Perform a smoothing of the new element sizes to avoid problems during the regeneration of the mesh. 
478
479
'''Step 5''' Regenerate a new mesh. Minimum and maximum sizes of the elements in the mesh are prescribed in order to have a better control of the mesh generation process. The mesh generation  is carried out using the GiD pre/postprocessing system <span id='citeF-23'></span>[[#cite-23|[23]]].
480
481
Above mesh refinement strategy is equally applicable for the two mesh adaption procedures explained in the previous sections.
482
483
For steady-state flow problems the error estimation and the mesh refinement process are performed after a steady state solution has been found. For transient problems the mesh refinement  is performed after a prescribed number of time steps.
484
485
==6 STABILIZED FEM FOR THE NAVIER-STOKES EQUATIONS USING FINITE CALCULUS==
486
487
===6.1 Finite calculus form of the Navier-Stokes equations===
488
489
The FIC governing equations for incompressible viscous flows are obtained by applying the standard conservation laws expressing balance of momentum and mass over a control domain. Assuming that the control domain has finite dimensions and expressing the variation of mass and momentum over the domain using Taylor series expansions of one order higher than those used in the standard infinitesimal  theory, the following expressions are found <span id='citeF-17'></span>[[#cite-17|[17-21]]]:<br/>
490
491
''Momentum''
492
493
{| class="formulaSCP" style="width: 100%; text-align: left;" 
494
|-
495
| 
496
{| style="text-align: left; margin:auto;width: 100%;" 
497
|-
498
| style="text-align: center;" | <math>r_{m_i} - \underline{{1\over 2} h_{j} {\partial r_{m_i}\over \partial x_ j}}{1\over 2} h_{j} {\partial r_{m_i}\over \partial x_ j} =0 \qquad \hbox{in } \Omega  </math>
499
|}
500
| style="width: 5px;text-align: right;white-space: nowrap;" | (30)
501
|}
502
503
''Mass balance''
504
505
{| class="formulaSCP" style="width: 100%; text-align: left;" 
506
|-
507
| 
508
{| style="text-align: left; margin:auto;width: 100%;" 
509
|-
510
| style="text-align: center;" | <math>r_v - \underline{{1\over 2} h_{j}{\partial r_v \over \partial x_j}}{1\over 2} h_{j}{\partial r_v \over \partial x_j} =0 \qquad \hbox{in } \Omega  </math>
511
|}
512
| style="width: 5px;text-align: right;white-space: nowrap;" | (31)
513
|}
514
515
where <math display="inline">r_{m_i}</math> and <math display="inline">r_v</math> were defined in Eqs.(3) and (4), respectively.
516
517
Eqs.(30) and (31) are the ''FIC forms'' of the governing differential equations for an incompressible flow. The terms underlined in Eqs.(30) and (31) introduce naturally the necessary stabilization at the discretization level. The so called ''characteristic length'' vector <math display="inline">{h}</math> is defined as (for 2D problems)
518
519
{| class="formulaSCP" style="width: 100%; text-align: left;" 
520
|-
521
| 
522
{| style="text-align: left; margin:auto;width: 100%;" 
523
|-
524
| style="text-align: center;" | <math>{h}=\left\{\begin{matrix} h_{1}\\ h_{2}\\\end{matrix}\right\} </math>
525
|}
526
| style="width: 5px;text-align: right;white-space: nowrap;" | (32)
527
|}
528
529
where <math display="inline">h_{1}</math> and <math display="inline">h_{2}</math> are characteristic dimensions of the finite control domain where balance of momentum and mass conservation is enforced. The components of vector <math display="inline">{h}</math> introduce the necessary stabilization along the streamline and transverse directions to the flow in the discrete problem <span id='citeF-17'></span>[[#cite-17|[17-21]]].
530
531
The method to derive the modified differential equations (30) and (31) incorporating the stabilization terms is termed ''finite calculus'' (FIC) as a reference to the standard infinitesimal calculus  where the size of the domain where balance of mass and momentum is enforced is assumed to be negligible. Note that for <math display="inline">{h}\to 0</math> the standard infinitesimal form of the momentum and mass balance equations is recovered <span id='citeF-1'></span>[[#cite-1|[1]]].
532
533
Eqs.(30) and (31) are completed by the following FIC boundary conditions <span id='citeF-17'></span>[[#cite-17|[17]]].
534
535
<br/>
536
537
''Equilibrium of surface tractions  at the boundary'' <math display="inline">\Gamma _t</math>
538
539
{| class="formulaSCP" style="width: 100%; text-align: left;" 
540
|-
541
| 
542
{| style="text-align: left; margin:auto;width: 100%;" 
543
|-
544
| style="text-align: center;" | <math>n_j \sigma _{ij}-t_i^p + \underline{{1\over 2} h_{j}n_j r_{m_i}}{1\over 2} h_{j}n_j r_{m_i} = 0\qquad \hbox{on}~~\Gamma _t  </math>
545
|}
546
| style="width: 5px;text-align: right;white-space: nowrap;" | (33)
547
|}
548
549
''Prescribed velocity at  the boundaries ''
550
551
{| class="formulaSCP" style="width: 100%; text-align: left;" 
552
|-
553
| 
554
{| style="text-align: left; margin:auto;width: 100%;" 
555
|-
556
| style="text-align: center;" | <math>u_t =u_t^p \qquad \hbox{on}~~\Gamma _{u_t} </math>
557
|}
558
| style="width: 5px;text-align: right;white-space: nowrap;" | (34)
559
|}
560
561
{| class="formulaSCP" style="width: 100%; text-align: left;" 
562
|-
563
| 
564
{| style="text-align: left; margin:auto;width: 100%;" 
565
|-
566
| style="text-align: center;" | <math>u_n - \underline{{1\over 2}h_{i}n_ir_v}{1\over 2}h_{i}n_ir_v=u_n^p \qquad \hbox{on} ~~\Gamma _{u_n} </math>
567
|}
568
| style="width: 5px;text-align: right;white-space: nowrap;" | (35)
569
|}
570
571
In eq.(34) <math display="inline">u_t</math> and <math display="inline">u_t^p</math> denote the tangential velocity to the boundary and its prescribed value, respectively.
572
573
Eq.(35) expresses the balance of mass on an arbitrary domain next to the boundary and <math display="inline">u_n</math> and <math display="inline">u_n^p</math> denote the velocity normal to the boundary and its prescribed value, respectively. The value of <math display="inline">u_n^p</math> is  zero on solid walls and stationary free surfaces.
574
575
Also in eqs.(34) and (35) <math display="inline">\Gamma _{u_t}</math> and <math display="inline">\Gamma _{u_n}</math> are the parts of the boundary <math display="inline">\Gamma </math> of <math display="inline">\Omega </math> where the tangential and normal velocities are prescribed, respectively. The Dirichlet boundary is defined as <math display="inline">\Gamma _u=\Gamma _{u_t}\cup \Gamma _{u_n}</math>.
576
577
The underlined terms in eqs.(33) and (35) introduce the necessary stabilization at the boundaries in a form consistent with that of eqs.(30) and (31). Details of the derivation of eqs.(30&#8211;35) can be found in <span id='citeF-17'></span>[[#cite-17|[17]]] whereas the derivation of eq.(9) is shown in <span id='citeF-18'></span>[[#cite-18|[18]]].
578
579
===6.2 Residual power forms of FIC equations===
580
581
We will choose again an equal order finite element approximation for the velocity and pressure variables given by Eqs.(8)
582
583
Again we will assume that a finite element solution has been found for the velocity and the pressure variables. The finite element algorithm used for the examples solved in this paper is based on a ''fractional step scheme'' <span id='citeF-19'></span>[[#cite-19|[19-21,30]]]. The next step is to obtain enhanced recovered values of the derivatives of the velocity and the pressure at the element nodes as explained in previouss section.
584
585
The recovered nodal derivative fields of the velocities and the pressure are used now to compute the FIC residuals of the momentum and mass balance equations (1) and (2):
586
587
{| class="formulaSCP" style="width: 100%; text-align: left;" 
588
|-
589
| 
590
{| style="text-align: left; margin:auto;width: 100%;" 
591
|-
592
| style="text-align: center;" | <math>\begin{array}{c}\displaystyle R_{m_i}= \bar{\hat r}_{m_i} - {h_{j} \over 2} {\partial \bar{\hat r}_{m_i}\over \partial x_j}\\  \\ \displaystyle R_v=\bar{\hat r}_v - {h_{j}\over 2} {\partial \bar{\hat r}_v \over \partial x_j}  \end{array} </math>
593
|}
594
| style="width: 5px;text-align: right;white-space: nowrap;" | (36)
595
|}
596
597
where once more <math display="inline">\bar{\hat{(\cdot )}}</math> denote values computed using the recovered derivative fields.
598
599
The total  power due to the FIC residuals can be written as
600
601
{| class="formulaSCP" style="width: 100%; text-align: left;" 
602
|-
603
| 
604
{| style="text-align: left; margin:auto;width: 100%;" 
605
|-
606
| style="text-align: center;" | <math>\begin{array}{c}\displaystyle P_{m_i}= \int _\Omega \hat u_i R_{m_i} d\Omega + \int _{\Gamma _t} \hat u_i  \left(n_j \bar{\hat \sigma }_{ij} - t_i + {h_{j}\over 2} n_j \bar{\hat r}_{m_i}\right)d\Gamma \\ \\ \displaystyle P_v= \int _\Omega \hat p R_v d\Omega - \int _{\Gamma _{u_n}} \hat p \left(\hat u_n -u_n^p - {h_{j}\over 2}n_j  \bar{\hat r}_v\right)d\Gamma  \end{array} </math>
607
|}
608
| style="width: 5px;text-align: right;white-space: nowrap;" | (37)
609
|}
610
611
Substituting the expressions of <math display="inline">R_{m_i}</math> and <math display="inline">R_v</math> of Eqs.(36) into (37) and integrating by parts some derivative terms gives
612
613
{| class="formulaSCP" style="width: 100%; text-align: left;" 
614
|-
615
| 
616
{| style="text-align: left; margin:auto;width: 100%;" 
617
|-
618
| style="text-align: center;" | <math>P_{m_i}= \int _\Omega \left[\hat u_i + {h_j\over 2}\left({\partial \hat u_i \over  \partial x_j} \right)\right]\bar{\hat r}_{m_i} d\Omega +  \int _{\Gamma _t} \hat u_i \left(\bar{\hat \sigma }_{ij}n_j  -t_i\right)d\Gamma  - \int _{\Gamma _u}  {h_j\over 2} n_j \hat u_i \bar{\hat r}_{m_i} d\Gamma \quad \hbox{no sum in } i</math>
619
|}
620
| style="width: 5px;text-align: right;white-space: nowrap;" |  (38a)
621
|}
622
623
{| class="formulaSCP" style="width: 100%; text-align: left;" 
624
|-
625
| 
626
{| style="text-align: left; margin:auto;width: 100%;" 
627
|-
628
| style="text-align: center;" | <math>P_v= \int _\Omega \left[\hat p  +{h_j\over 2} \left({\partial \hat p\over \partial x_j}\right)\right] \bar{\hat r}_v d\Omega - \int _{\Gamma _{u_n}} \hat p (\hat u_n - u_n^p)d\Gamma - \int _{\Gamma -\Gamma _{u_n}}\hat p {h_j\over 2}n_j \bar{\hat r}_v d\Gamma </math>
629
|}
630
| style="width: 5px;text-align: right;white-space: nowrap;" |  (38b)
631
|}
632
633
Numerical experiments have  shown that the contribution of the boundary integrals in Eqs.(38) is negligible versus the value of the integrals over the domain. Hence the contribution of the surface integrals in Eqs.(38) will not be taken into account from now onwards. An explanation for this is that at the solid boundaries  in a viscous flow <math display="inline">\hat u_j=0</math> and hence the line integrals in Eq.(38a) vanish there. Note also that at the exterior boundary <math display="inline">\hat \sigma _{ij}n_j\simeq t_i</math> on <math display="inline">\Gamma _t</math> and <math display="inline">r_{m_i}\simeq 0</math> on <math display="inline">\Gamma _u</math> and this justifies neglecting the line integral at those boundaries. In Eq.(38b) the first line integral vanishes if <math display="inline">\hat u_n</math> is made equal to the prescribed normal velocity <math display="inline">u_n^p</math> when solving the system of discretized equations.  The second integral in Eq.(38b) can be neglected by accepting that either <math display="inline">p=0</math> (external boundary) or <math display="inline">\bar{\hat r}_v \simeq 0</math> at the <math display="inline">\Gamma - \Gamma _{u_n}</math> boundary.
634
635
In summary, the relevant residual power terms for the FIC momentum and mass balance equations are
636
637
{| class="formulaSCP" style="width: 100%; text-align: left;" 
638
|-
639
| 
640
{| style="text-align: left; margin:auto;width: 100%;" 
641
|-
642
| style="text-align: center;" | <math>\displaystyle P_{m_i}= \int _\Omega \left[\hat u_i + {h_j\over 2} \left({\partial \hat u_i \over  \partial x_j}\right)\right]\bar{\hat r}_{m_i} d\Omega \qquad \hbox{no sum in }i</math>
643
|}
644
| style="width: 5px;text-align: right;white-space: nowrap;" |  (39a)
645
|}
646
647
{| class="formulaSCP" style="width: 100%; text-align: left;" 
648
|-
649
| 
650
{| style="text-align: left; margin:auto;width: 100%;" 
651
|-
652
| style="text-align: center;" | <math>\displaystyle P_v= \int _\Omega \left[\hat p + {h_j\over 2} \left({\partial \hat p\over \partial x_j}\right)\right]\bar{\hat r}_v  d\Omega </math>
653
|}
654
| style="width: 5px;text-align: right;white-space: nowrap;" |  (39b)
655
|}
656
657
In the examples presented in the paper the integrals in Eq.(39) are computed using a nodal integration scheme. This requires computing the recovered nodal value of the derivative of the velocity and pressure field. This is an unexpensive task as the recovered nodal values are needed to evaluate the recovered residual. The nodal computation of the residual power expressions is therefore written as
658
659
{| class="formulaSCP" style="width: 100%; text-align: left;" 
660
|-
661
| 
662
{| style="text-align: left; margin:auto;width: 100%;" 
663
|-
664
| style="text-align: center;" | <math>\begin{array}{l}\displaystyle P_{m_i}= \sum \limits _{k=1}^{\bar N}\left|\left[\left(\hat u_i + {h_j\over 2}\left(\overline{\partial \hat u_i \over  \partial x_j}\right)\right)\bar{\hat r}_{m_i}\right]_k\right|\Omega _k\\ \\ \displaystyle P_v= \sum \limits _{k=1}^{\bar N} \left|\left[\left(\hat p  +{h_j\over 2} \left(\overline{\partial \hat p\over \partial x_j}\right)\right)\bar{\hat r}_v \right]_k \right|\Omega _k  \end{array} </math>
665
|}
666
| style="width: 5px;text-align: right;white-space: nowrap;" | (40)
667
|}
668
669
the different terms have the meaning explained for Eq.(14).
670
671
We note that in the examples presented next the characteristic length parameters have been defined as the characteristic sizes of  each tributary domain for a node (see Figure 1).
672
673
<div id='img-1'></div>
674
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
675
|-
676
|[[Image:Draft_Samper_249588187-figura0.png|300px|Tributary domain for a node k and definition of characteristic lengths.]]
677
|- style="text-align: center; font-size: 75%;"
678
| colspan="1" | '''Figure 1:''' Tributary domain for a node <math>k</math> and definition of characteristic lengths.
679
|}
680
681
The global and element error norm are defined by Eqs.(15) and (16), respectively. The error estimation process and the mesh adaptivity scheme follow precisely the steps explained in Section 5.
682
683
===Remark===
684
685
Eqs.(40) define the weighting functions in the general residual power forms of Eqs.(12) and (13) as
686
687
{| class="formulaSCP" style="width: 100%; text-align: left;" 
688
|-
689
| 
690
{| style="text-align: left; margin:auto;width: 100%;" 
691
|-
692
| style="text-align: center;" | <math>\begin{array}{l}\displaystyle{W_i^u = \hat u_i + {h_j\over 2} \left(\overline{\partial \hat u_i \over  \partial x_j}\right)} \quad , \quad \bar W_i^u  = 0 \\ \\ \displaystyle{W^p  = \hat p +  {h_j\over 2}  \left(\overline{\partial \hat p\over \partial x_j}\right)} \end{array} </math>
693
|}
694
| style="width: 5px;text-align: right;white-space: nowrap;" | (41)
695
|}
696
697
These expressions, obtained using arguments from the FIC formulation, can be used to compute variational residual forms of the error in order to derive effective mesh refinement procedures for other problems of computational mechanics using the general scheme presented in Section 5.3 <span id='citeF-19'></span>[[#cite-19|[19]]].
698
699
We note again however that Eqs.(41) are not the only option for <math display="inline">W_i^u</math> and <math display="inline">W^p</math> and some other choices are explored in <span id='citeF-22'></span>[[#cite-22|[22]]] to derive a variety of error estimation and mesh refinement procedures for convection-diffusion problems. Numerical results reported in <span id='citeF-22'></span>[[#cite-22|[22]]] show that the expressions given by Eqs.(41) have a better performance.
700
701
==7 EXAMPLES==
702
703
Typical parameters used for the  examples presented are: prescribed global  error <math display="inline">\mu = 1%</math>, maximum and minimum sizes of the new elements generated <math display="inline">h_{max}=0.3</math>m and <math display="inline">h_{min}=0.001</math>m.
704
705
===7.1 Flow past a NACA airfoil===
706
707
This a transient problem. The mesh refinement process has been carried out at a time <math display="inline">t=2s</math>. The value of the Reynolds number for this problem is 100. Figure 2 shows the initial mesh of 2574 nodes and 5148 linear elements used.
708
709
<div id='img-2'></div>
710
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
711
|-
712
|[[Image:Draft_Samper_249588187-fig1.png|600px|Flow past a NACA airfoil. Characteristic length =1m, Re=100. Original mesh]]
713
|- style="text-align: center; font-size: 75%;"
714
| colspan="1" | '''Figure 2:''' Flow past a NACA airfoil. Characteristic length =1m, <math>Re=100</math>. Original mesh
715
|}
716
717
The mesh adaptation procedure chosen first is that of  equidistribution of the global error. Figures 3 and 4 show the mesh obtained after five refinement steps. The distribution of the velocity field for that mesh is shown in Figures 5 and 6. Table 1 shows the value of the global error and the evolution of the number of elements and nodes during the mesh refinement process. The percentage errors in the drag and lift values are also given in Table 1. We note that the solution was found using a laminar flow model. Therefore some error in the drag values is to be expected even for fine meshes. The error of 6.4% obtained in this case is quite acceptable.
718
719
<div id='img-3'></div>
720
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
721
|-
722
|[[Image:Draft_Samper_249588187-fig2.png|600px|Mesh obtained after five refinement steps using the equidistribution of the global error.]]
723
|- style="text-align: center; font-size: 75%;"
724
| colspan="1" | '''Figure 3:''' Mesh obtained after five refinement steps using the equidistribution of the global error.
725
|}
726
727
<div id='img-4'></div>
728
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
729
|-
730
|[[Image:Draft_Samper_249588187-fig3.png|468px|]]
731
|style="padding-left:10px;"|[[Image:Draft_Samper_249588187-fig3_b.png|534px|Details of the refined mesh of Figure 3 in the vecinity of the airfoil]]
732
|- style="text-align: center; font-size: 75%;"
733
| colspan="2" | '''Figure 4:''' Details of the refined mesh of Figure 3 in the vecinity of the airfoil
734
|}
735
736
<div id='img-5'></div>
737
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
738
|-
739
|[[Image:Draft_Samper_249588187-naca_line_1.png|600px|Velocity field after five refinement steps]]
740
|- style="text-align: center; font-size: 75%;"
741
| colspan="1" | '''Figure 5:''' Velocity field after five refinement steps
742
|}
743
744
<div id='img-6'></div>
745
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
746
|-
747
|[[Image:Draft_Samper_249588187-naca_line_2.png|510px|Detail of the velocity field]]
748
|- style="text-align: center; font-size: 75%;"
749
| colspan="1" | '''Figure 6:''' Detail of the velocity field
750
|}
751
752
753
{|  class="floating_tableSCP wikitable" style="text-align: center; margin: 1em auto;min-width:50%;"
754
|+ style="font-size: 75%;" |Table. 1 Flow past a NACA airfoil (equidistribution of global error). Convergence of the global error with the mesh refinement. Minimum element size = 0.001m
755
|- style="border-top: 2px solid;"
756
| style="border-left: 2px solid;border-right: 2px solid;" |  Mesh 
757
| style="border-left: 2px solid;border-right: 2px solid;" | Global error <math display="inline">\left({\Vert P\Vert _\Omega \over U}\right)</math>(%)  
758
| style="border-left: 2px solid;border-right: 2px solid;" | Nodes 
759
| style="border-left: 2px solid;border-right: 2px solid;" | Elements
760
| style="border-left: 2px solid;border-right: 2px solid;" | Drag error %
761
| style="border-left: 2px solid;border-right: 2px solid;" | Lift error% 
762
|- style="border-top: 2px solid;"
763
| style="border-left: 2px solid;border-right: 2px solid;" |  1
764
| style="border-left: 2px solid;border-right: 2px solid;" | 5.55
765
| style="border-left: 2px solid;border-right: 2px solid;" | 2574
766
| style="border-left: 2px solid;border-right: 2px solid;" | 4784
767
| style="border-left: 2px solid;border-right: 2px solid;" | 29.1810942 
768
| style="border-left: 2px solid;border-right: 2px solid;" | 2.99902143
769
|- style="border-top: 2px solid;"
770
| style="border-left: 2px solid;border-right: 2px solid;" |  2
771
| style="border-left: 2px solid;border-right: 2px solid;" | 2.93
772
| style="border-left: 2px solid;border-right: 2px solid;" | 5340
773
| style="border-left: 2px solid;border-right: 2px solid;" | 10680
774
| style="border-left: 2px solid;border-right: 2px solid;" | 28.7443059
775
| style="border-left: 2px solid;border-right: 2px solid;" | 2.5500113
776
|- style="border-top: 2px solid;"
777
| style="border-left: 2px solid;border-right: 2px solid;" |  3
778
| style="border-left: 2px solid;border-right: 2px solid;" | 2.87
779
| style="border-left: 2px solid;border-right: 2px solid;" | 7942
780
| style="border-left: 2px solid;border-right: 2px solid;" | 15884
781
| style="border-left: 2px solid;border-right: 2px solid;" | 22.1078024
782
| style="border-left: 2px solid;border-right: 2px solid;" | 2.00851784
783
|- style="border-top: 2px solid;"
784
| style="border-left: 2px solid;border-right: 2px solid;" |  4
785
| style="border-left: 2px solid;border-right: 2px solid;" | 2.77
786
| style="border-left: 2px solid;border-right: 2px solid;" | 11948
787
| style="border-left: 2px solid;border-right: 2px solid;" | 23896
788
| style="border-left: 2px solid;border-right: 2px solid;" | 15.2893198
789
| style="border-left: 2px solid;border-right: 2px solid;" | 1.54898957
790
|- style="border-top: 2px solid;"
791
| style="border-left: 2px solid;border-right: 2px solid;" |  5
792
| style="border-left: 2px solid;border-right: 2px solid;" | 1.81
793
| style="border-left: 2px solid;border-right: 2px solid;" | 17142
794
| style="border-left: 2px solid;border-right: 2px solid;" | 34284
795
| style="border-left: 2px solid;border-right: 2px solid;" | 10.6478917
796
| style="border-left: 2px solid;border-right: 2px solid;" | 1.17033653
797
|- style="border-top: 2px solid;"
798
| style="border-left: 2px solid;border-right: 2px solid;" |  6
799
| style="border-left: 2px solid;border-right: 2px solid;" | 1.81
800
| style="border-left: 2px solid;border-right: 2px solid;" | 17255
801
| style="border-left: 2px solid;border-right: 2px solid;" | 34510
802
| style="border-left: 2px solid;border-right: 2px solid;" | 8.54878424
803
| style="border-left: 2px solid;border-right: 2px solid;" | 1.02567233
804
|- style="border-top: 2px solid;"
805
| style="border-left: 2px solid;border-right: 2px solid;" |  7
806
| style="border-left: 2px solid;border-right: 2px solid;" | 1.71
807
| style="border-left: 2px solid;border-right: 2px solid;" | 17372
808
| style="border-left: 2px solid;border-right: 2px solid;" | 34744
809
| style="border-left: 2px solid;border-right: 2px solid;" | 6.93290243
810
| style="border-left: 2px solid;border-right: 2px solid;" | 0.86514698
811
|- style="border-top: 2px solid;border-bottom: 2px solid;"
812
| style="border-left: 2px solid;border-right: 2px solid;" |  8
813
| style="border-left: 2px solid;border-right: 2px solid;" | 1.72
814
| style="border-left: 2px solid;border-right: 2px solid;" | 16729
815
| style="border-left: 2px solid;border-right: 2px solid;" | 33458
816
| style="border-left: 2px solid;border-right: 2px solid;" | 6.40377809
817
| style="border-left: 2px solid;border-right: 2px solid;" | 0.97782406
818
819
|}
820
821
The same problem was solved using the criterium of the equidistribution of error density. The same maximum and minimum sizes for the generated elements are used (i.e., <math display="inline">h_{max}=0.3</math>m and <math display="inline">h_{min}=0.001</math>m). In this case,  after the third step the mesher  was unable to generate a new grid from the element size distributions given by the method. Figures 7 and 8 show the mesh obtained after the second step. The failure of the mesh generator is due to the very large gradients of the element size field leading to an extremely high density of elements concentrated near the airfoil.
822
823
<div id='img-7'></div>
824
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
825
|-
826
|[[Image:Draft_Samper_249588187-fig6.png|600px|Mesh obtained after two refinement steps using the equidistribution of the error density (min size = 0.001m)]]
827
|- style="text-align: center; font-size: 75%;"
828
| colspan="1" | '''Figure 7:''' Mesh obtained after two refinement steps using the equidistribution of the error density (min size = 0.001m)
829
|}
830
831
<div id='img-8'></div>
832
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
833
|-
834
|[[Image:Draft_Samper_249588187-fig7.png|474px|]]
835
|style="padding-left:10px;"|[[Image:Draft_Samper_249588187-fig7_b.png|534px|Detail of the refined mesh shown in the  previous figure]]
836
|- style="text-align: center; font-size: 75%;"
837
| colspan="2" | '''Figure 8:''' Detail of the refined mesh shown in the  previous figure
838
|}
839
840
841
{|  class="floating_tableSCP wikitable" style="text-align: center; margin: 1em auto;min-width:50%;"
842
|+ style="font-size: 75%;" |Table. 2 Flow past a NACA profile (equidistribution of error density). Convergence of the global error with the mesh refinement (min. element size = 0.001m)
843
|- style="border-top: 2px solid;"
844
| style="border-left: 2px solid;border-right: 2px solid;" |  Mesh 
845
| style="border-left: 2px solid;border-right: 2px solid;" | Global error <math display="inline">\left({\Vert P\Vert _\Omega \over U}\right)</math>(%)  
846
| style="border-left: 2px solid;border-right: 2px solid;" | Nodes 
847
| style="border-left: 2px solid;border-right: 2px solid;" | Elements
848
| style="border-left: 2px solid;border-right: 2px solid;" | Drag error %
849
| style="border-left: 2px solid;border-right: 2px solid;" | Lift error% 
850
|- style="border-top: 2px solid;"
851
| style="border-left: 2px solid;border-right: 2px solid;" |  1
852
| style="border-left: 2px solid;border-right: 2px solid;" | 5.55
853
| style="border-left: 2px solid;border-right: 2px solid;" | 2574
854
| style="border-left: 2px solid;border-right: 2px solid;" | 4784
855
| style="border-left: 2px solid;border-right: 2px solid;" | 29.1810942 
856
| style="border-left: 2px solid;border-right: 2px solid;" | 201.915023
857
|- style="border-top: 2px solid;"
858
| style="border-left: 2px solid;border-right: 2px solid;" |  2
859
| style="border-left: 2px solid;border-right: 2px solid;" | 2.18
860
| style="border-left: 2px solid;border-right: 2px solid;" | 10594
861
| style="border-left: 2px solid;border-right: 2px solid;" | 21188
862
| style="border-left: 2px solid;border-right: 2px solid;" | 10.4796861
863
| style="border-left: 2px solid;border-right: 2px solid;" | 1.16034921
864
|- style="border-top: 2px solid;border-bottom: 2px solid;"
865
| style="border-left: 2px solid;border-right: 2px solid;" |  3
866
| style="border-left: 2px solid;border-right: 2px solid;" | 2.14
867
| style="border-left: 2px solid;border-right: 2px solid;" | 39895
868
| style="border-left: 2px solid;border-right: 2px solid;" | 79790
869
| style="border-left: 2px solid;border-right: 2px solid;" | 3,17339951
870
| style="border-left: 2px solid;border-right: 2px solid;" | 0.5988364
871
872
|}
873
874
<div id='img-9'></div>
875
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
876
|-
877
|[[Image:Draft_Samper_249588187-Fig8.png|600px|Mesh obtained after four refinement steps using the equidistribution of the error density (min size = 0.002m).]]
878
|- style="text-align: center; font-size: 75%;"
879
| colspan="1" | '''Figure 9:''' Mesh obtained after four refinement steps using the equidistribution of the error density (min size = 0.002m).
880
|}
881
882
<div id='img-10'></div>
883
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
884
|-
885
|[[Image:Draft_Samper_249588187-Fig9.png|480px|]]
886
|style="padding-left:10px;"|[[Image:Draft_Samper_249588187-Fig9_b.png|540px|Detail of the refined mesh of Figure 9.]]
887
|- style="text-align: center; font-size: 75%;"
888
| colspan="2" | '''Figure 10:''' Detail of the refined mesh of Figure 9.
889
|}
890
891
Table 2 shows that the criterium of equidistribution of error density leads to a smaller error for the drag and lift  in  fewer time steps. Note however the increase in the number of elements and nodes  with respect to that of Table 1.  In order to avoid this problem, the minimum element size was increased next to 0.002m. This allowed to complete the mesh refinement process and the results are shown in Table 3 and Figures 9 and 10. Note that the drag and lift errors have now slightly increased, showing the dependence of these values with the minimum element size. Again we note that these errors can be reduced using a turbulence model.
892
893
894
{|  class="floating_tableSCP wikitable" style="text-align: center; margin: 1em auto;min-width:50%;"
895
|+ style="font-size: 75%;" |Table. 3 Flow past a NACA airfoil (equidistribution of error density). Convergence of the global error with the mesh refinement. Minimum  element size = 0.002m
896
|- style="border-top: 2px solid;"
897
| style="border-left: 2px solid;border-right: 2px solid;" |  Mesh 
898
| style="border-left: 2px solid;border-right: 2px solid;" | Global error <math display="inline">\left({\Vert P\Vert _\Omega \over U}\right)</math>(%)  
899
| style="text-align: right;border-left: 2px solid;border-right: 2px solid;" | Nodes 
900
| style="text-align: right;border-left: 2px solid;border-right: 2px solid;" | Elements
901
| style="border-left: 2px solid;border-right: 2px solid;" | Drag error %
902
| style="border-left: 2px solid;border-right: 2px solid;" | Lift error% 
903
|- style="border-top: 2px solid;"
904
| style="border-left: 2px solid;border-right: 2px solid;" |  1
905
| style="border-left: 2px solid;border-right: 2px solid;" | 6.38
906
| style="text-align: right;border-left: 2px solid;border-right: 2px solid;" | 2574 
907
| style="text-align: right;border-left: 2px solid;border-right: 2px solid;" | 4784 
908
| style="border-left: 2px solid;border-right: 2px solid;" | 29.1810942
909
| style="border-left: 2px solid;border-right: 2px solid;" | 2.99902143
910
|- style="border-top: 2px solid;"
911
| style="border-left: 2px solid;border-right: 2px solid;" |  2 
912
| style="border-left: 2px solid;border-right: 2px solid;" | 3.42  
913
| style="text-align: right;border-left: 2px solid;border-right: 2px solid;" | 9871 
914
| style="text-align: right;border-left: 2px solid;border-right: 2px solid;" | 19742 
915
| style="border-left: 2px solid;border-right: 2px solid;" | 11.4092413 
916
| style="border-left: 2px solid;border-right: 2px solid;" | 1.21135183
917
|- style="border-top: 2px solid;"
918
| style="border-left: 2px solid;border-right: 2px solid;" |  3 
919
| style="border-left: 2px solid;border-right: 2px solid;" | 2.23  
920
| style="text-align: right;border-left: 2px solid;border-right: 2px solid;" | 29414 
921
| style="text-align: right;border-left: 2px solid;border-right: 2px solid;" | 58828 
922
| style="border-left: 2px solid;border-right: 2px solid;" | 6.34299015 
923
| style="border-left: 2px solid;border-right: 2px solid;" | 0.78983056
924
|- style="border-top: 2px solid;"
925
| style="border-left: 2px solid;border-right: 2px solid;" |  4 
926
| style="border-left: 2px solid;border-right: 2px solid;" | 2.11  
927
| style="text-align: right;border-left: 2px solid;border-right: 2px solid;" | 50062 
928
| style="text-align: right;border-left: 2px solid;border-right: 2px solid;" | 100124 
929
| style="border-left: 2px solid;border-right: 2px solid;" | 6.31490459 
930
| style="border-left: 2px solid;border-right: 2px solid;" | 0.78318179
931
|- style="border-top: 2px solid;border-bottom: 2px solid;"
932
| style="border-left: 2px solid;border-right: 2px solid;" |  5 
933
| style="border-left: 2px solid;border-right: 2px solid;" | 2.15  
934
| style="text-align: right;border-left: 2px solid;border-right: 2px solid;" | 71826 
935
| style="text-align: right;border-left: 2px solid;border-right: 2px solid;" | 143652 
936
| style="border-left: 2px solid;border-right: 2px solid;" | 6.76638966 
937
| style="border-left: 2px solid;border-right: 2px solid;" | 0.79634854
938
939
|}
940
941
Finally Figures 11 and 12 respectively show the evolution of the drag  and lift errors for the three cases considered and Figure 13 shows the convergence of the global error.
942
943
<div id='img-11'></div>
944
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
945
|-
946
|[[Image:Draft_Samper_249588187-graph1.png|600px|Flow past a NACA airfoil. Convergence of the drag error for both refinement methods]]
947
|- style="text-align: center; font-size: 75%;"
948
| colspan="1" | '''Figure 11:''' Flow past a NACA airfoil. Convergence of the drag error for both refinement methods
949
|}
950
951
<div id='img-12'></div>
952
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
953
|-
954
|[[Image:Draft_Samper_249588187-graph2.png|600px|Flow past a NACA airfoil. Convergence of the lift error for both refinement methods. Numbers next to legend denote the minimum element size prescribed]]
955
|- style="text-align: center; font-size: 75%;"
956
| colspan="1" | '''Figure 12:''' Flow past a NACA airfoil. Convergence of the lift error for both refinement methods. Numbers next to legend denote the minimum element size prescribed
957
|}
958
959
<div id='img-13'></div>
960
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
961
|-
962
|[[Image:Draft_Samper_249588187-graf_dof_naca.png|600px|Convergence of the global error for both refinement methods]]
963
|- style="text-align: center; font-size: 75%;"
964
| colspan="1" | '''Figure 13:''' Convergence of the global error for both refinement methods
965
|}
966
967
===7.2 <span id='lb-7.2'></span>Flow past a cylinder Re=100===
968
969
The mesh refinement process for this transient problem has been carried out at a time <math display="inline">t=60s</math>. Figure 14 shows the original mesh of 2135 nodes and 5365 linear elements used.
970
971
Using the equidistribution of the global error, the maximum and minimum size of the elements to be generated  are 0.3m and 0.001m, respectively.  Figures 15 and 16 show the mesh obtained after two refinement steps. Figures 17 and 18 show the velocity field for the third mesh.  Table 4 shows the value of the global error and the evolution of the number of elements and nodes during the mesh refinement process.
972
973
<div id='img-14'></div>
974
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
975
|-
976
|[[File:Draft_Samper_249588187_7732_fig14.png|500px|Flow past a cylinder. Radius=1m, Re=100. Original mesh]]
977
|- style="text-align: center; font-size: 75%;"
978
| colspan="1" | '''Figure 14:''' Flow past a cylinder. Radius=1m, <math>Re=100</math>. Original mesh
979
|}
980
981
<div id='img-15'></div>
982
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
983
|-
984
|[[File:Draft_Samper_249588187_6884_fig15.png|528px|Mesh obtained after two refinement steps using the equidistribution of the global error]]
985
|- style="text-align: center; font-size: 75%;"
986
| colspan="1" | '''Figure 15:''' Mesh obtained after two refinement steps using the equidistribution of the global error
987
|}
988
989
<div id='img-16'></div>
990
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
991
|-
992
|[[Image:Draft_Samper_249588187-fig10.png|600px|Detail of the refined mesh in the neighbourhood of the cylinder]]
993
|- style="text-align: center; font-size: 75%;"
994
| colspan="1" | '''Figure 16:''' Detail of the refined mesh in the neighbourhood of the cylinder
995
|}
996
997
<div id='img-17'></div>
998
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
999
|-
1000
|[[Image:Draft_Samper_249588187-cilin_line_1.png|600px|Velocity field after two refinement steps. Equidistribution of global error]]
1001
|- style="text-align: center; font-size: 75%;"
1002
| colspan="1" | '''Figure 17:''' Velocity field after two refinement steps. Equidistribution of global error
1003
|}
1004
1005
<div id='img-18'></div>
1006
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
1007
|-
1008
|[[Image:Draft_Samper_249588187-cilin_line_2.png|486px|Detail of the velocity field]]
1009
|- style="text-align: center; font-size: 75%;"
1010
| colspan="1" | '''Figure 18:''' Detail of the velocity field
1011
|}
1012
1013
<br/>
1014
1015
1016
{|  class="floating_tableSCP wikitable" style="text-align: center; margin: 1em auto;min-width:50%;"
1017
|+ style="font-size: 75%;" |Table. 4 Flow past a cylinder (equidistribution of global error). Convergence of the global error with the mesh refinement
1018
|- style="border-top: 2px solid;"
1019
| style="border-left: 2px solid;border-right: 2px solid;" |  Mesh 
1020
| style="border-left: 2px solid;border-right: 2px solid;" | Global error <math display="inline">\left({\Vert P\Vert _\Omega \over U}\right)</math>(%) 
1021
| style="border-left: 2px solid;border-right: 2px solid;" | Nodes 
1022
| style="border-left: 2px solid;border-right: 2px solid;" | Elements
1023
|- style="border-top: 2px solid;"
1024
| style="border-left: 2px solid;border-right: 2px solid;" |  1
1025
| style="border-left: 2px solid;border-right: 2px solid;" | 8.72 
1026
| style="border-left: 2px solid;border-right: 2px solid;" | 2135
1027
| style="border-left: 2px solid;border-right: 2px solid;" | 5365
1028
|- style="border-top: 2px solid;"
1029
| style="border-left: 2px solid;border-right: 2px solid;" |  2
1030
| style="border-left: 2px solid;border-right: 2px solid;" | 2.67
1031
| style="border-left: 2px solid;border-right: 2px solid;" | 7863
1032
| style="border-left: 2px solid;border-right: 2px solid;" | 15875
1033
|- style="border-top: 2px solid;"
1034
| style="border-left: 2px solid;border-right: 2px solid;" |  3
1035
| style="border-left: 2px solid;border-right: 2px solid;" | 2.05
1036
| style="border-left: 2px solid;border-right: 2px solid;" | 12035
1037
| style="border-left: 2px solid;border-right: 2px solid;" | 24264
1038
|- style="border-top: 2px solid;"
1039
| style="border-left: 2px solid;border-right: 2px solid;" |  4
1040
| style="border-left: 2px solid;border-right: 2px solid;" | 2
1041
| style="border-left: 2px solid;border-right: 2px solid;" | 14448
1042
| style="border-left: 2px solid;border-right: 2px solid;" | 29114
1043
|- style="border-top: 2px solid;border-bottom: 2px solid;"
1044
| style="border-left: 2px solid;border-right: 2px solid;" |  5
1045
| style="border-left: 2px solid;border-right: 2px solid;" | 1.86
1046
| style="border-left: 2px solid;border-right: 2px solid;" | 16661
1047
| style="border-left: 2px solid;border-right: 2px solid;" | 33539
1048
1049
|}
1050
1051
The same problem was solved using the criterium based on the equidistribution of the error density. Now the minimum size of the elements generated is  increased to 0.003m, in order to avoid problems in the regeneration of the  mesh.  The mesh obtained after two  steps is shown in Figures 19 and 20. Table 5 shows the evolution of the global error and the number of elements and nodes during the mesh refinement process.
1052
1053
Figure 21 shows the convergence  of the global error for both cases.
1054
1055
<div id='img-19'></div>
1056
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
1057
|-
1058
|[[Image:Draft_Samper_249588187-fig13.png|600px|Mesh obtained after two refinement steps using the equidistribution of the error density]]
1059
|- style="text-align: center; font-size: 75%;"
1060
| colspan="1" | '''Figure 19:''' Mesh obtained after two refinement steps using the equidistribution of the error density
1061
|}
1062
1063
<div id='img-20'></div>
1064
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
1065
|-
1066
|[[Image:Draft_Samper_249588187-fig14.png|600px|Details of the refined mesh of Figure 19]]
1067
|- style="text-align: center; font-size: 75%;"
1068
| colspan="1" | '''Figure 20:''' Details of the refined mesh of Figure 19
1069
|}
1070
1071
1072
{|  class="floating_tableSCP wikitable" style="text-align: center; margin: 1em auto;min-width:50%;"
1073
|+ style="font-size: 75%;" |Table. 5 Flow past a cylinder (equidistribution of error density). Convergence of the global error with the mesh refinement
1074
|- style="border-top: 2px solid;"
1075
| style="border-left: 2px solid;border-right: 2px solid;" |  Mesh 
1076
| style="border-left: 2px solid;border-right: 2px solid;" | Global error <math display="inline">\left({\Vert P\Vert _\Omega \over U}\right)</math>(%) 
1077
| style="border-left: 2px solid;border-right: 2px solid;" | Nodes 
1078
| style="border-left: 2px solid;border-right: 2px solid;" | Elements
1079
|- style="border-top: 2px solid;"
1080
| style="border-left: 2px solid;border-right: 2px solid;" |  1
1081
| style="border-left: 2px solid;border-right: 2px solid;" | 8.6
1082
| style="border-left: 2px solid;border-right: 2px solid;" | 2653
1083
| style="border-left: 2px solid;border-right: 2px solid;" | 5092
1084
|- style="border-top: 2px solid;"
1085
| style="border-left: 2px solid;border-right: 2px solid;" |  2
1086
| style="border-left: 2px solid;border-right: 2px solid;" | 2.96
1087
| style="border-left: 2px solid;border-right: 2px solid;" | 9198
1088
| style="border-left: 2px solid;border-right: 2px solid;" | 18057
1089
|- style="border-top: 2px solid;border-bottom: 2px solid;"
1090
| style="border-left: 2px solid;border-right: 2px solid;" |  3
1091
| style="border-left: 2px solid;border-right: 2px solid;" | 2.37
1092
| style="border-left: 2px solid;border-right: 2px solid;" | 77064
1093
| style="border-left: 2px solid;border-right: 2px solid;" | 153190
1094
1095
|}
1096
1097
<div id='img-21'></div>
1098
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
1099
|-
1100
|[[Image:Draft_Samper_249588187-graf_dof_cilin.png|600px|The convergence of the global error for both cases.]]
1101
|- style="text-align: center; font-size: 75%;"
1102
| colspan="1" | '''Figure 21:''' The convergence of the global error for both cases.
1103
|}
1104
1105
===7.3 Driven cavity flow===
1106
1107
This is another well known benchmark problem in the CFD literature. The problem is solved for a Reynolds number of 1000. The mesh regeneration was performed at the time <math display="inline">t=2s</math>.
1108
1109
The initial mesh of  477 nodes and 952 linear elements is shown in Figure 22. The mesh obtained after three refinement steps  and the corresponding velocity  field  are shown in Figure 23. The mesh adaptation criterium based on the equidistribution of the global error was used.  Table 6 shows the value of the global error and the evolution of the number of elements and nodes during the mesh refinement process.
1110
1111
Figure 24 shows the convergence of the global error.
1112
1113
<div id='img-22'></div>
1114
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
1115
|-
1116
|[[Image:Draft_Samper_249588187-fig20.png|348px|Driven cavity flow. Side length =1m, Re=1000. Original mesh]]
1117
|- style="text-align: center; font-size: 75%;"
1118
| colspan="1" | '''Figure 22:''' Driven cavity flow. Side length =1m, <math>Re=1000</math>. Original mesh
1119
|}
1120
1121
<div id='img-23'></div>
1122
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
1123
|-
1124
|[[Image:Draft_Samper_249588187-fig21.png|324px|]]
1125
|[[Image:Draft_Samper_249588187-cavity_line_4.png|318px|Mesh obtained after three refinement steps (equidistribution of the global error) and velocity field.]]
1126
|- style="text-align: center; font-size: 75%;"
1127
| colspan="2" | '''Figure 23:''' Mesh obtained after three refinement steps (equidistribution of the global error) and velocity field.
1128
|}
1129
1130
1131
{|  class="floating_tableSCP wikitable" style="text-align: center; margin: 1em auto;min-width:50%;"
1132
|+ style="font-size: 75%;" |Table. 6 Driven cavity flow (equidistribution of global error). Convergence of the global error with the mesh refinement
1133
|- style="border-top: 2px solid;"
1134
| style="border-left: 2px solid;border-right: 2px solid;" |  Mesh 
1135
| style="border-left: 2px solid;border-right: 2px solid;" | Global error <math display="inline">\left({\Vert P\Vert _\Omega \over U}\right)</math>(%) 
1136
| style="border-left: 2px solid;border-right: 2px solid;" | Nodes 
1137
| style="border-left: 2px solid;border-right: 2px solid;" | Elements
1138
|- style="border-top: 2px solid;"
1139
| style="border-left: 2px solid;border-right: 2px solid;" |  1
1140
| style="border-left: 2px solid;border-right: 2px solid;" | 26.88
1141
| style="border-left: 2px solid;border-right: 2px solid;" | 477
1142
| style="border-left: 2px solid;border-right: 2px solid;" | 872
1143
|- style="border-top: 2px solid;"
1144
| style="border-left: 2px solid;border-right: 2px solid;" |  2
1145
| style="border-left: 2px solid;border-right: 2px solid;" | 14.5
1146
| style="border-left: 2px solid;border-right: 2px solid;" | 3089
1147
| style="border-left: 2px solid;border-right: 2px solid;" | 5985
1148
|- style="border-top: 2px solid;"
1149
| style="border-left: 2px solid;border-right: 2px solid;" |  3
1150
| style="border-left: 2px solid;border-right: 2px solid;" | 9.56
1151
| style="border-left: 2px solid;border-right: 2px solid;" | 6475
1152
| style="border-left: 2px solid;border-right: 2px solid;" | 12521
1153
|- style="border-top: 2px solid;"
1154
| style="border-left: 2px solid;border-right: 2px solid;" |  4
1155
| style="border-left: 2px solid;border-right: 2px solid;" | 9.42
1156
| style="border-left: 2px solid;border-right: 2px solid;" | 8103
1157
| style="border-left: 2px solid;border-right: 2px solid;" | 15700
1158
|- style="border-top: 2px solid;"
1159
| style="border-left: 2px solid;border-right: 2px solid;" |  5
1160
| style="border-left: 2px solid;border-right: 2px solid;" | 9.14
1161
| style="border-left: 2px solid;border-right: 2px solid;" | 9411
1162
| style="border-left: 2px solid;border-right: 2px solid;" | 18280
1163
|- style="border-top: 2px solid;border-bottom: 2px solid;"
1164
| style="border-left: 2px solid;border-right: 2px solid;" |  6
1165
| style="border-left: 2px solid;border-right: 2px solid;" | 6.63
1166
| style="border-left: 2px solid;border-right: 2px solid;" | 12997
1167
| style="border-left: 2px solid;border-right: 2px solid;" | 25207
1168
1169
|}
1170
1171
<div id='img-24'></div>
1172
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
1173
|-
1174
|[[Image:Draft_Samper_249588187-graf_dof_cavity.png|600px|Convergence of the global error in the cavity problem.]]
1175
|- style="text-align: center; font-size: 75%;"
1176
| colspan="1" | '''Figure 24:''' Convergence of the global error in the cavity problem.
1177
|}
1178
1179
<div id='img-25'></div>
1180
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
1181
|-
1182
|[[Image:Draft_Samper_249588187-fig23.png|600px|High-lift airfoil configuration. Characteristic length =0.6m, Re=100. Initial mesh]]
1183
|- style="text-align: center; font-size: 75%;"
1184
| colspan="1" | '''Figure 25:''' High-lift airfoil configuration. Characteristic length =0.6m, Re=100. Initial mesh
1185
|}
1186
1187
<div id='img-26'></div>
1188
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: auto;max-width: auto;"
1189
|-
1190
|[[Image:Draft_Samper_249588187-fig24.png|460px|]]
1191
|style="padding-left:10px;"|[[File:Draft_Samper_249588187_3185_fig26b.png|500px|Mesh obtained after two refinement steps using equiditribution of global error (μ=0.01)]]
1192
|- style="text-align: center; font-size: 75%;"
1193
| colspan="2" | '''Figure 26:''' Mesh obtained after two refinement steps using equiditribution of global error (<math>\mu =0.01</math>)
1194
|}
1195
1196
<div id='img-27'></div>
1197
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: auto;max-width: auto;"
1198
|-
1199
|[[Image:Draft_Samper_249588187-fig25.png|460px|]]
1200
|style="padding-left:10px;"|[[File:Draft_Samper_249588187_1872_fig27b.png|500px|Mesh obtained in the fith after changing μ=0.01 to μ= 0.005 in the fourth step]]
1201
|- style="text-align: center; font-size: 75%;"
1202
| colspan="2" | '''Figure 27:''' Mesh obtained in the fith after changing <math>\mu =0.01</math> to <math>\mu = 0.005</math> in the fourth step
1203
|}
1204
1205
===7.4 Flow past a  wing in high-lift configuration===
1206
1207
This last example is a multiple  airfoil configuration including slat, wing and flap. The problem has been solved with a laminar solver and a Reynolds number  of 100.  In this example the maximum size of the  generated elements has been reduced to 0.05m. The initial mesh of 11703 nodes and 23480 elements is shown in Figure 25.   The resulting mesh after two refinement steps is shown in Figure 26. The convergence of the global error with the mesh refinement is shown in Table 7.  The algorithm based on the equidistribution of the global error has been used  in this example.
1208
1209
1210
{|  class="floating_tableSCP wikitable" style="text-align: center; margin: 1em auto;min-width:50%;"
1211
|+ style="font-size: 75%;" |Table. 7 High-lift configuration (equidistribution of global error). Convergence of the global error with the mesh refinement
1212
|- style="border-top: 2px solid;"
1213
| style="border-left: 2px solid;border-right: 2px solid;" |  Mesh 
1214
| style="border-left: 2px solid;border-right: 2px solid;" | Global error <math display="inline">\left({\Vert P\Vert _\Omega \over U}\right)</math>(%) 
1215
| style="border-left: 2px solid;border-right: 2px solid;" | Nodes 
1216
| style="text-align: right;border-left: 2px solid;border-right: 2px solid;" | Elements
1217
|- style="border-top: 2px solid;"
1218
| style="border-left: 2px solid;border-right: 2px solid;" |  1
1219
| style="border-left: 2px solid;border-right: 2px solid;" | 3.76
1220
| style="border-left: 2px solid;border-right: 2px solid;" | 11703
1221
| style="text-align: right;border-left: 2px solid;border-right: 2px solid;" | 22874
1222
|- style="border-top: 2px solid;"
1223
| style="border-left: 2px solid;border-right: 2px solid;" |  2
1224
| style="border-left: 2px solid;border-right: 2px solid;" | 2.51
1225
| style="border-left: 2px solid;border-right: 2px solid;" | 18334
1226
| style="text-align: right;border-left: 2px solid;border-right: 2px solid;" | 35909
1227
|- style="border-top: 2px solid;"
1228
| style="border-left: 2px solid;border-right: 2px solid;" |  3
1229
| style="border-left: 2px solid;border-right: 2px solid;" | 1.95
1230
| style="border-left: 2px solid;border-right: 2px solid;" | 26718
1231
| style="text-align: right;border-left: 2px solid;border-right: 2px solid;" | 52487
1232
|- style="border-top: 2px solid;"
1233
| style="border-left: 2px solid;border-right: 2px solid;" |  4
1234
| style="border-left: 2px solid;border-right: 2px solid;" | 1.79
1235
| style="border-left: 2px solid;border-right: 2px solid;" | 27845
1236
| style="text-align: right;border-left: 2px solid;border-right: 2px solid;" | 54810
1237
|- style="border-top: 2px solid;border-bottom: 2px solid;"
1238
| style="border-left: 2px solid;border-right: 2px solid;" |  5
1239
| style="border-left: 2px solid;border-right: 2px solid;" | 1.58
1240
| style="border-left: 2px solid;border-right: 2px solid;" | 51361
1241
| style="text-align: right;border-left: 2px solid;border-right: 2px solid;" | 101532
1242
1243
|}
1244
1245
After the fourth step the prescribed global error was reduced from <math display="inline">\mu = 0.01</math> to <math display="inline">\mu = 0.005</math>. The result is shown in Figure 27.
1246
1247
The velocity field for the fifth  step is shown in Figure 28.
1248
1249
Figures 29 and 30 show the convergence of the drag and lift error, respectively. Figure 31 shows the evolution of the global error.
1250
1251
<div id='img-28'></div>
1252
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
1253
|-
1254
|[[Image:Draft_Samper_249588187-dasault_line.png|600px|Velocity field obtained after five refinement steps]]
1255
|- style="text-align: center; font-size: 75%;"
1256
| colspan="1" | '''Figure 28:''' Velocity field obtained after five refinement steps
1257
|}
1258
1259
<div id='img-29'></div>
1260
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
1261
|-
1262
|[[Image:Draft_Samper_249588187-graph3.png|600px|The convergence of the drag error]]
1263
|- style="text-align: center; font-size: 75%;"
1264
| colspan="1" | '''Figure 29:''' The convergence of the drag error
1265
|}
1266
1267
<div id='img-30'></div>
1268
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
1269
|-
1270
|[[Image:Draft_Samper_249588187-graph4.png|600px|The convergence of the lift error]]
1271
|- style="text-align: center; font-size: 75%;"
1272
| colspan="1" | '''Figure 30:''' The convergence of the lift error
1273
|}
1274
1275
<div id='img-31'></div>
1276
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
1277
|-
1278
|[[Image:Draft_Samper_249588187-graf_dof_dassault.png|600px|The convergence of the global error ]]
1279
|- style="text-align: center; font-size: 75%;"
1280
| colspan="1" | '''Figure 31:''' The convergence of the global error 
1281
|}
1282
1283
==8 CONCLUDING REMARKS==
1284
1285
An error estimator for the finite element analysis of  incompressible fluid flow problems has been proposed. The estimator is based on the weigthed form (the power) of the residuals of the stabilized momentum and mass balance equations. The particular form of the weighting functions used has been found from a finite calculus formulation of the Navier-Stokes equations. This weighted residual form derived is also applicable for error estimation and mesh adaptivity in other problems in computational mechanics <span id='citeF-22'></span>[[#cite-22|[22]]].
1286
1287
A simple mesh refinement strategy based on the equal distribution of the total residual power among the elements in the mesh has been presented. The refinement strategy has proven to be more cost-effective than that based on the equal distribution of the density of the error also presented in the paper. The efficiency of the  error estimation and the mesh adaptation process has been verified in the solution of steady state and transient flow problems  using a FIC stabilized formulation for the Navier-Stokes equations and a standard fractional step scheme.
1288
1289
The method yields refined meshes which capture very well the features of the velocity and pressure fields in high gradient zones near the solid boundaries and within the analysis domain. Note  that  in the problems presented here the global error is not reduced below its limited value. The reason is that a minimun  element size has been prescribed in order to facilitate the mesh generation process. Should this limit be reduced then the global error  would be subsequently reduced.
1290
1291
Further work in this field will focus in the relationship of the residual power error values and the error in selected individual variables (velocity, pressure, etc) or other solutions outputs target (drag, lift, etc.).
1292
1293
==ACKNOWLEDGEMENTS==
1294
1295
The numerical results were obtained using the finite element code Tdyn provided by the company COMPASS Ingeniería y Sistemas SA <span id='citeF-31'></span>[[#cite-31|[31]]]. Thanks are also given to Dassault Aviation for providing the multiple airfoil geometry for the last example.
1296
1297
==REFERENCES==
1298
1299
<div id="cite-1"></div>
1300
'''[[#citeF-1|[1]]]''' O.C. Zienkiewicz and  R.L. Taylor. ''The finite element method''. 5th Edition, 3 Volumes, Butterworth&#8211;Heinemann, 2000.
1301
1302
<div id="cite-2"></div>
1303
'''[[#citeF-2|[2]]]''' O.C. Zienkiewicz and J.Z. Zhu. A simple error estimator and  adaptive procedure for practical engineering analysis. ''Int. J. Num.  Meth. Eng.'', '''24''', 337-57, 1987.
1304
1305
<div id="cite-3"></div>
1306
'''[3]''' J.Z. Zhu and O.C. Zienkiewicz. Adaptive techniques in the finite  element method. ''Comm. App. Num. Math.'', '''4''', 197&#8211;204, 1988.
1307
1308
<div id="cite-4"></div>
1309
'''[[#citeF-4|[4]]]'''  Oñate E. and G. Bugeda. A study of mesh optimality criteria in adaptive finite element analysis. ''Engineering Computations'', Vol. '''3''', 307-321, 1994.
1310
1311
<div id="cite-5"></div>
1312
'''[[#citeF-5|[5]]]'''  J. Wu, Z.J. Zhu, J. Szmelter and O.C. Zienkiewicz. Error estimation and adaptivity in Navier-Stokes incompressible flows. ''Comput Mechancis'', '''6''', 254&#8211;70, 1990.
1313
1314
<div id="cite-6"></div>
1315
'''[[#citeF-6|[6]]]''' R. Löhner, K. Morgan and O.C. Zienkiewicz. An adaptive  finite element procedure for compressible high speed flows. ''Comp. Meth. Appl. Mech. Eng.'', '''51''', 441&#8211;65, 1985.
1316
1317
<div id="cite-7"></div>
1318
'''[7]''' R. Löhner, K Morgan and O.C. Zienkiewicz. Adaptive grid refinement for the Euler and compressible Navier-Stokes equations. in  '' Accuracy Estimates and Adaptive Refinements in Finite Element Computations''  (eds I. Babuska, O.C. Zienkiewicz, J. Gago y  E.R.  de A. Oliveira), cap. 15, pp. 281&#8211;98, Wiley, Chichester, 1986.
1319
1320
<div id="cite-8"></div>
1321
'''[8]''' J.  Peraire, M. Vahdati, K. Morgan and O.C. Zienkiewicz.   Adaptive remeshing for compressible flow computations. ''J. Comp. Phys.'', '''72''', 449&#8211;66, 1987.
1322
1323
<div id="cite-9"></div>
1324
'''[9]''' J.T. Oden, T. Strouboulis and P. Devloo. Adaptive finite element methods for high speed compressible flows. ''Int. J. Num. Meth. Eng.'', '''7''', 1211&#8211;28, 1987.
1325
1326
<div id="cite-10"></div>
1327
'''[10]''' R. Löhner. Adaptive remeshing for transient problems. '' Comput. Meth. Appl. Mech. Eng.'', '''75''', 195&#8211;214, 1989.
1328
1329
<div id="cite-11"></div>
1330
'''[[#citeF-11|[11]]]'''  J.T. Oden, W. Wu and M. Ainsworth. An a posteriori error estimate for finite element approximations of the Navier-Stokes equations, '' Comput. Meth. Appl. Mech. Eng.'', '''111''', 185&#8211;202, 1993.
1331
1332
<div id="cite-12"></div>
1333
'''[12]'''  C. Johnson, R. Rannacher and M. Boman. Numerics and hydrodynamic stability: Towards error control in CFD. ''SIAM J. Numer. Anal.'', '''32''', 1058&#8211;1079, 1995.
1334
1335
<div id="cite-13"></div>
1336
'''[13]'''  R.C. Almeida, R.A. Feijoo, A.C. Galeao, C. Padra and R.S. Silva. Adaptive finite element computational fluid dynamics using an anisotropic error estimator. ''Comput. Meth. Appl. Mech. Eng.'', '''182''', 379&#8211;400, 2000.
1337
1338
<div id="cite-14"></div>
1339
'''[14]'''  J.M. Cascón, G.C. García and R. Rodríguez. A priori and a posteriori error analysis for a large-scale ocean circulation finite element model. ''Comput. Meth. Appl. Mech. Eng.'', '''192''', 5305&#8211;5327, 2003.
1340
1341
<div id="cite-15"></div>
1342
'''[[#citeF-15|[15]]]'''  W. Bangerth and R. Rannacher. ''Adaptive finite elements for differential equations''. Birkhäuser Verlag, Basel, 2003.
1343
1344
<div id="cite-16"></div>
1345
'''[16]'''  D.L. Darmofal, D.A. Venditti. Anisotropic grid adaptation for functional outputs: Application to two-dimensional viscous flows. ''Journal of Computational Physics'', '''187''', 22&#8211;66, 2003.
1346
1347
<div id="cite-17"></div>
1348
'''[[#citeF-17|[17]]]''' E. Oñate. Derivation of stabilized equations for  advective-diffusive transport and fluid flow problems.  ''Comput. Methods Appl. Mech. Engrg.'', '''151:1-2''', 233&#8211;267, 1998.
1349
1350
<div id="cite-18"></div>
1351
'''[[#citeF-18|[18]]]'''  E. Oñate. A stabilized finite element method for incompressible viscous flows using a finite increment calculus formulation. ''Comput. Methods Appl. Mech. Engrg.'', '''182:1&#8211;2''', 355&#8211;370,  2000.
1352
1353
<div id="cite-19"></div>
1354
'''[[#citeF-19|[19]]]'''  E. Oñate and  J. García. A finite element method for fluid-structure interaction with surface waves using a finite calculus formulation. in ''Comput. Methods Appl. Mech. Engrg.'', '''191:6-7''', 635-660, 2001.
1355
1356
<div id="cite-20"></div>
1357
'''[20]'''  E. Oñate,  J. García, G. Bugeda and S.R. Idelsohn. A general stabilized formulation for incompressible fluid flow using finite calculus and the FEM. In ''Towards a new fluid dynamics with its challenges in aeronautics'', J. Periaux, D. Chamption, O. Pironneau and Ph. Thomas (Eds.), CIMNE, Barcelona, Spain 2002.
1358
1359
<div id="cite-21"></div>
1360
'''[21]'''   E. Oñate, J. García, S.R. Idelsohn and F. Del Pin. FIC formulations for finite element analysis of incompressible flows. Eulerian, ALE and Lagrangian approaches, Submitted to ''Comput. Methods Appl. Mech. Engng.'', July 2004.
1361
1362
<div id="cite-22"></div>
1363
'''[[#citeF-22|[22]]]'''   E. Oñate, J. Arteaga and R. Flores. A weigthed recovered residual method for error estimation and mesh adaptivity in convection-diffusion problems. Research Report CIMNE, Barcelona, September 2004.
1364
1365
<div id="cite-23"></div>
1366
'''[[#citeF-23|[23]]]'''  GiD. The personal pre/postprocessing system. CIMNE, Barcelona, www.gidhome.com, 2004.
1367
1368
<div id="cite-24"></div>
1369
'''[24]''' M.A. Cruchaga and E. Oñate. A finite element formulation for incompressible flow problems using a generalized streamline operator. ''Comput. Methods Appl. Mech. Engng.'', '''143''', 49&#8211;67, 1997.
1370
1371
<div id="cite-25"></div>
1372
'''[25]''' T.J.R. Hughes and M. Mallet. A new finite element formulations  for computational fluid dynamics: III. The generalized streamline operator  for multidimensional advective-diffusive systems. ''Comput Methods Appl.  Mech. Engrg.'', '''58''', 305&#8211;328, (1986a).
1373
1374
<div id="cite-26"></div>
1375
'''[26]''' T.J.R. Hughes, L.P. Franca and G.M. Hulbert. A new finite  element formulation for computational fluid dynamics: VIII. The  Galerkin/least-squares method for advective-diffusive equations. '' Comput. Methods Appl. Mech. Engrg.'', '''73''', 173&#8211;189, (1989).
1376
1377
<div id="cite-27"></div>
1378
'''[27]''' T.J.R. Hughes. Multiscale phenomena: Green functions,  subgrid scale models, bubbles and the origins of stabilized methods.  ''Comput. Methods Appl. Mech. Engrg'', '''127''', 387&#8211;401, (1995).
1379
1380
<div id="cite-28"></div>
1381
'''[28]'''  R. Codina. Comparison of some finite element methods for solving the diffusion-convection-reaction equation. ''Comput. Methods Appl. Mech. Engrg.'', '''156''', 185&#8211;210, (1998).
1382
1383
<div id="cite-29"></div>
1384
'''[29]'''  R. Codina. Stabilization of incompressibility and convection through orthogonal sub-scales in finite element method. ''Comput. Methods Appl. Mech. Engrg.'', '''190''', 1579&#8211;1599, (2000).
1385
1386
<div id="cite-30"></div>
1387
'''[30]''' O.C. Zienkiewicz and  R. Codina. A general algorithm for  compressible and incompressible flow. Part I: The split characteristic  based scheme. ''Int. J. Num. Meth. in Fluids'', '''20''', 869-85, (1995).
1388
1389
<div id="cite-31"></div>
1390
'''[[#citeF-31|[31]]]'''  Tdyn. An unstructured finite element code for fluid dynamic analysis, COMPASS Ingeniería y Sistemas SA, www.compassis.com, 2003.
1391

Return to Onate et al 2006a.

Back to Top

Document information

Published on 01/01/2006

DOI: 10.1016/j.cma.2004.07.054
Licence: CC BY-NC-SA license

Document Score

0

Times cited: 11
Views 44
Recommendations 0

Share this document

claim authorship

Are you one of the authors of this document?