<div dir="ltr"><div>Hi,</div><div><br></div><div>My graduate student and I are new to petsc -- we have worked through some of the PDE examples, and modified them to use solve a single-variable nonlinear PDE relevant to our research, by defining appropriate callback functions (i.e. problem definition, jacobian of residual, and initial condition).  Although we are not numerical specialists, this seemed relatively straightforward, and we are very much appreciative!</div><div><br></div><div>Now we are looking to use it to solve a system of linear boundary-value problems.  This seems like it ought to be broadly similar in structure despite the lack of timestepping (i.e. one still needs a problem definition, residual jacobian, and initial guess), with the main complication being the addition of multiple fields/components.</div><div><br></div><div>We've found simple examples where a single linear BVP is solved directly using KSP (which we've been able to run and modify successfully), but this seems rather low-level, and we've found no KSP examples that involved multple variables, and manually keeping track of which blocks of a vector / matrix correspond to which variable seems a bit of a headache.  In contrast, we've found examples with multiple components, including one (ex19.c) with nice notation such as</div><div>f[j][i].u = </div><div>f[j][i].v =</div><div>However, this seems much more complicated than our case, and we are struggling to understand it (i.e., the the NonlinearGS-related code optional?)</div><div><br></div><div>For someone who approaches this very much as an end-user (i.e. quick solution to BVPs/PDEs on simple grids), I'm thinking a simple nonlinear system example is likely to be the way to go -- it would resemble the PDEs we've already solved, work for nonlinear problems if we get to them, and in the event that our equations are actually linear, then the Jacobian would simply be the matrix one creates in a simple KSP example (which, as an added bonus, could be approximated).</div><div><br></div><div>Okay, to our questions:</div><div>(1) Does this seem reasonable?  Are we missing an important sense of the overall structure of PETSc?</div><div>(2) Can multi-variable BVPs be solved in a user-friendly way (a.u, a.v, etc.) using the linear solvers?</div><div>(3) If the nonlinear solvers allow a more user-friendly interface, are there any special considerations to keep in mind?</div><div>(4) Most generally, where else should we look for inspiration?  Are there more detailed tutorials than the examples?</div><div><br></div><div>Thanks in advance for your time and any thoughts.</div><div><br></div><div>Scott Norris</div><div>Department of Mathematics</div><div>Southern Methodist University</div><div><br></div><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Dr. Scott A. Norris</div><div dir="ltr"><span style="font-size:12.8px">Associate Professor of Mathematics</span><br></div><div dir="ltr"><span style="font-size:12.8px">Director of Undergraduate Studies</span></div><div style="font-size:12.8px"><a href="http://faculty.smu.edu/snorris" style="font-size:12.8px" target="_blank">http://faculty.smu.edu/snorris</a><br></div><div dir="ltr" style="font-size:12.8px"><div></div></div><div dir="ltr"><a href="https://smu-snorris.youcanbook.me" target="_blank">https://smu-snorris.ycb.me</a></div><div><span style="font-size:12.8px">Clements Hall, Room 239</span><br></div><div dir="ltr"><div><br><br></div></div></div></div></div></div></div></div></div>
</div>