Skip to content
Permalink
Branch: master
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
110 lines (98 sloc) 2.6 KB
function sdcmb4
% SDCMB4
%
% Simons & Dahlen (2005)
% Last four of the belt functions for a variety of orders
%
% Last modified by fjsimons-at-alum.mit.edu, 04/13/2007
TH=30;
L=18;
nth=32;
nlon=2*nth-1;
% The orders to display
m=[0 1 2];
% The number of functions for each order
numf=4;
% Collect positions for later overlap
[ah2,ha2]=krijetem(subnum(length(m),numf));
for index=1:length(m)*numf
lox(index,:)=get(ah2(index),'position');
end
clf
[ah,ha]=krijetem(subnum(length(m),numf));
% Find all the eigenfunctions with all orders
theta=linspace(0,pi,nth);
phi=linspace(0,2*pi,nlon);
[G,V,EM,GK,VK,NA,N]=galpha(TH,L,2,theta,phi,'local');
% Loop over the orders and collect printed eigenvalues
numo2=0; Valo=[];
for ord=m
% CAP FUNCTIONS
for index=1:numf
% Get the appropriate eigenfunction for the belt
E=reshape(G(numo2+index,:),[nth nlon]);
% Make sure the sign is right
if E(1,round(end/2))<0
E=-E;
end
% and some special flippings to coincide visually with the rest
if (ord==1&index==1)|(ord==1&index==2)|(ord==2&index==3)|(ord==2&index==4)
E=-E;
end
% Make a running index
rindex=index+ord*numf;
% Plot on the sphere
axes(ah(rindex))
plotonsphere(E,0.15*(1+[ord~=0]))
view(90,20)
% Set appropriate title string
Valo=[Valo 1-V(numo2+index)];
% Are we doing all right?
if EM(numo2+index)~=ord
error('You sure you got the numbering right?')
end
% Collect the range of values
EMAX(rindex)=max(max(abs(E)));
end
% Cumulative number of functions per order to count forwards
numo2=numo2+2*(L-abs(ord))+1;
end
% Movem all down
%for index=1:numf
% serre(ha([1:length(m)]+(index-1)*length(m)),1/3,'down')
%end
% Put the titles on
for index=1:length(m)
[lx(index),loc]=laxis(ha(index));
ylb(index)=text(loc(1),loc(2),sprintf('m = %i',m(index)));
set(ylb(index),'Rotation',90)
end
for index=1:numf
[lxa(index),loc]=laxis(ah(index),0);
% Set title string
tits{index}=sprintf('L-m%+i',2-index);
tt(index)=title(sprintf('%s = %s','\alpha',tits{index}));
end
% Adjust color limits for optimal performance
for index=1:length(ah)
axes(ah(index))
shading faceted
caxis([-EMAX(index) +EMAX(index)])
end
kelicol
moveh(lx(2),-.015)
movev(lx,-.03)
% Create eigenvalue legends
movs=[repmat(-1.3,numf,1)...
repmat(-1.3,numf,1)...
repmat(-1.3,numf,1)];
for index=1:numf*length(m)
axes(ah(index))
lxb(index)=axes('position',lox(index,:));
axis off
ttl(index)=title(sprintf('%s = %9.6f','\lambda',...
Valo(index)));
movev(ttl(index),movs(index))
end
fig2print(gcf,'portrait')
figdisp([],[],'-painters')
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.