(2006/04/07)

Mesh data structure:
--------------------

Here I will now describe the mesh data structure that is used in the
AdvDiffReact code.  The mesh data structure is subdivided into several
different objects:

numip: int

  This gives the number of nodes are are uniquely owned by the processor.

numcp: int

  This gives the number of nodes are owned by other processors but are shared
  by elements on this processor.

nump: int

  This gives the total number of nodes that are owned or shared on this
  processor (nump = numip + numcp).

ipindx: Epetra_intSerialDenseVector

  This array (size=numip) gives the *1-based* global IDs of the nodes that are
  owned by this processor.  WARNING!  This list must be sorted!

ipcoords: Epetra_SerialDenseMatrix

  This matrix (rows=numip,cols=2) gives the x and y cooridinates of the
  local nodes given in ipindx(i).  Specifically:

    global node ID ipidx(i) is at (x,y) coords = (ipcoords(i,0),ipcoords(i,1)),

      for i = 0 ... numip-1

pindx: Epetra_IntSerialDenseVector

  This array (size=nump) gives the *1-based* global IDs of all of the
  processors owned or shared by this processor.  Specifically:

     pindx(i) = ipindx(i), for i = 0 ... numip-1.

  WARNING!  This list must be sorted!

pcoords: Epetra_SerialDenseMatrix

  This matrix (rows=nump,cols=2) gives the x and y cooridinates of
  all of the nodes owned or shared on this processor.  Specifically:

    (pcoords(i,0),pcoords(i,1)) = (ipcoords(i,0),ipcoords(i,1)),

      for i = 0 ... numip-1

numelems: int

  This gives the number of elements owned by this processor.

t: Epetra_IntSerialDenseMatrix

  This matrix (rows=numelems,cols=3) gives the node ids of each
  of the numelems elements.  Specifically:

     (t(k,0),t(k,1),t(k,2)), for k = 0 ... numelems-1

  gives the *global* node IDs of the three nodes in the element listed
  in clockwise rotation!

numedges: int

  Gives the number of edges on a boundary for elements on this processor.

e: Epetra_IntSerialDenseMatrix

  This matrix (rows=numedges,cols=3) gives the global node ids for each
  boundary edge and a boundary marker.  Specifically:


   (e(j,0),e(j,1)) = *global* node IDs for edge j

   e(j,2) = boundary marker for edge j (2 == Neuman boundarys)

      for j = 0 ... numedges-1

  There does not appear to be any 
