%-------------------------- % @Author: Jingqiao Hu % @Date: 2021-10-06 14:46:55 % @LastEditTime: 2021-10-06 14:46:55 %-------------------------- %Heaviside function function H=Heaviside(phi,globalx,globaly,epsilon) alpha=1e-3; % parameter alpha in the Heaviside function num_all=[1:(globalx+1)*(globaly+1)]'; num1=find(phi>epsilon); H(num1)=1; num2=find(phi<-epsilon); H(num2)=alpha; num3=setdiff(num_all,[num1;num2]); H(num3)=3*(1-alpha)/4*(phi(num3)/epsilon-phi(num3).^3/(3*(epsilon)^3))+ (1+alpha)/2; end