<div dir="ltr"><div dir="ltr">On Mon, Jul 17, 2023 at 10:55 AM Ilya Fursov <<a href="mailto:ilya.foursov.7bd@gmail.com">ilya.foursov.7bd@gmail.com</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Dear to whom is may concern,<div><br></div><div>A while ago I tried to use TS events in my time stepping code, and I found erroneous behaviour of the event resolution algorithm. For that particular example it resulted in long series of extremely small time steps. After examining the TSEvent handler code, I found some places with obvious errors, but in general it was difficult to figure out exactly what was going on, and whether there were other errors.</div><div><br></div><div>I decided to try and fix that stuff myself, and my choice was to refactor the code from scratch. I abandoned the current (in my opinion, obscure) code design of TSEventHandler, and wrote my own version, however using some ideas from the original code. The refactoring mostly affected the algorithmic part in tsevent.c source file. The original constructors/destructors, setters/getters have almost not changed. Also, some tiny changes occurred in ts.c and tsadapt.c, where interaction with events took place.</div><div><br></div><div>I've made a number of tests, ensuring the new code runs smoothly. These tests also revealed the current/old petsc code results in lots of errors. I didn't take notes on the exact numbers, but from my impression, the old code failed in 70%-90% of my tests. </div><div><br></div><div>So, I would like to contribute to the project what I've done. Well, I've never done such thing before, I hope the process goes smoothly.</div><div>I've read the instructions on submitting the code, and one thing I wanted to ask -</div><div>Do I need to start a feature branch from "release" integration branch?</div></div></blockquote><div><br></div><div>No, you can start from main. This is what we do for contributions like this that are not straight bugfixes.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>On one hand, I only did bug fixing. On the other hand, I've replaced one public API function (plus a runtime option), albeit a very small one, which didn't work well with the logic of the new code.</div><div><br></div><div>Please advise if there might be any other things to consider while submitting the code.</div></div></blockquote><div><br></div><div>Once you open the MR, we can review.</div><div><br></div><div>  Thanks,</div><div><br></div><div>     Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Best Regards,</div><div>Ilya</div></div>
</blockquote></div><br clear="all"><div><br></div><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div><div><br></div><div><a href="http://www.cse.buffalo.edu/~knepley/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div></div></div></div>