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]]]. 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]]]. Alternative error estimation approaches for fluid flow problems  can be found in <span id='citeF-11'></span>[[#cite-11|[11]]].
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]]] 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]]].
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]]]. 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. '''Step 2''' Compute the residual power error for each element in the mesh and the total residual power error using Eqs.(15) and (16). '''Step 3''' Compute the global and local (element) error parameters <math display="inline">\xi _g</math> and <math display="inline">\xi ^e</math>. '''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. '''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]]].
472
473
Above mesh refinement strategy is equally applicable for the two mesh adaption procedures explained in the previous sections.
474
475
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.
476
477
==6 STABILIZED FEM FOR THE NAVIER-STOKES EQUATIONS USING FINITE CALCULUS==
478
479
===6.1 Finite calculus form of the Navier-Stokes equations===
480
481
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]]]:<br/>
482
483
''Momentum''
484
485
{| class="formulaSCP" style="width: 100%; text-align: left;" 
486
|-
487
| 
488
{| style="text-align: left; margin:auto;width: 100%;" 
489
|-
490
| 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>
491
|}
492
| style="width: 5px;text-align: right;white-space: nowrap;" | (30)
493
|}
494
495
''Mass balance''
496
497
{| class="formulaSCP" style="width: 100%; text-align: left;" 
498
|-
499
| 
500
{| style="text-align: left; margin:auto;width: 100%;" 
501
|-
502
| 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>
503
|}
504
| style="width: 5px;text-align: right;white-space: nowrap;" | (31)
505
|}
506
507
where <math display="inline">r_{m_i}</math> and <math display="inline">r_v</math> were defined in Eqs.(3) and (4), respectively.
508
509
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)
510
511
{| class="formulaSCP" style="width: 100%; text-align: left;" 
512
|-
513
| 
514
{| style="text-align: left; margin:auto;width: 100%;" 
515
|-
516
| style="text-align: center;" | <math>{h}=\left\{\begin{matrix} h_{1}\\ h_{2}\\\end{matrix}\right\} </math>
517
|}
518
| style="width: 5px;text-align: right;white-space: nowrap;" | (32)
519
|}
520
521
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]]].
522
523
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]]].
524
525
Eqs.(30) and (31) are completed by the following FIC boundary conditions <span id='citeF-17'></span>[[#cite-17|[17]]].
526
527
<br/>
528
529
''Equilibrium of surface tractions  at the boundary'' <math display="inline">\Gamma _t</math>
530
531
{| class="formulaSCP" style="width: 100%; text-align: left;" 
532
|-
533
| 
534
{| style="text-align: left; margin:auto;width: 100%;" 
535
|-
536
| 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>
537
|}
538
| style="width: 5px;text-align: right;white-space: nowrap;" | (33)
539
|}
540
541
''Prescribed velocity at  the boundaries ''
542
543
{| class="formulaSCP" style="width: 100%; text-align: left;" 
544
|-
545
| 
546
{| style="text-align: left; margin:auto;width: 100%;" 
547
|-
548
| style="text-align: center;" | <math>u_t =u_t^p \qquad \hbox{on}~~\Gamma _{u_t} </math>
549
|}
550
| style="width: 5px;text-align: right;white-space: nowrap;" | (34)
551
|}
552
553
{| class="formulaSCP" style="width: 100%; text-align: left;" 
554
|-
555
| 
556
{| style="text-align: left; margin:auto;width: 100%;" 
557
|-
558
| 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>
559
|}
560
| style="width: 5px;text-align: right;white-space: nowrap;" | (35)
561
|}
562
563
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.
564
565
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.
566
567
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>.
568
569
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]]].
570
571
===6.2 Residual power forms of FIC equations===
572
573
We will choose again an equal order finite element approximation for the velocity and pressure variables given by Eqs.(8)
574
575
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]]]. 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.
576
577
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):
578
579
{| class="formulaSCP" style="width: 100%; text-align: left;" 
580
|-
581
| 
582
{| style="text-align: left; margin:auto;width: 100%;" 
583
|-
584
| 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>
585
|}
586
| style="width: 5px;text-align: right;white-space: nowrap;" | (36)
587
|}
588
589
where once more <math display="inline">\bar{\hat{(\cdot )}}</math> denote values computed using the recovered derivative fields.
590
591
The total  power due to the FIC residuals can be written as
592
593
{| class="formulaSCP" style="width: 100%; text-align: left;" 
594
|-
595
| 
596
{| style="text-align: left; margin:auto;width: 100%;" 
597
|-
598
| 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>
599
|}
600
| style="width: 5px;text-align: right;white-space: nowrap;" | (37)
601
|}
602
603
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
604
605
{| class="formulaSCP" style="width: 100%; text-align: left;" 
606
|-
607
| 
608
{| style="text-align: left; margin:auto;width: 100%;" 
609
|-
610
| 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>
611
|}
612
| style="width: 5px;text-align: right;white-space: nowrap;" |  (38a)
613
|}
614
615
{| class="formulaSCP" style="width: 100%; text-align: left;" 
616
|-
617
| 
618
{| style="text-align: left; margin:auto;width: 100%;" 
619
|-
620
| 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>
621
|}
622
| style="width: 5px;text-align: right;white-space: nowrap;" |  (38b)
623
|}
624
625
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.
626
627
In summary, the relevant residual power terms for the FIC momentum and mass balance equations are
628
629
{| class="formulaSCP" style="width: 100%; text-align: left;" 
630
|-
631
| 
632
{| style="text-align: left; margin:auto;width: 100%;" 
633
|-
634
| 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>
635
|}
636
| style="width: 5px;text-align: right;white-space: nowrap;" |  (39a)
637
|}
638
639
{| class="formulaSCP" style="width: 100%; text-align: left;" 
640
|-
641
| 
642
{| style="text-align: left; margin:auto;width: 100%;" 
643
|-
644
| 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>
645
|}
646
| style="width: 5px;text-align: right;white-space: nowrap;" |  (39b)
647
|}
648
649
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
650
651
{| class="formulaSCP" style="width: 100%; text-align: left;" 
652
|-
653
| 
654
{| style="text-align: left; margin:auto;width: 100%;" 
655
|-
656
| 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>
657
|}
658
| style="width: 5px;text-align: right;white-space: nowrap;" | (40)
659
|}
660
661
the different terms have the meaning explained for Eq.(14).
662
663
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).
664
665
<div id='img-1'></div>
666
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
667
|-
668
|[[Image:Draft_Samper_249588187-figura0.png|300px|Tributary domain for a node k and definition of characteristic lengths.]]
669
|- style="text-align: center; font-size: 75%;"
670
| colspan="1" | '''Figure 1:''' Tributary domain for a node <math>k</math> and definition of characteristic lengths.
671
|}
672
673
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.
674
675
===Remark===
676
677
Eqs.(40) define the weighting functions in the general residual power forms of Eqs.(12) and (13) as
678
679
{| class="formulaSCP" style="width: 100%; text-align: left;" 
680
|-
681
| 
682
{| style="text-align: left; margin:auto;width: 100%;" 
683
|-
684
| 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>
685
|}
686
| style="width: 5px;text-align: right;white-space: nowrap;" | (41)
687
|}
688
689
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]]].
690
691
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.
692
693
==7 EXAMPLES==
694
695
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.
696
697
===7.1 Flow past a NACA airfoil===
698
699
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.
700
701
<div id='img-2'></div>
702
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
703
|-
704
|[[Image:Draft_Samper_249588187-fig1.png|600px|Flow past a NACA airfoil. Characteristic length =1m, Re=100. Original mesh]]
705
|- style="text-align: center; font-size: 75%;"
706
| colspan="1" | '''Figure 2:''' Flow past a NACA airfoil. Characteristic length =1m, <math>Re=100</math>. Original mesh
707
|}
708
709
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.
710
711
<div id='img-3'></div>
712
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
713
|-
714
|[[Image:Draft_Samper_249588187-fig2.png|600px|Mesh obtained after five refinement steps using the equidistribution of the global error.]]
715
|- style="text-align: center; font-size: 75%;"
716
| colspan="1" | '''Figure 3:''' Mesh obtained after five refinement steps using the equidistribution of the global error.
717
|}
718
719
<div id='img-4'></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-fig3.png|468px|]]
723
|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]]
724
|- style="text-align: center; font-size: 75%;"
725
| colspan="2" | '''Figure 4:''' Details of the refined mesh of Figure 3 in the vecinity of the airfoil
726
|}
727
728
<div id='img-5'></div>
729
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
730
|-
731
|[[Image:Draft_Samper_249588187-naca_line_1.png|600px|Velocity field after five refinement steps]]
732
|- style="text-align: center; font-size: 75%;"
733
| colspan="1" | '''Figure 5:''' Velocity field after five refinement steps
734
|}
735
736
<div id='img-6'></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_2.png|510px|Detail of the velocity field]]
740
|- style="text-align: center; font-size: 75%;"
741
| colspan="1" | '''Figure 6:''' Detail of the velocity field
742
|}
743
744
745
{|  class="floating_tableSCP wikitable" style="text-align: center; margin: 1em auto;min-width:50%;"
746
|+ 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
747
|- style="border-top: 2px solid;"
748
| style="border-left: 2px solid;border-right: 2px solid;" |  Mesh 
749
| style="border-left: 2px solid;border-right: 2px solid;" | Global error <math display="inline">\left({\Vert P\Vert _\Omega \over U}\right)</math>(%)  
750
| style="border-left: 2px solid;border-right: 2px solid;" | Nodes 
751
| style="border-left: 2px solid;border-right: 2px solid;" | Elements
752
| style="border-left: 2px solid;border-right: 2px solid;" | Drag error %
753
| style="border-left: 2px solid;border-right: 2px solid;" | Lift error% 
754
|- style="border-top: 2px solid;"
755
| style="border-left: 2px solid;border-right: 2px solid;" |  1
756
| style="border-left: 2px solid;border-right: 2px solid;" | 5.55
757
| style="border-left: 2px solid;border-right: 2px solid;" | 2574
758
| style="border-left: 2px solid;border-right: 2px solid;" | 4784
759
| style="border-left: 2px solid;border-right: 2px solid;" | 29.1810942 
760
| style="border-left: 2px solid;border-right: 2px solid;" | 2.99902143
761
|- style="border-top: 2px solid;"
762
| style="border-left: 2px solid;border-right: 2px solid;" |  2
763
| style="border-left: 2px solid;border-right: 2px solid;" | 2.93
764
| style="border-left: 2px solid;border-right: 2px solid;" | 5340
765
| style="border-left: 2px solid;border-right: 2px solid;" | 10680
766
| style="border-left: 2px solid;border-right: 2px solid;" | 28.7443059
767
| style="border-left: 2px solid;border-right: 2px solid;" | 2.5500113
768
|- style="border-top: 2px solid;"
769
| style="border-left: 2px solid;border-right: 2px solid;" |  3
770
| style="border-left: 2px solid;border-right: 2px solid;" | 2.87
771
| style="border-left: 2px solid;border-right: 2px solid;" | 7942
772
| style="border-left: 2px solid;border-right: 2px solid;" | 15884
773
| style="border-left: 2px solid;border-right: 2px solid;" | 22.1078024
774
| style="border-left: 2px solid;border-right: 2px solid;" | 2.00851784
775
|- style="border-top: 2px solid;"
776
| style="border-left: 2px solid;border-right: 2px solid;" |  4
777
| style="border-left: 2px solid;border-right: 2px solid;" | 2.77
778
| style="border-left: 2px solid;border-right: 2px solid;" | 11948
779
| style="border-left: 2px solid;border-right: 2px solid;" | 23896
780
| style="border-left: 2px solid;border-right: 2px solid;" | 15.2893198
781
| style="border-left: 2px solid;border-right: 2px solid;" | 1.54898957
782
|- style="border-top: 2px solid;"
783
| style="border-left: 2px solid;border-right: 2px solid;" |  5
784
| style="border-left: 2px solid;border-right: 2px solid;" | 1.81
785
| style="border-left: 2px solid;border-right: 2px solid;" | 17142
786
| style="border-left: 2px solid;border-right: 2px solid;" | 34284
787
| style="border-left: 2px solid;border-right: 2px solid;" | 10.6478917
788
| style="border-left: 2px solid;border-right: 2px solid;" | 1.17033653
789
|- style="border-top: 2px solid;"
790
| style="border-left: 2px solid;border-right: 2px solid;" |  6
791
| style="border-left: 2px solid;border-right: 2px solid;" | 1.81
792
| style="border-left: 2px solid;border-right: 2px solid;" | 17255
793
| style="border-left: 2px solid;border-right: 2px solid;" | 34510
794
| style="border-left: 2px solid;border-right: 2px solid;" | 8.54878424
795
| style="border-left: 2px solid;border-right: 2px solid;" | 1.02567233
796
|- style="border-top: 2px solid;"
797
| style="border-left: 2px solid;border-right: 2px solid;" |  7
798
| style="border-left: 2px solid;border-right: 2px solid;" | 1.71
799
| style="border-left: 2px solid;border-right: 2px solid;" | 17372
800
| style="border-left: 2px solid;border-right: 2px solid;" | 34744
801
| style="border-left: 2px solid;border-right: 2px solid;" | 6.93290243
802
| style="border-left: 2px solid;border-right: 2px solid;" | 0.86514698
803
|- style="border-top: 2px solid;border-bottom: 2px solid;"
804
| style="border-left: 2px solid;border-right: 2px solid;" |  8
805
| style="border-left: 2px solid;border-right: 2px solid;" | 1.72
806
| style="border-left: 2px solid;border-right: 2px solid;" | 16729
807
| style="border-left: 2px solid;border-right: 2px solid;" | 33458
808
| style="border-left: 2px solid;border-right: 2px solid;" | 6.40377809
809
| style="border-left: 2px solid;border-right: 2px solid;" | 0.97782406
810
811
|}
812
813
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.
814
815
<div id='img-7'></div>
816
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
817
|-
818
|[[Image:Draft_Samper_249588187-fig6.png|600px|Mesh obtained after two refinement steps using the equidistribution of the error density (min size = 0.001m)]]
819
|- style="text-align: center; font-size: 75%;"
820
| colspan="1" | '''Figure 7:''' Mesh obtained after two refinement steps using the equidistribution of the error density (min size = 0.001m)
821
|}
822
823
<div id='img-8'></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-fig7.png|474px|]]
827
|style="padding-left:10px;"|[[Image:Draft_Samper_249588187-fig7_b.png|534px|Detail of the refined mesh shown in the  previous figure]]
828
|- style="text-align: center; font-size: 75%;"
829
| colspan="2" | '''Figure 8:''' Detail of the refined mesh shown in the  previous figure
830
|}
831
832
833
{|  class="floating_tableSCP wikitable" style="text-align: center; margin: 1em auto;min-width:50%;"
834
|+ 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)
835
|- style="border-top: 2px solid;"
836
| style="border-left: 2px solid;border-right: 2px solid;" |  Mesh 
837
| style="border-left: 2px solid;border-right: 2px solid;" | Global error <math display="inline">\left({\Vert P\Vert _\Omega \over U}\right)</math>(%)  
838
| style="border-left: 2px solid;border-right: 2px solid;" | Nodes 
839
| style="border-left: 2px solid;border-right: 2px solid;" | Elements
840
| style="border-left: 2px solid;border-right: 2px solid;" | Drag error %
841
| style="border-left: 2px solid;border-right: 2px solid;" | Lift error% 
842
|- style="border-top: 2px solid;"
843
| style="border-left: 2px solid;border-right: 2px solid;" |  1
844
| style="border-left: 2px solid;border-right: 2px solid;" | 5.55
845
| style="border-left: 2px solid;border-right: 2px solid;" | 2574
846
| style="border-left: 2px solid;border-right: 2px solid;" | 4784
847
| style="border-left: 2px solid;border-right: 2px solid;" | 29.1810942 
848
| style="border-left: 2px solid;border-right: 2px solid;" | 201.915023
849
|- style="border-top: 2px solid;"
850
| style="border-left: 2px solid;border-right: 2px solid;" |  2
851
| style="border-left: 2px solid;border-right: 2px solid;" | 2.18
852
| style="border-left: 2px solid;border-right: 2px solid;" | 10594
853
| style="border-left: 2px solid;border-right: 2px solid;" | 21188
854
| style="border-left: 2px solid;border-right: 2px solid;" | 10.4796861
855
| style="border-left: 2px solid;border-right: 2px solid;" | 1.16034921
856
|- style="border-top: 2px solid;border-bottom: 2px solid;"
857
| style="border-left: 2px solid;border-right: 2px solid;" |  3
858
| style="border-left: 2px solid;border-right: 2px solid;" | 2.14
859
| style="border-left: 2px solid;border-right: 2px solid;" | 39895
860
| style="border-left: 2px solid;border-right: 2px solid;" | 79790
861
| style="border-left: 2px solid;border-right: 2px solid;" | 3,17339951
862
| style="border-left: 2px solid;border-right: 2px solid;" | 0.5988364
863
864
|}
865
866
<div id='img-9'></div>
867
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
868
|-
869
|[[Image:Draft_Samper_249588187-Fig8.png|600px|Mesh obtained after four refinement steps using the equidistribution of the error density (min size = 0.002m).]]
870
|- style="text-align: center; font-size: 75%;"
871
| colspan="1" | '''Figure 9:''' Mesh obtained after four refinement steps using the equidistribution of the error density (min size = 0.002m).
872
|}
873
874
<div id='img-10'></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-Fig9.png|480px|]]
878
|style="padding-left:10px;"|[[Image:Draft_Samper_249588187-Fig9_b.png|540px|Detail of the refined mesh of Figure 9.]]
879
|- style="text-align: center; font-size: 75%;"
880
| colspan="2" | '''Figure 10:''' Detail of the refined mesh of Figure 9.
881
|}
882
883
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.
884
885
886
{|  class="floating_tableSCP wikitable" style="text-align: center; margin: 1em auto;min-width:50%;"
887
|+ 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
888
|- style="border-top: 2px solid;"
889
| style="border-left: 2px solid;border-right: 2px solid;" |  Mesh 
890
| style="border-left: 2px solid;border-right: 2px solid;" | Global error <math display="inline">\left({\Vert P\Vert _\Omega \over U}\right)</math>(%)  
891
| style="text-align: right;border-left: 2px solid;border-right: 2px solid;" | Nodes 
892
| style="text-align: right;border-left: 2px solid;border-right: 2px solid;" | Elements
893
| style="border-left: 2px solid;border-right: 2px solid;" | Drag error %
894
| style="border-left: 2px solid;border-right: 2px solid;" | Lift error% 
895
|- style="border-top: 2px solid;"
896
| style="border-left: 2px solid;border-right: 2px solid;" |  1
897
| style="border-left: 2px solid;border-right: 2px solid;" | 6.38
898
| style="text-align: right;border-left: 2px solid;border-right: 2px solid;" | 2574 
899
| style="text-align: right;border-left: 2px solid;border-right: 2px solid;" | 4784 
900
| style="border-left: 2px solid;border-right: 2px solid;" | 29.1810942
901
| style="border-left: 2px solid;border-right: 2px solid;" | 2.99902143
902
|- style="border-top: 2px solid;"
903
| style="border-left: 2px solid;border-right: 2px solid;" |  2 
904
| style="border-left: 2px solid;border-right: 2px solid;" | 3.42  
905
| style="text-align: right;border-left: 2px solid;border-right: 2px solid;" | 9871 
906
| style="text-align: right;border-left: 2px solid;border-right: 2px solid;" | 19742 
907
| style="border-left: 2px solid;border-right: 2px solid;" | 11.4092413 
908
| style="border-left: 2px solid;border-right: 2px solid;" | 1.21135183
909
|- style="border-top: 2px solid;"
910
| style="border-left: 2px solid;border-right: 2px solid;" |  3 
911
| style="border-left: 2px solid;border-right: 2px solid;" | 2.23  
912
| style="text-align: right;border-left: 2px solid;border-right: 2px solid;" | 29414 
913
| style="text-align: right;border-left: 2px solid;border-right: 2px solid;" | 58828 
914
| style="border-left: 2px solid;border-right: 2px solid;" | 6.34299015 
915
| style="border-left: 2px solid;border-right: 2px solid;" | 0.78983056
916
|- style="border-top: 2px solid;"
917
| style="border-left: 2px solid;border-right: 2px solid;" |  4 
918
| style="border-left: 2px solid;border-right: 2px solid;" | 2.11  
919
| style="text-align: right;border-left: 2px solid;border-right: 2px solid;" | 50062 
920
| style="text-align: right;border-left: 2px solid;border-right: 2px solid;" | 100124 
921
| style="border-left: 2px solid;border-right: 2px solid;" | 6.31490459 
922
| style="border-left: 2px solid;border-right: 2px solid;" | 0.78318179
923
|- style="border-top: 2px solid;border-bottom: 2px solid;"
924
| style="border-left: 2px solid;border-right: 2px solid;" |  5 
925
| style="border-left: 2px solid;border-right: 2px solid;" | 2.15  
926
| style="text-align: right;border-left: 2px solid;border-right: 2px solid;" | 71826 
927
| style="text-align: right;border-left: 2px solid;border-right: 2px solid;" | 143652 
928
| style="border-left: 2px solid;border-right: 2px solid;" | 6.76638966 
929
| style="border-left: 2px solid;border-right: 2px solid;" | 0.79634854
930
931
|}
932
933
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.
934
935
<div id='img-11'></div>
936
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
937
|-
938
|[[Image:Draft_Samper_249588187-graph1.png|600px|Flow past a NACA airfoil. Convergence of the drag error for both refinement methods]]
939
|- style="text-align: center; font-size: 75%;"
940
| colspan="1" | '''Figure 11:''' Flow past a NACA airfoil. Convergence of the drag error for both refinement methods
941
|}
942
943
<div id='img-12'></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-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]]
947
|- style="text-align: center; font-size: 75%;"
948
| 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
949
|}
950
951
<div id='img-13'></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-graf_dof_naca.png|600px|Convergence of the global error for both refinement methods]]
955
|- style="text-align: center; font-size: 75%;"
956
| colspan="1" | '''Figure 13:''' Convergence of the global error for both refinement methods
957
|}
958
959
===7.2 <span id='lb-7.2'></span>Flow past a cylinder Re=100===
960
961
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.
962
963
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.
964
965
<div id='img-14'></div>
966
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
967
|-
968
|[[File:Draft_Samper_249588187_7732_fig14.png|500px|Flow past a cylinder. Radius=1m, Re=100. Original mesh]]
969
|- style="text-align: center; font-size: 75%;"
970
| colspan="1" | '''Figure 14:''' Flow past a cylinder. Radius=1m, <math>Re=100</math>. Original mesh
971
|}
972
973
<div id='img-15'></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_6884_fig15.png|528px|Mesh obtained after two refinement steps using the equidistribution of the global error]]
977
|- style="text-align: center; font-size: 75%;"
978
| colspan="1" | '''Figure 15:''' Mesh obtained after two refinement steps using the equidistribution of the global error
979
|}
980
981
<div id='img-16'></div>
982
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
983
|-
984
|[[Image:Draft_Samper_249588187-fig10.png|600px|Detail of the refined mesh in the neighbourhood of the cylinder]]
985
|- style="text-align: center; font-size: 75%;"
986
| colspan="1" | '''Figure 16:''' Detail of the refined mesh in the neighbourhood of the cylinder
987
|}
988
989
<div id='img-17'></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-cilin_line_1.png|600px|Velocity field after two refinement steps. Equidistribution of global error]]
993
|- style="text-align: center; font-size: 75%;"
994
| colspan="1" | '''Figure 17:''' Velocity field after two refinement steps. Equidistribution of global error
995
|}
996
997
<div id='img-18'></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_2.png|486px|Detail of the velocity field]]
1001
|- style="text-align: center; font-size: 75%;"
1002
| colspan="1" | '''Figure 18:''' Detail of the velocity field
1003
|}
1004
1005
<br/>
1006
1007
1008
{|  class="floating_tableSCP wikitable" style="text-align: center; margin: 1em auto;min-width:50%;"
1009
|+ style="font-size: 75%;" |Table. 4 Flow past a cylinder (equidistribution of global error). Convergence of the global error with the mesh refinement
1010
|- style="border-top: 2px solid;"
1011
| style="border-left: 2px solid;border-right: 2px solid;" |  Mesh 
1012
| style="border-left: 2px solid;border-right: 2px solid;" | Global error <math display="inline">\left({\Vert P\Vert _\Omega \over U}\right)</math>(%) 
1013
| style="border-left: 2px solid;border-right: 2px solid;" | Nodes 
1014
| style="border-left: 2px solid;border-right: 2px solid;" | Elements
1015
|- style="border-top: 2px solid;"
1016
| style="border-left: 2px solid;border-right: 2px solid;" |  1
1017
| style="border-left: 2px solid;border-right: 2px solid;" | 8.72 
1018
| style="border-left: 2px solid;border-right: 2px solid;" | 2135
1019
| style="border-left: 2px solid;border-right: 2px solid;" | 5365
1020
|- style="border-top: 2px solid;"
1021
| style="border-left: 2px solid;border-right: 2px solid;" |  2
1022
| style="border-left: 2px solid;border-right: 2px solid;" | 2.67
1023
| style="border-left: 2px solid;border-right: 2px solid;" | 7863
1024
| style="border-left: 2px solid;border-right: 2px solid;" | 15875
1025
|- style="border-top: 2px solid;"
1026
| style="border-left: 2px solid;border-right: 2px solid;" |  3
1027
| style="border-left: 2px solid;border-right: 2px solid;" | 2.05
1028
| style="border-left: 2px solid;border-right: 2px solid;" | 12035
1029
| style="border-left: 2px solid;border-right: 2px solid;" | 24264
1030
|- style="border-top: 2px solid;"
1031
| style="border-left: 2px solid;border-right: 2px solid;" |  4
1032
| style="border-left: 2px solid;border-right: 2px solid;" | 2
1033
| style="border-left: 2px solid;border-right: 2px solid;" | 14448
1034
| style="border-left: 2px solid;border-right: 2px solid;" | 29114
1035
|- style="border-top: 2px solid;border-bottom: 2px solid;"
1036
| style="border-left: 2px solid;border-right: 2px solid;" |  5
1037
| style="border-left: 2px solid;border-right: 2px solid;" | 1.86
1038
| style="border-left: 2px solid;border-right: 2px solid;" | 16661
1039
| style="border-left: 2px solid;border-right: 2px solid;" | 33539
1040
1041
|}
1042
1043
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.
1044
1045
Figure 21 shows the convergence  of the global error for both cases.
1046
1047
<div id='img-19'></div>
1048
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
1049
|-
1050
|[[Image:Draft_Samper_249588187-fig13.png|600px|Mesh obtained after two refinement steps using the equidistribution of the error density]]
1051
|- style="text-align: center; font-size: 75%;"
1052
| colspan="1" | '''Figure 19:''' Mesh obtained after two refinement steps using the equidistribution of the error density
1053
|}
1054
1055
<div id='img-20'></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-fig14.png|600px|Details of the refined mesh of Figure 19]]
1059
|- style="text-align: center; font-size: 75%;"
1060
| colspan="1" | '''Figure 20:''' Details of the refined mesh of Figure 19
1061
|}
1062
1063
1064
{|  class="floating_tableSCP wikitable" style="text-align: center; margin: 1em auto;min-width:50%;"
1065
|+ style="font-size: 75%;" |Table. 5 Flow past a cylinder (equidistribution of error density). Convergence of the global error with the mesh refinement
1066
|- style="border-top: 2px solid;"
1067
| style="border-left: 2px solid;border-right: 2px solid;" |  Mesh 
1068
| style="border-left: 2px solid;border-right: 2px solid;" | Global error <math display="inline">\left({\Vert P\Vert _\Omega \over U}\right)</math>(%) 
1069
| style="border-left: 2px solid;border-right: 2px solid;" | Nodes 
1070
| style="border-left: 2px solid;border-right: 2px solid;" | Elements
1071
|- style="border-top: 2px solid;"
1072
| style="border-left: 2px solid;border-right: 2px solid;" |  1
1073
| style="border-left: 2px solid;border-right: 2px solid;" | 8.6
1074
| style="border-left: 2px solid;border-right: 2px solid;" | 2653
1075
| style="border-left: 2px solid;border-right: 2px solid;" | 5092
1076
|- style="border-top: 2px solid;"
1077
| style="border-left: 2px solid;border-right: 2px solid;" |  2
1078
| style="border-left: 2px solid;border-right: 2px solid;" | 2.96
1079
| style="border-left: 2px solid;border-right: 2px solid;" | 9198
1080
| style="border-left: 2px solid;border-right: 2px solid;" | 18057
1081
|- style="border-top: 2px solid;border-bottom: 2px solid;"
1082
| style="border-left: 2px solid;border-right: 2px solid;" |  3
1083
| style="border-left: 2px solid;border-right: 2px solid;" | 2.37
1084
| style="border-left: 2px solid;border-right: 2px solid;" | 77064
1085
| style="border-left: 2px solid;border-right: 2px solid;" | 153190
1086
1087
|}
1088
1089
<div id='img-21'></div>
1090
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
1091
|-
1092
|[[Image:Draft_Samper_249588187-graf_dof_cilin.png|600px|The convergence of the global error for both cases.]]
1093
|- style="text-align: center; font-size: 75%;"
1094
| colspan="1" | '''Figure 21:''' The convergence of the global error for both cases.
1095
|}
1096
1097
===7.3 Driven cavity flow===
1098
1099
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>.
1100
1101
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.
1102
1103
Figure 24 shows the convergence of the global error.
1104
1105
<div id='img-22'></div>
1106
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
1107
|-
1108
|[[Image:Draft_Samper_249588187-fig20.png|348px|Driven cavity flow. Side length =1m, Re=1000. Original mesh]]
1109
|- style="text-align: center; font-size: 75%;"
1110
| colspan="1" | '''Figure 22:''' Driven cavity flow. Side length =1m, <math>Re=1000</math>. Original mesh
1111
|}
1112
1113
<div id='img-23'></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-fig21.png|324px|]]
1117
|[[Image:Draft_Samper_249588187-cavity_line_4.png|318px|Mesh obtained after three refinement steps (equidistribution of the global error) and velocity field.]]
1118
|- style="text-align: center; font-size: 75%;"
1119
| colspan="2" | '''Figure 23:''' Mesh obtained after three refinement steps (equidistribution of the global error) and velocity field.
1120
|}
1121
1122
1123
{|  class="floating_tableSCP wikitable" style="text-align: center; margin: 1em auto;min-width:50%;"
1124
|+ style="font-size: 75%;" |Table. 6 Driven cavity flow (equidistribution of global error). Convergence of the global error with the mesh refinement
1125
|- style="border-top: 2px solid;"
1126
| style="border-left: 2px solid;border-right: 2px solid;" |  Mesh 
1127
| style="border-left: 2px solid;border-right: 2px solid;" | Global error <math display="inline">\left({\Vert P\Vert _\Omega \over U}\right)</math>(%) 
1128
| style="border-left: 2px solid;border-right: 2px solid;" | Nodes 
1129
| style="border-left: 2px solid;border-right: 2px solid;" | Elements
1130
|- style="border-top: 2px solid;"
1131
| style="border-left: 2px solid;border-right: 2px solid;" |  1
1132
| style="border-left: 2px solid;border-right: 2px solid;" | 26.88
1133
| style="border-left: 2px solid;border-right: 2px solid;" | 477
1134
| style="border-left: 2px solid;border-right: 2px solid;" | 872
1135
|- style="border-top: 2px solid;"
1136
| style="border-left: 2px solid;border-right: 2px solid;" |  2
1137
| style="border-left: 2px solid;border-right: 2px solid;" | 14.5
1138
| style="border-left: 2px solid;border-right: 2px solid;" | 3089
1139
| style="border-left: 2px solid;border-right: 2px solid;" | 5985
1140
|- style="border-top: 2px solid;"
1141
| style="border-left: 2px solid;border-right: 2px solid;" |  3
1142
| style="border-left: 2px solid;border-right: 2px solid;" | 9.56
1143
| style="border-left: 2px solid;border-right: 2px solid;" | 6475
1144
| style="border-left: 2px solid;border-right: 2px solid;" | 12521
1145
|- style="border-top: 2px solid;"
1146
| style="border-left: 2px solid;border-right: 2px solid;" |  4
1147
| style="border-left: 2px solid;border-right: 2px solid;" | 9.42
1148
| style="border-left: 2px solid;border-right: 2px solid;" | 8103
1149
| style="border-left: 2px solid;border-right: 2px solid;" | 15700
1150
|- style="border-top: 2px solid;"
1151
| style="border-left: 2px solid;border-right: 2px solid;" |  5
1152
| style="border-left: 2px solid;border-right: 2px solid;" | 9.14
1153
| style="border-left: 2px solid;border-right: 2px solid;" | 9411
1154
| style="border-left: 2px solid;border-right: 2px solid;" | 18280
1155
|- style="border-top: 2px solid;border-bottom: 2px solid;"
1156
| style="border-left: 2px solid;border-right: 2px solid;" |  6
1157
| style="border-left: 2px solid;border-right: 2px solid;" | 6.63
1158
| style="border-left: 2px solid;border-right: 2px solid;" | 12997
1159
| style="border-left: 2px solid;border-right: 2px solid;" | 25207
1160
1161
|}
1162
1163
<div id='img-24'></div>
1164
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
1165
|-
1166
|[[Image:Draft_Samper_249588187-graf_dof_cavity.png|600px|Convergence of the global error in the cavity problem.]]
1167
|- style="text-align: center; font-size: 75%;"
1168
| colspan="1" | '''Figure 24:''' Convergence of the global error in the cavity problem.
1169
|}
1170
1171
<div id='img-25'></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-fig23.png|600px|High-lift airfoil configuration. Characteristic length =0.6m, Re=100. Initial mesh]]
1175
|- style="text-align: center; font-size: 75%;"
1176
| colspan="1" | '''Figure 25:''' High-lift airfoil configuration. Characteristic length =0.6m, Re=100. Initial mesh
1177
|}
1178
1179
<div id='img-26'></div>
1180
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: auto;max-width: auto;"
1181
|-
1182
|[[Image:Draft_Samper_249588187-fig24.png|460px|]]
1183
|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)]]
1184
|- style="text-align: center; font-size: 75%;"
1185
| colspan="2" | '''Figure 26:''' Mesh obtained after two refinement steps using equiditribution of global error (<math>\mu =0.01</math>)
1186
|}
1187
1188
<div id='img-27'></div>
1189
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: auto;max-width: auto;"
1190
|-
1191
|[[Image:Draft_Samper_249588187-fig25.png|460px|]]
1192
|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]]
1193
|- style="text-align: center; font-size: 75%;"
1194
| 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
1195
|}
1196
1197
===7.4 Flow past a  wing in high-lift configuration===
1198
1199
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.
1200
1201
1202
{|  class="floating_tableSCP wikitable" style="text-align: center; margin: 1em auto;min-width:50%;"
1203
|+ style="font-size: 75%;" |Table. 7 High-lift configuration (equidistribution of global error). Convergence of the global error with the mesh refinement
1204
|- style="border-top: 2px solid;"
1205
| style="border-left: 2px solid;border-right: 2px solid;" |  Mesh 
1206
| style="border-left: 2px solid;border-right: 2px solid;" | Global error <math display="inline">\left({\Vert P\Vert _\Omega \over U}\right)</math>(%) 
1207
| style="border-left: 2px solid;border-right: 2px solid;" | Nodes 
1208
| style="text-align: right;border-left: 2px solid;border-right: 2px solid;" | Elements
1209
|- style="border-top: 2px solid;"
1210
| style="border-left: 2px solid;border-right: 2px solid;" |  1
1211
| style="border-left: 2px solid;border-right: 2px solid;" | 3.76
1212
| style="border-left: 2px solid;border-right: 2px solid;" | 11703
1213
| style="text-align: right;border-left: 2px solid;border-right: 2px solid;" | 22874
1214
|- style="border-top: 2px solid;"
1215
| style="border-left: 2px solid;border-right: 2px solid;" |  2
1216
| style="border-left: 2px solid;border-right: 2px solid;" | 2.51
1217
| style="border-left: 2px solid;border-right: 2px solid;" | 18334
1218
| style="text-align: right;border-left: 2px solid;border-right: 2px solid;" | 35909
1219
|- style="border-top: 2px solid;"
1220
| style="border-left: 2px solid;border-right: 2px solid;" |  3
1221
| style="border-left: 2px solid;border-right: 2px solid;" | 1.95
1222
| style="border-left: 2px solid;border-right: 2px solid;" | 26718
1223
| style="text-align: right;border-left: 2px solid;border-right: 2px solid;" | 52487
1224
|- style="border-top: 2px solid;"
1225
| style="border-left: 2px solid;border-right: 2px solid;" |  4
1226
| style="border-left: 2px solid;border-right: 2px solid;" | 1.79
1227
| style="border-left: 2px solid;border-right: 2px solid;" | 27845
1228
| style="text-align: right;border-left: 2px solid;border-right: 2px solid;" | 54810
1229
|- style="border-top: 2px solid;border-bottom: 2px solid;"
1230
| style="border-left: 2px solid;border-right: 2px solid;" |  5
1231
| style="border-left: 2px solid;border-right: 2px solid;" | 1.58
1232
| style="border-left: 2px solid;border-right: 2px solid;" | 51361
1233
| style="text-align: right;border-left: 2px solid;border-right: 2px solid;" | 101532
1234
1235
|}
1236
1237
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.
1238
1239
The velocity field for the fifth  step is shown in Figure 28.
1240
1241
Figures 29 and 30 show the convergence of the drag and lift error, respectively. Figure 31 shows the evolution of the global error.
1242
1243
<div id='img-28'></div>
1244
{| class="floating_imageSCP" style="text-align: center; border: 1px solid #BBB; margin: 1em auto; width: 100%;max-width: 100%;"
1245
|-
1246
|[[Image:Draft_Samper_249588187-dasault_line.png|600px|Velocity field obtained after five refinement steps]]
1247
|- style="text-align: center; font-size: 75%;"
1248
| colspan="1" | '''Figure 28:''' Velocity field obtained after five refinement steps
1249
|}
1250
1251
<div id='img-29'></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-graph3.png|600px|The convergence of the drag error]]
1255
|- style="text-align: center; font-size: 75%;"
1256
| colspan="1" | '''Figure 29:''' The convergence of the drag error
1257
|}
1258
1259
<div id='img-30'></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-graph4.png|600px|The convergence of the lift error]]
1263
|- style="text-align: center; font-size: 75%;"
1264
| colspan="1" | '''Figure 30:''' The convergence of the lift error
1265
|}
1266
1267
<div id='img-31'></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-graf_dof_dassault.png|600px|The convergence of the global error ]]
1271
|- style="text-align: center; font-size: 75%;"
1272
| colspan="1" | '''Figure 31:''' The convergence of the global error 
1273
|}
1274
1275
==8 CONCLUDING REMARKS==
1276
1277
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]]].
1278
1279
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.
1280
1281
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.
1282
1283
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.).
1284
1285
==ACKNOWLEDGEMENTS==
1286
1287
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.
1288
1289
==REFERENCES==
1290
1291
<div id="cite-1"></div>
1292
'''[[#citeF-1|[1]]]''' O.C. Zienkiewicz and  R.L. Taylor. ''The finite element method''. 5th Edition, 3 Volumes, Butterworth&#8211;Heinemann, 2000.
1293
1294
<div id="cite-2"></div>
1295
'''[[#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.
1296
1297
<div id="cite-3"></div>
1298
'''[3]''' J.Z. Zhu and O.C. Zienkiewicz. Adaptive techniques in the finite  element method. ''Comm. App. Num. Math.'', '''4''', 197&#8211;204, 1988.
1299
1300
<div id="cite-4"></div>
1301
'''[[#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.
1302
1303
<div id="cite-5"></div>
1304
'''[[#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.
1305
1306
<div id="cite-6"></div>
1307
'''[[#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.
1308
1309
<div id="cite-7"></div>
1310
'''[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.
1311
1312
<div id="cite-8"></div>
1313
'''[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.
1314
1315
<div id="cite-9"></div>
1316
'''[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.
1317
1318
<div id="cite-10"></div>
1319
'''[10]''' R. Löhner. Adaptive remeshing for transient problems. '' Comput. Meth. Appl. Mech. Eng.'', '''75''', 195&#8211;214, 1989.
1320
1321
<div id="cite-11"></div>
1322
'''[[#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.
1323
1324
<div id="cite-12"></div>
1325
'''[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.
1326
1327
<div id="cite-13"></div>
1328
'''[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.
1329
1330
<div id="cite-14"></div>
1331
'''[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.
1332
1333
<div id="cite-15"></div>
1334
'''[[#citeF-15|[15]]]'''  W. Bangerth and R. Rannacher. ''Adaptive finite elements for differential equations''. Birkhäuser Verlag, Basel, 2003.
1335
1336
<div id="cite-16"></div>
1337
'''[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.
1338
1339
<div id="cite-17"></div>
1340
'''[[#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.
1341
1342
<div id="cite-18"></div>
1343
'''[[#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.
1344
1345
<div id="cite-19"></div>
1346
'''[[#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.
1347
1348
<div id="cite-20"></div>
1349
'''[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.
1350
1351
<div id="cite-21"></div>
1352
'''[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.
1353
1354
<div id="cite-22"></div>
1355
'''[[#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.
1356
1357
<div id="cite-23"></div>
1358
'''[[#citeF-23|[23]]]'''  GiD. The personal pre/postprocessing system. CIMNE, Barcelona, www.gidhome.com, 2004.
1359
1360
<div id="cite-24"></div>
1361
'''[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.
1362
1363
<div id="cite-25"></div>
1364
'''[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).
1365
1366
<div id="cite-26"></div>
1367
'''[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).
1368
1369
<div id="cite-27"></div>
1370
'''[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).
1371
1372
<div id="cite-28"></div>
1373
'''[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).
1374
1375
<div id="cite-29"></div>
1376
'''[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).
1377
1378
<div id="cite-30"></div>
1379
'''[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).
1380
1381
<div id="cite-31"></div>
1382
'''[[#citeF-31|[31]]]'''  Tdyn. An unstructured finite element code for fluid dynamic analysis, COMPASS Ingeniería y Sistemas SA, www.compassis.com, 2003.
1383

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 46
Recommendations 0

Share this document

claim authorship

Are you one of the authors of this document?