- 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.
- Force calculation (parallel): Within each worker, use the cell-linked method for forces within the subdomain.
- Boundary correction (centralized): Gather info on boundary particles, calculate & accumulate forces due to neighboring subdomains.
- Combine results: Gather partial force calculations and combine for final forces on all particles.
cell linked method in matlab with parallelization trough domain splitting
2 次查看(过去 30 天)
显示 更早的评论
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)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1680796/image.png)
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
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1680801/image.png)
If possible would be usefull to have a simple example, thanks in advance
0 个评论
回答(1 个)
UDAYA PEDDIRAJU
2024-5-8
Hi Andrea,
Parallelize cell-linked method with domain splitting in MATLAB:
This should give you an idea on how to work around.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Surface and Mesh Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!