📄 extrapolate.asv
字号:
%========================================================================
%========================================================================
%EXTRAPOLATE Transfer correction from the coarse grids to the current grid.
% 2 + 3 -----> 1
% I used CHEN CHUANMIAO's method in two papers of 2007.
% It is stentil of three grids.
%========================================================================
function correct = extrapolate(level, u_c_out,u_c_c_out)
include_flags
include_globals
extract_globals
%=======designing values in three grids============================
nx_f= nx_f +1;
ny_f= ny_f +1;
nx_c = nx_c +1;
ny_c = ny_c +1;
nx_c_c=(nx_c-1)/2 +1;
ny_c_c=nx_c_c;
cc(1:nx_c_c,1:ny_c_c) =reshape(u_c_c_out,nx_c_c,ny_c_c);
c(1:nx_c,1:ny_c) = reshape(u_c_out,nx_c,ny_c);
f(1:nx_f,1:ny_f)=zeros(nx_f,ny_f);
%==============******extrapolation of MG*****=========================
for j=1:nx_c_c
for k=1:ny_c_c
f(4*k-3,4*j-3)=5*c(2*k-1,2*j-1)/4-cc(k,j)*0.25;
end
end %-------------1,2,3层网格公共点--------------------good :外推
for j=1:nx_c_c-1
for k=1:ny_c_c
f(4*k-3,4*j-1)=c(2*k-1,2*j)+(c(2*k-1,2*j-1)-cc(k,j)+c(2*k-1,2*j+1)-cc(k,j+1))*0.125;
end
end %------------2层新增加点:东西两端有1层点---------good :外推
for j=1:nx_c_c
for k=1:ny_c_c-1
f(4*k-1,4*j-3)=c(2*k,2*j-1)+(c(2*k-1,2*j-1)-cc(k,j)+c(2*k+1,2*j-1)-cc(k+1,j))*0.125;
end
end %--------------------- 2层新增加点:南北两端有1层点-------------- good :外推
for j=1:nx_c_c-1
for k=1:ny_c_c-1
f(4*k-1,4*j-1)=(c(2*k+1,2*j-1)+c(2*k-1,2*j-1)+c(2*k-1,2*j+1)+c(2*k+1,2*j+1))*0.25;
end
end %------------------2层其他新增加点:用 bilinear INTERPOLATION-------good
for j=1:nx_c-1
for k=1:ny_c
f(2*k-1,2*j)=0.5*(c(k,j)+c(k,j+1));
end
end %---------------3层上有东西2层端点: linear INTERPOLATION---------------
for j=1:nx_c
for k=1:ny_c-1
f(2*k,2*j-1)=0.5*(c(k,j)+c(k+1,j));
end
end %--------------3层上有南北2层端点: linear INTERPOLATION-------------------
for j=1:nx_c-1
for k=1:ny_c-1
f(2*k,2*j)=0.25*(c(k+1,j)+c(k,j+1)+c(k,j)+c(k+1,j+1));
end
end %---------3层上其他点:用 bilinear INTERPOLATION----------------------
correct = reshape(f,N_f,1);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -