petsc4py.PETSc.DMSwarm#
- class petsc4py.PETSc.DMSwarm#
Bases:
DMA
DMobject used to represent arrays of data (fields) of arbitrary type.Enumerations
Methods Summary
addNPoints(npoints)Add space for a number of new points in the
DMSwarm.addPoint()Add space for one new point in the
DMSwarm.Apply a collection method and gather points in neighbor ranks.
Reset the
DMSwarmto the size prior to callingcollectViewCreate.copyPoint(pi, pj)Copy point pi to point pj in the
DMSwarm.create([comm])Create an empty DM object and set its type to
DM.Type.SWARM.createGlobalVectorFromField(fieldname)Create a global
Vecobject associated with a given field.createLocalVectorFromField(fieldname)Create a local
Vecobject associated with a given field.destroyGlobalVectorFromField(fieldname)Destroy the global
Vecobject associated with a given field.destroyLocalVectorFromField(fieldname)Destroy the local
Vecobject associated with a given field.Finalize the registration of fields to a
DMSwarm.getField(fieldname)Return arrays storing all entries associated with a field.
Return the local length of fields registered.
getSize()Return the total length of fields registered.
Initiate the registration of fields to a
DMSwarm.insertPointUsingCellDM(layoutType, fill_param)Insert point coordinates within each cell.
migrate([remove_sent_points])Relocate points defined in the
DMSwarmto other MPI ranks.projectFields(fieldnames, vecs[, mode])registerField(fieldname, blocksize[, dtype])Register a field to a
DMSwarmwith a native PETSc data type.Remove the last point from the
DMSwarm.removePointAtIndex(index)Remove a specific point from the
DMSwarm.restoreField(fieldname)Restore accesses associated with a registered field.
setCellDM(dm)setLocalSizes(nlocal, buffer)Set the length of all registered fields on the
DMSwarm.setPointCoordinates(coordinates[, ...])Set point coordinates in a
DMSwarmfrom a user-defined list.setPointCoordinatesCellwise(coordinates)Insert point coordinates within each cell.
setPointsUniformCoordinates(min, max, npoints)Set point coordinates in a
DMSwarmon a regular (ijk) grid.setType(dmswarm_type)Set particular flavor of
DMSwarm.Setup up a
DMSwarmpoint sort context.Return whether the sort context is up-to-date.
Return the number of points in a cell.
Create an array of point indices for all points in a cell.
Return the sizes associated with a
DMSwarmpoint sorting context.Invalidate the
DMSwarmpoint sorting context.vectorDefineField(fieldname)Set the field from which to define a
Vecobject.viewFieldsXDMF(filename, fieldnames)Write a selection of
DMSwarmfields to an XDMF3 file.viewXDMF(filename)Write this
DMSwarmfields to an XDMF3 file.Methods Documentation
- addPoint()#
Add space for one new point in the
DMSwarm.Not collective.
See also
Source code at petsc4py/PETSc/DMSwarm.pyx:310
- Return type:
- collectViewCreate()#
Apply a collection method and gather points in neighbor ranks.
Collective.
See also
Source code at petsc4py/PETSc/DMSwarm.pyx:438
- Return type:
- collectViewDestroy()#
Reset the
DMSwarmto the size prior to callingcollectViewCreate.Collective.
See also
Source code at petsc4py/PETSc/DMSwarm.pyx:450
- Return type:
- copyPoint(pi, pj)#
Copy point pi to point pj in the
DMSwarm.Not collective.
- Parameters:
- Return type:
See also
- create(comm=None)#
Create an empty DM object and set its type to
DM.Type.SWARM.Collective.
DMs are the abstract objects in PETSc that mediate between meshes and discretizations and the algebraic solvers, time integrators, and optimization algorithms.
- Parameters:
comm (Comm | None) – MPI communicator, defaults to
Sys.getDefaultComm.- Return type:
- createGlobalVectorFromField(fieldname)#
Create a global
Vecobject associated with a given field.Collective.
The vector must be returned to the
DMSwarmusing a matching call todestroyGlobalVectorFromField.
- createLocalVectorFromField(fieldname)#
Create a local
Vecobject associated with a given field.Collective.
The vector must be returned to the
DMSwarmusing a matching call todestroyLocalVectorFromField.
- destroyGlobalVectorFromField(fieldname)#
Destroy the global
Vecobject associated with a given field.Collective.
- destroyLocalVectorFromField(fieldname)#
Destroy the local
Vecobject associated with a given field.Collective.
- finalizeFieldRegister()#
Finalize the registration of fields to a
DMSwarm.Collective.
Source code at petsc4py/PETSc/DMSwarm.pyx:160
- Return type:
- getCellDM()#
Return
DMcell attached toDMSwarm.Collective.
See also
Source code at petsc4py/PETSc/DMSwarm.pyx:479
- Return type:
- getField(fieldname)#
Return arrays storing all entries associated with a field.
Not collective.
The returned array contains underlying values of the field.
The array must be returned to the
DMSwarmusing a matching call torestoreField.- Parameters:
fieldname (str) – The textual name to identify this field.
- Returns:
The type of the entries in the array will match the type of the field.
- Return type:
See also
- getLocalSize()#
Return the local length of fields registered.
Not collective.
See also
Source code at petsc4py/PETSc/DMSwarm.pyx:391
- Return type:
- getSize()#
Return the total length of fields registered.
Collective.
See also
Source code at petsc4py/PETSc/DMSwarm.pyx:405
- Return type:
- initializeFieldRegister()#
Initiate the registration of fields to a
DMSwarm.Collective.
After all fields have been registered, you must call
finalizeFieldRegister.Source code at petsc4py/PETSc/DMSwarm.pyx:146
- Return type:
- insertPointUsingCellDM(layoutType, fill_param)#
Insert point coordinates within each cell.
Not collective.
- Parameters:
layout_type – Method used to fill each cell with the cell DM.
fill_param (int) – Parameter controlling how many points per cell are added (the meaning of this parameter is dependent on the layout type).
layoutType (PICLayoutType) –
- Return type:
See also
- migrate(remove_sent_points=False)#
Relocate points defined in the
DMSwarmto other MPI ranks.Collective.
- Parameters:
remove_sent_points (bool) – Flag indicating if sent points should be removed from the current MPI rank.
- Return type:
See also
- projectFields(fieldnames, vecs, mode=None)#
Project a set of
DMSwarmfields onto the cellDM.Collective.
- Parameters:
fieldnames (Sequence[str]) – The textual names of the swarm fields to project.
mode (ScatterModeSpec) –
- Return type:
See also
- registerField(fieldname, blocksize, dtype=ScalarType)#
Register a field to a
DMSwarmwith a native PETSc data type.Collective.
- Parameters:
- Return type:
See also
- removePoint()#
Remove the last point from the
DMSwarm.Not collective.
See also
Source code at petsc4py/PETSc/DMSwarm.pyx:340
- Return type:
- restoreField(fieldname)#
Restore accesses associated with a registered field.
Not collective.
See also
- setCellDM(dm)#
-
Collective.
See also
- setLocalSizes(nlocal, buffer)#
Set the length of all registered fields on the
DMSwarm.Not collective.
- Parameters:
- Return type:
See also
- setPointCoordinates(coordinates, redundant=False, mode=None)#
Set point coordinates in a
DMSwarmfrom a user-defined list.Collective.
- Parameters:
redundant (bool) – If set to
True, it is assumed that coordinates are only valid on rank 0 and should be broadcast to other ranks.mode (InsertMode | None) – Indicates whether to append points to the swarm (
InsertMode.ADD), or override existing points (InsertMode.INSERT).
- Return type:
See also
- setPointCoordinatesCellwise(coordinates)#
Insert point coordinates within each cell.
Not collective.
Point coordinates are defined over the reference cell.
- Parameters:
coordinates (Sequence[float]) – The coordinates (defined in the local coordinate system for each cell) to insert.
- Return type:
See also
- setPointsUniformCoordinates(min, max, npoints, mode=None)#
Set point coordinates in a
DMSwarmon a regular (ijk) grid.Collective.
- Parameters:
min (Sequence[float]) – Minimum coordinate values in the x, y, z directions (array of length
dim).max (Sequence[float]) – Maximum coordinate values in the x, y, z directions (array of length
dim).npoints (Sequence[int]) – Number of points in each spatial direction (array of length
dim).mode (InsertMode | None) – Indicates whether to append points to the swarm (
InsertMode.ADD), or override existing points (InsertMode.INSERT).
- Return type:
See also
- sortGetAccess()#
Setup up a
DMSwarmpoint sort context.Not collective.
The point sort context is used for efficient traversal of points within a cell.
You must call
sortRestoreAccesswhen you no longer need access to the sort context.See also
Source code at petsc4py/PETSc/DMSwarm.pyx:693
- Return type:
- sortGetIsValid()#
Return whether the sort context is up-to-date.
Not collective.
Returns the flag associated with a
DMSwarmpoint sorting context.See also
Source code at petsc4py/PETSc/DMSwarm.pyx:767
- Return type:
- sortGetNumberOfPointsPerCell(e)#
Return the number of points in a cell.
Not collective.
See also
- sortGetPointsPerCell(e)#
Create an array of point indices for all points in a cell.
Not collective.
See also
- sortGetSizes()#
Return the sizes associated with a
DMSwarmpoint sorting context.Not collective.
- Returns:
- Return type:
See also
- sortRestoreAccess()#
Invalidate the
DMSwarmpoint sorting context.Not collective.
See also
Source code at petsc4py/PETSc/DMSwarm.pyx:711
- Return type:
- vectorDefineField(fieldname)#
Set the field from which to define a
Vecobject.Collective.
The field will be used when
DM.createLocalVec, orDM.createGlobalVecis called.See also
- viewFieldsXDMF(filename, fieldnames)#
Write a selection of
DMSwarmfields to an XDMF3 file.Collective.
- Parameters:
- Return type:
See also