function [ac,zm]=acform(m,ph,pv,overlap) % ACFORM builds the coarse-level operator. % % function [ac,zm]=acform(m,ph,pv,overlap) % global at op=overlap; [lv,rv]=partition(m,pv,op); [lh,rh]=partition(m,ph,op); %zm=zeros(m*m,ph*pv); zm=sparse([],[],[],m*m,ph*pv,3*m*m); h=1/(m+1); %ac=zeros(ph*pv,ph*pv); %at=pmat2(m,m,h); for ih=1:ph lbh=lh(ih); ubh=rh(ih); lenh=ubh-lbh+1; for iv=1:pv zb=zeros(m,m); zi=zeros(m*m,1); i=ih+ph*(iv-1); lbv=lv(iv); ubv=rv(iv); lenv=ubv-lbv+1; % zb(lbh:ubh,lbv:ubv)=1; zb(lbh:ubh,lbv:ubv)=pu(lenh,lenv,overlap); zi=zb(:);ni=norm(zi,2); zi=zi/ni; zm(:,i)=zi; end end ac=zm'*(at*zm);