31.08.2018 Views

Eduardo Kausel-Fundamental solutions in elastodynamics_ a compendium-Cambridge University Press (2006)

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

244 MATLAB programs<br />

function [ztors, zspher] = spheroidal (pois, m, wm<strong>in</strong>, wmax)<br />

% Computes the torsional and spheroidal modes of a solid sphere, and<br />

% plots the two determ<strong>in</strong>ant functions whose zero cross<strong>in</strong>gs def<strong>in</strong>e the roots<br />

% Assumes a sphere of radius R=1 and shear wave velocity Cs=1<br />

% Note: the modes are <strong>in</strong>dependent of the azimuthal <strong>in</strong>dex n<br />

%<br />

% Input arguments:<br />

% pois = Poisson’s ratio<br />

% m = radial <strong>in</strong>dex<br />

% wm<strong>in</strong> = m<strong>in</strong>imum frequency for search<br />

% wmax = maximum frequency for search<br />

% Output arguments:<br />

% ztors = dimensionless frequencies, torsional modes<br />

% zspher = dimensionless frequencies, spheroidal modes<br />

% Actual frequencies (rad/s) are obta<strong>in</strong>ed multiply<strong>in</strong>g by Cs/R<br />

% where Cs is the shear wave velocity, and R is the radius<br />

%<br />

% For enhanced accuracy, it uses the Bessel functions of half order<br />

% <strong>in</strong>stead of the actual spherical Bessel functions. Reason:<br />

% The factors sqrt(pi/2z) cancel out <strong>in</strong> the determ<strong>in</strong>ant equations<br />

%<br />

% Makes first a rough search <strong>in</strong> the search <strong>in</strong>terval to determ<strong>in</strong>e approximate<br />

% values of the roots, then ref<strong>in</strong>es the results us<strong>in</strong>g the bisection method<br />

%<br />

% Results agree with Er<strong>in</strong>gen & Suhubi, Elastodynamics, Vol. II, pp. 814,818<br />

dz = 0.1; % <strong>in</strong>itial search step<br />

if wm<strong>in</strong>0<br />

f = dettors(m,zs);<br />

ztors = zerox(f,dz,zs(1));<br />

nz = length(ztors);<br />

for k=1:nz<br />

z1 = ztors(k)-dz;<br />

z2 = ztors(k)+dz;<br />

ztors(k) = bisect2(‘dettors’, m, z1, z2, 1.e-5,pois);<br />

end<br />

plot(zs,f);<br />

axis([0 wmax -1 1]);<br />

grid on;<br />

pause;

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!