<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<br class="">
<div><br class="">
<blockquote type="cite" class="">
<div class="">On Dec 3, 2021, at 2:52 AM, Pierre Seize <<a href="mailto:pierre.seize@onera.fr" class="">pierre.seize@onera.fr</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div text="#000000" bgcolor="#FFFFFF" class="">
<p class="">Hello, I want to set a TS object for the time integration of my FV CFD solver.</p>
<p class="">The equation is M dQ/dt = f(Q) where M is a diagonal mass matrix filled with the cell volumes from my FV discretisation. I've read the PETSc manual and I found some interesting mails in the petsc-users archive, but I still do not understand something.</p>
To me, there is three ways I could set my TS :<br class="">
<blockquote class=""><tt class="">1. F(t, x, x') = Mx' - f(x)   and G(t, x) = 0 (default)</tt><tt class=""><br class="">
</tt><tt class="">2. F(t, x, x') = Mx'          and G(t, x) = f(x)</tt><tt class=""><br class="">
</tt><tt class="">3. F(t, x, x') = x' (default) and G(t, x) = M^{-1} f(x)</tt></blockquote>
<p class="">From (<a class="moz-txt-link-freetext" href="https://lists.mcs.anl.gov/pipermail/petsc-dev/2017-October/021545.html">https://lists.mcs.anl.gov/pipermail/petsc-dev/2017-October/021545.html</a>), I think that unless I'm using an IMEX method, whatever
 F and G, it does F <-- F - G internally, but I would like to be sure.<br class="">
</p>
<p class=""><br class="">
</p>
<p class="">Will there be a difference be if I use an explicit method, as Euler or RK ? What about implicit method such as BEuler or Theta methods ?</p>
</div>
</div>
</blockquote>
<div>To use an explicit method, you must use the explicit form (option 3 above). For implicit methods, all the three options will work.</div>
<br class="">
<blockquote type="cite" class="">
<div class="">
<div text="#000000" bgcolor="#FFFFFF" class="">
<p class="">If I use an implicit method (beuler), what happens if I don't give F' and/or G' ? Are their matrix-vector product approximated with finite difference ?<br class="">
</p>
</div>
</div>
</blockquote>
<div>If the Jacobian is not provided, it will be approximated with finite-difference. If you prefer a matrix-free implementation, you can use -snes_mf.</div>
<br class="">
<blockquote type="cite" class="">
<div class="">
<div text="#000000" bgcolor="#FFFFFF" class="">
<p class=""></p>
<p class="">What I understand is that for implicit-explicit methods, "G is treated explicitly while F is treated implicitly". In this case, am I right to assume it's useless to give the RHS Jacobian ? Then, when is G' used ?</p>
</div>
</div>
</blockquote>
Right. The RHS Jacobian (G') is not needed for IMEX. G’ is used if you switch to an implicit method such as beuler.</div>
<div><br class="">
<blockquote type="cite" class="">
<div class="">
<div text="#000000" bgcolor="#FFFFFF" class="">
<p class="">If I do not use an IMEX method, are the 3 formulations equivalent ?</p>
</div>
</div>
</blockquote>
<div>Option 3 allows you to switch between explicit methods and implicit methods at runtime. Of course, it requires inverting the mass matrix, which is fine in your case but may be difficult for other applications (where option 1 can be used).  Option 2 is
 mostly useful for IMEX.</div>
<div><br class="">
</div>
<div>Hong (Mr.)</div>
<blockquote type="cite" class="">
<div class="">
<div text="#000000" bgcolor="#FFFFFF" class="">
<p class=""><br class="">
</p>
<p class="">Thank you for your help</p>
<p class=""><br class="">
</p>
<p class="">Pierre Seize<br class="">
</p>
<p class=""><br class="">
</p>
</div>
</div>
</blockquote>
</div>
<br class="">
</body>
</html>