bueler / p4pdes

C and Python examples from my book on using PETSc and Firedrake to solve PDEs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Chapters 2 and 3 (more minor comments)

ckhroulev opened this issue · comments

I used revision 58a575b.

  • tex/linearsystem.tex:152

    Thus if $Ax=b$ for some $x$ then row $i$ of $A$ is on the rank $m$ processor if and if entry $i$ of $b$ is on the rank $m$ processor.

    Should this be "if and only if"?

  • tex/linearsystem.tex:558

    Our $A$ is allocated as dense so the exact LU factorization requires no fill-in.

    Define fill-in or provide a reference.

  • tex/linearsystem.tex:691

    to time some bigger solves

    Consider saying "some bigger systems". "Solve" is rarely a noun.

  • tex/linearsystem.tex:706

    We can try a direct solve

    Should probably say "a direct solver".

  • tex/linearsystem.tex:758

    X11 windows are installed.

    Consider saying "if PETSc was built with the X Window System support" (see https://en.wikipedia.org/wiki/X_Window_System).

  • tex/linearsystem.tex:794

    For any nontrivial preconditioner, even one based on diagonal blocks of a tridiagonal matrix as here, different sets of rows ``communicate'' at the preconditioning stage depending on the processor count.

    This sentence should probably be re-phrased. (I can't parse it.)

  • tex/linearsystem.tex:798

    significant spectral effect.

    Hmm. There must be a better way to say this.

  • tex/structured.tex:36

    $c\rho \partial u/\partial t = - \Div\bq + f$

    Add \, (c\rho\, \partial...) to get better spacing.

  • tex/structured.tex:243

    i.e.~pass-by-reference

    I.e. via an output argument.

  • tex/structured.tex:42

    in the next Chapter we apply a finite element approach

    Reference the chapter. (It's not the next one currently.)

  • tex/structured.tex:547

    and we explicitly ask for the \pVec objects to be assembled by calling \texttt{VecAssemblyBegin/End()}

    There is no need to do this if you access Vecs using DMDAVecGetArray() and DMDAVecRestoreArray().

    When VecSetValues() is used, VecAssemblyBegin/End() is needed, though.