<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Aptos;
        panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
        {font-family:Monaco;
        panose-1:0 0 0 0 0 0 0 0 0 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:10.0pt;
        font-family:"Calibri",sans-serif;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        font-size:10.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        mso-ligatures:none;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:887187173;
        mso-list-template-ids:1829015648;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7 ;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7 ;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7 ;
        mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7 ;
        mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7 ;
        mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7 ;
        mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7 ;
        mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7 ;
        mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7 ;
        mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1
        {mso-list-id:1855069142;
        mso-list-template-ids:1362398090;}
@list l2
        {mso-list-id:2078162847;
        mso-list-template-ids:-80975688;}
@list l2:level1
        {mso-level-start-at:2;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style>
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt">Original email may have been sent to the incorrect place.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">See below.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">-Ling<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<div id="mail-editor-reference-message-container">
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="margin-bottom:12.0pt"><b><span style="font-size:12.0pt;font-family:"Aptos",sans-serif;color:black">From:
</span></b><span style="font-size:12.0pt;font-family:"Aptos",sans-serif;color:black">Zou, Ling <lzou@anl.gov><br>
<b>Date: </b>Sunday, March 3, 2024 at 10:34 AM<br>
<b>To: </b>petsc-users <petsc-users-bounces@mcs.anl.gov><br>
<b>Subject: </b>'Preconditioning' with lower-order method<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">Hi all,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">I am solving a PDE system over a spatial domain. Numerical methods are:<o:p></o:p></span></p>
<ul style="margin-top:0in" type="disc">
<li class="MsoListParagraph" style="margin-left:0in;mso-list:l0 level1 lfo1"><span style="font-size:11.0pt">Finite volume method (both 1<sup>st</sup> and 2<sup>nd</sup> order implemented)<o:p></o:p></span></li><li class="MsoListParagraph" style="margin-left:0in;mso-list:l0 level1 lfo1"><span style="font-size:11.0pt">BDF1 and BDF2 for time integration.<o:p></o:p></span></li></ul>
<p class="MsoNormal"><span style="font-size:11.0pt">What I have noticed is that 1<sup>st</sup> order FVM converges much faster than 2<sup>nd</sup> order FVM, regardless the time integration scheme. Well, not surprising since 2<sup>nd</sup> order FVM introduces
 additional non-linearity.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">I’m thinking about two possible ways to speed up 2<sup>nd</sup> order FVM, and would like to get some thoughts or community knowledge before jumping into code implementation.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Say, let the 2<sup>nd</sup> order FVM residual function be
<b><i>F</i></b><sub>2</sub>(<b><i>x</i></b>) = 0; and the 1<sup>st</sup> order FVM residual function be
<b><i>F</i></b><sub>1</sub>(<b><i>x</i></b>) = 0.<o:p></o:p></span></p>
<ol style="margin-top:0in" start="1" type="1">
<li class="MsoListParagraph" style="margin-left:0in;mso-list:l1 level1 lfo2"><span style="font-size:11.0pt">Option – 1, multi-step for each time step<o:p></o:p></span></li></ol>
<p class="MsoNormal" style="margin-left:.5in"><span style="font-size:11.0pt">Step 1: solving
<b><i>F</i></b><sub>1</sub>(<b><i>x</i></b>) = 0 to obtain a temporary solution <b>
<i>x</i></b><sub>1</sub><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="font-size:11.0pt">Step 2: feed
<b><i>x</i></b><sub>1</sub> as an initial guess to solve <b><i>F</i></b><sub>2</sub>(<b><i>x</i></b>) = 0 to obtain the final solution.<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="font-size:11.0pt">[Not sure if gain any saving at all]<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="font-size:11.0pt"> <o:p></o:p></span></p>
<ol style="margin-top:0in" start="2" type="1">
<li class="MsoListParagraph" style="margin-left:0in;mso-list:l2 level1 lfo3"><span style="font-size:11.0pt">Option -2, dynamically changing residual function F(x)<o:p></o:p></span></li></ol>
<p class="MsoListParagraph"><span style="font-size:11.0pt">In pseudo code, would be something like.<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:11.0pt"> <o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-family:Monaco">snesFormFunction(SNES snes, Vec u, Vec f, void *)</span><span style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-family:Monaco">{</span><span style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-family:Monaco">  if (snes.nl_it_no < 4) // 4 being arbitrary here</span><span style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-family:Monaco">    f = F1(u);</span><span style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-family:Monaco">  else</span><span style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-family:Monaco">    f = F2(u);</span><span style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-family:Monaco">}</span><span style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-family:Monaco"> </span><span style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="font-size:11.0pt">I know this might be a bit crazy since it may crash after switching residual function, still, any thoughts?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Monaco"> </span><span style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Monaco">Best,</span><span style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Monaco"> </span><span style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Monaco">-Ling</span><span style="font-size:11.0pt"><o:p></o:p></span></p>
</div>
</div>
</div>
</div>
</body>
</html>