File: DMSwarmSortGetAccess.html

package info (click to toggle)
petsc 3.10.3%2Bdfsg1-5
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 209,064 kB
  • sloc: ansic: 587,333; python: 29,696; makefile: 12,445; fortran: 11,626; f90: 9,677; cpp: 8,768; sh: 1,027; xml: 621; objc: 445; csh: 194; java: 13
file content (59 lines) | stat: -rw-r--r-- 5,221 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD> <link rel="canonical" href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DMSWARM/DMSwarmSortGetAccess.html" />
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>DMSwarmSortGetAccess</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
   <div id="version" align=right><b>petsc-3.10.3 2018-12-18</b></div>
   <div id="bugreport" align=right><a href="mailto:petsc-maint@mcs.anl.gov?subject=Typo or Error in Documentation &body=Please describe the typo or error in the documentation: petsc-3.10.3 v3.10.3 docs/manualpages/DMSWARM/DMSwarmSortGetAccess.html "><small>Report Typos and Errors</small></a></div>
<A NAME="DMSwarmSortGetAccess"><H1>DMSwarmSortGetAccess</H1></A>
Setups up a DMSwarm point sort context for efficient traversal of points within a cell 
<H3><FONT COLOR="#CC3333">Synopsis</FONT></H3>
<PRE>
PETSC_EXTERN <A HREF="../Sys/PetscErrorCode.html#PetscErrorCode">PetscErrorCode</A> <A HREF="../DMSWARM/DMSwarmSortGetAccess.html#DMSwarmSortGetAccess">DMSwarmSortGetAccess</A>(<A HREF="../DM/DM.html#DM">DM</A> dm)
</PRE>
Not collective
<P>
<H3><FONT COLOR="#CC3333">Input parameter</FONT></H3>
<DT><B>dm </B> -a DMSwarm object
<br>
Calling <A HREF="../DMSWARM/DMSwarmSortGetAccess.html#DMSwarmSortGetAccess">DMSwarmSortGetAccess</A>() creates a list which enables easy identification of all points contained in a
given cell. This method does not explicitly sort the data within the DMSwarm based on the cell index associated
with a DMSwarm point.
<P>
The sort context is valid only for the DMSwarm points defined at the time when <A HREF="../DMSWARM/DMSwarmSortGetAccess.html#DMSwarmSortGetAccess">DMSwarmSortGetAccess</A>() was called.
For example, suppose the swarm contained NP points when <A HREF="../DMSWARM/DMSwarmSortGetAccess.html#DMSwarmSortGetAccess">DMSwarmSortGetAccess</A>() was called. If the user subsequently
adds 10 additional points to the swarm, the sort context is still valid, but only for the first NP points.
The indices associated with the 10 new additional points will not be contained within the sort context.
This means that the user can still safely perform queries via <A HREF="../DMSWARM/DMSwarmSortGetPointsPerCell.html#DMSwarmSortGetPointsPerCell">DMSwarmSortGetPointsPerCell</A>() and
<A HREF="../DMSWARM/DMSwarmSortGetPointsPerCell.html#DMSwarmSortGetPointsPerCell">DMSwarmSortGetPointsPerCell</A>(), however the results return will be based on the first NP points.
<P>
If any DMSwam re-sizing method is called after <A HREF="../DMSWARM/DMSwarmSortGetAccess.html#DMSwarmSortGetAccess">DMSwarmSortGetAccess</A>() which modifies any of the first NP entries
in the DMSwarm, the sort context will become invalid. Currently there are no guards to prevent the user from
invalidating the sort context. For this reason, we highly recommend you do not use <A HREF="../DMSWARM/DMSwarmRemovePointAtIndex.html#DMSwarmRemovePointAtIndex">DMSwarmRemovePointAtIndex</A>() in
between calls to <A HREF="../DMSWARM/DMSwarmSortGetAccess.html#DMSwarmSortGetAccess">DMSwarmSortGetAccess</A>() and <A HREF="../DMSWARM/DMSwarmSortRestoreAccess.html#DMSwarmSortRestoreAccess">DMSwarmSortRestoreAccess</A>().
<P>
To facilitate safe removal of points using the sort context, we suggest a "two pass" strategy in which the
first pass "marks" points for removal, and the second pass actually removes the points from the DMSwarm.
<P>
<H3><FONT COLOR="#CC3333">Notes</FONT></H3>
- You must call <A HREF="../DMSWARM/DMSwarmSortGetAccess.html#DMSwarmSortGetAccess">DMSwarmSortGetAccess</A>() before you can call <A HREF="../DMSWARM/DMSwarmSortGetPointsPerCell.html#DMSwarmSortGetPointsPerCell">DMSwarmSortGetPointsPerCell</A>() or <A HREF="../DMSWARM/DMSwarmSortGetNumberOfPointsPerCell.html#DMSwarmSortGetNumberOfPointsPerCell">DMSwarmSortGetNumberOfPointsPerCell</A>()
- The sort context may become invalid if any re-sizing methods are applied which alter the first NP points
within swarm at the time <A HREF="../DMSWARM/DMSwarmSortGetAccess.html#DMSwarmSortGetAccess">DMSwarmSortGetAccess</A>() was called.
- You must call <A HREF="../DMSWARM/DMSwarmSortRestoreAccess.html#DMSwarmSortRestoreAccess">DMSwarmSortRestoreAccess</A>() when you no longer need access to the sort context
<P>

<P>
<H3><FONT COLOR="#CC3333">See Also</FONT></H3>
 <A HREF="../DMSWARM/DMSwarmSetType.html#DMSwarmSetType">DMSwarmSetType</A>(), <A HREF="../DMSWARM/DMSwarmSortRestoreAccess.html#DMSwarmSortRestoreAccess">DMSwarmSortRestoreAccess</A>()
<BR><P><B></B><H3><FONT COLOR="#CC3333">Level</FONT></H3>advanced<BR>
<H3><FONT COLOR="#CC3333">Location</FONT></H3>
</B><A HREF="../../../src/dm/impls/swarm/swarmpic_sort.c.html#DMSwarmSortGetAccess">src/dm/impls/swarm/swarmpic_sort.c</A>
<P><H3><FONT COLOR="#CC3333">Examples</FONT></H3>
<A HREF="../../../src/dm/examples/tutorials/ex20.c.html">src/dm/examples/tutorials/ex20.c.html</A><BR>
<A HREF="../../../src/ksp/ksp/examples/tutorials/ex70.c.html">src/ksp/ksp/examples/tutorials/ex70.c.html</A><BR>
<BR><A HREF="./index.html">Index of all DMSWARM routines</A>
<BR><A HREF="../../index.html">Table of Contents for all manual pages</A>
<BR><A HREF="../singleindex.html">Index of all manual pages</A>
</BODY></HTML>