<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</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 Mar 25, 2022, at 1:14 PM, Xiong, Jing via petsc-users <<a href="mailto:petsc-users@mcs.anl.gov" class="">petsc-users@mcs.anl.gov</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div style="font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;" class="">
Good afternoon,
<div class=""><br class="">
</div>
<div class="">Thanks for all your help.</div>
<div class="">I got a<span style="background-color: rgb(255, 255, 255); display: inline !important;" class=""><span class=""> </span>question about how to solve the DAE step by step using PETSC4PY.</span></div>
<div class="">I got two DAE systems, let's say f1(x1, u1) and f2(x2, u2). The simplified algorithm I need to implement is as follows:</div>
<div class="">Step 1: solve f1 for 1 step.</div>
<div class="">Step 2: use part of x1 as input for f2, which means u2 = x1[:n].</div>
<div class="">Step 3: solve f2 for one step with u2 = x1[:n].</div>
<div class="">Step 4: use part of x2 as input for f1, which means u1 = x2[:m].</div>
<div class=""><br class="">
</div>
<div class="">I'm not able to find any examples of how to use PETSC4PY in such scenarios. If using the "scikits.odes.dae" package, it is like:</div>
<blockquote style="margin-top: 0px; margin-bottom: 0px;" class="">
<div class="">daesolver.init_step(timeInit, XInit, XpInit)</div>
<div class="">daesolver.step(time)</div>
</blockquote>
</div>
</div>
</blockquote>
<div><br class="">
</div>
<div>Jing,
<div class=""><br class="">
</div>
<div class="">You can certainly do the same thing in petsc4py with</div>
<div class=""><br class="">
</div>
<div class="">ts.setMaxTime(t1)</div>
<div class="">ts.solve() // integrate over time interval [0,t1]</div>
<div class="">ts.setTime(t1)</div>
<div class="">
<div class="">ts.setMaxTime(t2)</div>
<div class="">ts.solve()  // integrate over time interval [t1,t2]</div>
</div>
<div class="">...</div>
<div class=""><br class="">
</div>
<div class="">There are also APIs that allow you to control the step size (ts.setTimeStep) and the final step behavior (ts.setExactFinalTime).</div>
<div class="">The C example src/ts/tutorials/power_grid/stability_9bus/ex9busdmnetwork.c might be helpful to you. Most of the C examples can be reproduced in python with similar APIs.</div>
<div class=""><br class="">
</div>
<div class="">Hong</div>
</div>
<br class="">
<blockquote type="cite" class="">
<div class="">
<div style="font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;" class="">
<div class="">Please let me know if there are any examples I can refer to. Thank you.</div>
<blockquote style="margin-top: 0px; margin-bottom: 0px;" class="">
<div class=""><br class="">
</div>
</blockquote>
<span class=""></span>Best,</div>
<div style="font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;" class="">
Jing</div>
</div>
</blockquote>
</div>
<br class="">
</body>
</html>