Hi, all:
I have create a IS for every cell in dmplex by the following steps:
1. Creating a integer array which size is matched to the number of cells.
2. Use the routine "ISCreateGeneral" to create a corresponding IS.

Is there any routine which can create a IS for every cell in the dmplex directly?, and what is the difference between ISCopy() and ISDuplicate()?

Thanks,
leejearl

On 2017年05月28日 19:35, Matthew Knepley wrote:
On Sun, May 28, 2017 at 6:02 AM, Lawrence Mitchell <lawrence.mitch...@imperial.ac.uk <mailto:lawrence.mitch...@imperial.ac.uk>> wrote:



    > On 28 May 2017, at 09:16, leejearl <leeje...@126.com
    <mailto:leeje...@126.com>> wrote:
    >
    > Hi, Dave: I want to store a PetscInt tag for every cell of the
    dmplex with the struct. Thanks,

    You probably want to use a DMLabel to store these ids. Unless you
    have a different I'd for every cell.


Several things to think about:

1) If you want to store a tag for EVERY cell, then just use an IS. Cell numberings are guaranteed to be
    contiguous and start from 0.

2) If you want to tag only SOME cells, then use a DMLabel as Lawrence suggests. This uses hash tables
    for fast construction, and sorted lists for fast search and retrieval.

3) If you want to store a VARIABLE number of data items per cell, then use a Section and an array that you allocate.

   Matt


    Lawrence




--
What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.
-- Norbert Wiener

http://www.caam.rice.edu/~mk51/ <http://www.caam.rice.edu/%7Emk51/>

--
李季
西北工业大学航空学院流体力学系
Phone: 17792092487
QQ: 188524324

Reply via email to