function lshapec(a) 
%LSHAPEC   A model for the L-shaped membrane with rounded corner. 
%   LSHAPEC(R) solves the eigenvalue problem on a domain with a rounded 
%   re-entrant corner with radius R. 

% Copyright 1994-2016 The MathWorks, Inc.

if nargin==0 
  a=0.5; 
end 
[pde_fig,ax]=pdeinit; 
pdeModeler('appl_cb',1); 
setappdata(pde_fig,'currparam',char('1.0','0.0','0','1.0')); 
pdeModeler('snapon'); 
set(ax,'DataAspectRatio',[1 1 1]) 
set(ax,'PlotBoxAspectRatio',[1.5 1 1]) 
set(ax,'XLim',[-1.5 1.5]); 
set(ax,'YLim',[-1 1]); 
set(ax,'XTickMode','auto'); 
set(ax,'YTickMode','auto'); 

% Geometry description: 
pdepoly([ -1,... 
 1,... 
 1,... 
 0,... 
 0,... 
 -1,... 
],... 
[ -1,... 
 -1,... 
 1,... 
 1,... 
 0,... 
 0,... 
],... 
 'P1'); 
pdecirc(-a,a,a,'C1'); 
pderect([-a 0 a 0],'SQ1'); 
set(findobj(get(pde_fig,'Children'),'Tag','PDEEval'),'String','P1+SQ1-C1') 

% Boundary conditions: 
pdeModeler('changemode',0) 
pdeModeler('removeb',[5 8 ]); 
pdesetbd(7,... 
'dir',... 
1,... 
'1',... 
'0') 
pdesetbd(6,... 
'dir',... 
1,... 
'1',... 
'0') 
pdesetbd(5,... 
'dir',... 
1,... 
'1',... 
'0') 
pdesetbd(4,... 
'dir',... 
1,... 
'1',... 
'0') 
pdesetbd(3,... 
'dir',... 
1,... 
'1',... 
'0') 
pdesetbd(2,... 
'dir',... 
1,... 
'1',... 
'0') 
pdesetbd(1,... 
'dir',... 
1,... 
'1',... 
'0') 

% Mesh generation: 
setappdata(pde_fig,'Hgrad',1.3); 
setappdata(pde_fig,'refinemethod','regular'); 
pdeModeler('initmesh') 
pdeModeler('refine') 
pdeModeler('jiggle') 

% PDE coefficients: 
pdeseteq(4,... 
'1.0',... 
'0.0',... 
'0',... 
'1.0',... 
'linspace(0,5,101)',... 
'atan(cos(pi/2*x))',... 
'3*sin(pi*x).*exp(sin(pi/2*y))',... 
'[0 100]') 
setappdata(pde_fig,'currparam',... 
['1.0';... 
'0.0';... 
'0  ';... 
'1.0']) 

% Solve parameters: 
setappdata(pde_fig,'solveparam',... 
char('0','1608','10','pdeadworst',... 
'0.5','longest','0','1E-4','','fixed','Inf')) 

% Plotflags: 
setappdata(pde_fig,'plotflags',[1 1 1 1 1 1 1 1 0 0 0 1 0 1 0 0 0 1]); 
setappdata(pde_fig,'colstring',''); 
setappdata(pde_fig,'arrowstring',''); 
setappdata(pde_fig,'deformstring',''); 
setappdata(pde_fig,'heightstring',''); 

% Solve PDE: 
pdeModeler('solve') 
