필터 지우기
필터 지우기

cell linked method in matlab with parallelization trough domain splitting

조회 수: 3 (최근 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 CenterFile Exchange에서 Surface and Mesh Plots에 대해 자세히 알아보기

제품


릴리스

R2024a

Community Treasure Hunt

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

Start Hunting!

Translated by