source:
issm/oecreview/Archive/25834-26739/ISSM-25991-25992.diff@
27230
Last change on this file since 27230 was 26740, checked in by , 3 years ago | |
---|---|
File size: 5.1 KB |
-
../trunk-jpl/src/m/classes/materials.m
350 350 351 351 352 352 end % }}} 353 function setlitho2prem(self) % {{{ 354 %based on materials.radius and materials.issolid, replaces materials.density, materials.lame_mu, materials.lame_lambda 355 % with volumetric averages of a polynomial version of the PREM model 356 if ~strcmpi(self.nature, 'litho') 357 error('materials setlitho2prem error message: materials.nature must be ''litho''') 358 end 359 360 361 ra=self.radius(end); 362 r(1) = 0.0; r(2) = 1221.5; r(3) = 3480.0; r(4) = 3630.; 363 r(5) = 5600.0; r(6) = 5701.0; r(7) = 5771.0; r(8) = 5971.; 364 r(9) = 6151.0; r(10) = 6291.0; r(11) = 6346.6; 365 r(12) = 6356.0; r(13) = 6368.0; r(14) = 6371.; 366 367 if (r(14)*1e3 ~= ra) 368 error(['materials setlitho2prem error message: Earth surface radius in PREM r=' num2str(r(end)*1e3) ' does not match materials.radius(end)=' num2str(self.radius(end))]); 369 end 370 371 d = zeros(12,4); %polynomial coef for density 372 d(1,1) = 13.0885; d(1,3) = -8.8381 ; 373 d(2,1) = 12.5815; d(2,2) = -1.2638; d(2,3) = -3.6426; d(2,4) = -5.5281; 374 d(3,1) = 7.9565 ; d(3,2) = -6.4761; d(3,3) = 5.5283; d(3,4) = -3.0807; 375 d(4,1) = 7.9565 ; d(4,2) = -6.4761; d(4,3) = 5.5283; d(4,4) = -3.0807; 376 d(5,1) = 7.9565 ; d(5,2) = -6.4761; d(5,3) = 5.5283; d(5,4) = -3.0807; 377 d(6,1) = 5.3197 ; d(6,2) = -1.4836; 378 d(7,1) = 11.2494; d(7,2) = -8.0298; 379 d(8,1) = 7.1089 ; d(8,2) = -3.8045; 380 d(9,1) = 2.6910 ; d(9,2) = 0.6924; 381 d(10,1) = 2.6910; d(10,2) = 0.6924; 382 d(11,1) = 2.9 ; 383 d(12,1) = 2.6 ; 384 385 % ocean 386 if (~self.issolid(end)) 387 d(13,1) = 1.02 ; 388 389 % continental 390 else 391 d(13,1) = d(12,1); 392 end 393 394 p = zeros(13,4); %polynomial coef for Vp, pressure wave velocity 395 p(1,1) = 11.2622 ; p(1,3) = -6.3640; 396 p(2,1) = 11.0487 ; p(2,2) = -4.0362; p(2,3) = 4.8023; p(2,4) = -13.5732; 397 p(3,1) = 15.3891 ; p(3,2) = -5.3181; p(3,3) = 5.5242; p(3,4) = -2.5514; 398 p(4,1) = 24.952 ; p(4,2) = -40.4673; p(4,3) = 51.4832; p(4,4) = -26.6419; 399 p(5,1) = 29.2766 ; p(5,2) = -23.6027; p(5,3) = 5.5242; p(5,4) = -2.5514; 400 p(6,1) = 19.0957 ; p(6,2) = -9.8672; 401 p(7,1) = 39.7027 ; p(7,2) = -32.6166; 402 p(8,1) = 20.3926 ; p(8,2) = -12.2569; 403 p(9,1) = 4.1875 ; p(9,2) = 3.9382; 404 p(10,1) = 4.1875 ; p(10,2) = 3.9382; 405 p(11,1) = 6.8 ; 406 p(12,1) = 5.8; 407 % 408 % ocean 409 if (~self.issolid(end)) 410 p(13,1) = 1.45 ; 411 % 412 % continental 413 else 414 p(13,1) = p(12,1); 415 end 416 %---- 417 % 418 s = zeros(13,4); %polynomial coef for Vs, shear wave velocity 419 % 420 s(1,1) = 3.6678; s(1,3) = -4.4475; 421 422 s(3,1) = 6.9254; s(3,2) = 1.4672; s(3,3) = -2.0834; s(3,4) = 0.9783; 423 s(4,1) = 11.1671; s(4,2) = -13.7818; s(4,3) = 17.4575; s(4,4) = -9.2777; 424 s(5,1) = 22.3459; s(5,2) = -17.2473; s(5,3) = -2.0834; s(5,4) = 0.9783; 425 s(6,1) = 9.9839; s(6,2) = -4.9324; 426 s(7,1) = 22.3512; s(7,2) = -18.5856 ; 427 s(8,1) = 8.9496; s(8,2) = -4.4597; 428 s(9,1) = 2.1519; s(9,2) = 2.3481; 429 s(10,1) = 2.1519; s(10,2) = 2.3481; 430 s(11,1) = 3.9 ; 431 s(12,1) = 3.2 ; 432 % 433 % ocean (please don't modify) 434 if (~self.issolid(end)) 435 % 436 % continental 437 else 438 s(13,1) = s(12,1); 439 end 440 % 441 % 442 r = r*1e3; 443 444 %- handling the first layer : central sphere 445 rad = self.radius; 446 rad(1) = 0.; 447 448 for j = 1:self.numlayers 449 450 ro = 0.; 451 vp = 0.; 452 vs = 0.; 453 454 for i = 1:13 455 456 r1 = 0.; 457 r2 = 0.; 458 if ((rad(j) > r(i)) & (rad(j) <= r(i+1))) 459 if (rad(j+1) <= r(i+1)) 460 r2 = rad(j+1); 461 r1 = rad(j); 462 else 463 r2 = r(i+1); 464 r1 = rad(j); 465 end 466 elseif (rad(j) <= r(i)) 467 if ((rad(j+1) > r(i)) & (rad(j+1) <= r(i+1))) 468 r2 = rad(j+1); 469 r1 = r(i); 470 elseif (rad(j+1) > r(i+1)) 471 r2 = r(i+1); 472 r1 = r(i); 473 end 474 end 475 476 t1 = d(i,1)/3.; 477 t2 = d(i,2)/(ra*4.); 478 t3 = d(i,3)/((ra^2)*5.); 479 t4 = d(i,4)/((ra^3)*6.); 480 ro = ro + t1*(r2^3) + t2*(r2^4) + t3*(r2^5) + t4*(r2^6) - ( t1*(r1^3) + t2*(r1^4) + t3*(r1^5) + t4*(r1^6) ); 481 482 t1 = p(i,1)/3.; 483 t2 = p(i,2)/(ra*4.); 484 t3 = p(i,3)/((ra^2)*5.); 485 t4 = p(i,4)/((ra^3)*6.); 486 vp = vp + t1*(r2^3) + t2*(r2^4) + t3*(r2^5) + t4*(r2^6) - ( t1*(r1^3) + t2*(r1^4) + t3*(r1^5) + t4*(r1^6) ); 487 488 t1 = s(i,1)/3.; 489 t2 = s(i,2)/(ra*4.); 490 t3 = s(i,3)/((ra^2)*5.); 491 t4 = s(i,4)/((ra^3)*6.); 492 vs = vs + t1*(r2^3) + t2*(r2^4) + t3*(r2^5) + t4*(r2^6) - ( t1*(r1^3) + t2*(r1^4) + t3*(r1^5) + t4*(r1^6) ); 493 494 end 495 ro = ro*3 / (rad(j+1)^3-rad(j)^3); 496 vp = vp*3 /(rad(j+1)^3-rad(j)^3); 497 vs = vs*3 / (rad(j+1)^3-rad(j)^3); 498 mu = ro*vs.^2; 499 la = ro*vp.^2 - 2.*mu; 500 ro = ro*1e3; 501 la = la*1e9; 502 mu = mu*1e9; 503 504 self.density(j) = ro; 505 self.lame_lambda(j) = la; 506 self.lame_mu(j) = mu; 507 end 508 509 end % }}} 510 353 511 end 354 512 end 355 513 … … 376 534 end 377 535 end 378 536 end % }}} 537 538
Note:
See TracBrowser
for help on using the repository browser.