Thanks for your kind reply. It helps me very much.

leejearl

On 2017年05月29日 15:47, Dave May wrote:

On Mon, 29 May 2017 at 08:39, leejearl <leeje...@126.com <mailto:leeje...@126.com>> wrote:

    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?,


I don't think so as Plex would have to somehow know what geom quantity to use to define the size of IS (e.g. vertex, cell, face, edge)

    and what is the difference between ISCopy() and ISDuplicate()?


ISDuplicate allocates memory for a new with the same comm and layout as the original IS AND copies values from the original IS into the new one. (Note that this is slightly different from other duplicate functions like VecDuplicate which only allocate memory and does not copy values from the orig vec.)

ISCopy does not allocate memory for the IS (passed as the second arg), it only performs the copy of values.

Thanks
  Dave



    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


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

Reply via email to