ppmd.pygcl.halo_exchange_3d module

class ppmd.pygcl.halo_exchange_3d.CellSlice

Bases: object

class ppmd.pygcl.halo_exchange_3d.HaloExchange3D(comm, dim, width=(1, 1, 1))

Bases: object

boundary_cells

See self.boundary starts, cells to pack from.

boundary_starts

Tuple 7x1, if this tuple is labeled b then direction i packs elements c_{b_i} to c_{b_{i+1}} where c is self.boundary cells.

comm

Cartesian communicator used.

dim

Dimensions of local domain plus halo regions.

exchange(array)

Halo exchange the passed array using the setup scheme. :param array: Array size (n2, n1, n0, d) where (n2, n1, n0) is the tuple the halo exchange scheme was constructed with. d is the number of components at each point (automatically determined). Data type needs to be compatible with mpi4py (automatically determined).

Returns

None, Passed array is modified.

halo_cells

See self.boundary_starts, cells to unpack into.

halo_starts

See self.bounadry_starts, same but for halo cells to unpack into.

recv_ranks

Tuple 6x1, MPI ranks in self.comm this rank will recv from.

send_ranks

Tuple 6x1, MPI ranks in self.comm this rank will send to.

ppmd.pygcl.halo_exchange_3d.create_halo_pairs_slice_halo(comm, cell_array, slicexyz, direction, width)

Automatically create the pairs of cells for halos. Slices through whole domain including halo cells.

ppmd.pygcl.halo_exchange_3d.get_cart_rank_offset(comm, offset)