A PETSc linked-list object might also be useful in implementations of characteristics-based advection schemes such as semi-Lagrangian advection. Perhaps you could give it some sorting methods too?
but then again, this is just "stinking computer science"... Rich On Dec 13, 2005, at 1:22 PM, Richard Tran Mills wrote: > I agree with Matt's take on this. Having a linked-list to be used > throughout PETSc as appropriate could be quite useful. > > I am a fan of doubly-linked list implementations like the one > described at: > > http://www.cs.utk.edu/~plank/plank/classes/cs360/360/notes/Dllists/ > > (This is part of Jim Plank's libFDR library, which also includes a > nice red-black tree implementation.) > > Jim's Dllist stuff stores "Jvals" which are a union of all intrinsic C > data types -- that way you can stash whatever you want in a node of > the list. I don't know if an approach that general is needed in PETSc > or not, but the flexibility is nice. > > --Richard > > Matthew Knepley wrote: > >> If we are really going to do this, shouldn't we approach it as a >> data structures problem? We need a certain structure, which here >> appears >> to be "vector", or maybe "list". We make a general interface, and then >> code up some implementation, like a linked list. Then we can use this >> interface/impl other places in the code, like the LU part, rather than >> rely on our old cut&paste strategy. >> Matt
