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