function [] = FESolveX2D() % MATLAB based 2-D XFEM Solver % J. Grogan (2012) clear all % Define Mesh NumX=3; NumY=1; delX=1.; delY=1.; for j=1:NumY+1 for i=1:NumX+1 index=i+(NumX+1)*(j-1); Node(index,1)=single((i-1.))*delX; Node(index,2)=single((j-1.))*delY; end end numNodes=(NumX+1)*(NumY+1); for j=1:NumY for i=1:NumX index=i+NumX*(j-1); Element(index,1)=i+(NumX+1)*(j-1); Element(index,2)=i+(NumX+1)*(j-1)+1; Element(index,3)=i+(NumX+1)*(j)+1; Element(index,4)=i+(NumX+1)*(j); end end numElem=(NumX)*(NumY); % dofs per node ndof=2; % Define Section Properties rho=1.; % initial interface position dpos=0.25; % Initial temperatures Tnew=zeros(numNodes*2,1); Bound=zeros(numNodes*2,1); stored(1)=dpos; for e=1:numElem for n=1:4 crdn=Node(Element(e,n),1); if crdn<=dpos Tnew(2*Element(e,n)-1)=1.; Bound(2*Element(e,n)-1)=1.; end end end % Define Time Step dtime=0.1; tsteps=1; time=0.; % penalty term beta=0.; % Loop through time steps for ts=1:tsteps % Get interface velocity d(1)=dpos+delX; d(2)=dpos+3*delX/4; d(3)=dpos+delX/4; d(4)=dpos; for e=1:numElem crdn1=Node(Element(e,1),1); crdn2=Node(Element(e,2),1); for j=1:4 if d(j)>=crdn1 & d(j)