<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.0 20120330//EN" "JATS-journalpublishing1.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">INFORMATICA</journal-id>
<journal-title-group><journal-title>Informatica</journal-title></journal-title-group>
<issn pub-type="epub">1822-8844</issn><issn pub-type="ppub">0868-4952</issn><issn-l>0868-4952</issn-l>
<publisher>
<publisher-name>Vilnius University</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">INFO1211</article-id>
<article-id pub-id-type="doi">10.15388/Informatica.2019.205</article-id>
<article-categories><subj-group subj-group-type="heading">
<subject>Research Article</subject></subj-group></article-categories>
<title-group>
<article-title>Efficient MATLAB Codes for the 2D/3D Stokes Equation with the Mini-Element</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>Koko</surname><given-names>Jonas</given-names></name><email xlink:href="jonas.koko@uca.fr">jonas.koko@uca.fr</email><xref ref-type="aff" rid="j_info1211_aff_001"/><bio>
<p><bold>J. Koko</bold> is an associate professor in applied mathematics at the Computer Science School at the University Clermont-Auvergne. His research interests include numerical optimization with applications to Partial Differential Equations (PDE) and parallel computing, vectorized MATLAB codes for the numerical approximation of PDEs.</p></bio>
</contrib>
<aff id="j_info1211_aff_001">LIMOS, <institution>Université Blaise Pascal – CNRS UMR 6158</institution>, ISIMA, Campus des Cézeaux – BP 10125, 63173 Aubière cedex, <country>France</country></aff>
</contrib-group>
<pub-date pub-type="ppub"><year>2019</year></pub-date>
<pub-date pub-type="epub"><day>1</day><month>1</month><year>2019</year></pub-date><volume>30</volume><issue>2</issue><fpage>243</fpage><lpage>268</lpage><history><date date-type="received"><month>2</month><year>2018</year></date><date date-type="accepted"><month>12</month><year>2018</year></date></history>
<permissions><copyright-statement>© 2019 Vilnius University</copyright-statement><copyright-year>2019</copyright-year>
<license license-type="open-access" xlink:href="http://creativecommons.org/licenses/by/4.0/">
<license-p>Open access article under the <ext-link ext-link-type="uri" xlink:href="http://creativecommons.org/licenses/by/4.0/">CC BY</ext-link> license.</license-p></license></permissions>
<abstract>
<p>We propose a fast MATLAB implementation of the mini-element (i.e. <inline-formula id="j_info1211_ineq_001"><alternatives><mml:math>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$P1$]]></tex-math></alternatives></inline-formula>-Bubble/<inline-formula id="j_info1211_ineq_002"><alternatives><mml:math>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$P1$]]></tex-math></alternatives></inline-formula>) for the finite element approximation of the generalized Stokes equation in 2D and 3D. We use cell arrays to derive vectorized assembling functions. We also propose a Uzawa conjugate gradient method as an iterative solver for the global Stokes system. Numerical experiments show that our implementation has an (almost) optimal time-scaling. For 3D problems, the proposed Uzawa conjugate gradient algorithm outperforms MATLAB built-in linear solvers.</p>
</abstract>
<kwd-group>
<label>Key words</label>
<kwd>finite element method</kwd>
<kwd>Stokes problem</kwd>
<kwd>Uzawa conjugate gradient</kwd>
<kwd>MATLAB</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="j_info1211_s_001">
<label>1</label>
<title>Introduction</title>
<p>MATLAB is a popular problem solving environment, widely used for general scientific computation in education, engineering and research. MATLAB is nowadays a standard tools in many areas. Thanks to its collection of direct (e.g. <inline-formula id="j_info1211_ineq_003"><alternatives><mml:math>
<mml:mi mathvariant="italic">LU</mml:mi></mml:math><tex-math><![CDATA[$\mathit{LU}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1211_ineq_004"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">LDL</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathit{LDL}^{\top }}$]]></tex-math></alternatives></inline-formula>, Cholesky) and iterative (e.g. conjugate gradient, GMRES, bi-conjugate gradient) solvers, it is tempting to use MATLAB for the numerical approximation of partial differential equations (PDEs). For the finite element method (FEM), the main obstacle for using MATLAB is the assembly of the global matrix and vector. Since MATLAB built-in solvers are optimized, the assembly operations can take up to 99% of whole CPU time, as shown in Koko (<xref ref-type="bibr" rid="j_info1211_ref_013">2007</xref>), using an implementation with standard loop over triangles (Alberty <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1211_ref_001">1999</xref>, <xref ref-type="bibr" rid="j_info1211_ref_002">2002</xref>; Kwon and Bang, <xref ref-type="bibr" rid="j_info1211_ref_015">2000</xref>) directly derived from compiled languages (FORTRAN and C/C++). Unfortunately, some vectorized FEM codes are less flexible and require a huge amount of memory due to the allocation of auxiliary arrays and the corresponding matrix operations (Koko, <xref ref-type="bibr" rid="j_info1211_ref_013">2007</xref>; Rahman and Valdman, <xref ref-type="bibr" rid="j_info1211_ref_021">2013</xref>, <xref ref-type="bibr" rid="j_info1211_ref_022">2015</xref>). Recently, Koko (<xref ref-type="bibr" rid="j_info1211_ref_014">2016</xref>) proposed a MATLAB implementation close to the standard form by using cell-arrays to store the gradient of the basis functions, for the Poisson equation and linear elasticity in 2D and 3D.</p>
<p>In this paper, we propose a fast MATLAB implementation of the <inline-formula id="j_info1211_ineq_005"><alternatives><mml:math>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$P1$]]></tex-math></alternatives></inline-formula>-Bubble/<inline-formula id="j_info1211_ineq_006"><alternatives><mml:math>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$P1$]]></tex-math></alternatives></inline-formula> finite element (<italic>Mini element</italic>, Arnold <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1211_ref_003">1984</xref>; Ern and Guermond, <xref ref-type="bibr" rid="j_info1211_ref_008">2002</xref>; Glowinski, <xref ref-type="bibr" rid="j_info1211_ref_010">2003</xref>) for the generalized Stokes problem in 2D and 3D. The mini element for spatial discretization of the Stokes problem is easy to use in engineering practice since it allows for the use of equal-order interpolation (the same mesh for velocity and pressure). Equal-order interpolation is very useful in large-scale multi-physics codes. Indeed, a code dealing with several independent variables (e.g. chemical species, velocity components, etc.) requires the transfer of information between its different components at each time-step. Fast implementation means that our code operates on array and does not use <monospace>for</monospace>-loops over elements (triangles of tetrahedrons) for the assembling operations. Instead, we use cell-arrays to store element matrices as in Koko (<xref ref-type="bibr" rid="j_info1211_ref_014">2016</xref>). We also propose a solution strategy for the final linear system. Indeed, we propose an efficient (preconditioned) Uzawa conjugate gradient method derived from the one used with <inline-formula id="j_info1211_ineq_007"><alternatives><mml:math>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$P2/P1$]]></tex-math></alternatives></inline-formula> (or <inline-formula id="j_info1211_ineq_008"><alternatives><mml:math>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$P1$]]></tex-math></alternatives></inline-formula>-iso-<inline-formula id="j_info1211_ineq_009"><alternatives><mml:math>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$P2/P1$]]></tex-math></alternatives></inline-formula>) finite element pair (Cahouet and Chabard, <xref ref-type="bibr" rid="j_info1211_ref_007">1988</xref>; Glowinski, <xref ref-type="bibr" rid="j_info1211_ref_010">2003</xref>). The proposed conjugate gradient method operates on the dual (pressure) space and, at each iteration, <italic>d</italic> independent linear systems are solved (<inline-formula id="j_info1211_ineq_010"><alternatives><mml:math>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>3</mml:mn></mml:math><tex-math><![CDATA[$d=2,3$]]></tex-math></alternatives></inline-formula>). Our implementation needs only MATLAB basic distribution functions and can be easily modified and refined.</p>
<p>The paper is organized as follows. The model problem is described in Section <xref rid="j_info1211_s_002">2</xref>, followed by a finite element discretization in Section <xref rid="j_info1211_s_003">3</xref>. The element matrices in 2D/3D are described in Section <xref rid="j_info1211_s_006">4</xref>. In Section <xref rid="j_info1211_s_009">5</xref>, we propose our Uzawa conjugate gradient method for solving the Stokes system. MATLAB implementation details are given in Section <xref rid="j_info1211_s_012">6</xref>. Numerical experiments are carried out in Section <xref rid="j_info1211_s_017">7</xref>. Readers can download and edit the codes from <uri>http://www.isima.fr/~jkoko/Codes/KSTOK.tar.gz</uri>.</p>
</sec>
<sec id="j_info1211_s_002">
<label>2</label>
<title>The Model Problem</title>
<p>Let Ω be a bounded domain in <inline-formula id="j_info1211_ineq_011"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="double-struck">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathbb{R}^{d}}$]]></tex-math></alternatives></inline-formula> (<inline-formula id="j_info1211_ineq_012"><alternatives><mml:math>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>3</mml:mn></mml:math><tex-math><![CDATA[$d=2,3$]]></tex-math></alternatives></inline-formula>) with a Lipschitz-continuous boundary Γ. Consider in Ω the Stokes problem <disp-formula-group id="j_info1211_dg_001">
<disp-formula id="j_info1211_eq_001">
<label>(2.1)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">ν</mml:mi>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mo>+</mml:mo>
<mml:mo>∇</mml:mo>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="bold-italic">f</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mtext>in</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="normal">Ω</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \alpha \boldsymbol{u}-\nu \Delta \boldsymbol{u}+\nabla p=\boldsymbol{f},\hspace{1em}\text{in}\hspace{2.5pt}\Omega ,\]]]></tex-math></alternatives>
</disp-formula>
<disp-formula id="j_info1211_eq_002">
<label>(2.2)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mo>∇</mml:mo>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mtext>in</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="normal">Ω</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \nabla \cdot \boldsymbol{u}=0,\hspace{1em}\text{in}\hspace{2.5pt}\Omega ,\]]]></tex-math></alternatives>
</disp-formula>
<disp-formula id="j_info1211_eq_003">
<label>(2.3)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold-italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mtext>on</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="normal">Γ</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \boldsymbol{u}={\boldsymbol{u}^{D}},\hspace{1em}\text{on}\hspace{2.5pt}\Gamma ,\]]]></tex-math></alternatives>
</disp-formula>
</disp-formula-group> where <inline-formula id="j_info1211_ineq_013"><alternatives><mml:math>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="double-struck">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$\boldsymbol{u}=({u_{1}},\dots ,{u_{d}})\in {\mathbb{R}^{d}}$]]></tex-math></alternatives></inline-formula> is the velocity vector, <italic>p</italic>, the pressure, and <inline-formula id="j_info1211_ineq_014"><alternatives><mml:math>
<mml:mi mathvariant="bold-italic">f</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="double-struck">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$\boldsymbol{f}=({f_{1}},\dots ,{f_{d}})\in {\mathbb{R}^{d}}$]]></tex-math></alternatives></inline-formula>, the field of external forces. In equation (<xref rid="j_info1211_eq_001">2.1</xref>), <inline-formula id="j_info1211_ineq_015"><alternatives><mml:math>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mo>⩾</mml:mo>
<mml:mn>0</mml:mn></mml:math><tex-math><![CDATA[$\alpha \geqslant 0$]]></tex-math></alternatives></inline-formula> is an arbitrary constant. If <inline-formula id="j_info1211_ineq_016"><alternatives><mml:math>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn></mml:math><tex-math><![CDATA[$\alpha =0$]]></tex-math></alternatives></inline-formula>, then equations (<xref rid="j_info1211_eq_001">2.1</xref>)–(<xref rid="j_info1211_eq_003">2.3</xref>) turn to be the classic Stokes problem. If <inline-formula id="j_info1211_ineq_017"><alternatives><mml:math>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mo mathvariant="normal">&gt;</mml:mo>
<mml:mn>0</mml:mn></mml:math><tex-math><![CDATA[$\alpha >0$]]></tex-math></alternatives></inline-formula>, then equations (<xref rid="j_info1211_eq_001">2.1</xref>)–(<xref rid="j_info1211_eq_003">2.3</xref>) turn to be a generalized Stokes problem encountered in time discretization of Navier-Stokes equations (see e.g. Glowinski, <xref ref-type="bibr" rid="j_info1211_ref_010">2003</xref>). The constant <inline-formula id="j_info1211_ineq_018"><alternatives><mml:math>
<mml:mi mathvariant="italic">ν</mml:mi>
<mml:mo mathvariant="normal">&gt;</mml:mo>
<mml:mn>0</mml:mn></mml:math><tex-math><![CDATA[$\nu >0$]]></tex-math></alternatives></inline-formula> is the kinematic viscosity.</p>
<p>We need the functional spaces <inline-formula id="j_info1211_ineq_019"><alternatives><mml:math>
<mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="normal">Ω</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$\boldsymbol{V}={H_{0}^{1}}{(\Omega )^{d}}$]]></tex-math></alternatives></inline-formula>, 
<disp-formula id="j_info1211_eq_004">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold-italic">V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">{</mml:mo>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="normal">Ω</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mspace width="0.1667em"/>
<mml:mo>:</mml:mo>
<mml:mspace width="0.1667em"/>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold-italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mspace width="2.5pt"/>
<mml:mtext>on</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="normal">Γ</mml:mi>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">}</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo fence="true" maxsize="2.03em" minsize="2.03em">{</mml:mo>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="normal">Ω</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mspace width="0.1667em"/>
<mml:mo>:</mml:mo>
<mml:mspace width="0.1667em"/>
<mml:msub>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∫</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">Ω</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mspace width="0.1667em"/>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo fence="true" maxsize="2.03em" minsize="2.03em">}</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\boldsymbol{V}^{D}}=\big\{\boldsymbol{v}\in {H^{1}}{(\Omega )^{d}}\hspace{0.1667em}:\hspace{0.1667em}\boldsymbol{v}={\boldsymbol{u}^{D}}\hspace{2.5pt}\text{on}\hspace{2.5pt}\Gamma \big\},\hspace{1em}P=\bigg\{q\in {L^{2}}(\Omega )\hspace{0.1667em}:\hspace{0.1667em}{\int _{\Omega }}q\hspace{0.1667em}\mathrm{d}x=0\bigg\},\]]]></tex-math></alternatives>
</disp-formula> 
and bilinear forms 
<disp-formula id="j_info1211_eq_005">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">Ω</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">ν</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo>∇</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>∇</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">Ω</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mi mathvariant="bold-italic">a</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{l}\displaystyle {a_{i}}({u_{i}},{v_{i}})=\alpha {({u_{i}},{v_{i}})_{\Omega }}+\nu {(\nabla {u_{i}},\nabla {v_{i}})_{\Omega }},\hspace{1em}i=1,\dots ,d,\\ {} \displaystyle \boldsymbol{a}(\boldsymbol{u},\boldsymbol{v})={\sum \limits_{i=1}^{d}}{a_{i}}({u_{i}},{v_{i}}),\end{array}\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_info1211_ineq_020"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo>·</mml:mo>
<mml:mspace width="0.1667em"/>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>·</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">Ω</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${(\cdot \hspace{0.1667em},\cdot )_{\Omega }}$]]></tex-math></alternatives></inline-formula> stands for the standard <inline-formula id="j_info1211_ineq_021"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="normal">Ω</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${L^{2}}(\Omega )$]]></tex-math></alternatives></inline-formula> scalar product. The variational formulation of the Stokes problem (<xref rid="j_info1211_eq_001">2.1</xref>)–(<xref rid="j_info1211_eq_003">2.3</xref>) is as follows:</p>
<p>Find <inline-formula id="j_info1211_ineq_022"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold-italic">V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi></mml:math><tex-math><![CDATA[$(\boldsymbol{u},p)\in {\boldsymbol{V}^{D}}\times P$]]></tex-math></alternatives></inline-formula> such that: <disp-formula-group id="j_info1211_dg_002">
<disp-formula id="j_info1211_eq_006">
<label>(2.4)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>∇</mml:mo>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">Ω</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold-italic">f</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">Ω</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mo>∀</mml:mo>
<mml:mi mathvariant="bold-italic">v</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mi mathvariant="bold-italic">V</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ a(\boldsymbol{u},\boldsymbol{v})-{(p,\nabla \cdot \boldsymbol{v})_{\Omega }}={(\boldsymbol{f},\boldsymbol{v})_{\Omega }},\hspace{1em}\forall \boldsymbol{v}\in \boldsymbol{V},\]]]></tex-math></alternatives>
</disp-formula>
<disp-formula id="j_info1211_eq_007">
<label>(2.5)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>∇</mml:mo>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">Ω</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mo>∀</mml:mo>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ -{(q,\nabla \cdot \boldsymbol{u})_{\Omega }}=0,\hspace{1em}\forall q\in P.\]]]></tex-math></alternatives>
</disp-formula>
</disp-formula-group></p>
</sec>
<sec id="j_info1211_s_003">
<label>3</label>
<title>Finite Element Discretization with <inline-formula id="j_info1211_ineq_023"><alternatives><mml:math>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$P1$]]></tex-math></alternatives></inline-formula>-Bubble-<inline-formula id="j_info1211_ineq_024"><alternatives><mml:math>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$P1$]]></tex-math></alternatives></inline-formula></title>
<p>For the finite element discretization of (<xref rid="j_info1211_eq_006">2.4</xref>)–(<xref rid="j_info1211_eq_007">2.5</xref>), we have to chose a finite element pair for the velocity field and the pressure. This choice cannot be arbitrary but must satisfy the <italic>inf-sup</italic> condition (Babuska, <xref ref-type="bibr" rid="j_info1211_ref_004">1971</xref>; Brezzi, <xref ref-type="bibr" rid="j_info1211_ref_006">1974</xref>).</p>
<sec id="j_info1211_s_004">
<label>3.1</label>
<title>Mini Element</title>
<p>In this paper we study the discretization of the Stokes problem (<xref rid="j_info1211_eq_001">2.1</xref>)–(<xref rid="j_info1211_eq_003">2.3</xref>) by the finite element pair <inline-formula id="j_info1211_ineq_025"><alternatives><mml:math>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$P1$]]></tex-math></alternatives></inline-formula>-bubble/<inline-formula id="j_info1211_ineq_026"><alternatives><mml:math>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$P1$]]></tex-math></alternatives></inline-formula> (the so-called <italic>mini-element</italic>), introduced by Arnold <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1211_ref_003">1984</xref>). This element leads to a relatively low number of degrees of freedom with a good approximate solution.</p>
<p>Let <inline-formula id="j_info1211_ineq_027"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathcal{T}_{h}}$]]></tex-math></alternatives></inline-formula> be a triangulation of Ω and <italic>T</italic> a triangle of <inline-formula id="j_info1211_ineq_028"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathcal{T}_{h}}$]]></tex-math></alternatives></inline-formula>. We define the space associated with the bubble by 
<disp-formula id="j_info1211_eq_008">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">{</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="normal">Ω</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>;</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:mo>∀</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">}</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\mathbb{B}_{h}}=\big\{{\boldsymbol{v}_{h}}\in {\mathcal{C}^{0}}(\bar{\Omega });\hspace{2.5pt}\forall T\in {\mathcal{T}_{h}},\hspace{2.5pt}{v_{h|T}}=\boldsymbol{x}{b^{(T)}}\big\}.\]]]></tex-math></alternatives>
</disp-formula> 
We also defined the discrete function spaces 
<disp-formula id="j_info1211_eq_009">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">{</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="normal">Ω</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>;</mml:mo>
<mml:mspace width="0.2778em"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:mo>∀</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>;</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="normal">Γ</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">}</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo maxsize="2.03em" minsize="2.03em" fence="true">{</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="normal">Ω</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>;</mml:mo>
<mml:mspace width="0.2778em"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:mo>∀</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>;</mml:mo>
<mml:mspace width="0.1667em"/>
<mml:mo>:</mml:mo>
<mml:mspace width="0.1667em"/>
<mml:msub>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∫</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">Ω</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mspace width="0.1667em"/>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo maxsize="2.03em" minsize="2.03em" fence="true">}</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{l}\displaystyle {V_{ih}}=\big\{{\boldsymbol{v}_{h}}\in {\mathcal{C}^{0}}(\bar{\Omega });\hspace{0.2778em}{\boldsymbol{v}_{h|T}}\in {P^{1}},\hspace{2.5pt}\forall T\in {\mathcal{T}_{h}};\hspace{2.5pt}{\boldsymbol{v}_{h|\Gamma }}=0\big\},\hspace{1em}i=1,\dots ,d,\\ {} \displaystyle {P_{h}}=\bigg\{{q_{h}}\in {\mathcal{C}^{0}}(\bar{\Omega });\hspace{0.2778em}{q_{h|T}}\in {P^{1}},\hspace{2.5pt}\forall T\in {\mathcal{T}_{h}};\hspace{0.1667em}:\hspace{0.1667em}{\int _{\Omega }}{q_{h}}\hspace{0.1667em}\mathrm{d}x=0\bigg\},\end{array}\]]]></tex-math></alternatives>
</disp-formula> 
and we set <inline-formula id="j_info1211_ineq_029"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>⊕</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${X_{ih}}={V_{ih}}\oplus {\mathbb{B}_{h}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1211_ineq_030"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>×</mml:mo>
<mml:mo stretchy="false">⋯</mml:mo>
<mml:mo>×</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\boldsymbol{X}_{h}}={X_{1h}}\times \cdots \times {X_{dh}}$]]></tex-math></alternatives></inline-formula>. With the above preparations, the discrete variational problem reads as follows.</p>
<p>Find <inline-formula id="j_info1211_ineq_031"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>×</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$({\boldsymbol{u}_{h}},{p_{h}})\in {\boldsymbol{X}_{h}}\times {P_{h}}$]]></tex-math></alternatives></inline-formula> such that <disp-formula-group id="j_info1211_dg_003">
<disp-formula id="j_info1211_eq_010">
<label>(3.1)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mi mathvariant="bold-italic">a</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>∇</mml:mo>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">Ω</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold-italic">f</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">Ω</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
<mml:mo>∀</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \boldsymbol{a}({\boldsymbol{u}_{h}},{\boldsymbol{v}_{h}})-{({p_{h}},\nabla \cdot {\boldsymbol{v}_{h}})_{\Omega }}={(\boldsymbol{f},{\boldsymbol{v}_{h}})_{\Omega }}\hspace{1em}\forall {v_{h}}\in {\boldsymbol{X}_{h}},\]]]></tex-math></alternatives>
</disp-formula>
<disp-formula id="j_info1211_eq_011">
<label>(3.2)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>∇</mml:mo>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">Ω</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
<mml:mo>∀</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ -{({q_{h}},\nabla \cdot {\boldsymbol{u}_{h}})_{\Omega }}=0\hspace{1em}\forall {q_{h}}\in {P_{h}}.\]]]></tex-math></alternatives>
</disp-formula>
</disp-formula-group></p>
<p>For a given triangle <italic>T</italic>, the velocity field <inline-formula id="j_info1211_ineq_032"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\boldsymbol{u}_{h}}$]]></tex-math></alternatives></inline-formula> and the pressure <inline-formula id="j_info1211_ineq_033"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{h}}$]]></tex-math></alternatives></inline-formula> are approximated by linear combinations of the basis functions in the form 
<disp-formula id="j_info1211_eq_012">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:munderover>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2em"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:munderover>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\boldsymbol{u}_{h}}(\boldsymbol{x})={\sum \limits_{i=1}^{d+1}}{\phi _{i}}(\boldsymbol{x}){\mathbf{u}_{i}}+{\mathbf{u}_{b}}{\phi _{b}}(\boldsymbol{x}),\hspace{2em}{p_{h}}(\boldsymbol{x})={\sum \limits_{i=1}^{d+1}}{\phi _{i}}(\boldsymbol{x}){\mathrm{p}_{i}},\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_info1211_ineq_034"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{u}_{i}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1211_ineq_035"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathrm{p}_{i}}$]]></tex-math></alternatives></inline-formula> are nodal values of <inline-formula id="j_info1211_ineq_036"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\boldsymbol{u}_{h}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1211_ineq_037"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${p_{h}}$]]></tex-math></alternatives></inline-formula> while <inline-formula id="j_info1211_ineq_038"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{u}_{b}}$]]></tex-math></alternatives></inline-formula> is the bubble value. The basis functions are defined by 
<disp-formula id="j_info1211_eq_013">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2em"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2em"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2em"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mn>27</mml:mn>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∏</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:munderover>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\phi _{1}}(\boldsymbol{x})=1-x-y,\hspace{2em}{\phi _{2}}(\boldsymbol{x})=x,\hspace{2em}{\phi _{3}}(\boldsymbol{x})=y,\hspace{2em}{\phi _{b}}(\boldsymbol{x})=27{\prod \limits_{i=1}^{3}}{\phi _{i}}(\boldsymbol{x})\]]]></tex-math></alternatives>
</disp-formula> 
in 2D, and 
<disp-formula id="j_info1211_eq_014">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">z</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2em"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2em"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">z</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2em"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mn>256</mml:mn>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∏</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:munderover>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{l}\displaystyle {\phi _{1}}(\boldsymbol{x})=1-x-y-z,\hspace{2em}{\phi _{2}}(\boldsymbol{x})=x,\hspace{2em}{\phi _{3}}(\boldsymbol{x})=y,\\ {} \displaystyle {\phi _{4}}(\boldsymbol{x})=z,\hspace{2em}{\phi _{b}}(\boldsymbol{x})=256{\prod \limits_{i=1}^{4}}{\phi _{i}}(\boldsymbol{x})\end{array}\]]]></tex-math></alternatives>
</disp-formula> 
in 3D.</p>
<p>To construct the coefficient matrices, a number of integrals involving powers of the basis functions will be computed. Integrals over a triangle <italic>T</italic> can be evaluated directly by the following formulas <disp-formula-group id="j_info1211_dg_004">
<disp-formula id="j_info1211_eq_015">
<label>(3.3)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msub>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∫</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">|</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>!</mml:mo>
<mml:mspace width="0.1667em"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>!</mml:mo>
<mml:mspace width="0.1667em"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>!</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>!</mml:mo>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\int _{T}}{\phi _{1}^{{\alpha _{1}}}}{\phi _{2}^{{\alpha _{2}}}}{\phi _{3}^{{\alpha _{3}}}}\mathrm{d}\boldsymbol{x}=2|T|\frac{{\alpha _{1}}!\hspace{0.1667em}{\alpha _{2}}!\hspace{0.1667em}{\alpha _{3}}!}{({\alpha _{1}}+{\alpha _{2}}+{\alpha _{3}}+2)!},\]]]></tex-math></alternatives>
</disp-formula>
<disp-formula id="j_info1211_eq_016">
<label>(3.4)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msub>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∫</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>6</mml:mn>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">|</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>!</mml:mo>
<mml:mspace width="0.1667em"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>!</mml:mo>
<mml:mspace width="0.1667em"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>!</mml:mo>
<mml:mspace width="0.1667em"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="-0.1667em"/>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>!</mml:mo>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\int _{T}}{\phi _{1}^{{\alpha _{1}}}}{\phi _{2}^{{\alpha _{2}}}}{\phi _{3}^{{\alpha _{3}}}}{\phi _{4}^{{\alpha _{4}}}}\mathrm{d}\boldsymbol{x}=6|T|\frac{{\alpha _{1}}!\hspace{0.1667em}{\alpha _{2}}!\hspace{0.1667em}{\alpha _{3}}!\hspace{0.1667em}{\alpha _{4}}\hspace{-0.1667em}}{({\alpha _{1}}+{\alpha _{2}}+{\alpha _{3}}+{\alpha _{4}}+3)!},\]]]></tex-math></alternatives>
</disp-formula>
</disp-formula-group> where <inline-formula id="j_info1211_ineq_039"><alternatives><mml:math>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">|</mml:mo></mml:math><tex-math><![CDATA[$|T|$]]></tex-math></alternatives></inline-formula> stands for the triangle area (in 2D), or the tetrahedron volume (in 3D). A useful property for the basis functions is 
<disp-formula id="j_info1211_eq_017">
<label>(3.5)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:munderover>
<mml:mo>∇</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\sum \limits_{i=1}^{d+1}}\nabla {\phi _{i}}=0.\]]]></tex-math></alternatives>
</disp-formula>
</p>
</sec>
<sec id="j_info1211_s_005">
<label>3.2</label>
<title>Algebraic Formulation</title>
<p>We use the following notations for the discrete velocity/pressure nodal values 
<disp-formula id="j_info1211_eq_018">
<label>(3.6)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable equalrows="false" equalcolumns="false" columnalign="center">
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2em"/>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable equalrows="false" equalcolumns="false" columnalign="center">
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\bar{u}_{i}}=\left[\substack{{u_{i}}\\ {} {u_{ib}}}\right],\hspace{2em}{\bar{f}_{i}}=\left[\substack{{f_{i}}\\ {} {f_{ib}}}\right],\hspace{1em}i=1,\dots ,d.\]]]></tex-math></alternatives>
</disp-formula> 
Systems (<xref rid="j_info1211_eq_010">3.1</xref>)–(<xref rid="j_info1211_eq_011">3.2</xref>) lead to the following algebraic form, using notations (<xref rid="j_info1211_eq_018">3.6</xref>) 
<disp-formula id="j_info1211_eq_019">
<label>(3.7)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable columnspacing="4.0pt 4.0pt" equalrows="false" columnlines="none none" equalcolumns="false" columnalign="center center center">
<mml:mtr>
<mml:mtd class="array">
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable equalrows="false" equalcolumns="false" columnalign="center">
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="normal">p</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable equalrows="false" equalcolumns="false" columnalign="center">
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \left[\begin{array}{c@{\hskip4.0pt}c@{\hskip4.0pt}c}\bar{A}\hspace{1em}& 0\hspace{1em}& -{\bar{B}_{1}^{\top }}\\ {} 0\hspace{1em}& \bar{A}\hspace{1em}& -{\bar{B}_{2}^{\top }}\\ {} -{\bar{B}_{1}}\hspace{1em}& -{\bar{B}_{2}}\hspace{1em}& 0\end{array}\right]\left[\substack{{\bar{u}_{1}}\\ {} {\bar{u}_{2}}\\ {} \mathrm{p}}\right]=\left[\substack{{\bar{f}_{1}}\\ {} {\bar{f}_{2}}\\ {} 0}\right]\]]]></tex-math></alternatives>
</disp-formula> 
in 2D, or 
<disp-formula id="j_info1211_eq_020">
<label>(3.8)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable columnspacing="4.0pt 4.0pt 4.0pt" equalrows="false" columnlines="none none none" equalcolumns="false" columnalign="center center center center">
<mml:mtr>
<mml:mtd class="array">
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable equalrows="false" equalcolumns="false" columnalign="center">
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable equalrows="false" equalcolumns="false" columnalign="center">
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \left[\begin{array}{c@{\hskip4.0pt}c@{\hskip4.0pt}c@{\hskip4.0pt}c}\bar{A}\hspace{1em}& 0\hspace{1em}& 0\hspace{1em}& -{\bar{B}_{1}^{\top }}\\ {} 0\hspace{1em}& \bar{A}\hspace{1em}& 0\hspace{1em}& -{\bar{B}_{2}^{\top }}\\ {} 0\hspace{1em}& 0\hspace{1em}& \bar{A}\hspace{1em}& -{\bar{B}_{3}^{\top }}\\ {} -{\bar{B}_{1}}\hspace{1em}& -{\bar{B}_{2}}\hspace{1em}& -{\bar{B}_{3}}\hspace{1em}& 0\end{array}\right]\left[\substack{{\bar{u}_{1}}\\ {} {\bar{u}_{2}}\\ {} {\bar{u}_{3}}\\ {} p}\right]=\left[\substack{{\bar{f}_{1}}\\ {} {\bar{f}_{2}}\\ {} {\bar{f}_{3}}\\ {} 0}\right]\]]]></tex-math></alternatives>
</disp-formula> 
in 3D. In (<xref rid="j_info1211_eq_019">3.7</xref>) and (<xref rid="j_info1211_eq_020">3.8</xref>) <inline-formula id="j_info1211_ineq_040"><alternatives><mml:math><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
<mml:mo>=</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
<mml:mo>+</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover></mml:math><tex-math><![CDATA[$\bar{A}=\bar{M}+\bar{R}$]]></tex-math></alternatives></inline-formula>, with <inline-formula id="j_info1211_ineq_041"><alternatives><mml:math><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover></mml:math><tex-math><![CDATA[$\bar{M}$]]></tex-math></alternatives></inline-formula> as the mass matrix and <inline-formula id="j_info1211_ineq_042"><alternatives><mml:math><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover></mml:math><tex-math><![CDATA[$\bar{R}$]]></tex-math></alternatives></inline-formula> as the stiffness matrix. <inline-formula id="j_info1211_ineq_043"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\bar{B}_{i}}$]]></tex-math></alternatives></inline-formula> is the divergence submatrix associated with the <italic>i</italic>-th partial derivative, i.e. 
<disp-formula id="j_info1211_eq_021">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">≡</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">Ω</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\bar{B}_{i}}\equiv {({q_{h}},{\partial _{i}}{u_{ih}})_{\Omega }},\hspace{1em}i=1,\dots ,d.\]]]></tex-math></alternatives>
</disp-formula> 
To create the algebraic system (<xref rid="j_info1211_eq_019">3.7</xref>) or (<xref rid="j_info1211_eq_020">3.8</xref>), the discrete system (<xref rid="j_info1211_eq_010">3.1</xref>)–(<xref rid="j_info1211_eq_011">3.2</xref>) is evaluated over each triangle <italic>T</italic> to obtain the element matrices and vectors 
<disp-formula id="j_info1211_eq_022">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∫</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2em"/>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∫</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">ν</mml:mi>
<mml:mo>∇</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mo>∇</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∫</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∫</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2em"/>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∫</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">f</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{l}\displaystyle {\bar{M}_{ij}^{(T)}}={\int _{T}}\alpha {\phi _{i}}{\phi _{j}}\mathrm{d}x,\hspace{2em}{\bar{R}_{ij}^{(T)}}={\int _{T}}\nu \nabla {\phi _{i}}\cdot \nabla {\phi _{j}}\mathrm{d}x,\\ {} \displaystyle {\bar{B}_{ij}^{(T)}}={\int _{T}}{\partial _{1}}{\phi _{i}}{\phi _{j}}\mathrm{d}x+{\int _{T}}{\partial _{2}}{\phi _{i}}{\phi _{j}}\mathrm{d}x,\hspace{2em}{\bar{f}_{i}^{(T)}}={\int _{T}}f{\phi _{i}}\mathrm{d}x.\end{array}\]]]></tex-math></alternatives>
</disp-formula> 
Then assembling operations consist of direct-summing the element matrices over the triangulation <inline-formula id="j_info1211_ineq_044"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathcal{T}_{h}}$]]></tex-math></alternatives></inline-formula> to obtain the global matrices <inline-formula id="j_info1211_ineq_045"><alternatives><mml:math><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\bar{M}=({\bar{M}_{ij}})$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1211_ineq_046"><alternatives><mml:math><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\bar{R}=({\bar{R}_{ij}})$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1211_ineq_047"><alternatives><mml:math><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\bar{B}=({\bar{B}_{ij}})$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1211_ineq_048"><alternatives><mml:math><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\bar{f}=({\bar{f}_{i}})$]]></tex-math></alternatives></inline-formula> 
<disp-formula id="j_info1211_eq_023">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:munder>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munder>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2em"/>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:munder>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munder>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:munder>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munder>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2em"/>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:munder>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munder>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{l}\displaystyle {\bar{M}_{ij}}=\sum \limits_{T\in {\mathcal{T}_{h}}}{\bar{M}_{ij}^{(T)}},\hspace{2em}{\bar{R}_{ij}}=\sum \limits_{T\in {\mathcal{T}_{h}}}{\bar{R}_{ij}^{(T)}},\\ {} \displaystyle {\bar{B}_{ij}}=\sum \limits_{T\in {\mathcal{T}_{h}}}{\bar{B}_{ij}^{(T)}},\hspace{2em}{\bar{f}_{i}}=\sum \limits_{T\in {\mathcal{T}_{h}}}{\bar{f}_{i}^{(T)}}.\end{array}\]]]></tex-math></alternatives>
</disp-formula> 
In the next sections we detail the element matrices <inline-formula id="j_info1211_ineq_049"><alternatives><mml:math><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover></mml:math><tex-math><![CDATA[$\bar{M}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1211_ineq_050"><alternatives><mml:math><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover></mml:math><tex-math><![CDATA[$\bar{R}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1211_ineq_051"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\bar{B}_{i}}$]]></tex-math></alternatives></inline-formula> and the right-hand side <inline-formula id="j_info1211_ineq_052"><alternatives><mml:math><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover></mml:math><tex-math><![CDATA[$\bar{f}$]]></tex-math></alternatives></inline-formula>.</p>
</sec>
</sec>
<sec id="j_info1211_s_006">
<label>4</label>
<title>Element Matrices</title>
<p>For <inline-formula id="j_info1211_ineq_053"><alternatives><mml:math>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$P1$]]></tex-math></alternatives></inline-formula> finite element, we need only the element area and the gradient of the basis functions for the element matrices and vectors. To derive vectorized MATLAB codes, we need analytical expressions for <italic>all</italic> element matrices and vectors. This section is devoted to this task. For the sake of the presentation we drop the <inline-formula id="j_info1211_ineq_054"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(T)$]]></tex-math></alternatives></inline-formula>-superscript introduced in the previous section to distinguish element matrices from global ones.</p>
<sec id="j_info1211_s_007">
<label>4.1</label>
<title>Two-Dimensional Case</title>
<p>For a triangle <italic>T</italic>, let <inline-formula id="j_info1211_ineq_055"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo fence="true" stretchy="false">}</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\{({x_{i}},{y_{i}})\}_{i=1,2,3}}$]]></tex-math></alternatives></inline-formula> be the vertices and <inline-formula id="j_info1211_ineq_056"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mi mathvariant="italic">ϕ</mml:mi>
<mml:mo fence="true" stretchy="false">}</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\{\phi \}_{i=1,2,3}}$]]></tex-math></alternatives></inline-formula> the corresponding basis functions. The gradient of <inline-formula id="j_info1211_ineq_057"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\phi _{i}}$]]></tex-math></alternatives></inline-formula> is given by 
<disp-formula id="j_info1211_eq_024">
<label>(4.1)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable equalrows="false" equalcolumns="false" columnalign="center">
<mml:mtr>
<mml:mtd class="array">
<mml:mo>∇</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mo>∇</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mo>∇</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable columnspacing="4.0pt 4.0pt" equalrows="false" columnlines="none none" equalcolumns="false" columnalign="center center center">
<mml:mtr>
<mml:mtd class="array">
<mml:mn>1</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>1</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable columnspacing="4.0pt" equalrows="false" columnlines="none" equalcolumns="false" columnalign="center center">
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mn>1</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable columnspacing="4.0pt" equalrows="false" columnlines="none" equalcolumns="false" columnalign="center center">
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \left[\substack{\nabla {\phi _{1}^{t}}\\ {} \nabla {\phi _{2}^{t}}\\ {} \nabla {\phi _{3}^{t}}}\right]={\left[\begin{array}{c@{\hskip4.0pt}c@{\hskip4.0pt}c}1\hspace{1em}& 1\hspace{1em}& 1\\ {} {x_{1}}\hspace{1em}& {x_{2}}\hspace{1em}& {x_{3}}\\ {} {y_{1}}\hspace{1em}& {y_{2}}\hspace{1em}& {y_{3}}\end{array}\right]^{-1}}\left[\begin{array}{c@{\hskip4.0pt}c}0\hspace{1em}& 0\\ {} 1\hspace{1em}& 0\\ {} 0\hspace{1em}& 1\end{array}\right]=\frac{1}{2|T|}\left[\begin{array}{c@{\hskip4.0pt}c}{y_{2}}-{y_{3}}\hspace{1em}& {x_{3}}-{x_{2}}\\ {} {y_{3}}-{y_{1}}\hspace{1em}& {x_{1}}-{x_{3}}\\ {} {y_{1}}-{y_{2}}\hspace{1em}& {x_{2}}-{x_{1}}\end{array}\right],\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_info1211_ineq_058"><alternatives><mml:math>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">|</mml:mo></mml:math><tex-math><![CDATA[$|T|$]]></tex-math></alternatives></inline-formula> is the area of <italic>T</italic> given by 
<disp-formula id="j_info1211_eq_025">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mn>2</mml:mn>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="normal">det</mml:mi>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable columnspacing="4.0pt" equalrows="false" columnlines="none" equalcolumns="false" columnalign="center center">
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ 2|T|=\mathrm{det}\left[\begin{array}{c@{\hskip4.0pt}c}{x_{2}}-{x_{1}}\hspace{1em}& {x_{3}}-{x_{1}}\\ {} {y_{2}}-{y_{1}}\hspace{1em}& {y_{3}}-{y_{1}}\end{array}\right]=({x_{2}}-{x_{1}})({y_{3}}-{y_{1}})-({x_{3}}-{x_{1}})({y_{2}}-{y_{1}}).\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>A nonbubble entry of the element stiffness matrix <inline-formula id="j_info1211_ineq_059"><alternatives><mml:math><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover></mml:math><tex-math><![CDATA[$\bar{R}$]]></tex-math></alternatives></inline-formula> is given by 
<disp-formula id="j_info1211_eq_026">
<label>(4.2)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∫</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">ν</mml:mi>
<mml:mo>∇</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mo>∇</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">ν</mml:mi>
<mml:mo>∇</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mo>∇</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\bar{R}_{ij}}={\int _{T}}\nu \nabla {\phi _{i}}\cdot \nabla {\phi _{j}}\mathrm{d}x=|T|\nu \nabla {\phi _{i}}\cdot \nabla {\phi _{j}},\hspace{1em}i,j=1,2,3.\]]]></tex-math></alternatives>
</disp-formula> 
For the bubble entries <inline-formula id="j_info1211_ineq_060"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\bar{R}_{bj}}$]]></tex-math></alternatives></inline-formula>, for <inline-formula id="j_info1211_ineq_061"><alternatives><mml:math>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>3</mml:mn></mml:math><tex-math><![CDATA[$j=1,2,3$]]></tex-math></alternatives></inline-formula>. A straightforward calculation yields to (using (<xref rid="j_info1211_eq_017">3.5</xref>)) 
<disp-formula id="j_info1211_eq_027">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>9</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:munderover>
<mml:mo>∇</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\bar{R}_{bj}}=\frac{9}{4}|T|{\sum \limits_{i=1}^{3}}\nabla {\phi _{i}}=0,\hspace{1em}j=1,2,3.\]]]></tex-math></alternatives>
</disp-formula> 
For the diagonal entry corresponding to the bubble (i.e. <inline-formula id="j_info1211_ineq_062"><alternatives><mml:math>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi></mml:math><tex-math><![CDATA[$i=j=b$]]></tex-math></alternatives></inline-formula>) we have 
<disp-formula id="j_info1211_eq_028">
<label>(4.3)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
</mml:mtd>
<mml:mtd class="align-even">
<mml:mi mathvariant="italic">ν</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∫</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mn>27</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>∇</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>·</mml:mo>
<mml:mo>∇</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mo>=</mml:mo>
</mml:mtd>
<mml:mtd class="align-even">
<mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>81</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mi mathvariant="italic">ν</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mfenced separators="" open="(" close=")">
<mml:mrow>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo>∇</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">|</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo>∇</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">|</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo>∇</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">|</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mo>∇</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>∇</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mo>∇</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>∇</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mo>∇</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>∇</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mo>=</mml:mo>
</mml:mtd>
<mml:mtd class="align-even">
<mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>81</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mi mathvariant="italic">ν</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mfenced separators="" open="(" close=")">
<mml:mrow>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo>∇</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">|</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo>∇</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">|</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mo>∇</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mo>∇</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:mo>:</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ω</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}{\bar{R}_{bb}}=& \nu {\int _{T}}{27^{2}}\nabla ({\phi _{1}}{\phi _{2}}{\phi _{3}})\cdot \nabla ({\phi _{1}}{\phi _{2}}{\phi _{3}})\mathrm{d}x\\ {} =& \frac{81}{10}\nu |T|\left(|\nabla {\phi _{1}}{|^{2}}+|\nabla {\phi _{2}}{|^{2}}+|\nabla {\phi _{3}}{|^{2}}+\nabla {\phi _{1}}\nabla {\phi _{2}}+\nabla {\phi _{1}}\nabla {\phi _{3}}+\nabla {\phi _{2}}\nabla {\phi _{3}}\right)\\ {} =& \frac{81}{10}\nu |T|\left(|\nabla {\phi _{1}}{|^{2}}+|\nabla {\phi _{2}}{|^{2}}+\nabla {\phi _{1}}\cdot \nabla {\phi _{2}}\right)=:{\omega _{R}},\end{aligned}\]]]></tex-math></alternatives>
</disp-formula> 
using (<xref rid="j_info1211_eq_017">3.5</xref>).</p>
<p>With the above results, the element stiffness matrix is therefore 
<disp-formula id="j_info1211_eq_029">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="(" close=")">
<mml:mrow>
<mml:mtable columnspacing="4.0pt" equalrows="false" columnlines="none" equalcolumns="false" columnalign="center center">
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">R</mml:mi>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ω</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \bar{R}=\left(\begin{array}{c@{\hskip4.0pt}c}R\hspace{1em}& 0\\ {} 0\hspace{1em}& {\omega _{R}}\end{array}\right).\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>As for the stiffness matrix, we set <inline-formula id="j_info1211_ineq_063"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$M={({\bar{M}_{ij}})_{i,j=1,\dots ,3}}$]]></tex-math></alternatives></inline-formula> as the nonbubble part of the mass matrix. A direct calculation yields 
<disp-formula id="j_info1211_eq_030">
<label>(4.4)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="{" close="">
<mml:mrow>
<mml:mtable columnspacing="4.0pt" equalrows="false" columnlines="none" equalcolumns="false" columnalign="left left">
<mml:mtr>
<mml:mtd class="array">
<mml:mstyle displaystyle="false">
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>6</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>if</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mstyle displaystyle="false">
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>12</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>elsewhere</mml:mtext>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {M_{ij}}=\left\{\begin{array}{l@{\hskip4.0pt}l}\frac{\alpha }{6}|T|\hspace{1em}& \text{if}\hspace{2.5pt}i=j,\\ {} \frac{\alpha }{12}|T|\hspace{1em}& \text{elsewhere}.\end{array}\right.\]]]></tex-math></alternatives>
</disp-formula> 
The bubble part of the mass matrix is given by 
<disp-formula id="j_info1211_eq_031">
<label>(4.5)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
</mml:mtd>
<mml:mtd class="align-even">
<mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>20</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
</mml:mtd>
<mml:mtd class="align-even">
<mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>81</mml:mn>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>280</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo>:</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ω</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}{\bar{M}_{bj}}=& \frac{3\alpha }{20}|T|,\hspace{1em}j=1,2,3,\\ {} {\bar{M}_{bb}}=& \frac{81\alpha }{280}|T|=:{\omega _{M}}.\end{aligned}\]]]></tex-math></alternatives>
</disp-formula> 
The element mass matrix is therefore 
<disp-formula id="j_info1211_eq_032">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="(" close=")">
<mml:mrow>
<mml:mtable columnspacing="4.0pt" equalrows="false" columnlines="none" equalcolumns="false" columnalign="center center">
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ω</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \bar{M}=\left(\begin{array}{c@{\hskip4.0pt}c}M\hspace{1em}& z\\ {} {z^{\top }}\hspace{1em}& {\omega _{M}}\end{array}\right),\]]]></tex-math></alternatives>
</disp-formula> 
where 
<disp-formula id="j_info1211_eq_033">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>20</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mfenced separators="" open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mspace width="2.5pt"/>
<mml:mn>1</mml:mn>
<mml:mspace width="2.5pt"/>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {z^{\top }}=\frac{3}{20}\alpha |T|\left(1\hspace{2.5pt}1\hspace{2.5pt}1\right).\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>Finally, the element stiffness/mass matrix <inline-formula id="j_info1211_ineq_064"><alternatives><mml:math><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover></mml:math><tex-math><![CDATA[$\bar{A}$]]></tex-math></alternatives></inline-formula> is 
<disp-formula id="j_info1211_eq_034">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="(" close=")">
<mml:mrow>
<mml:mtable columnspacing="4.0pt" equalrows="false" columnlines="none" equalcolumns="false" columnalign="center center">
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">A</mml:mi>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mi mathvariant="italic">ω</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \bar{A}=\left(\begin{array}{c@{\hskip4.0pt}c}A\hspace{1em}& z\\ {} {z^{\top }}\hspace{1em}& \omega \end{array}\right),\]]]></tex-math></alternatives>
</disp-formula> 
where we have set <inline-formula id="j_info1211_ineq_065"><alternatives><mml:math>
<mml:mi mathvariant="italic">A</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi></mml:math><tex-math><![CDATA[$A=R+M$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1211_ineq_066"><alternatives><mml:math>
<mml:mi mathvariant="italic">ω</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ω</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ω</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\omega ={\omega _{R}}+{\omega _{M}}$]]></tex-math></alternatives></inline-formula>.</p>
<p>A direct integration yields the element divergence matrix <inline-formula id="j_info1211_ineq_067"><alternatives><mml:math>
<mml:mo>−</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
<mml:mo>=</mml:mo>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="2.5pt"/>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[$-\bar{B}=[-{\bar{B}_{1}}\hspace{2.5pt}-{\bar{B}_{2}}]$]]></tex-math></alternatives></inline-formula>, where <inline-formula id="j_info1211_ineq_068"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mspace width="2.5pt"/>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[${\bar{B}_{i}}=[{B_{i}}\hspace{2.5pt}-{B_{ib}}]$]]></tex-math></alternatives></inline-formula> with 
<disp-formula id="j_info1211_eq_035">
<label>(4.6)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable columnspacing="4.0pt 4.0pt" equalrows="false" columnlines="none none" equalcolumns="false" columnalign="center center center">
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {B_{i}}=\frac{|T|}{3}\left[\begin{array}{c@{\hskip4.0pt}c@{\hskip4.0pt}c}{\partial _{i}}{\phi _{1}}\hspace{1em}& {\partial _{i}}{\phi _{2}}\hspace{1em}& {\partial _{i}}{\phi _{3}}\\ {} {\partial _{i}}{\phi _{1}}\hspace{1em}& {\partial _{i}}{\phi _{2}}\hspace{1em}& {\partial _{i}}{\phi _{3}}\\ {} {\partial _{i}}{\phi _{1}}\hspace{1em}& {\partial _{i}}{\phi _{2}}\hspace{1em}& {\partial _{i}}{\phi _{3}}\end{array}\right],\hspace{1em}i=1,2,\]]]></tex-math></alternatives>
</disp-formula> 
and 
<disp-formula id="j_info1211_eq_036">
<label>(4.7)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>9</mml:mn>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>20</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable equalrows="false" equalcolumns="false" columnalign="center">
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {B_{ib}}=\frac{9|T|}{20}\left[\substack{{\partial _{i}}{\phi _{1}}\\ {} {\partial _{i}}{\phi _{2}}\\ {} {\partial _{i}}{\phi _{3}}}\right],\hspace{1em}i=1,2.\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>The contribution of the right-hand side component <inline-formula id="j_info1211_ineq_069"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${f_{i}}$]]></tex-math></alternatives></inline-formula>, in nonbubble terms, is given by 
<disp-formula id="j_info1211_eq_037">
<label>(4.8)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {f_{i}^{(T)}}=\frac{|T|}{3}{f_{iT}},\hspace{1em}i=1,2,3,\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_info1211_ineq_070"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${f_{iT}}$]]></tex-math></alternatives></inline-formula> is a mean value of <inline-formula id="j_info1211_ineq_071"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${f_{i}}$]]></tex-math></alternatives></inline-formula> on <italic>T</italic>. The bubble terms of the right-hand side are 
<disp-formula id="j_info1211_eq_038">
<label>(4.9)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∫</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>9</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>20</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {f_{ib}^{(T)}}={\int _{T}}{f_{i}}{\phi _{b}}\mathrm{d}x=\frac{9}{20}|T|{f_{iT}},\hspace{1em}i=1,2.\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>With the above element matrices and vectors the <inline-formula id="j_info1211_ineq_072"><alternatives><mml:math>
<mml:mn>11</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>11</mml:mn></mml:math><tex-math><![CDATA[$11\times 11$]]></tex-math></alternatives></inline-formula> element system corresponding to (<xref rid="j_info1211_eq_019">3.7</xref>) is 
<disp-formula id="j_info1211_eq_039">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable columnspacing="4.0pt 4.0pt 4.0pt 4.0pt" equalrows="false" columnlines="none none none none" equalcolumns="false" columnalign="center center center center center">
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">A</mml:mi>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mi mathvariant="italic">z</mml:mi>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mi mathvariant="italic">ω</mml:mi>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mi mathvariant="italic">A</mml:mi>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mi mathvariant="italic">z</mml:mi>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mi mathvariant="italic">ω</mml:mi>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable equalrows="false" equalcolumns="false" columnalign="center">
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable equalrows="false" equalcolumns="false" columnalign="center">
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \left[\begin{array}{c@{\hskip4.0pt}c@{\hskip4.0pt}c@{\hskip4.0pt}c@{\hskip4.0pt}c}A\hspace{1em}& z\hspace{1em}& 0\hspace{1em}& 0\hspace{1em}& -{B_{1}^{\top }}\\ {} {z^{\top }}\hspace{1em}& \omega \hspace{1em}& 0\hspace{1em}& 0\hspace{1em}& {B_{1b}^{\top }}\\ {} 0\hspace{1em}& 0\hspace{1em}& A\hspace{1em}& z\hspace{1em}& -{B_{2}^{\top }}\\ {} 0\hspace{1em}& 0\hspace{1em}& {z^{\top }}\hspace{1em}& \omega \hspace{1em}& {B_{2b}^{\top }}\\ {} -{B_{1}}\hspace{1em}& {B_{1b}}\hspace{1em}& -{B_{2}}\hspace{1em}& {B_{2b}}\hspace{1em}& 0\end{array}\right]\left[\substack{{u_{1}}\\ {} {u_{1b}}\\ {} {u_{2}}\\ {} {u_{2b}}\\ {} p}\right]=\left[\substack{{f_{1}}\\ {} {f_{1b}}\\ {} {f_{2}}\\ {} {f_{2b}}\\ {} 0}\right].\]]]></tex-math></alternatives>
</disp-formula> 
To reveal diagonal blocks, the system above can be rearranged as follows 
<disp-formula id="j_info1211_eq_040">
<label>(4.10)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable columnspacing="4.0pt 4.0pt 4.0pt 4.0pt" equalrows="false" columnlines="none none none none" equalcolumns="false" columnalign="center center center center center">
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">A</mml:mi>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mi mathvariant="italic">z</mml:mi>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mi mathvariant="italic">A</mml:mi>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mi mathvariant="italic">z</mml:mi>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mi mathvariant="italic">ω</mml:mi>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mi mathvariant="italic">ω</mml:mi>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable equalrows="false" equalcolumns="false" columnalign="center">
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable equalrows="false" equalcolumns="false" columnalign="center">
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \left[\begin{array}{c@{\hskip4.0pt}c@{\hskip4.0pt}c@{\hskip4.0pt}c@{\hskip4.0pt}c}A\hspace{1em}& 0\hspace{1em}& z\hspace{1em}& 0\hspace{1em}& -{B_{1}^{\top }}\\ {} 0\hspace{1em}& A\hspace{1em}& 0\hspace{1em}& z\hspace{1em}& -{B_{2}^{\top }}\\ {} {z^{\top }}\hspace{1em}& 0\hspace{1em}& \omega \hspace{1em}& 0\hspace{1em}& {B_{1b}^{\top }}\\ {} 0\hspace{1em}& {z^{\top }}\hspace{1em}& 0\hspace{1em}& \omega \hspace{1em}& {B_{2b}^{\top }}\\ {} -{B_{1}}\hspace{1em}& -{B_{2}}\hspace{1em}& {B_{1b}}\hspace{1em}& {B_{2b}}\hspace{1em}& 0\end{array}\right]\left[\substack{{u_{1}}\\ {} {u_{2}}\\ {} {u_{1b}}\\ {} {u_{2b}}\\ {} p}\right]=\left[\substack{{f_{1}}\\ {} {f_{2}}\\ {} {f_{1b}}\\ {} {f_{2b}}\\ {} 0}\right].\]]]></tex-math></alternatives>
</disp-formula> 
We can now eliminate the bubble unknowns <inline-formula id="j_info1211_ineq_073"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${u_{1b}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1211_ineq_074"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${u_{2b}}$]]></tex-math></alternatives></inline-formula> since they correspond to diagonal blocks (the <italic>ω</italic> blocks). From (<xref rid="j_info1211_eq_040">4.10</xref>)<inline-formula id="j_info1211_ineq_075"><alternatives><mml:math>
<mml:msub>
<mml:mrow/>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${_{3}}$]]></tex-math></alternatives></inline-formula> and (<xref rid="j_info1211_eq_040">4.10</xref>)<inline-formula id="j_info1211_ineq_076"><alternatives><mml:math>
<mml:msub>
<mml:mrow/>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${_{4}}$]]></tex-math></alternatives></inline-formula>, we deduce that 
<disp-formula id="j_info1211_eq_041">
<label>(4.11)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mi mathvariant="italic">ω</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {u_{ib}}=({f_{ib}}-{B_{ib}^{\top }}p-{z^{\top }}{u_{i}})/\omega ,\hspace{1em}i=1,2.\]]]></tex-math></alternatives>
</disp-formula> 
Substituting (<xref rid="j_info1211_eq_041">4.11</xref>) into (<xref rid="j_info1211_eq_040">4.10</xref>)<inline-formula id="j_info1211_ineq_077"><alternatives><mml:math>
<mml:msub>
<mml:mrow/>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${_{1}}$]]></tex-math></alternatives></inline-formula>, (<xref rid="j_info1211_eq_040">4.10</xref>)<inline-formula id="j_info1211_ineq_078"><alternatives><mml:math>
<mml:msub>
<mml:mrow/>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${_{2}}$]]></tex-math></alternatives></inline-formula> and (<xref rid="j_info1211_eq_040">4.10</xref>)<inline-formula id="j_info1211_ineq_079"><alternatives><mml:math>
<mml:msub>
<mml:mrow/>
<mml:mrow>
<mml:mn>5</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${_{5}}$]]></tex-math></alternatives></inline-formula> we obtain a linear system in <inline-formula id="j_info1211_ineq_080"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="2.5pt"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${({u_{1}}\hspace{2.5pt}{u_{2}}\hspace{2.5pt}p)^{\top }}$]]></tex-math></alternatives></inline-formula> whose matrix is 
<disp-formula id="j_info1211_eq_042">
<label>(4.12)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable columnspacing="4.0pt 4.0pt" equalrows="false" columnlines="none none" equalcolumns="false" columnalign="center center center">
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">A</mml:mi>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ω</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="italic">z</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ω</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="italic">z</mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mi mathvariant="italic">A</mml:mi>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ω</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="italic">z</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ω</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="italic">z</mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ω</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ω</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ω</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \left[\begin{array}{c@{\hskip4.0pt}c@{\hskip4.0pt}c}A-{\omega ^{-1}}z{z^{\top }}\hspace{1em}& 0\hspace{1em}& -{B_{1}^{\top }}-{\omega ^{-1}}z{B_{1b}^{\top }}\\ {} 0\hspace{1em}& A-{\omega ^{-1}}z{z^{\top }}\hspace{1em}& -{B_{2}^{\top }}-{\omega ^{-1}}z{B_{2b}^{\top }}\\ {} -{B_{1}}-{\omega ^{-1}}{B_{1b}}{z^{\top }}\hspace{1em}& -{B_{2}}-{\omega ^{-1}}{B_{2b}}{z^{\top }}\hspace{1em}& -{\omega ^{-1}}({B_{1b}}{B_{1b}^{\top }}+{B_{2b}}{B_{2b}^{\top }})\end{array}\right]\]]]></tex-math></alternatives>
</disp-formula> 
and the right-hand side 
<disp-formula id="j_info1211_eq_043">
<label>(4.13)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable equalrows="false" equalcolumns="false" columnalign="center">
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ω</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="italic">z</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ω</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="italic">z</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ω</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \left[\substack{{f_{1}}-{\omega ^{-1}}z{f_{1b}}\\ {} {f_{2}}-{\omega ^{-1}}z{f_{2b}}\\ {} -{\omega ^{-1}}({B_{1b}}{f_{1b}}+{B_{2b}}{f_{2b}})}\right].\]]]></tex-math></alternatives>
</disp-formula>
</p>
</sec>
<sec id="j_info1211_s_008">
<label>4.2</label>
<title>Three-Dimensional Case</title>
<p>Let <inline-formula id="j_info1211_ineq_081"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo fence="true" stretchy="false">}</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\{{\boldsymbol{x}_{i}}=({x_{i}},{y_{i}},{z_{i}})\}_{i=1,\dots ,4}}$]]></tex-math></alternatives></inline-formula> be the vertices of a tetrahedron <italic>T</italic> and <inline-formula id="j_info1211_ineq_082"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo fence="true" stretchy="false">}</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\{{\phi _{i}}\}_{i=1,\dots ,4}}$]]></tex-math></alternatives></inline-formula> the corresponding basis functions. The gradient <inline-formula id="j_info1211_ineq_083"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mo>∇</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\nabla _{\boldsymbol{x}}}{\phi _{i}}$]]></tex-math></alternatives></inline-formula> over <italic>T</italic> are given by 
<disp-formula id="j_info1211_eq_044">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable equalrows="false" equalcolumns="false" columnalign="center">
<mml:mtr>
<mml:mtd class="array">
<mml:mo>∇</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mo>∇</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mo>∇</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mo>∇</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable columnspacing="4.0pt 4.0pt 4.0pt" equalrows="false" columnlines="none none none" equalcolumns="false" columnalign="center center center center">
<mml:mtr>
<mml:mtd class="array">
<mml:mn>1</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>1</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>1</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable columnspacing="4.0pt 4.0pt" equalrows="false" columnlines="none none" equalcolumns="false" columnalign="center center center">
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mn>1</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>1</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \left[\substack{\nabla {\phi _{1}^{\top }}\\ {} \nabla {\phi _{2}^{\top }}\\ {} \nabla {\phi _{3}^{\top }}\\ {} \nabla {\phi _{4}^{\top }}}\right]={\left[\begin{array}{c@{\hskip4.0pt}c@{\hskip4.0pt}c@{\hskip4.0pt}c}1\hspace{1em}& 1\hspace{1em}& 1\hspace{1em}& 1\\ {} {x_{1}}\hspace{1em}& {x_{2}}\hspace{1em}& {x_{3}}\hspace{1em}& {x_{4}}\\ {} {y_{1}}\hspace{1em}& {y_{2}}\hspace{1em}& {y_{3}}\hspace{1em}& {y_{4}}\\ {} {z_{1}}\hspace{1em}& {z_{2}}\hspace{1em}& {z_{3}}\hspace{1em}& {z_{4}}\end{array}\right]^{-1}}\left[\begin{array}{c@{\hskip4.0pt}c@{\hskip4.0pt}c}0\hspace{1em}& 0\hspace{1em}& 0\\ {} 1\hspace{1em}& 0\hspace{1em}& 0\\ {} 0\hspace{1em}& 1\hspace{1em}& 0\\ {} 0\hspace{1em}& 0\hspace{1em}& 1\end{array}\right].\]]]></tex-math></alternatives>
</disp-formula> 
An alternative formula for computing <inline-formula id="j_info1211_ineq_084"><alternatives><mml:math>
<mml:mo>∇</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\nabla {\phi _{i}}$]]></tex-math></alternatives></inline-formula> is 
<disp-formula id="j_info1211_eq_045">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mo>∇</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mo>∇</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold-italic">ξ</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold-italic">ξ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\nabla _{\boldsymbol{x}}}{\phi _{i}}={J^{-1}}{\nabla _{\boldsymbol{\xi }}}{\phi _{i}}(\boldsymbol{\xi }),\]]]></tex-math></alternatives>
</disp-formula> 
where <italic>J</italic> is the Jacobean matrix of the mapping <inline-formula id="j_info1211_ineq_085"><alternatives><mml:math>
<mml:mi mathvariant="bold-italic">ξ</mml:mi>
<mml:mo stretchy="false">↦</mml:mo>
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold-italic">ξ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\boldsymbol{\xi }\mapsto \boldsymbol{x}(\boldsymbol{\xi })$]]></tex-math></alternatives></inline-formula>, that is, 
<disp-formula id="j_info1211_eq_046">
<label>(4.14)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">J</mml:mi>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable columnspacing="4.0pt 4.0pt" equalrows="false" columnlines="none none" equalcolumns="false" columnalign="center center center">
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ J=\left[\begin{array}{c@{\hskip4.0pt}c@{\hskip4.0pt}c}{x_{2}}-{x_{1}}\hspace{1em}& {y_{2}}-{y_{1}}\hspace{1em}& {z_{2}}-{z_{1}}\\ {} {x_{3}}-{x_{1}}\hspace{1em}& {y_{3}}-{y_{1}}\hspace{1em}& {z_{3}}-{z_{1}}\\ {} {x_{4}}-{x_{1}}\hspace{1em}& {y_{4}}-{y_{1}}\hspace{1em}& {z_{4}}-{z_{1}}\end{array}\right].\]]]></tex-math></alternatives>
</disp-formula> 
The volume of tetrahedron <italic>T</italic> is given, from (<xref rid="j_info1211_eq_046">4.14</xref>), by <inline-formula id="j_info1211_ineq_086"><alternatives><mml:math>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="normal">det</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">J</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>6</mml:mn></mml:math><tex-math><![CDATA[$|T|=\mathrm{det}(J)/6$]]></tex-math></alternatives></inline-formula>.</p>
<p>As for 2D case, the nonbubble entries of the element stiffness matrix are given by 
<disp-formula id="j_info1211_eq_047">
<label>(4.15)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>9</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:munderover>
<mml:mo>∇</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\bar{R}_{bj}}=\frac{9}{4}|T|{\sum \limits_{i=1}^{3}}\nabla {\phi _{i}}=0,\hspace{1em}j=1,2,3,4,\]]]></tex-math></alternatives>
</disp-formula> 
while <inline-formula id="j_info1211_ineq_087"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn></mml:math><tex-math><![CDATA[${\bar{R}_{bj}}=0$]]></tex-math></alternatives></inline-formula>, for all <inline-formula id="j_info1211_ineq_088"><alternatives><mml:math>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>4</mml:mn></mml:math><tex-math><![CDATA[$j=1,\dots ,4$]]></tex-math></alternatives></inline-formula>. For the diagonal entry, using (<xref rid="j_info1211_eq_016">3.4</xref>)–(<xref rid="j_info1211_eq_017">3.5</xref>), we obtain 
<disp-formula id="j_info1211_eq_048">
<label>(4.16)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
</mml:mtd>
<mml:mtd class="align-even">
<mml:mi mathvariant="italic">ν</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∫</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mn>256</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>∇</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>·</mml:mo>
<mml:mo>∇</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mo>=</mml:mo>
</mml:mtd>
<mml:mtd class="align-even">
<mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>8192</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>845</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mi mathvariant="italic">ν</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi>ℓ</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:munderover>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo>∇</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>ℓ</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">|</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mo>∇</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mo>∇</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mo>∇</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mo>∇</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mo>∇</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mo>∇</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mo>=</mml:mo>
<mml:mo>:</mml:mo>
</mml:mtd>
<mml:mtd class="align-even">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ω</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}{\bar{R}_{bb}}=& \nu {\int _{T}}{256^{2}}\nabla ({\phi _{1}}{\phi _{2}}{\phi _{3}}{\phi _{4}})\cdot \nabla ({\phi _{1}}{\phi _{2}}{\phi _{3}}{\phi _{4}})\mathrm{d}x\\ {} =& \frac{8192}{845}\nu |T|\left[{\sum \limits_{\ell =1}^{3}}|\nabla {\phi _{\ell }}{|^{2}}+\nabla {\phi _{1}}\cdot \nabla {\phi _{2}}+\nabla {\phi _{1}}\cdot \nabla {\phi _{3}}+\nabla {\phi _{2}}\cdot \nabla {\phi _{3}}\right]\\ {} =:& {\omega _{R}}.\end{aligned}\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>For the 3D mass matrix, a straightforward calculation with a linear tetrahedron shows that (for nonbubble entries) 
<disp-formula id="j_info1211_eq_049">
<label>(4.17)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="{" close="">
<mml:mrow>
<mml:mtable columnspacing="4.0pt" equalrows="false" columnlines="none" equalcolumns="false" columnalign="left left">
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msub><mml:mstyle displaystyle="false">
<mml:mfrac>
<mml:mrow>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>if</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msub><mml:mstyle displaystyle="false">
<mml:mfrac>
<mml:mrow>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>20</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>if</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo stretchy="false">≠</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\bar{M}_{ij}}=\left\{\begin{array}{l@{\hskip4.0pt}l}{\alpha _{T}}\frac{|T|}{10}\hspace{1em}& \text{if}\hspace{2.5pt}i=j,\\ {} {\alpha _{T}}\frac{|T|}{20}\hspace{1em}& \text{if}\hspace{2.5pt}i\ne j,\end{array}\right.\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_info1211_ineq_089"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\alpha _{T}}$]]></tex-math></alternatives></inline-formula> is a mean value of <italic>α</italic> on <italic>T</italic>. The bubble part of the mass matrix is given by 
<disp-formula id="j_info1211_eq_050">
<label>(4.18)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
</mml:mtd>
<mml:mtd class="align-even">
<mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>8</mml:mn>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>105</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
</mml:mtd>
<mml:mtd class="align-even">
<mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>8192</mml:mn>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>51975</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo>:</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ω</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}{\bar{M}_{bj}}=& \frac{8\alpha }{105}|T|,\hspace{1em}j=1,2,3,\\ {} {\bar{M}_{bb}}=& \frac{8192\alpha }{51975}|T|=:{\omega _{M}}.\end{aligned}\]]]></tex-math></alternatives>
</disp-formula> 
The element mass matrix is therefore 
<disp-formula id="j_info1211_eq_051">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="(" close=")">
<mml:mrow>
<mml:mtable columnspacing="4.0pt" equalrows="false" columnlines="none" equalcolumns="false" columnalign="center center">
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ω</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \bar{M}=\left(\begin{array}{c@{\hskip4.0pt}c}M\hspace{1em}& z\\ {} {z^{\top }}\hspace{1em}& {\omega _{M}}\end{array}\right),\]]]></tex-math></alternatives>
</disp-formula> 
where 
<disp-formula id="j_info1211_eq_052">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>8</mml:mn>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>105</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mfenced separators="" open="(" close=")">
<mml:mrow>
<mml:mtable columnspacing="4.0pt 4.0pt 4.0pt" equalrows="false" columnlines="none none none" equalcolumns="false" columnalign="center center center center">
<mml:mtr>
<mml:mtd class="array">
<mml:mn>1</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>1</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>1</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {z^{\top }}=\frac{8\alpha }{105}|T|\left(\begin{array}{c@{\hskip4.0pt}c@{\hskip4.0pt}c@{\hskip4.0pt}c}1\hspace{1em}& 1\hspace{1em}& 1\hspace{1em}& 1\end{array}\right).\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>If we set <inline-formula id="j_info1211_ineq_090"><alternatives><mml:math>
<mml:mo>−</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
<mml:mo>=</mml:mo>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="2.5pt"/>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="2.5pt"/>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[$-\bar{B}=[-{\bar{B}_{1}}\hspace{2.5pt}-{\bar{B}_{2}}\hspace{2.5pt}-{\bar{B}_{3}}]$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1211_ineq_091"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mspace width="2.5pt"/>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[${\bar{B}_{i}}=[{B_{i}}\hspace{2.5pt}-{B_{ib}}]$]]></tex-math></alternatives></inline-formula>, a straightforward calculation yields to 
<disp-formula id="j_info1211_eq_053">
<label>(4.19)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable columnspacing="4.0pt 4.0pt 4.0pt" equalrows="false" columnlines="none none none" equalcolumns="false" columnalign="center center center center">
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {B_{i}}=\frac{|T|}{4}\left[\begin{array}{c@{\hskip4.0pt}c@{\hskip4.0pt}c@{\hskip4.0pt}c}{\partial _{i}}{\phi _{1}}\hspace{1em}& {\partial _{i}}{\phi _{2}}\hspace{1em}& {\partial _{i}}{\phi _{3}}\hspace{1em}& {\partial _{i}}{\phi _{4}}\\ {} {\partial _{i}}{\phi _{1}}\hspace{1em}& {\partial _{i}}{\phi _{2}}\hspace{1em}& {\partial _{i}}{\phi _{3}}\hspace{1em}& {\partial _{i}}{\phi _{4}}\\ {} {\partial _{i}}{\phi _{1}}\hspace{1em}& {\partial _{i}}{\phi _{2}}\hspace{1em}& {\partial _{i}}{\phi _{3}}\hspace{1em}& {\partial _{i}}{\phi _{4}}\\ {} {\partial _{i}}{\phi _{1}}\hspace{1em}& {\partial _{i}}{\phi _{2}}\hspace{1em}& {\partial _{i}}{\phi _{3}}\hspace{1em}& {\partial _{i}}{\phi _{4}}\end{array}\right],\hspace{1em}i=1,\dots ,4,\]]]></tex-math></alternatives>
</disp-formula> 
and 
<disp-formula id="j_info1211_eq_054">
<label>(4.20)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>32</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>105</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable equalrows="false" equalcolumns="false" columnalign="center">
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {B_{ib}}=\frac{32}{105}|T|\left[\substack{{\partial _{i}}{\phi _{1}},\\ {} {\partial _{i}}{\phi _{2}}\\ {} {\partial _{i}}{\phi _{3}}\\ {} {\partial _{i}}{\phi _{4}}}\right].\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>The contribution of the right-hand side component <inline-formula id="j_info1211_ineq_092"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${f_{i}}$]]></tex-math></alternatives></inline-formula>, in nonbubble terms, is given by 
<disp-formula id="j_info1211_eq_055">
<label>(4.21)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {f_{i}^{(T)}}=\frac{|T|}{4}{f_{iT}},\hspace{1em}i=1,2,3,4,\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_info1211_ineq_093"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${f_{iT}}$]]></tex-math></alternatives></inline-formula> is a mean value of <inline-formula id="j_info1211_ineq_094"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${f_{i}}$]]></tex-math></alternatives></inline-formula> on <italic>T</italic>. The bubble terms of the right-hand side are 
<disp-formula id="j_info1211_eq_056">
<label>(4.22)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∫</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>32</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>105</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {f_{ib}^{(T)}}={\int _{T}}{f_{i}}{\phi _{b}}\mathrm{d}x=\frac{32}{105}|T|{f_{iT}},\hspace{1em}i=1,2,3.\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>As in 2D, we rearrange the Stokes system and we get 
<disp-formula id="j_info1211_eq_057">
<label>(4.23)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" stretchy="true" mathvariant="normal">/</mml:mo>
<mml:mi mathvariant="italic">ω</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {u_{ib}}=\big({f_{ib}}-{B_{ib}^{\top }}p-{z^{\top }}{u_{i}}\big)\big/\omega ,\hspace{1em}i=1,\dots ,4.\]]]></tex-math></alternatives>
</disp-formula> 
Substituting (<xref rid="j_info1211_eq_057">4.23</xref>) into the rest of the system, we obtain a linear system whose matrix is 
<disp-formula id="j_info1211_eq_058">
<label>(4.24)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable columnspacing="4.0pt 4.0pt 4.0pt" equalrows="false" columnlines="none none none" equalcolumns="false" columnalign="center center center center">
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">A</mml:mi>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ω</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="italic">z</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ω</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="italic">z</mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mi mathvariant="italic">A</mml:mi>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ω</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="italic">z</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ω</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="italic">z</mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mi mathvariant="italic">A</mml:mi>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ω</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="italic">z</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ω</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="italic">z</mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ω</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ω</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ω</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ω</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msubsup>
<mml:mrow>
<mml:mo largeop="false" movablelimits="false">∑</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \left[\begin{array}{c@{\hskip4.0pt}c@{\hskip4.0pt}c@{\hskip4.0pt}c}A-{\omega ^{-1}}z{z^{\top }}\hspace{1em}& 0\hspace{1em}& 0\hspace{1em}& -{B_{1}^{\top }}-{\omega ^{-1}}z{B_{1b}^{\top }}\\ {} 0\hspace{1em}& A-{\omega ^{-1}}z{z^{\top }}\hspace{1em}& 0\hspace{1em}& -{B_{2}^{\top }}-{\omega ^{-1}}z{B_{2b}^{\top }}\\ {} 0\hspace{1em}& 0\hspace{1em}& A-{\omega ^{-1}}z{z^{\top }}\hspace{1em}& -{B_{3}^{\top }}-{\omega ^{-1}}z{B_{3b}^{\top }}\\ {} -{B_{1}}-{\omega ^{-1}}{B_{1b}}{z^{\top }}\hspace{1em}& -{B_{2}}-{\omega ^{-1}}{B_{2b}}{z^{\top }}\hspace{1em}& -{B_{3}}-{\omega ^{-1}}{B_{3b}}{z^{\top }}\hspace{1em}& -{\omega ^{-1}}{\textstyle\textstyle\sum _{i=1}^{3}}{B_{ib}}{B_{ib}^{\top }}\end{array}\right]\]]]></tex-math></alternatives>
</disp-formula> 
and the right-hand side 
<disp-formula id="j_info1211_eq_059">
<label>(4.25)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable equalrows="false" equalcolumns="false" columnalign="center">
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ω</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="italic">z</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ω</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="italic">z</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ω</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msubsup>
<mml:mrow>
<mml:mo largeop="false" movablelimits="false">∑</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \left[\substack{{f_{1}}-{\omega ^{-1}}z{f_{1b}}\\ {} {f_{2}}-{\omega ^{-1}}z{f_{2b}}\\ {} -{\omega ^{-1}}{\textstyle\textstyle\sum _{i=1}^{3}}{B_{ib}}{B_{ib}^{\top }}}\right].\]]]></tex-math></alternatives>
</disp-formula>
</p>
</sec>
</sec>
<sec id="j_info1211_s_009">
<label>5</label>
<title>Uzawa Conjugate Gradient Algorithm</title>
<p>We propose in this section a preconditioned conjugate gradient method for solving the Stokes system after the assembly of the element systems (<xref rid="j_info1211_eq_042">4.12</xref>)–(<xref rid="j_info1211_eq_043">4.13</xref>) and (<xref rid="j_info1211_eq_058">4.24</xref>)–(<xref rid="j_info1211_eq_059">4.25</xref>). For a finite element pair of the form <inline-formula id="j_info1211_ineq_095"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${P_{k+1}}/{P_{k}}$]]></tex-math></alternatives></inline-formula> (e.g. <inline-formula id="j_info1211_ineq_096"><alternatives><mml:math>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$P2/P1$]]></tex-math></alternatives></inline-formula> or <inline-formula id="j_info1211_ineq_097"><alternatives><mml:math>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$P1$]]></tex-math></alternatives></inline-formula>-iso-<inline-formula id="j_info1211_ineq_098"><alternatives><mml:math>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mn>2</mml:mn></mml:math><tex-math><![CDATA[$P2$]]></tex-math></alternatives></inline-formula>/<inline-formula id="j_info1211_ineq_099"><alternatives><mml:math>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$P1$]]></tex-math></alternatives></inline-formula>), the preconditioner advocated by Cahouet and Chabard (<xref ref-type="bibr" rid="j_info1211_ref_007">1988</xref>) (see also Fortin and Glowinski, <xref ref-type="bibr" rid="j_info1211_ref_009">1983</xref>; Glowinski, <xref ref-type="bibr" rid="j_info1211_ref_010">2003</xref>; Glowinski and Le Tallec, <xref ref-type="bibr" rid="j_info1211_ref_012">1989</xref>) is efficient and widely used. In the author’s knowledge, there is no equivalent preconditioner for the pair <inline-formula id="j_info1211_ineq_100"><alternatives><mml:math>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$P1$]]></tex-math></alternatives></inline-formula>-Bubble/<inline-formula id="j_info1211_ineq_101"><alternatives><mml:math>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$P1$]]></tex-math></alternatives></inline-formula> (or <inline-formula id="j_info1211_ineq_102"><alternatives><mml:math>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$P1/P1$]]></tex-math></alternatives></inline-formula> with stabilization). The algorithm presented in his section is therefore an original contribution.</p>
<p>The Stokes system can be rewritten in a compact form 
<disp-formula id="j_info1211_eq_060">
<label>(5.1)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable columnspacing="4.0pt" equalrows="false" columnlines="none" equalcolumns="false" columnalign="center center">
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mo>−</mml:mo>
<mml:mi mathvariant="normal">C</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable equalrows="false" equalcolumns="false" columnalign="center">
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="bold">u</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="normal">p</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable equalrows="false" equalcolumns="false" columnalign="center">
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="bold">f</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \left[\begin{array}{c@{\hskip4.0pt}c}\mathbf{A}\hspace{1em}& -{\mathbf{B}^{\top }}\\ {} -\mathbf{B}\hspace{1em}& -\mathrm{C}\end{array}\right]\left[\substack{\mathbf{u}\\ {} \mathrm{p}}\right]=\left[\substack{\mathbf{f}\\ {} {\mathrm{f}_{p}}}\right],\]]]></tex-math></alternatives>
</disp-formula> 
where <bold>A</bold> is (symmetric) positive definite block diagonal matrix, C is positive semi-definite matrix.</p>
<p>Let us introduce the generalized Lagrangian function 
<disp-formula id="j_info1211_eq_061">
<label>(5.2)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="script">L</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">p</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mo>−</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="normal">C</mml:mi>
<mml:mi mathvariant="normal">p</mml:mi>
<mml:mo>−</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="normal">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mi mathvariant="normal">p</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathcal{L}(\mathbf{u},\mathbf{p})=\frac{1}{2}{\mathbf{u}^{\top }}\mathbf{A}\mathbf{u}-{\mathbf{f}^{\top }}\mathbf{u}-{\mathrm{p}^{\top }}\mathbf{B}\mathbf{u}-\frac{1}{2}{\mathrm{p}^{\top }}\mathrm{C}\mathrm{p}-{\mathrm{f}_{p}^{\top }}\mathrm{p}.\]]]></tex-math></alternatives>
</disp-formula> 
Due to the properties of <bold>A</bold> and <bold>C</bold>, the saddle-point for (<xref rid="j_info1211_eq_061">5.2</xref>) exists. Then it follows that (<xref rid="j_info1211_eq_060">5.1</xref>) is the saddle-point equation for (<xref rid="j_info1211_eq_061">5.2</xref>), that is, (<xref rid="j_info1211_eq_060">5.1</xref>) characterizes the solution of the saddle-point problem 
<disp-formula id="j_info1211_eq_062">
<label>(5.3)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:munder>
<mml:mrow>
<mml:mo movablelimits="false">min</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">u</mml:mi>
</mml:mrow>
</mml:munder>
<mml:munder>
<mml:mrow>
<mml:mo movablelimits="false">max</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">p</mml:mi>
</mml:mrow>
</mml:munder>
<mml:mi mathvariant="script">L</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="normal">p</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:munder>
<mml:mrow>
<mml:mo movablelimits="false">max</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">p</mml:mi>
</mml:mrow>
</mml:munder>
<mml:munder>
<mml:mrow>
<mml:mo movablelimits="false">min</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">u</mml:mi>
</mml:mrow>
</mml:munder>
<mml:mi mathvariant="script">L</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="normal">p</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \underset{\mathbf{u}}{\min }\underset{\mathrm{p}}{\max }\mathcal{L}(\mathbf{u},\mathrm{p})=\underset{\mathrm{p}}{\max }\underset{\mathbf{u}}{\min }\mathcal{L}(\mathbf{u},\mathrm{p}).\]]]></tex-math></alternatives>
</disp-formula>
</p>
<sec id="j_info1211_s_010">
<label>5.1</label>
<title>Uzawa Conjuage Gradient Algoritm</title>
<p>To derive a dual (Uzawa) algorithm for (<xref rid="j_info1211_eq_060">5.1</xref>), we assume that <inline-formula id="j_info1211_ineq_103"><alternatives><mml:math>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="normal">p</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathbf{u}=\mathbf{u}(\mathrm{p})$]]></tex-math></alternatives></inline-formula> is the solution of Poisson equation 
<disp-formula id="j_info1211_eq_063">
<label>(5.4)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="bold">f</mml:mi>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="normal">p</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathbf{A}\mathbf{u}=\mathbf{f}+{\mathbf{B}^{\top }}\mathrm{p},\]]]></tex-math></alternatives>
</disp-formula> 
that is, in the decomposed useful form 
<disp-formula id="j_info1211_eq_064">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="normal">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mi mathvariant="normal">p</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\mathrm{A}_{i}}{\mathrm{u}_{i}}={\mathrm{f}_{i}}+{\mathrm{B}_{i}^{\top }}\mathrm{p},\hspace{1em}i=1,\dots ,d.\]]]></tex-math></alternatives>
</disp-formula> 
Then multiplying (<xref rid="j_info1211_eq_063">5.4</xref>) by <bold>u</bold> and substituting the result in (<xref rid="j_info1211_eq_061">5.2</xref>), we obtain 
<disp-formula id="j_info1211_eq_065">
<label>(5.5)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="script">L</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="normal">p</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="normal">p</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mo>−</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="normal">C</mml:mi>
<mml:mi mathvariant="normal">p</mml:mi>
<mml:mo>−</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="normal">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mi mathvariant="normal">p</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathcal{L}(\mathbf{u}(\mathrm{p}),\mathrm{p})=-\frac{1}{2}{\mathbf{u}^{\top }}\mathbf{A}\mathbf{u}-\frac{1}{2}{\mathrm{p}^{\top }}\mathrm{C}\mathrm{p}-{\mathrm{f}_{p}^{\top }}\mathrm{p}.\]]]></tex-math></alternatives>
</disp-formula> 
If we introduce the dual functional 
<disp-formula id="j_info1211_eq_066">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="normal">p</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:munder>
<mml:mrow>
<mml:mo movablelimits="false">min</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">u</mml:mi>
</mml:mrow>
</mml:munder>
<mml:mi mathvariant="script">L</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="normal">p</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="normal">p</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {J^{\ast }}(\mathrm{p})=-\underset{\mathbf{u}}{\min }\mathcal{L}(\mathbf{u}(\mathrm{p}),\mathrm{p})\]]]></tex-math></alternatives>
</disp-formula> 
with <inline-formula id="j_info1211_ineq_104"><alternatives><mml:math>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="normal">p</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathbf{u}(\mathrm{p})$]]></tex-math></alternatives></inline-formula> solution of (<xref rid="j_info1211_eq_063">5.4</xref>), the saddle-point problem (<xref rid="j_info1211_eq_062">5.3</xref>) becomes.</p>
<p>Find p such that 
<disp-formula id="j_info1211_eq_067">
<label>(5.6)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="normal">p</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>⩽</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="normal">q</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mo>∀</mml:mo>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {J^{\ast }}(\mathrm{p})\leqslant {J^{\ast }}(\mathrm{q}),\hspace{1em}\forall q.\]]]></tex-math></alternatives>
</disp-formula> 
From (<xref rid="j_info1211_eq_065">5.5</xref>), <inline-formula id="j_info1211_ineq_105"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${J^{\ast }}$]]></tex-math></alternatives></inline-formula> is quadratic and coercive. From (<xref rid="j_info1211_eq_063">5.4</xref>), we deduce that the mapping <inline-formula id="j_info1211_ineq_106"><alternatives><mml:math>
<mml:mi mathvariant="normal">p</mml:mi>
<mml:mo stretchy="false">↦</mml:mo>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="normal">p</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathrm{p}\mapsto \mathbf{u}(\mathrm{p})$]]></tex-math></alternatives></inline-formula> is linear and <inline-formula id="j_info1211_ineq_107"><alternatives><mml:math>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="normal">p</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="normal">p</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mi mathvariant="bold">w</mml:mi></mml:math><tex-math><![CDATA[$\mathbf{u}(\mathrm{p}+t\mathrm{d})=\mathbf{u}(\mathrm{p})+t\mathbf{w}$]]></tex-math></alternatives></inline-formula> where <bold>w</bold> is the solution of the sensitivity problem 
<disp-formula id="j_info1211_eq_068">
<label>(5.7)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mi mathvariant="bold">w</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathbf{A}\mathbf{w}={\mathbf{B}^{\top }}\mathrm{d},\]]]></tex-math></alternatives>
</disp-formula> 
or 
<disp-formula id="j_info1211_eq_069">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="normal">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\mathrm{A}_{i}}{\mathrm{w}_{i}}={\mathrm{B}_{i}^{\top }}\mathrm{d},\hspace{1em}i=1,\dots ,d.\]]]></tex-math></alternatives>
</disp-formula> 
It follows that the derivative of <inline-formula id="j_info1211_ineq_108"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${J^{\ast }}$]]></tex-math></alternatives></inline-formula> is 
<disp-formula id="j_info1211_eq_070">
<label>(5.8)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="normal">r</mml:mi>
<mml:mo>:</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo>∇</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="normal">p</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mi mathvariant="bold">u</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="normal">C</mml:mi>
<mml:mi mathvariant="normal">p</mml:mi>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathrm{r}:=\nabla {J^{\ast }}(\mathrm{p})=\mathbf{B}\mathbf{u}+\mathrm{C}\mathrm{p}+{\mathrm{f}_{p}}.\]]]></tex-math></alternatives>
</disp-formula> 
With a search direction d, we compute an optimal stepsize <italic>ρ</italic> by solving 
<disp-formula id="j_info1211_eq_071">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mo>∇</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="normal">p</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">ρ</mml:mi>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \nabla {J^{\ast }}{(\mathrm{p}+\rho \mathrm{d})^{\top }}\mathrm{d}=0,\]]]></tex-math></alternatives>
</disp-formula> 
that is, 
<disp-formula id="j_info1211_eq_072">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">ρ</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mi mathvariant="bold">w</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="normal">C</mml:mi>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="normal">d</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \rho =-{\mathrm{d}^{\top }}(\mathbf{B}\mathbf{w}+\mathrm{C}\mathrm{d})/({\mathrm{r}^{\top }}\mathrm{d}),\]]]></tex-math></alternatives>
</disp-formula> 
where <bold>w</bold> is the solution of the sensitivity equation (<xref rid="j_info1211_eq_068">5.7</xref>).</p>
<p>Since <inline-formula id="j_info1211_ineq_109"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${J^{\ast }}$]]></tex-math></alternatives></inline-formula> is a quadratic function, the best search direction is a conjugate gradient direction. As a consequence, the best algorithm for (<xref rid="j_info1211_eq_067">5.6</xref>) is a conjugate gradient algorithm. At each iteration <italic>k</italic>, the Fletcher–Reeves conjugate gradient direction is given by 
<disp-formula id="j_info1211_eq_073">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced separators="" open="‖" close="‖">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mfenced separators="" open="‖" close="‖">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{l}\displaystyle {\mathrm{d}_{k}}={\mathrm{r}_{k+1}}+{\beta _{k}}{\mathrm{d}_{k}},\\ {} \displaystyle {\beta _{k}}={\left\| {\mathrm{r}_{k+1}}\right\| ^{2}}{\left\| {\mathrm{r}_{k}}\right\| ^{-2}}.\end{array}\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>A dual (Uzawa) conjugate gradient algorithm for solving the saddle-point problem (<xref rid="j_info1211_eq_060">5.1</xref>) is outlined in Algorithm <xref rid="j_info1211_fig_001">1</xref>. Theoretically, Algorithm <xref rid="j_info1211_fig_001">1</xref> converges in at most <inline-formula id="j_info1211_ineq_110"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="normal">rank</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${n_{B}}=\mathrm{rank}(\mathbf{B})$]]></tex-math></alternatives></inline-formula> iterations. Obviously, for large scale problems, <inline-formula id="j_info1211_ineq_111"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${n_{B}}$]]></tex-math></alternatives></inline-formula> is very large and it is preferable that convergence should be obtained in a number of iterations considerably less than <inline-formula id="j_info1211_ineq_112"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${n_{B}}$]]></tex-math></alternatives></inline-formula>.</p>
<fig id="j_info1211_fig_001">
<label>Algorithm 1</label>
<caption>
<p>Uzawa conjugate gradient algorithm for (<xref rid="j_info1211_eq_060">5.1</xref>).</p>
</caption>
<graphic xlink:href="info1211_g001.jpg"/>
</fig>
</sec>
<sec id="j_info1211_s_011">
<label>5.2</label>
<title>Preconditioned Uzawa Conjugate Gradient Algorithm</title>
<p>A practical implementation of a conjugate gradient method for solving (<xref rid="j_info1211_eq_060">5.1</xref>) requires a preconditioner, that is, a suitable scalar product for computing <inline-formula id="j_info1211_ineq_113"><alternatives><mml:math>
<mml:mo>∇</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="normal">p</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\nabla {J^{\ast }}(\mathrm{p})$]]></tex-math></alternatives></inline-formula> instead of the standard one used in (<xref rid="j_info1211_eq_070">5.8</xref>). The convergence properties of the conjugate gradient method for the generalized Stokes problem are deteriorated for large values of the ratio <inline-formula id="j_info1211_ineq_114"><alternatives><mml:math>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mi mathvariant="italic">ν</mml:mi></mml:math><tex-math><![CDATA[$\alpha /\nu $]]></tex-math></alternatives></inline-formula>, see e.g. (Glowinski, <xref ref-type="bibr" rid="j_info1211_ref_010">2003</xref>; Glowinski and Le Tallec, <xref ref-type="bibr" rid="j_info1211_ref_012">1989</xref>).</p>
<p>To derive a preconditioner for (<xref rid="j_info1211_eq_060">5.1</xref>) following the idea of Cahouet and Chabard (<xref ref-type="bibr" rid="j_info1211_ref_007">1988</xref>), Glowinski and Guidoboni (<xref ref-type="bibr" rid="j_info1211_ref_011">2009</xref>), we need to simplify the continuous problem. We first notice that the equivalence between <inline-formula id="j_info1211_ineq_115"><alternatives><mml:math>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$P1$]]></tex-math></alternatives></inline-formula>-Bubble/<inline-formula id="j_info1211_ineq_116"><alternatives><mml:math>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$P1$]]></tex-math></alternatives></inline-formula> element and the stabilized formulation has been proved (Pierre, <xref ref-type="bibr" rid="j_info1211_ref_018">1987</xref>, <xref ref-type="bibr" rid="j_info1211_ref_019">1989</xref>; <xref ref-type="bibr" rid="j_info1211_ref_020">1995</xref>; Matsumoto, <xref ref-type="bibr" rid="j_info1211_ref_016">2005</xref>; Baiocchi <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1211_ref_005">1993</xref>). Then, if we neglect the bubble contribution in the stiffness and divergence matrices, (<xref rid="j_info1211_eq_060">5.1</xref>) can be expressed in the strong form as <disp-formula-group id="j_info1211_dg_005">
<disp-formula id="j_info1211_eq_074">
<label>(5.9)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">ν</mml:mi>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mo>+</mml:mo>
<mml:mo>∇</mml:mo>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">f</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \alpha \boldsymbol{u}-\nu \Delta \boldsymbol{u}+\nabla p=f,\]]]></tex-math></alternatives>
</disp-formula>
<disp-formula id="j_info1211_eq_075">
<label>(5.10)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mo>∇</mml:mo>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mo>−</mml:mo>
<mml:mo>∇</mml:mo>
<mml:mo>·</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ν</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>∇</mml:mo>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \nabla \cdot \boldsymbol{u}-\nabla \cdot ({\nu _{h}}\nabla \boldsymbol{u})=0,\]]]></tex-math></alternatives>
</disp-formula>
</disp-formula-group> where <inline-formula id="j_info1211_ineq_117"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ν</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\nu _{h}}$]]></tex-math></alternatives></inline-formula> is an element dependent constant.</p>
<p>As in Glowinski and Guidoboni (<xref ref-type="bibr" rid="j_info1211_ref_011">2009</xref>) we define the linear operator from <inline-formula id="j_info1211_ineq_118"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="normal">Ω</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${L^{2}}(\Omega )$]]></tex-math></alternatives></inline-formula> into <inline-formula id="j_info1211_ineq_119"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="normal">Ω</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${L^{2}}(\Omega )$]]></tex-math></alternatives></inline-formula> (neglecting the constant term in (<xref rid="j_info1211_eq_070">5.8</xref>)) 
<disp-formula id="j_info1211_eq_076">
<label>(5.11)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">ϕ</mml:mi>
<mml:mo>:</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo>∇</mml:mo>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:mo>∇</mml:mo>
<mml:mo>·</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ν</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>∇</mml:mo>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \phi :=\mathcal{A}q=\nabla \cdot {\boldsymbol{u}_{q}}-\nabla \cdot ({\nu _{h}}\nabla q),\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_info1211_ineq_120"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\boldsymbol{u}_{q}}$]]></tex-math></alternatives></inline-formula> is the solution of 
<disp-formula id="j_info1211_eq_077">
<label>(5.12)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">ν</mml:mi>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:mo>∇</mml:mo>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \alpha {\boldsymbol{u}_{q}}-\nu \Delta {\boldsymbol{u}_{q}}=-\nabla q.\]]]></tex-math></alternatives>
</disp-formula> 
Note that (<xref rid="j_info1211_eq_077">5.12</xref>) is the (strong) sensitivity system. The idea behind preconditioning is to find a linear operator <inline-formula id="j_info1211_ineq_121"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula> such that <inline-formula id="j_info1211_ineq_122"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">q</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}\mathcal{A}q=q$]]></tex-math></alternatives></inline-formula>. Applying the divergence operator in (<xref rid="j_info1211_eq_077">5.12</xref>), we obtain 
<disp-formula id="j_info1211_eq_078">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mo>∇</mml:mo>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">ν</mml:mi>
<mml:mo>∇</mml:mo>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \alpha \nabla \cdot {\boldsymbol{u}_{q}}-\nu \nabla \cdot \Delta {\boldsymbol{u}_{q}}=-\Delta q\]]]></tex-math></alternatives>
</disp-formula> 
or 
<disp-formula id="j_info1211_eq_079">
<label>(5.13)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mo>∇</mml:mo>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">ν</mml:mi>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo>∇</mml:mo>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold-italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \alpha \nabla \cdot {\boldsymbol{u}_{q}}-\nu \Delta (\nabla \cdot {\boldsymbol{u}_{q}})=-\Delta q.\]]]></tex-math></alternatives>
</disp-formula> 
Using (<xref rid="j_info1211_eq_076">5.11</xref>) in (<xref rid="j_info1211_eq_079">5.13</xref>), we obtain 
<disp-formula id="j_info1211_eq_080">
<label>(5.14)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mo>∇</mml:mo>
<mml:mo>·</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ν</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>∇</mml:mo>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">ν</mml:mi>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:mo>∇</mml:mo>
<mml:mo>·</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ν</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>∇</mml:mo>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mi mathvariant="italic">ϕ</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">ν</mml:mi>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:mi mathvariant="italic">ϕ</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ -\Delta q-\alpha \nabla \cdot ({\nu _{h}}\nabla q)+\nu \Delta \big(\nabla \cdot ({\nu _{h}}\nabla q)\big)=\alpha \phi -\nu \Delta \phi .\]]]></tex-math></alternatives>
</disp-formula> 
Then, in practice, at each step of the preconditioned conjugate gradient algorithm, the gradient of <inline-formula id="j_info1211_ineq_123"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">J</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${J^{\ast }}$]]></tex-math></alternatives></inline-formula> is computed as an approximate solution of the linear system 
<disp-formula id="j_info1211_eq_081">
<label>(5.15)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">K</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mi mathvariant="italic">C</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">ν</mml:mi>
<mml:mi mathvariant="italic">K</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="italic">C</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mi mathvariant="normal">g</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">ν</mml:mi>
<mml:mi mathvariant="italic">K</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mi mathvariant="normal">r</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ (K+\alpha C+\nu K{M^{-1}}C)\mathrm{g}=(\alpha M+\nu K)\mathrm{r},\]]]></tex-math></alternatives>
</disp-formula> 
where <italic>K</italic> and <italic>M</italic> are the stiffness and the mass matrices, respectively. Let us introduce the mesh Reynolds number 
<disp-formula id="j_info1211_eq_082">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ν</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ R{e_{h}}=\frac{\alpha }{\nu }{h^{2}},\]]]></tex-math></alternatives>
</disp-formula> 
where <italic>h</italic> is the mesh size. Taking into account the CPU time and the storage requirement for computing the last term of the matrix involved in (<xref rid="j_info1211_eq_081">5.15</xref>), we consider the following preconditioning system instead 
<disp-formula id="j_info1211_eq_083">
<label>(5.16)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">K</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mi mathvariant="italic">C</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mi mathvariant="normal">g</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="normal">H</mml:mi>
<mml:mi mathvariant="normal">r</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ (K+\alpha C)\mathrm{g}=\mathrm{H}\mathrm{r},\]]]></tex-math></alternatives>
</disp-formula> 
where 
<disp-formula id="j_info1211_eq_084">
<label>(5.17)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="normal">H</mml:mi>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="{" close="">
<mml:mrow>
<mml:mtable columnspacing="4.0pt" equalrows="false" columnlines="none" equalcolumns="false" columnalign="left left">
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">ν</mml:mi>
<mml:mi mathvariant="italic">K</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mi mathvariant="normal">diag</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>if</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>⩽</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">ν</mml:mi>
<mml:mi mathvariant="italic">K</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mi mathvariant="double-struck">I</mml:mi>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>if</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">&gt;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathrm{H}=\left\{\begin{array}{l@{\hskip4.0pt}l}\nu K+\alpha \mathrm{diag}(M)\hspace{1em}& \text{if}\hspace{2.5pt}R{e_{h}}\leqslant 1,\\ {} \nu K+\alpha \mathbb{I}\hspace{1em}& \text{if}\hspace{2.5pt}R{e_{h}}>1.\end{array}\right.\]]]></tex-math></alternatives>
</disp-formula> 
In (<xref rid="j_info1211_eq_083">5.16</xref>) and (<xref rid="j_info1211_eq_084">5.17</xref>), <italic>K</italic> and <italic>M</italic> are <inline-formula id="j_info1211_ineq_124"><alternatives><mml:math>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$P1$]]></tex-math></alternatives></inline-formula> stiffness and mass matrix, respectively, and <italic>C</italic>, the bubble matrix from Functions <xref rid="j_info1211_fig_003">6.1</xref>–<xref rid="j_info1211_fig_005">6.3</xref>.</p>
<fig id="j_info1211_fig_002">
<label>Algorithm 2</label>
<caption>
<p>Preconditioned Uzawa conjugate gradient algorithm for (<xref rid="j_info1211_eq_060">5.1</xref>).</p>
</caption>
<graphic xlink:href="info1211_g002.jpg"/>
</fig>
<p>From the theory of preconditioned conjugate gradient methods for the Stokes problem (see e.g. Glowinski, <xref ref-type="bibr" rid="j_info1211_ref_010">2003</xref>), if Dirichlet conditions are imposed for the velocity, then for g in (<xref rid="j_info1211_eq_080">5.14</xref>) we must impose <inline-formula id="j_info1211_ineq_125"><alternatives><mml:math>
<mml:mi>∂</mml:mi>
<mml:mi mathvariant="normal">g</mml:mi>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mi>∂</mml:mi>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn></mml:math><tex-math><![CDATA[$\partial \mathrm{g}/\partial n=0$]]></tex-math></alternatives></inline-formula> (homogeneous Neumann boundary conditions). On the other hand, where a stress condition is prescribed for the fluid, we must impose <inline-formula id="j_info1211_ineq_126"><alternatives><mml:math>
<mml:mi mathvariant="normal">g</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn></mml:math><tex-math><![CDATA[$\mathrm{g}=0$]]></tex-math></alternatives></inline-formula> in (<xref rid="j_info1211_eq_080">5.14</xref>).</p><statement id="j_info1211_stat_001"><label>Remark 1.</label>
<p>The preconditioning system (<xref rid="j_info1211_eq_081">5.15</xref>), that is, 
<disp-formula id="j_info1211_eq_085">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">ν</mml:mi>
<mml:mi mathvariant="italic">K</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">K</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mi mathvariant="italic">C</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">ν</mml:mi>
<mml:mi mathvariant="italic">K</mml:mi>
<mml:mi mathvariant="italic">C</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mi mathvariant="normal">g</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="normal">r</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {(\alpha M+\nu K)^{-1}}(K+\alpha C+\nu KC)\mathrm{g}=\mathrm{r},\]]]></tex-math></alternatives>
</disp-formula> 
induces (over the discrete pressure space) the norm <inline-formula id="j_info1211_ineq_127"><alternatives><mml:math>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="normal">g</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mo stretchy="false">|</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="normal">r</mml:mi></mml:math><tex-math><![CDATA[$|\mathrm{g}{|_{P}}={\mathrm{g}^{\top }}\mathrm{r}$]]></tex-math></alternatives></inline-formula>.</p></statement><statement id="j_info1211_stat_002"><label>Remark 2.</label>
<p>If <inline-formula id="j_info1211_ineq_128"><alternatives><mml:math>
<mml:mi mathvariant="italic">C</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn></mml:math><tex-math><![CDATA[$C=0$]]></tex-math></alternatives></inline-formula> in (<xref rid="j_info1211_eq_081">5.15</xref>), we recover the preconditioning system of Cahouet and Chabard (<xref ref-type="bibr" rid="j_info1211_ref_007">1988</xref>) widely used for <inline-formula id="j_info1211_ineq_129"><alternatives><mml:math>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$P2/P1$]]></tex-math></alternatives></inline-formula> or <inline-formula id="j_info1211_ineq_130"><alternatives><mml:math>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$P1$]]></tex-math></alternatives></inline-formula>-iso-<inline-formula id="j_info1211_ineq_131"><alternatives><mml:math>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$P2/P1$]]></tex-math></alternatives></inline-formula> finite elements.</p></statement>
<p>With the preparation given in the previous section, the preconditioned Uzawa conjugate gradient algorithm for solving the Stokes system (<xref rid="j_info1211_eq_060">5.1</xref>) is detailed in Algorithm <xref rid="j_info1211_fig_002">2</xref>. Algorithm <xref rid="j_info1211_fig_002">2</xref> inherits the main properties from the conjugate gradient algorithm of Cahouet and Chabard (<xref ref-type="bibr" rid="j_info1211_ref_007">1988</xref>):</p>
<list>
<list-item id="j_info1211_li_001">
<label>•</label>
<p>At each step, we solve <italic>d</italic> independent linear systems for the velocity field. The matrices involved are sparse and can be factorized or preconditioned once and for all.</p>
</list-item>
<list-item id="j_info1211_li_002">
<label>•</label>
<p>The same algorithm is able to deal with 2D or 3D systems without any complication.</p>
</list-item>
</list>
</sec>
</sec>
<sec id="j_info1211_s_012">
<label>6</label>
<title>MATLAB Implementation</title>
<p>We know in detail the assembly of the Stokes systems (<xref rid="j_info1211_eq_042">4.12</xref>)–(<xref rid="j_info1211_eq_043">4.13</xref>) and (<xref rid="j_info1211_eq_058">4.24</xref>)–(<xref rid="j_info1211_eq_059">4.25</xref>). For the computational efficiency, the MATLAB codes must be vectorized (i.e. without long <italic>for</italic>-loops). We then use arrays, cell-arrays, and MATLAB vectorized operators and functions</p><preformat><monospace>.*,   ./,  .^,  sum, sparse</monospace>
</preformat>
<sec id="j_info1211_s_013">
<label>6.1</label>
<title>Mesh Representation and KPDE Package</title>
<p>We assume that the triangulation of Ω consists of <monospace>np</monospace> nodes and <monospace>nt</monospace> elements (triangles or tetrahedrons). We adopt the mesh representation by arrays used in Koko (<xref ref-type="bibr" rid="j_info1211_ref_013">2007</xref>; <xref ref-type="bibr" rid="j_info1211_ref_014">2016</xref>), Persson and Strang (<xref ref-type="bibr" rid="j_info1211_ref_017">2004</xref>). The nodes coordinates are stored in an array <monospace>p(1:np,1:2)</monospace> (in 2D) or <monospace>p(1:np,1:3)</monospace> (in 3D). The element nodes are stores in an array <monospace>t(1:nt,1:3)</monospace> (in 2D) or <monospace>t(1:nt,1:4)</monospace> (in 3D). Dirichlet boundary conditions are provided by a list of nodes and the corresponding prescribed values.</p>
<p>As shown in Koko (<xref ref-type="bibr" rid="j_info1211_ref_014">2016</xref>), using cell-array in FEM allows to have implementation close to the standard form used in classical languages (C/C++, FORTRAN) FEM codes, while being efficient. The idea is to compute and store, for all triangles, the element matrix entry <inline-formula id="j_info1211_ineq_132"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${A_{ij}^{(T)}}$]]></tex-math></alternatives></inline-formula> in the cell-array <monospace>At{i,j}</monospace>. Then we use MATLAB function <monospace>sparse</monospace> to assemble <italic>A</italic> with finite small <italic>for</italic> loops</p><preformat><monospace>for i=1:nd</monospace>
<monospace>for j=1:nd</monospace>
<monospace>   A=A+sparse(t(:,i),t(:,j),At{i,j},np,np);</monospace>
<monospace>end</monospace>
<monospace>end</monospace>
</preformat>
<p>where <monospace>nd=3</monospace> (in 2D) or <monospace>nd=4</monospace> (in 3D). This approach is used in KPDE package (Koko, <xref ref-type="bibr" rid="j_info1211_ref_014">2016</xref>) for assembling matrices and vectors from Poisson and linear elasticity equations in 2D and 3D.</p>
<p>We need two key functions from KPDE package, <monospace>kpde2dgphi</monospace> and <monospace>kpde3dgphi</monospace>, which compute the gradient of the basis functions and the elements volume as follows</p><preformat><monospace>[ar,g]=kpde2dgphi(p,t);     %2D</monospace>
<monospace>[vol,g]=kpde3dgphi(p,t);    %3D</monospace>
</preformat>
<p><monospace>g</monospace> is 3-by-1 or 4-by-1 cell-array such that <monospace>g{i}(:,k)</monospace> is <inline-formula id="j_info1211_ineq_133"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\partial _{k}}{\phi _{i}}(x)$]]></tex-math></alternatives></inline-formula> for all elements.</p>
</sec>
<sec id="j_info1211_s_014">
<label>6.2</label>
<title>2D Case</title>
<p>Using the cell array <monospace>g</monospace> and the array <monospace>ar</monospace>, the nonbubble entry <inline-formula id="j_info1211_ineq_134"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">¯</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\bar{R}_{ij}}$]]></tex-math></alternatives></inline-formula>, (<xref rid="j_info1211_eq_026">4.2</xref>), of the element stiffness matrix is then given (for all triangles) by</p><preformat><monospace>Rij=nu*ar.*sum(g{i}.*g{j},2).</monospace>
</preformat>
<p>The bubble diagonal entry <inline-formula id="j_info1211_ineq_135"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ω</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\omega _{R}}$]]></tex-math></alternatives></inline-formula>, (<xref rid="j_info1211_eq_028">4.3</xref>), is computed as follows for all triangles</p><preformat><monospace>omega_r=(81/10)*nu.*ar.*(sum(g1.^2,2)+sum(g2.^2,2)</monospace>
<monospace>         +sum(g1.*g2,2)).</monospace>
</preformat>
<p>The nonbubble entry <inline-formula id="j_info1211_ineq_136"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${M_{ij}}$]]></tex-math></alternatives></inline-formula>, (<xref rid="j_info1211_eq_030">4.4</xref>), of the element mass matrix is,</p><preformat><monospace>Mii=alpha.*ar/6 ;       % diagonal</monospace>
<monospace>Mij=alpha.*ar/12;       % off-diagonal.</monospace>
</preformat>
<p>The bubble entries (<xref rid="j_info1211_eq_031">4.5</xref>) of the element mass matrix are given by</p><preformat><monospace>omega_m=(81/280)*alpha.*ar;    % diagonal</monospace>
<monospace>Mbj=(3/20)*alpha.*ar};         % off-diagonal.</monospace>
</preformat>
<p>The entries <inline-formula id="j_info1211_ineq_137"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(i,j)$]]></tex-math></alternatives></inline-formula> of the element divergence matrix (<xref rid="j_info1211_eq_035">4.6</xref>) are vectorized as follows</p><preformat><monospace>B1ij=ar.*g{i}(:,1)/3; B2ij=ar.*g{i}(:,2)/3;</monospace>
</preformat>
<p>while the bubble entries (<xref rid="j_info1211_eq_036">4.7</xref>) are</p><preformat><monospace>B1ib=(9/10)*ar.*g{i}(:,1); B2ib=(9/10)*ar.*g{i}(:,2).</monospace>
</preformat>
<p>The vectorized element contribution of the right-hand side (<xref rid="j_info1211_eq_037">4.8</xref>) is</p><preformat><monospace>f1=(1/3)*ar.*f1t; f2=(1/3)*ar.*f2t;</monospace>
</preformat>
<p>while the bubble entries (<xref rid="j_info1211_eq_038">4.9</xref>) are</p><preformat><monospace>f1b=(9/20)*ar.*f1t; f2b=(9/20)*ar.*f2t.</monospace>
</preformat>
<fig id="j_info1211_fig_003">
<label>Function 6.1</label>
<caption>
<p>Assembly of the 2D Stokes matrix (<xref rid="j_info1211_eq_042">4.12</xref>).</p>
</caption>
<graphic xlink:href="info1211_g003.jpg"/>
</fig>
<fig id="j_info1211_fig_004">
<label>Function 6.2</label>
<caption>
<p>Assembly of the Stokes right-hand side (<xref rid="j_info1211_eq_043">4.13</xref>).</p>
</caption>
<graphic xlink:href="info1211_g004.jpg"/>
</fig>
<p>MATLAB Functions <xref rid="j_info1211_fig_003">6.1</xref>–<xref rid="j_info1211_fig_004">6.2</xref> assemble the Stokes system. To make the assembling functions self-contained, all calculations are integrated except elements area and the gradient of basis functions which can be computed outside and passed as argument. Note that in 2D, the time for computing the triangles area and the gradient of the basis functions is not significant. Functions <xref rid="j_info1211_fig_003">6.1</xref>–<xref rid="j_info1211_fig_004">6.2</xref> can be called without the last two arguments without a significant computational overcost.</p>
<p>Instead of matrix (<xref rid="j_info1211_eq_042">4.12</xref>) and vector (<xref rid="j_info1211_eq_043">4.13</xref>), Functions <xref rid="j_info1211_fig_003">6.1</xref>–<xref rid="j_info1211_fig_004">6.2</xref> can return submatrices and subvectors of (<xref rid="j_info1211_eq_042">4.12</xref>)–(<xref rid="j_info1211_eq_043">4.13</xref>) if called with more than one output arguments. The statement</p><preformat><monospace>[A,B,C]=kstok2dp1bmat(p,t,nu,alpha)</monospace>
</preformat>
<p>returns the velocity stiffness matrix <monospace>A</monospace>, the divergence matrix <monospace>B=[B1 B2]</monospace> and the pressure (stiffness) matrix <monospace>C</monospace>. Similarly,</p><preformat><monospace>[b,bp]=kstok2dp1brhs(p,t,nu,alpha)</monospace>
</preformat>
<p>returns the velocity right-hand side <monospace>b=[b1; b2]</monospace> and the pressure right-hand side <monospace>bp</monospace>. These submatrices are used in the preconditioned Uzawa conjugate gradient method presented in Section <xref rid="j_info1211_s_009">5</xref>.</p>
</sec>
<sec id="j_info1211_s_015">
<label>6.3</label>
<title>3D Case</title>
<p>Using the cell-array <monospace>g</monospace> and the element volume <monospace>vol</monospace>, computed by the KPDE function <monospace>kpde3dgphi</monospace>, the element stiffness matrices are computed simultaneously on all elements by</p><preformat><monospace>Rij=nu*vol.*sum(g{i}.*g{j},2);</monospace>
</preformat>
<p>while bubble diagonal entry (<xref rid="j_info1211_eq_048">4.16</xref>) is given by</p><preformat><monospace>omega_R=(8192/945)*nu.*vol.*(sum(g{1}.^2,2)+sum(g{2}.^2,2)</monospace>
<monospace>        +sum(g{3}.^2,2)...+sum(g{1}.*g{2},2)</monospace>
<monospace>        +sum(g{1}.*g{3},2)+sum(g{2}.*g{3},2)).</monospace>
</preformat>
<p>The nonbubble entries of element mass matrix (<xref rid="j_info1211_eq_049">4.17</xref>) are computed by</p><preformat><monospace>Mii=alpha.*vol/10;      % diagonal</monospace>
<monospace>Mij=alpha.*vol/20;      % off diagonal.</monospace>
<monospace/> 
</preformat>
<p>The bubble part of the mass matrix (<xref rid="j_info1211_eq_050">4.18</xref>) is given by</p><preformat><monospace>omega_m=(8192/51975)*alpha.*vol;    % diagonal</monospace>
<monospace>Mbj=(8/105)*alpha.*vol;             % off-diagonal.</monospace>
</preformat>
<p>The entries <inline-formula id="j_info1211_ineq_138"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(i,j)$]]></tex-math></alternatives></inline-formula> of the element divergence matrices (<xref rid="j_info1211_eq_053">4.19</xref>) are computed simultaneously as follows</p><preformat><monospace>B1ij=vol.*g{i}(:,1)/4;  B2ij=vol.*g{i}(:,2)/4;</monospace>
<monospace>B3ij=vol.*g{i}(:,3)/4;</monospace>
<monospace/> 
</preformat>
<p>while the bubble entries are</p><preformat><monospace>B1ib=(32/105)*vol.*g{i}(:,1); B2ib=(32/105)*vol.*g{i}(:,2);</monospace>
<monospace>B3ib=(32/105)*vol.*g{i}(:,3).</monospace>
<monospace/> 
</preformat>
<p>The element contributions of the right-hand side (<xref rid="j_info1211_eq_055">4.21</xref>)–(<xref rid="j_info1211_eq_056">4.22</xref>) are given by</p><preformat><monospace>f1=vol.*f1t/4; f2=vol.*f2t/4; f3=vol.*f3t/4;</monospace>
<monospace>f1b=(32/105)*vol*f1t;   f2b=(32/105)*vol*f2t;</monospace>
<monospace>f3b=(32/105)*vol*f3t.</monospace>
<monospace/> 
</preformat>
<fig id="j_info1211_fig_005">
<label>Function 6.3</label>
<caption>
<p>Assembly of the 3D Stokes matrix (<xref rid="j_info1211_eq_058">4.24</xref>).</p>
</caption>
<graphic xlink:href="info1211_g005.jpg"/>
</fig>
<fig id="j_info1211_fig_006">
<label>Function 6.4</label>
<caption>
<p>Assembly of the 3D Stokes right-hand side (<xref rid="j_info1211_eq_059">4.25</xref>).</p>
</caption>
<graphic xlink:href="info1211_g006.jpg"/>
</fig>
<p>MATLAB Functions <xref rid="j_info1211_fig_005">6.3</xref>–<xref rid="j_info1211_fig_006">6.4</xref> assemble the three-dimensional Stokes system. For computational efficiency, the elements volume <monospace>vol</monospace> and the gradient of the basis functions <monospace>g</monospace> can be computed once and for all, and passed to Functions <xref rid="j_info1211_fig_005">6.3</xref>–<xref rid="j_info1211_fig_006">6.4</xref>. For more flexibility, <monospace>vol</monospace> and <monospace>g</monospace> can also be computed inside Functions <xref rid="j_info1211_fig_005">6.3</xref>–<xref rid="j_info1211_fig_006">6.4</xref> if they do not appear in the list of input arguments. As in 2D, Functions <xref rid="j_info1211_fig_005">6.3</xref>–<xref rid="j_info1211_fig_006">6.4</xref> can return submatrices and subvectors used in the preconditioned Uzawa conjugate gradient algorithm, if called with more than one output argument.</p>
</sec>
<sec id="j_info1211_s_016">
<label>6.4</label>
<title>Preconditioned Uzawa Conjugate Gradient Algorithm</title>
<p>In our MATLAB implementation the same function (i.e. <monospace>kstokcg</monospace>) is used for 2D and 3D problems. For this, we use cell-arrays to store the component system informations: Cholesky factors, permutation vectors, right-hand sides. For instance, for the 3D Stokes problem we form</p><preformat><monospace>R={R1 R2 R3};   % Cholesky factors</monospace>
<monospace>s={s1 s2 s3};    % Permutations vectors</monospace>
<monospace>b={b(1:np) b(np+1:2*np) b3(2*np+1:3*np)}; %Right-hand sides.</monospace>
</preformat>
<p>Then in the conjugate gradient function, the velocity systems are solved using the for-loop</p><preformat><monospace>for i=1:nd</monospace>
<monospace>     w{i}(s{i})=R{i}’\(R{i}\b{i}(s{i}));</monospace>
<monospace>end</monospace>
</preformat>
<p>where <monospace>nd=3</monospace>. An alternative implementation is to form the block diagonal matrix <monospace>R=blkdiag(R1, R2, R3)</monospace>, the permutation vector <monospace>s=[s1 s2 s3]</monospace> such that e.g. in Step k.1, we solve</p><preformat><monospace>w(s)=R’\(R\b(s)).</monospace>
</preformat>
<p>But for large scale 3D problems, computing <monospace> R’\(R\b(s))</monospace> requires a large amount of memory and can fail.</p>
</sec>
</sec>
<sec id="j_info1211_s_017">
<label>7</label>
<title>Numerical Experiments</title>
<p>We now propose some numerical experiments to demonstrate the performances of our implementation. The computations have been carried out on a Dell Precision T3610 work station equipped with Intel Xeon 3.0GHz processor with 32GB RAM. The MATLAB version is 9 (R2016a).</p>
<sec id="j_info1211_s_018">
<label>7.1</label>
<title>Scalability</title>
<p>We first study the scalability of our MATLAB codes: We consider the discretization of a unit cube <inline-formula id="j_info1211_ineq_139"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${(0,\hspace{2.5pt}1)^{d}}$]]></tex-math></alternatives></inline-formula> (<inline-formula id="j_info1211_ineq_140"><alternatives><mml:math>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>3</mml:mn></mml:math><tex-math><![CDATA[$d=2,3$]]></tex-math></alternatives></inline-formula>) with a uniform mesh of size <italic>h</italic>, with <monospace>nt</monospace> triangles (or tetrahedrons) and <monospace>np</monospace> nodes. This initial mesh is successively uniformly refined to produce meshes of size <inline-formula id="j_info1211_ineq_141"><alternatives><mml:math>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>2</mml:mn></mml:math><tex-math><![CDATA[$h/2$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1211_ineq_142"><alternatives><mml:math>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>4</mml:mn></mml:math><tex-math><![CDATA[$h/4$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1211_ineq_143"><alternatives><mml:math>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>8</mml:mn></mml:math><tex-math><![CDATA[$h/8$]]></tex-math></alternatives></inline-formula>, etc. After each refinement the number of triangles is multiplied by 4 (2D) and the number of tetrahedraons by 8 (3D). Since the assembly process is essentially based on the number of elements, we expect that the time to assemble the matrices increases by approximately the same factor, i.e. 5–6 in 2D and 8–10 in 3D as observed in Koko (<xref ref-type="bibr" rid="j_info1211_ref_014">2016</xref>) for Poisson equation and linear elasticity. Tables <xref rid="j_info1211_tab_001">1</xref>–<xref rid="j_info1211_tab_002">2</xref> show the assembly CPU times (in Seconds) for the Stokes system in 2D and 3D, respectively. We can notice an almost linear optimal time-scaling for our implementation.</p>
<table-wrap id="j_info1211_tab_001">
<label>Table 1</label>
<caption>
<p>CPU times (in seconds) for assembling the Stokes matrix system of size <italic>N</italic> in 2D.</p>
</caption>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin"><italic>h</italic></td>
<td style="vertical-align: top; text-align: left; border-top: solid thin">1/32</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin">1/64</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin">1/128</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin">1/256</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin">1/512</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin">1/1024</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><italic>N</italic></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">3*1089</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">3*4225</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">3*16641</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">3*66049</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">3*263169</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">3*1050625</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left"><italic>A</italic></td>
<td style="vertical-align: top; text-align: left">0.018</td>
<td style="vertical-align: top; text-align: left">0.071</td>
<td style="vertical-align: top; text-align: left">0.325</td>
<td style="vertical-align: top; text-align: left">1.516</td>
<td style="vertical-align: top; text-align: left">7.242</td>
<td style="vertical-align: top; text-align: left">36.390</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><italic>b</italic></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.002</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.011</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.050</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.251</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1.214</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">5.995</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="j_info1211_tab_002">
<label>Table 2</label>
<caption>
<p>CPU times (in seconds) for assembling the Stokes matrix system of size <italic>N</italic> in 3D.</p>
</caption>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin"><italic>h</italic></td>
<td style="vertical-align: top; text-align: left; border-top: solid thin">1/4</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin">1/8</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin">1/16</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin">1/32</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin">1/64</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin">1/128</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><italic>N</italic></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">4*125</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">4*729</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">4*4913</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">4*35937</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">4*274625</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">4*2146689</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left"><italic>A</italic></td>
<td style="vertical-align: top; text-align: left">0.075</td>
<td style="vertical-align: top; text-align: left">0.057</td>
<td style="vertical-align: top; text-align: left">0.397</td>
<td style="vertical-align: top; text-align: left">3.438</td>
<td style="vertical-align: top; text-align: left">34.538</td>
<td style="vertical-align: top; text-align: left">348.249</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><italic>b</italic></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.027</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.018</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.051</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.465</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">4.544</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">46.394</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="j_info1211_tab_003">
<label>Table 3</label>
<caption>
<p>Comparative performances of MATLAB direct solvers and Algorithm <xref rid="j_info1211_fig_002">2</xref> for the 2D Stokes system, <inline-formula id="j_info1211_ineq_144"><alternatives><mml:math>
<mml:mi mathvariant="italic">ν</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>50</mml:mn></mml:math><tex-math><![CDATA[$\nu =1/50$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1211_ineq_145"><alternatives><mml:math>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mi mathvariant="italic">ν</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$\alpha /\nu ={10^{3}}$]]></tex-math></alternatives></inline-formula>.</p>
</caption>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Mesh size <italic>h</italic></td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">1/32</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">1/64</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">1/128</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">1/256</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">1/512</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">Gaussian elim. CPU</td>
<td style="vertical-align: top; text-align: left">0.02</td>
<td style="vertical-align: top; text-align: left">0.07</td>
<td style="vertical-align: top; text-align: left">0.40</td>
<td style="vertical-align: top; text-align: left">2.11</td>
<td style="vertical-align: top; text-align: left">10.88</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1211_ineq_146"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">LDL</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathrm{LDL}^{\top }}$]]></tex-math></alternatives></inline-formula> CPU</td>
<td style="vertical-align: top; text-align: left">0.02</td>
<td style="vertical-align: top; text-align: left">0.17</td>
<td style="vertical-align: top; text-align: left">1.22</td>
<td style="vertical-align: top; text-align: left">7.13</td>
<td style="vertical-align: top; text-align: left">46.11</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Algorithm <xref rid="j_info1211_fig_002">2</xref> CPU</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.02</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.08</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.35</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1.94</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">12.01</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="j_info1211_s_019">
<label>7.2</label>
<title>Factorization Versus Uzawa Conjugate Gradient</title>
<p>We now consider a Stokes flow in a driven cavity <inline-formula id="j_info1211_ineq_147"><alternatives><mml:math>
<mml:mi mathvariant="normal">Ω</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$\Omega ={(0,\hspace{2.5pt}1)^{d}}$]]></tex-math></alternatives></inline-formula> with <inline-formula id="j_info1211_ineq_148"><alternatives><mml:math>
<mml:mi mathvariant="bold-italic">f</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn></mml:math><tex-math><![CDATA[$\boldsymbol{f}=0$]]></tex-math></alternatives></inline-formula> in (<xref rid="j_info1211_eq_001">2.1</xref>) and 
<def-list><def-item><term><bold>2D:</bold></term><def>
<p><inline-formula id="j_info1211_ineq_149"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">Γ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>×</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[${\Gamma _{1}}=(0,\hspace{2.5pt}1)\times \{1\}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1211_ineq_150"><alternatives><mml:math>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$\boldsymbol{u}={(1,\hspace{2.5pt}0)^{\top }}$]]></tex-math></alternatives></inline-formula> on <inline-formula id="j_info1211_ineq_151"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">Γ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\Gamma _{1}}$]]></tex-math></alternatives></inline-formula>, and <inline-formula id="j_info1211_ineq_152"><alternatives><mml:math>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn></mml:math><tex-math><![CDATA[$\boldsymbol{u}=0$]]></tex-math></alternatives></inline-formula> on <inline-formula id="j_info1211_ineq_153"><alternatives><mml:math>
<mml:mi>∂</mml:mi>
<mml:mi mathvariant="normal">Ω</mml:mi>
<mml:mo>∖</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">Γ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\partial \Omega \setminus {\Gamma _{1}}$]]></tex-math></alternatives></inline-formula>;</p></def></def-item><def-item><term><bold>3D:</bold></term><def>
<p><inline-formula id="j_info1211_ineq_154"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">Γ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>×</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>×</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[${\Gamma _{1}}=(0,\hspace{2.5pt}1)\times (0,\hspace{2.5pt}1)\times \{1\}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1211_ineq_155"><alternatives><mml:math>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$\boldsymbol{u}={(1,\hspace{2.5pt}0,\hspace{2.5pt}0)^{\top }}$]]></tex-math></alternatives></inline-formula> on <inline-formula id="j_info1211_ineq_156"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">Γ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\Gamma _{1}}$]]></tex-math></alternatives></inline-formula>, and <inline-formula id="j_info1211_ineq_157"><alternatives><mml:math>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn></mml:math><tex-math><![CDATA[$\boldsymbol{u}=0$]]></tex-math></alternatives></inline-formula> on <inline-formula id="j_info1211_ineq_158"><alternatives><mml:math>
<mml:mi>∂</mml:mi>
<mml:mi mathvariant="normal">Ω</mml:mi>
<mml:mo>∖</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">Γ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\partial \Omega \setminus {\Gamma _{1}}$]]></tex-math></alternatives></inline-formula>.</p></def></def-item></def-list> Ω is discretized by uniform meshes of size <inline-formula id="j_info1211_ineq_159"><alternatives><mml:math>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>16</mml:mn></mml:math><tex-math><![CDATA[$1/16$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1211_ineq_160"><alternatives><mml:math>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>32</mml:mn></mml:math><tex-math><![CDATA[$1/32$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1211_ineq_161"><alternatives><mml:math>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>64</mml:mn></mml:math><tex-math><![CDATA[$1/64$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1211_ineq_162"><alternatives><mml:math>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>128</mml:mn></mml:math><tex-math><![CDATA[$1/128$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1211_ineq_163"><alternatives><mml:math>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>256</mml:mn></mml:math><tex-math><![CDATA[$1/256$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1211_ineq_164"><alternatives><mml:math>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>512</mml:mn></mml:math><tex-math><![CDATA[$1/512$]]></tex-math></alternatives></inline-formula> in 2D, and <inline-formula id="j_info1211_ineq_165"><alternatives><mml:math>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>4</mml:mn></mml:math><tex-math><![CDATA[$1/4$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1211_ineq_166"><alternatives><mml:math>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>8</mml:mn></mml:math><tex-math><![CDATA[$1/8$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1211_ineq_167"><alternatives><mml:math>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>16</mml:mn></mml:math><tex-math><![CDATA[$1/16$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1211_ineq_168"><alternatives><mml:math>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>32</mml:mn></mml:math><tex-math><![CDATA[$1/32$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1211_ineq_169"><alternatives><mml:math>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>64</mml:mn></mml:math><tex-math><![CDATA[$1/64$]]></tex-math></alternatives></inline-formula> in 3D. Since there are powerful linear (direct) solvers in MATLAB, we first compare our conjugate gradient algorithm with 
<list>
<list-item id="j_info1211_li_003">
<label>•</label>
<p><monospace>\</monospace> (backslash) the standard MATLAB solver for general matrix based on Gaussian elimination;</p>
</list-item>
<list-item id="j_info1211_li_004">
<label>•</label>
<p><monospace>ldl</monospace> the block <inline-formula id="j_info1211_ineq_170"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">LDL</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathit{LDL}^{\top }}$]]></tex-math></alternatives></inline-formula> factorization for symmetric indefinite systems.</p>
</list-item>
</list> 
Table <xref rid="j_info1211_tab_003">3</xref> shows the comparative performances for the 2D Stokes problem with <inline-formula id="j_info1211_ineq_171"><alternatives><mml:math>
<mml:mi mathvariant="italic">ν</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>50</mml:mn></mml:math><tex-math><![CDATA[$\nu =1/50$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1211_ineq_172"><alternatives><mml:math>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mi mathvariant="italic">ν</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$\alpha /\nu ={10^{3}}$]]></tex-math></alternatives></inline-formula>. We can notice that the proposed Uzawa conjugate gradient (Algorithm <xref rid="j_info1211_fig_002">2</xref>) and the MATLAB built-in Gaussian elimination are almost equivalent even though, in Algorithm <xref rid="j_info1211_fig_002">2</xref>, the component systems are uncoupled and can be solved in parallel. The CPU times for <inline-formula id="j_info1211_ineq_173"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">LDL</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathit{LDL}^{\top }}$]]></tex-math></alternatives></inline-formula> include CPU time for the factorization and columns and rows permutation to reduce fill-in that represents up to 90% of the whole CPU time.</p>
<p>If the Stokes problem is used in an iterative process (e.g. time stepping or linearization), then Algorithm <xref rid="j_info1211_fig_002">2</xref> or <inline-formula id="j_info1211_ineq_174"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">LDL</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathit{LDL}^{\top }}$]]></tex-math></alternatives></inline-formula> factorization are preferable. Indeed, if a <inline-formula id="j_info1211_ineq_175"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">LDL</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathit{LDL}^{\top }}$]]></tex-math></alternatives></inline-formula> is carried out (once and for all) in the initialization step, then the solution of linear system reduces to forward/backward substitutions in the rest of the iterative process. The computational cost of Algorithm <xref rid="j_info1211_fig_002">2</xref> can be reduced by using, as initial solution at the current step, the solution of the previous step.</p>
<p>For the 3D Stokes problem the proposed Algorithm <xref rid="j_info1211_fig_002">2</xref> outperforms the MATLAB direct solvers, Table <xref rid="j_info1211_tab_004">4</xref>. For the largest problem (<inline-formula id="j_info1211_ineq_176"><alternatives><mml:math>
<mml:mn>4</mml:mn>
<mml:mo>∗</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>65</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mspace width="0.1667em"/>
<mml:mn>098</mml:mn>
<mml:mspace width="0.1667em"/>
<mml:mn>500</mml:mn></mml:math><tex-math><![CDATA[$4\ast {65^{3}}=1\hspace{0.1667em}098\hspace{0.1667em}500$]]></tex-math></alternatives></inline-formula> unknowns) the direct solvers fail because of lack of memory due to fill-in during factorization. Table <xref rid="j_info1211_tab_005">5</xref> shows the performances of the MATLAB <monospace>gmres</monospace> iterative solver using incomplete <inline-formula id="j_info1211_ineq_177"><alternatives><mml:math>
<mml:mi mathvariant="italic">L</mml:mi>
<mml:mi mathvariant="italic">U</mml:mi></mml:math><tex-math><![CDATA[$LU$]]></tex-math></alternatives></inline-formula> factorization as preconditioner (MATLAB function <monospace>ilu</monospace> with <inline-formula id="j_info1211_ineq_178"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${10^{-3}}$]]></tex-math></alternatives></inline-formula> as drop tolerance). The value of restart parameter is 10. GMRES algorithm outperforms Algorithm <xref rid="j_info1211_fig_002">2</xref> up to <inline-formula id="j_info1211_ineq_179"><alternatives><mml:math>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>32</mml:mn></mml:math><tex-math><![CDATA[$h=1/32$]]></tex-math></alternatives></inline-formula>. But for the largest problem, Algorithm <xref rid="j_info1211_fig_002">2</xref> is more than four times faster. It is clear that for large scale 3D problems, the proposed Uzawa algorithm is preferable. Table <xref rid="j_info1211_tab_006">6</xref> shows the good convergence properties of the proposed Uzawa conjugate gradient algorithm when <inline-formula id="j_info1211_ineq_180"><alternatives><mml:math>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mi mathvariant="italic">ν</mml:mi>
<mml:mo stretchy="false">≫</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$\alpha /\nu \gg 1$]]></tex-math></alternatives></inline-formula>.</p>
<table-wrap id="j_info1211_tab_004">
<label>Table 4</label>
<caption>
<p>Comparative CPU times (in sec.) of MATLAB direct solvers and Algorithm <xref rid="j_info1211_fig_002">2</xref> for the 3D Stokes system, <inline-formula id="j_info1211_ineq_181"><alternatives><mml:math>
<mml:mi mathvariant="italic">ν</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>50</mml:mn></mml:math><tex-math><![CDATA[$\nu =1/50$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1211_ineq_182"><alternatives><mml:math>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mi mathvariant="italic">ν</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$\alpha /\nu ={10^{3}}$]]></tex-math></alternatives></inline-formula>, (OoM = Out of Memory).</p>
</caption>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Mesh size <italic>h</italic></td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">1/4</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">1/8</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">1/16</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">1/32</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">1/64</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">Gaussian elim.</td>
<td style="vertical-align: top; text-align: left">0.01</td>
<td style="vertical-align: top; text-align: left">0.05</td>
<td style="vertical-align: top; text-align: left">1.73</td>
<td style="vertical-align: top; text-align: left">145.44</td>
<td style="vertical-align: top; text-align: left">OoM</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1211_ineq_183"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">LDL</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathrm{LDL}^{\top }}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">0.02</td>
<td style="vertical-align: top; text-align: left">0.08</td>
<td style="vertical-align: top; text-align: left">6.29</td>
<td style="vertical-align: top; text-align: left">128.54</td>
<td style="vertical-align: top; text-align: left">OoM</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Algorithm <xref rid="j_info1211_fig_002">2</xref></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.04</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.89</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1.70</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">78.08</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1894.59</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="j_info1211_tab_005">
<label>Table 5</label>
<caption>
<p>Performances of the <monospace>gmres</monospace> iterative solver for the 3D Stokes system, <inline-formula id="j_info1211_ineq_184"><alternatives><mml:math>
<mml:mi mathvariant="italic">ν</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>50</mml:mn></mml:math><tex-math><![CDATA[$\nu =1/50$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1211_ineq_185"><alternatives><mml:math>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mi mathvariant="italic">ν</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$\alpha /\nu ={10^{3}}$]]></tex-math></alternatives></inline-formula>.</p>
</caption>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Mesh size <italic>h</italic></td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">1/4</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">1/8</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">1/16</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">1/32</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">1/64</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">CPU Times (sec.)</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.04</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">0.02</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1.66</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">39.61</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">8230.59</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="j_info1211_tab_006">
<label>Table 6</label>
<caption>
<p>Number of iterations versus <inline-formula id="j_info1211_ineq_186"><alternatives><mml:math>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mi mathvariant="italic">ν</mml:mi></mml:math><tex-math><![CDATA[$\alpha /\nu $]]></tex-math></alternatives></inline-formula> for the 3D driven cavity problem for <inline-formula id="j_info1211_ineq_187"><alternatives><mml:math>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>32</mml:mn></mml:math><tex-math><![CDATA[$h=1/32$]]></tex-math></alternatives></inline-formula>.</p>
</caption>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin"><inline-formula id="j_info1211_ineq_188"><alternatives><mml:math>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mi mathvariant="italic">ν</mml:mi></mml:math><tex-math><![CDATA[$\alpha /\nu $]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin"><inline-formula id="j_info1211_ineq_189"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${10^{1}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin"><inline-formula id="j_info1211_ineq_190"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${10^{2}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin"><inline-formula id="j_info1211_ineq_191"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${10^{3}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin"><inline-formula id="j_info1211_ineq_192"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${10^{4}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin"><inline-formula id="j_info1211_ineq_193"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>5</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${10^{5}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin"><inline-formula id="j_info1211_ineq_194"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>6</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${10^{6}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin"><inline-formula id="j_info1211_ineq_195"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>7</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${10^{7}}$]]></tex-math></alternatives></inline-formula></td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1211_ineq_196"><alternatives><mml:math>
<mml:mi mathvariant="italic">ν</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>50</mml:mn></mml:math><tex-math><![CDATA[$\nu =1/50$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">44</td>
<td style="vertical-align: top; text-align: left">39</td>
<td style="vertical-align: top; text-align: left">41</td>
<td style="vertical-align: top; text-align: left">28</td>
<td style="vertical-align: top; text-align: left">13</td>
<td style="vertical-align: top; text-align: left">8</td>
<td style="vertical-align: top; text-align: left">7</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1211_ineq_197"><alternatives><mml:math>
<mml:mi mathvariant="italic">ν</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>200</mml:mn></mml:math><tex-math><![CDATA[$\nu =1/200$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">37</td>
<td style="vertical-align: top; text-align: left">34</td>
<td style="vertical-align: top; text-align: left">33</td>
<td style="vertical-align: top; text-align: left">26</td>
<td style="vertical-align: top; text-align: left">13</td>
<td style="vertical-align: top; text-align: left">8</td>
<td style="vertical-align: top; text-align: left">7</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_info1211_ineq_198"><alternatives><mml:math>
<mml:mi mathvariant="italic">ν</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>1000</mml:mn></mml:math><tex-math><![CDATA[$\nu =1/1000$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">31</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">28</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">27</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">24</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">18</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">8</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">7</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="j_info1211_s_020">
<label>7.3</label>
<title>2D Visualization</title>
<p>In two-dimensional incompressible fluid problems, it is usual to display the stream-lines. If the domain Ω is bounded and simply connected, in order to compute the stream-function <italic>ψ</italic>, we have to solve the Poisson–Neumann problem <disp-formula-group id="j_info1211_dg_006">
<disp-formula id="j_info1211_eq_086">
<label>(7.1)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mo>−</mml:mo>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:mi mathvariant="italic">ψ</mml:mi>
<mml:mo>=</mml:mo>
</mml:mtd>
<mml:mtd class="align-even">
<mml:mi mathvariant="italic">ω</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:mtext>in</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="normal">Ω</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}-\Delta \psi =& \omega ,\hspace{2.5pt}\text{in}\hspace{2.5pt}\Omega ,\end{aligned}\]]]></tex-math></alternatives>
</disp-formula>
<disp-formula id="j_info1211_eq_087">
<label>(7.2)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">ψ</mml:mi>
<mml:mo>=</mml:mo>
</mml:mtd>
<mml:mtd class="align-even">
<mml:mo>−</mml:mo>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">τ</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}{\partial _{n}}\psi =& -\boldsymbol{u}\cdot \tau ,\end{aligned}\]]]></tex-math></alternatives>
</disp-formula>
</disp-formula-group> where <inline-formula id="j_info1211_ineq_199"><alternatives><mml:math>
<mml:mi mathvariant="italic">ω</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\omega ={\partial _{1}}{u_{2}}-{\partial _{2}}{u_{1}}$]]></tex-math></alternatives></inline-formula> is the vorticity and <italic>τ</italic> the counter-clockwise oriented unit tangent vector at Γ. Problem (<xref rid="j_info1211_eq_086">7.1</xref>)–(<xref rid="j_info1211_eq_087">7.2</xref>) has a unique solution in <inline-formula id="j_info1211_ineq_200"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="normal">Ω</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mi mathvariant="double-struck">R</mml:mi></mml:math><tex-math><![CDATA[${H^{1}}(\Omega )/\mathbb{R}$]]></tex-math></alternatives></inline-formula>. The variational formulation of (<xref rid="j_info1211_eq_086">7.1</xref>)–(<xref rid="j_info1211_eq_087">7.2</xref>) is</p>
<p>Find <inline-formula id="j_info1211_ineq_201"><alternatives><mml:math>
<mml:mi mathvariant="italic">ψ</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="normal">Ω</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\psi \in {H^{1}}(\Omega )$]]></tex-math></alternatives></inline-formula> 
<disp-formula id="j_info1211_eq_088">
<label>(7.3)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo>∇</mml:mo>
<mml:mi mathvariant="italic">ψ</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>∇</mml:mo>
<mml:mi mathvariant="italic">φ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">Ω</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">φ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">Ω</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>∂</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">φ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">Ω</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mo>∀</mml:mo>
<mml:mi mathvariant="italic">φ</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="normal">Ω</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {(\nabla \psi ,\nabla \varphi )_{\Omega }}={({u_{1}},{\partial _{2}}\varphi )_{\Omega }}-{({u_{2}},{\partial _{1}}\varphi )_{\Omega }},\hspace{1em}\forall \varphi \in {H^{1}}(\Omega ).\]]]></tex-math></alternatives>
</disp-formula> 
This leads to the following algebraic system using <inline-formula id="j_info1211_ineq_202"><alternatives><mml:math>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$P1$]]></tex-math></alternatives></inline-formula> finite element 
<disp-formula id="j_info1211_eq_089">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:mi mathvariant="italic">ψ</mml:mi>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>⊤</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ R\psi ={B_{2}^{\top }}{\mathrm{u}_{1}}-{B_{1}^{\top }}{\mathrm{u}_{2}},\]]]></tex-math></alternatives>
</disp-formula> 
where <italic>R</italic> is the 2D Laplacian matrix. We impose <inline-formula id="j_info1211_ineq_203"><alternatives><mml:math>
<mml:mi mathvariant="italic">ψ</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn></mml:math><tex-math><![CDATA[$\psi =0$]]></tex-math></alternatives></inline-formula> at an arbitrary node to ensure the uniqueness.</p>
<fig id="j_info1211_fig_007">
<label>Fig. 1</label>
<caption>
<p>Mesh sample of the flow around cylinder problem.</p>
</caption>
<graphic xlink:href="info1211_g007.jpg"/>
</fig>
<p>We now consider a test problem derived from a benchmark problem described in Schäfer and Turek (<xref ref-type="bibr" rid="j_info1211_ref_023">1996</xref>). A mesh sample is shown in Fig. <xref rid="j_info1211_fig_007">1</xref>. The inflow and outflow conditions (on left/right boundaries) are 
<disp-formula id="j_info1211_eq_090">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>0.3</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>0.41</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo>×</mml:mo>
<mml:mn>4</mml:mn>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0.41</mml:mn>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
<mml:mtext>on</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">Γ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo fence="true" stretchy="false">}</mml:mo>
<mml:mo>×</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>0.41</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>0.3</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>0.41</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo>×</mml:mo>
<mml:mn>4</mml:mn>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0.41</mml:mn>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
<mml:mtext>on</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">Γ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">o</mml:mi>
<mml:mi mathvariant="italic">u</mml:mi>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>2.2</mml:mn>
<mml:mo fence="true" stretchy="false">}</mml:mo>
<mml:mo>×</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>0.41</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{l}\displaystyle {u_{1}}=\frac{0.3}{{0.41^{2}}}\times 4y(0.41-y),\hspace{2.5pt}{u_{2}}=0\hspace{1em}\text{on}\hspace{2.5pt}{\Gamma _{in}}=\{0\}\times (0,0.41),\\ {} \displaystyle {u_{1}}=\frac{0.3}{{0.41^{2}}}\times 4y(0.41-y),\hspace{2.5pt}{u_{2}}=0\hspace{1em}\text{on}\hspace{2.5pt}{\Gamma _{out}}=\{2.2\}\times (0,0.41).\end{array}\]]]></tex-math></alternatives>
</disp-formula> 
On the other parts of the boundary of Ω, homogeneous boundary conditions are prescribed (i.e. <inline-formula id="j_info1211_ineq_204"><alternatives><mml:math>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn></mml:math><tex-math><![CDATA[$\boldsymbol{u}=0$]]></tex-math></alternatives></inline-formula>). The parameter <italic>α</italic> in (<xref rid="j_info1211_eq_001">2.1</xref>) is set to 0. The centre of the internal cylinder is <inline-formula id="j_info1211_ineq_205"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0.25</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>0.2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(0.25,0.2)$]]></tex-math></alternatives></inline-formula> and the diameter is 0.1. The kinematic viscosity is <inline-formula id="j_info1211_ineq_206"><alternatives><mml:math>
<mml:mi mathvariant="italic">ν</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$\nu ={10^{-3}}$]]></tex-math></alternatives></inline-formula>. This gives a Reynolds number of <inline-formula id="j_info1211_ineq_207"><alternatives><mml:math>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:mi mathvariant="italic">e</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>30</mml:mn></mml:math><tex-math><![CDATA[$Re=30$]]></tex-math></alternatives></inline-formula> based on the diameter of the cylinder and the maximum of the inflow velocity. The domain is discretized by a non uniform mesh consisting of 1730 nodes and 3280 triangles, Fig. <xref rid="j_info1211_fig_007">1</xref>. The velocity field obtained with MATLAB command</p><preformat><monospace>quiver(p(:,1),p(:,2),u1,u2)</monospace>
</preformat>
<p>is shown in Fig. <xref rid="j_info1211_fig_008">2</xref>. Isobar lines of Fig. <xref rid="j_info1211_fig_009">3</xref> are obtained using the contour plotting function <monospace>kpde2dcont</monospace> from KPDE package (Koko, <xref ref-type="bibr" rid="j_info1211_ref_014">2016</xref>). The streamlines of Fig. <xref rid="j_info1211_fig_010">4</xref> are obtained by plotting the solution of (<xref rid="j_info1211_eq_088">7.3</xref>) with <monospace>kpde2dcont</monospace>.</p>
<p>Unfortunately, for 3D flows, there is no simple tool for graphics output. <monospace>quiver3</monospace> allows for visualization of 3D velocity fields but the result is often unsatisfactory. Plotting 3D functions (or their contours) is a non trivial problem. There is no simple subproblem like (<xref rid="j_info1211_eq_088">7.3</xref>) for streamlines in 3D.</p>
<fig id="j_info1211_fig_008">
<label>Fig. 2</label>
<caption>
<p>Velocity field of the flow around cylinder problem.</p>
</caption>
<graphic xlink:href="info1211_g008.jpg"/>
</fig>
<fig id="j_info1211_fig_009">
<label>Fig. 3</label>
<caption>
<p>Isobar lines for the flow around a cylinder problem.</p>
</caption>
<graphic xlink:href="info1211_g009.jpg"/>
</fig>
<fig id="j_info1211_fig_010">
<label>Fig. 4</label>
<caption>
<p>Streamlines for the flow around a cylinder problem.</p>
</caption>
<graphic xlink:href="info1211_g010.jpg"/>
</fig>
</sec>
</sec>
<sec id="j_info1211_s_021">
<label>8</label>
<title>Conclusion</title>
<p>We have proposed a fast MATLAB package for the numerical approximation of the generalized Stokes problem with the mini-element. Numerical experiments show that the proposed assembling functions have an optimal linear time-scaling. The proposed Uzawa conjugate gradient algorithm outperforms the MATLAB built-in solvers for 3D problems.</p>
</sec>
</body>
<back>
<ref-list id="j_info1211_reflist_001">
<title>References</title>
<ref id="j_info1211_ref_001">
<mixed-citation publication-type="journal"><string-name><surname>Alberty</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Carstensen</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Funken</surname>, <given-names>S.A.</given-names></string-name> (<year>1999</year>). <article-title>Remarks around 50 lines of matlab: short finite element implementation</article-title>. <source>Numerical Algorithms</source>, <volume>20</volume>, <fpage>117</fpage>–<lpage>137</lpage>.</mixed-citation>
</ref>
<ref id="j_info1211_ref_002">
<mixed-citation publication-type="journal"><string-name><surname>Alberty</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Carstensen</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Funken</surname>, <given-names>S.A.</given-names></string-name>, <string-name><surname>Klose</surname>, <given-names>R.</given-names></string-name> (<year>2002</year>). <article-title>Matlab implementation of the finite element method in elasticity</article-title>. <source>Computing</source>, <volume>69</volume>, <fpage>239</fpage>–<lpage>263</lpage>.</mixed-citation>
</ref>
<ref id="j_info1211_ref_003">
<mixed-citation publication-type="journal"><string-name><surname>Arnold</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Brezzi</surname></string-name>, <string-name><surname>Fortin M</surname>, <given-names>F.</given-names></string-name> (<year>1984</year>). <article-title>A stable finite element for the Stokes equations</article-title>. <source>Calcolo</source>, <volume>21</volume>, <fpage>337</fpage>–<lpage>344</lpage>.</mixed-citation>
</ref>
<ref id="j_info1211_ref_004">
<mixed-citation publication-type="journal"><string-name><surname>Babuska</surname>, <given-names>I.</given-names></string-name> (<year>1971</year>). <article-title>Error bounds for finite element method</article-title>. <source>Numerische Mathematik</source>, <volume>16</volume>, <fpage>322</fpage>–<lpage>333</lpage>.</mixed-citation>
</ref>
<ref id="j_info1211_ref_005">
<mixed-citation publication-type="journal"><string-name><surname>Baiocchi</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Brezzi</surname>, <given-names>F.</given-names></string-name>, <string-name><surname>Franca</surname>, <given-names>L.P.</given-names></string-name> (<year>1993</year>). <article-title>Virtual bubbles and Galerkin-Least-Squares methods</article-title>. <source>Computer Methods in Applied Mechanics and Engineering</source>, <volume>105</volume>, <fpage>125</fpage>–<lpage>141</lpage>.</mixed-citation>
</ref>
<ref id="j_info1211_ref_006">
<mixed-citation publication-type="journal"><string-name><surname>Brezzi</surname>, <given-names>F.</given-names></string-name> (<year>1974</year>). <article-title>On the existence, uniqueness and approximation of saddle-point problems arising from Lagrange multipliers</article-title>. <source>RAIRO</source>, <volume>8</volume>, <fpage>129</fpage>–<lpage>151</lpage>.</mixed-citation>
</ref>
<ref id="j_info1211_ref_007">
<mixed-citation publication-type="journal"><string-name><surname>Cahouet</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Chabard</surname>, <given-names>J.P.</given-names></string-name> (<year>1988</year>). <article-title>Some fast 3-D solvers for the generalized Stokes problem</article-title>. <source>International Journal for Numerical Methods in Fluids</source>, <volume>8</volume>, <fpage>269</fpage>–<lpage>295</lpage>.</mixed-citation>
</ref>
<ref id="j_info1211_ref_008">
<mixed-citation publication-type="book"><string-name><surname>Ern</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Guermond</surname>, <given-names>J.-L.</given-names></string-name> (<year>2002</year>). <source>Eléments finis: théorie, applications, mise en œuvre</source>. <series><italic>SMAI Mathématiques et Applications</italic></series>, Vol. <volume>36</volume>. <publisher-name>Springer</publisher-name>.</mixed-citation>
</ref>
<ref id="j_info1211_ref_009">
<mixed-citation publication-type="book"><string-name><surname>Fortin</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Glowinski</surname>, <given-names>R.</given-names></string-name> (<year>1983</year>). <source>Augmented Lagrangian Methods: Application to the Numerical Solution of Boundary-Value Problems</source>. <publisher-name>North-Holland</publisher-name>, <publisher-loc>Amsterdam</publisher-loc>.</mixed-citation>
</ref>
<ref id="j_info1211_ref_010">
<mixed-citation publication-type="chapter"><string-name><surname>Glowinski</surname>, <given-names>R.</given-names></string-name> (<year>2003</year>). <chapter-title>Numerical methods for fluids (part 3)</chapter-title>. In: <string-name><surname>Ciarlet</surname>, <given-names>P.G.</given-names></string-name>, <string-name><surname>Lions</surname>, <given-names>J.L.</given-names></string-name> (Eds.), <source>Numerical Methods for Fluids (Part 3), Handbook of Numerical Analysis, Vol. IX</source>. <publisher-name>North-Holland</publisher-name>, <publisher-loc>Amsterdam</publisher-loc>, pp. <fpage>3</fpage>–<lpage>1074</lpage>.</mixed-citation>
</ref>
<ref id="j_info1211_ref_011">
<mixed-citation publication-type="journal"><string-name><surname>Glowinski</surname>, <given-names>R.</given-names></string-name>, <string-name><surname>Guidoboni</surname>, <given-names>G.</given-names></string-name> (<year>2009</year>). <article-title>On the predoncitioned conjugate gradient solution of a Stokes problem with Robin-type boundary conditions</article-title>. <source>Comptes Rendus de l’Académie des Sciences Paris</source>, <volume>347</volume>(<issue>15</issue>), <fpage>903</fpage>–<lpage>908</lpage>.</mixed-citation>
</ref>
<ref id="j_info1211_ref_012">
<mixed-citation publication-type="book"><string-name><surname>Glowinski</surname>, <given-names>R.</given-names></string-name>, <string-name><surname>Le Tallec</surname>, <given-names>P.</given-names></string-name> (<year>1989</year>). <source>Augmented Lagrangian and Operator-splitting Methods in Nonlinear Mechanics. Studies in Applied Mathematics</source>. <publisher-name>SIAM</publisher-name>, <publisher-loc>Philadelphia</publisher-loc>.</mixed-citation>
</ref>
<ref id="j_info1211_ref_013">
<mixed-citation publication-type="journal"><string-name><surname>Koko</surname>, <given-names>J.</given-names></string-name> (<year>2007</year>). <article-title>Vectorized MATLAB codes for two-dimensional linear elasticity</article-title>. <source>Scientific Programming</source>, <volume>15</volume>, <fpage>157</fpage>–<lpage>172</lpage>.</mixed-citation>
</ref>
<ref id="j_info1211_ref_014">
<mixed-citation publication-type="other"><string-name><surname>Koko</surname>, <given-names>J.</given-names></string-name> (2016). Fast MATLAB assembly of fem matrices in 2d and 3d using cell array approach. <italic>International Journal of Modelling and Simulation</italic>, <italic>7</italic>.</mixed-citation>
</ref>
<ref id="j_info1211_ref_015">
<mixed-citation publication-type="book"><string-name><surname>Kwon</surname>, <given-names>Y.W.</given-names></string-name>, <string-name><surname>Bang</surname>, <given-names>H.</given-names></string-name> (<year>2000</year>). <source>The Finite Element Method Using MATLAB</source>. <publisher-name>CRC Press</publisher-name>, <publisher-loc>New York</publisher-loc>.</mixed-citation>
</ref>
<ref id="j_info1211_ref_016">
<mixed-citation publication-type="journal"><string-name><surname>Matsumoto</surname>, <given-names>J.</given-names></string-name> (<year>2005</year>). <article-title>A relationship between stabilized FEM and bubble functions element stabilization method with orthogonal basis for incompressible flows</article-title>. <source>Journal of Applied Mechanics</source>, <volume>8</volume>, <fpage>233</fpage>–<lpage>242</lpage>.</mixed-citation>
</ref>
<ref id="j_info1211_ref_017">
<mixed-citation publication-type="journal"><string-name><surname>Persson</surname>, <given-names>P.-O.</given-names></string-name>, <string-name><surname>Strang</surname>, <given-names>G.</given-names></string-name> (<year>2004</year>). <article-title>A simple mesh generator in Matlab</article-title>. <source>SIAM Review</source>, <volume>42</volume>, <fpage>329</fpage>–<lpage>345</lpage>.</mixed-citation>
</ref>
<ref id="j_info1211_ref_018">
<mixed-citation publication-type="other"><string-name><surname>Pierre</surname>, <given-names>R.</given-names></string-name> (1987). <italic>Regularization procedures of mixed finite element approximation of the Stokes problem</italic>. Research-Report RR-0673, INRIA.</mixed-citation>
</ref>
<ref id="j_info1211_ref_019">
<mixed-citation publication-type="journal"><string-name><surname>Pierre</surname>, <given-names>R.</given-names></string-name> (<year>1989</year>). <article-title>Regularization procedures of mixed finite element approximation of the Stokes problem</article-title>. <source>Numerical Methods for Partial Differential Equations</source>, <volume>5</volume>, <fpage>241</fpage>–<lpage>258</lpage>.</mixed-citation>
</ref>
<ref id="j_info1211_ref_020">
<mixed-citation publication-type="journal"><string-name><surname>Pierre</surname>, <given-names>R.</given-names></string-name> (<year>1995</year>). <article-title>Optimal selection of the bubble function in the stabilization of P1-P1 element for the Stokes problem</article-title>. <source>Numerical Methods for Partial Differential Equations</source>, <volume>32</volume>, <fpage>1210</fpage>–<lpage>1224</lpage>.</mixed-citation>
</ref>
<ref id="j_info1211_ref_021">
<mixed-citation publication-type="journal"><string-name><surname>Rahman</surname>, <given-names>T.</given-names></string-name>, <string-name><surname>Valdman</surname>, <given-names>J.</given-names></string-name> (<year>2013</year>). <article-title>Fast MATLAB assembly of FEM matrices in 2D and 3D: nodal elements</article-title>. <source>Applied Mathematics and Computation</source>, <volume>219</volume>, <fpage>7151</fpage>–<lpage>7158</lpage>.</mixed-citation>
</ref>
<ref id="j_info1211_ref_022">
<mixed-citation publication-type="journal"><string-name><surname>Rahman</surname>, <given-names>T.</given-names></string-name>, <string-name><surname>Valdman</surname>, <given-names>J.</given-names></string-name> (<year>2015</year>). <article-title>Fast MATLAB assembly of FEM matrices in 2D and 3D: edge elements</article-title>. <source>Applied Mathematics and Computation</source>, <volume>267</volume>, <fpage>252</fpage>–<lpage>263</lpage>.</mixed-citation>
</ref>
<ref id="j_info1211_ref_023">
<mixed-citation publication-type="journal"><string-name><surname>Schäfer</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Turek</surname>, <given-names>S.</given-names></string-name> (<year>1996</year>). <article-title>Benchmark computations of laminar flow around a cylinder</article-title>. <source>Notes on Numerical Fluid Mechanics</source>, <volume>52</volume>, <fpage>547</fpage>–<lpage>566</lpage>.</mixed-citation>
</ref>
</ref-list>
</back>
</article>