MPI SPH Grid Estimation¶
This module provides distributed-memory (MPI) implementations of SPH grid interpolation. Data is partitioned across MPI ranks along the x-axis, with optional buffer regions to ensure correct neighbor evaluation.
mpi_sph4grid2D¶
Distributed SPH interpolation in 2D using MPI.
Algorithm¶
Pack particle data into MPI-distributed structure.
Sort and distribute particles along x-axis.
Add buffer regions for neighbor completeness.
Build local SPH grid via
sph4grid2D.
Example¶
# Assuming correct initialisation of MPI object, see tutorial.
import fiesta
# compute density field
dgrid = fiesta.sph.mpi_sph4grid2D(
x, y,
boxsize=100,
ngrid=256,
MPI=MPI,
k=20
)
# compute field
fgrid = fiesta.sph.mpi_sph4grid2D(
x, y, f=f,
boxsize=100,
ngrid=256,
MPI=MPI,
k=20
)
mpi_sph4grid3D¶
MPI-parallel SPH interpolation in 3D.
Algorithm¶
Pack particle data into MPI format.
Distribute particles along x-axis slabs.
Apply buffer regions for neighbor consistency.
Compute local SPH grid using
sph4grid3D.
Important Notes¶
buffer_lengthmust be smaller than slab width.Periodic boundaries require consistent global box size.
Load imbalance may occur for clustered particle distributions.
Example¶
# Assuming correct initialisation of MPI object, see tutorial.
import fiesta
# compute density field
dgrid = fiesta.sph.mpi_sph4grid3D(
x, y, z,
boxsize=[200, 200, 200],
ngrid=128,
MPI=MPI,
k=32
)
# compute field
fgrid = fiesta.sph.mpi_sph4grid3D(
x, y, z, f=f,
boxsize=[200, 200, 200],
ngrid=128,
MPI=MPI,
k=32
)