I have no problem updating any of Ed's examples if we need to with each release, so the burdern doesn't fall on him. We simply make a fork of his repository with a new branch and update that and make a MR to Ed for each release and he can have a new branch or tag of his examples for each new PETSc release.
Barry We just make this part of our release process. > On Oct 30, 2020, at 9:38 PM, Jed Brown <[email protected]> wrote: > > This is fine until an API for 3.15 changes and we need to sync with Ed's > repository to make the tests pass. (You could argue we shouldn't do that to > the interfaces that Ed has used for N releases, but it's bound to happen > eventually.) > > Junchao Zhang <[email protected]> writes: > >> Ed, >> I agree with all what you said. My thought is we don't need to add each >> of your examples into corresponding src/XX/tutorials/. Your repo can be a >> standalone directory and we just need PETSc CI to be able to run them. >> --Junchao Zhang >> >> >> On Fri, Oct 30, 2020 at 9:00 PM Ed Bueler <[email protected]> wrote: >> >>> Junchao-- >>> >>>> I was wondering if it is feasible to add your example programs to PETSc >>> tests so that readers will always be able to run your code. >>> >>> Thanks for asking. There was a deliberate idea here, which I want >>> to explain, and the petsc-dev list is the right spot. (Sorry if this is >>> more than you want to know.) >>> >>> First, the example programs are in a completely public spot: >>> https://github.com/bueler/p4pdes >>> No one needs to own the book to run the codes, for example. I welcome >>> corrections/feedback/improvements through the issues interface at that >>> repo, whether or not connected they are connected to the book text. >>> >>> In fact, here are things one may observe about the petsc tutorial >>> src/XX/tutorials/exN.c) examples: >>> >>> 1. They may or may not point to a clear document(s) which can help a >>> beginner know how they are designed. >>> 2. They don't have a uniform style because of different authorship. >>> 3. They are not ordered by difficulty in any clear way. (E.g. ex1.c may >>> not be the best example to start with, and the beginner would not be able >>> to grep to find "easy" even if they can find some function from the API >>> that way.) >>> 4. Their features evolve over time as developers work with the examples >>> as regression/feature tests. (See src/snes/tutorials/ex5.c.) >>> >>> Note that all of these facts are exactly what petsc devs would want! That >>> is, the way the set of examples in the petsc tree are structured helps with >>> fast development by a diverse dev team. >>> >>> However the same facts make the examples less friendly to those who don't >>> already know petsc. Thus my opinion about the book's example codes is that >>> a single source of stable examples, ordered by difficulty, closely tied to >>> beginner documentation, of uniform style, and kinda boring to most petsc >>> devs, is something I can supply and maintain. So I'll be acting as editor >>> to preserve the intent and simplicity of the examples. >>> >>> Does that make sense? >>> >>> Needless to say, fork my repo all you want! The MIT license is nice and >>> permissive. >>> >>> Ed >>> >>> >>> >>> On Fri, Oct 30, 2020 at 4:50 PM Junchao Zhang <[email protected]> >>> wrote: >>> >>>> Prof. Ed Bueler, >>>> Congratulations on your book. I am eager to read it. >>>> I was wondering if it is feasible to add your example programs to >>>> PETSc tests so that readers will always be able to run your code. >>>> --Junchao Zhang >>>> >>>> >>>> On Thu, Oct 29, 2020 at 8:29 PM Ed Bueler <[email protected]> wrote: >>>> >>>>> All -- >>>>> >>>>> SIAM Press just published my new book "PETSc for Partial Differential >>>>> Equations: Numerical Solutions in C and Python": >>>>> >>>>> https://my.siam.org/Store/Product/viewproduct/?ProductId=32850137 >>>>> >>>>> The book is available both as a paperback and an e-book with working >>>>> links. A SIAM member discount is available, of course. >>>>> >>>>> This book is a genuine introduction which does not assume you have used >>>>> PETSc before, and which should make sense even if your differential >>>>> equations knowledge is basic. The prerequisites are a bit of programming >>>>> in C and a bit of numerical linear algebra, roughly like the main ideas of >>>>> Trefethen and Bau, but even that is reviewed and summarized. I've made an >>>>> effort to introduce discretizations from the beginning, especially finite >>>>> differences and elements. >>>>> >>>>> The book is based on a collection of example programs at >>>>> https://github.com/bueler/p4pdes. Most of these codes call PETSc >>>>> directly through the C API, but the last two chapters have Python codes >>>>> using UFL and Firedrake. Nonetheless the book contains ideas, >>>>> mathematical >>>>> and computational; it complements, but does not replace, the PETSc User's >>>>> Manual and the tutorial examples in the PETSc source. Concepts are >>>>> explained and illustrated, with sufficient context to facilitate further >>>>> development. Performance (optimality) and parallel scalability are the >>>>> primary goals, so preconditioners including multigrid are central threads, >>>>> and run-time solver options are explored in both the text and the >>>>> exercises. >>>>> >>>>> Here is the place to appreciate the usual PETSc suspects for their >>>>> comments on drafts, and help in writing this book: Barry, Jed, Matt, Dave, >>>>> Rich, Lois, Patrick, Mark, Satish, David K., and many others. Also let me >>>>> say that SIAM Press has nothing but professionals who are nice to work >>>>> with >>>>> too; send them your book idea! >>>>> >>>>> Ed >>>>> >>>>> -- >>>>> Ed Bueler >>>>> Dept of Mathematics and Statistics >>>>> University of Alaska Fairbanks >>>>> Fairbanks, AK 99775-6660 >>>>> 306C Chapman >>>>> >>>> >>> >>> -- >>> Ed Bueler >>> Dept of Mathematics and Statistics >>> University of Alaska Fairbanks >>> Fairbanks, AK 99775-6660 >>> 306C Chapman >>>
