Overview
Thedistributor module provides the Distributor class for managing parallel distribution and transformation of fields across MPI processes. It handles domain decomposition, layout management, and coordinate transforms.
Distributor
Distributor Class
Parameters
- coordsystems (CoordinateSystem or tuple): Coordinate system(s) for the domain
- comm (MPI.Comm, optional): MPI communicator (default: MPI.COMM_WORLD)
- mesh (tuple of ints, optional): Process mesh dimensions (default: 1D mesh)
- dtype (dtype, optional): Default data type
Attributes
- dim (int): Number of dimensions
- coords (tuple): Coordinate objects
- mesh (ndarray): Process mesh shape
- comm (MPI.Comm): MPI communicator
- comm_cart (MPI.Comm): Cartesian communicator
- layouts (list): Available data layouts
- coeff_layout (Layout): Coefficient space layout
- grid_layout (Layout): Grid space layout
Example: Basic Setup
Example: Multiple Coordinate Systems
Methods
Field Creation
Field(bases=None, …) - Create a fieldGrid Access
local_grid(basis, scale) - Get local grid for basisMode Access
local_modes(basis) - Get local mode indicesLayout Management
get_layout_object(layout) - Get layout from identifierUtility Methods
get_axis(coord) - Get axis index for coordinateLayouts
Layout Objects
Layouts represent different transform/distribution states of field data.Attributes
- local (ndarray of bool): Which axes are local (not distributed)
- grid_space (ndarray of bool): Which axes are in grid space
- index (int): Layout index in transform sequence
Methods
global_shape(domain, scales) - Global data shape local_shape(domain, scales) - Local data shape local_elements(domain, scales) - Local element indicesTransform Sequence
Dedalus uses multiple layouts to transform between coefficient and grid space:Parallelization
Process Mesh
The process mesh determines how data is distributed:Domain Decomposition
Data is distributed in different ways depending on layout: Coefficient space: First R dimensions distributedGrid space: Dimensions 1 to R distributed Example for 3D domain on 2×2 mesh:
Advanced Usage
Custom Communicators
Multiple Distributors
See Also
- Field - Field classes using distributors
- Basis - Spectral bases
- Coordinates - Coordinate systems