cell linked method in matlab with parallelization trough domain splitting

1 回表示 (過去 30 日間)
Andrea Somma
Andrea Somma 2024 年 4 月 27 日
回答済み: UDAYA PEDDIRAJU 2024 年 5 月 8 日
I want to perform particle dynamics integration with cell linked method (all particles are assigned to different cells to speed up the calculation of the forces as in figure)
I am easily able to split paricles in cells trough the following function, where the grid stores the left vertex of the cells in x and y coordinates and ptcls.x stores the position of the particles as a 2 by NP (number of particles) mesh
function grd_to_ptcl = init_ptcl_mesh (grd, ptcls)
h = [grd.x(2) - grd.x(1); grd.y(2) - grd.y(1)];
idx = floor(ptcls.x./h) + 1;
indexPtcls = 1:size(ptcls.x,2);
grd_to_ptcl = accumarray(idx',indexPtcls(:),[grd.ncx grd.ncy],@(x) {x});
end
Once I have the cell array I am easily able to run trough not empty cells and perform force calculation
index = cellfun(@numel, grd_to_ptcl, 'UniformOutput', true);
index = find(index >=1);
for i=index(:)
% calculation of the force
end
My question is how I can split the domain and perform the calculation in parallel updating the boundaries of each of the splitted domains as in figure in an efficient way
If possible would be usefull to have a simple example, thanks in advance

回答 (1 件)

UDAYA PEDDIRAJU
UDAYA PEDDIRAJU 2024 年 5 月 8 日
Hi Andrea,
Parallelize cell-linked method with domain splitting in MATLAB:
  1. Split domain & assign particles: Use :"spmd":https://www.mathworks.com/help/parallel-computing/spmd.html and array partitioning to create subdomains with overlap for boundary handling. Distribute particles based on subdomain membership.
  2. Force calculation (parallel): Within each worker, use the cell-linked method for forces within the subdomain.
  3. Boundary correction (centralized): Gather info on boundary particles, calculate & accumulate forces due to neighboring subdomains.
  4. Combine results: Gather partial force calculations and combine for final forces on all particles.
This should give you an idea on how to work around.

カテゴリ

Help Center および File ExchangeBiological Physics についてさらに検索

製品


リリース

R2024a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by