[petsc-dev] proposed minor PetscPartitioner changes

Jed Brown jed at jedbrown.org
Sat Nov 11 12:33:44 CST 2017

Matthew Knepley <knepley at gmail.com> writes:

> On Sat, Nov 11, 2017 at 1:12 PM, Jed Brown <jed at jedbrown.org> wrote:
>> Matthew Knepley <knepley at gmail.com> writes:
>> >> Matrix and graph are equivalent concepts.
>> >
>> >
>> > This is clearly wrong. A matrix is the coordinate representation of a
>> > linear operator, and thus has a specific
>> > behavior under coordinate transformations. A graph is just connectivity,
>> > and really just a relation. I cannot
>> > count the number of times Barry has ranted about this on petsc-maint
>> > (usually about Vecs and arrays). The
>> > mathematical object is not its data structure.
>> A graph Laplacian certainly does transform under coordinate
>> transformation and indeed, we use that property to design effective
>> coarsening strategies.  That one basis strikes you as intrinsically
>> "more canonical" does not mean it isn't a linear operator.
> That is one operator. This is argument by anecdote. An arbitrary graph
> is not a linear operator, but an arbitrary matrix definitely is (the
> coordinate representation of one).

Dude, we solve linear systems and eigenproblems for arbitrary graphs.
It isn't an anecdote.

Barry (rightly) objects to a 2D array representing a function on a grid
being considered a Matrix.  We don't "apply" it as a linear operator.
There is no "vector" on which it operates.

But we absolutely do with a graph.  Our vectors are functions at the
vertices of the graph.  Applying the graph Laplacian tells us about
local compatibility of the field over the vertices.  It is entirely
analogous to fields over a grid.  You don't need a concept of "grid
refinement" to have matrices.

More information about the petsc-dev mailing list