Ignore:
Timestamp:
12/22/21 10:39:44 (3 years ago)
Author:
Mathieu Morlighem
Message:

merged trunk-jpl and trunk for revision 26742

Location:
issm/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk

  • issm/trunk/src

  • issm/trunk/src/m/classes/materials.m

    r25836 r26744  
    3737                                        self.addprop('thermalconductivity');
    3838                                        self.addprop('temperateiceconductivity');
     39                                        self.addprop('effectiveconductivity_averaging');
    3940                                        self.addprop('meltingpoint');
    4041                                        self.addprop('beta');
     
    5253                                        self.addprop('burgers_viscosity');
    5354                                        self.addprop('burgers_mu');
    54                                         self.addprop('isburgers');
     55                                        self.addprop('ebm_alpha');
     56                                        self.addprop('ebm_delta');
     57                                        self.addprop('ebm_taul');
     58                                        self.addprop('ebm_tauh');
     59                                        self.addprop('rheologymodel');
    5560                                        self.addprop('density');
    5661                                        self.addprop('issolid');
     
    5964                                        self.addprop('rho_water');
    6065                                        self.addprop('rho_freshwater');
    61                                         self.addprop('earth_density');
    6266                                otherwise
    6367                                        error('materials constructor error message: nature of the material not supported yet! (''ice'' or ''litho'' or ''hydro'')');
    6468                                end
    6569                        end
     70                        self.addprop('earth_density');
     71
    6672                        %set default parameters:
    6773                        self.setdefaultparameters();
     
    9096
    9197                                        %ice latent heat of fusion L (J/kg)
    92                                         self.latentheat=3.34*10^5;
     98                                        self.latentheat=3.34*1e5;
    9399
    94100                                        %ice thermal conductivity (W/m/K)
     
    98104                                        self.temperateiceconductivity=.24;
    99105
     106                                        %computation of effective conductivity
     107                                        self.effectiveconductivity_averaging=1;
     108
    100109                                        %the melting point of ice at 1 atmosphere of pressure in K
    101110                                        self.meltingpoint=273.15;
    102111
    103112                                        %rate of change of melting point with pressure (K/Pa)
    104                                         self.beta=9.8*10^-8;
     113                                        self.beta=9.8*1e-8;
    105114
    106115                                        %mixed layer (ice-water interface) heat capacity (J/kg/K)
     
    108117
    109118                                        %thermal exchange velocity (ice-water interface) (m/s)
    110                                         self.thermal_exchange_velocity=1.00*10^-4;
     119                                        self.thermal_exchange_velocity=1.00*1e-4;
    111120
    112121                                        %Rheology law: what is the temperature dependence of B with T
     
    114123                                        self.rheology_law='Paterson';
    115124
     125                                        %Rheology fields default:
     126                                        self.rheology_B   = 1 * 1e8;
     127                                        self.rheology_n   = 3;
     128
    116129                                case 'litho'
    117130                                        %we default to a configuration that enables running GIA solutions using giacaron and/or giaivins.
     
    123136
    124137                                        self.viscosity=[1e21;1e40]; %mantle and lithosphere viscosity (respectively) [Pa.s]
    125                                         self.lame_mu=[1.45*1e11;6.7*10^10];  % (Pa) %lithosphere and mantle shear modulus (respectively) [Pa]
     138                                        self.lame_mu=[1.45*1e11;6.7*1e10];  % (Pa) %lithosphere and mantle shear modulus (respectively) [Pa]
    126139                                        self.lame_lambda=self.lame_mu;  % (Pa) %mantle and lithosphere lamba parameter (respectively) [Pa]
    127140                                        self.burgers_viscosity=[NaN;NaN];
    128141                                        self.burgers_mu=[NaN;NaN];
    129                                         self.isburgers=[0;0];
     142
     143                                        self.ebm_alpha=[NaN;NaN];
     144                                        self.ebm_delta=[NaN;NaN];
     145                                        self.ebm_taul=[NaN;NaN];
     146                                        self.ebm_tauh=[NaN;NaN];
     147                                        self.rheologymodel=[0;0];
    130148                                        self.density=[5.51*1e3;5.50*1e3];  % (Pa) %mantle and lithosphere density [kg/m^3]
    131149                                        self.issolid=[1;1]; % is layer solid or liquid.
     
    137155                                        %ocean water density (kg/m^3)
    138156                                        self.rho_water=1023.;
    139                                         % average density of the Earth (kg/m^3)
    140                                         self.earth_density=5512;
    141 
     157                                       
    142158                                        %fresh water density (kg/m^3)
    143159                                        self.rho_freshwater=1000.;
     
    146162                                        error('materials constructor error message: nature of the material not supported yet! (''ice'' or ''litho'' or ''hydro'')');
    147163                                end
     164
     165                                % average density of the Earth (kg/m^3)
     166                                self.earth_density=5512;
     167
    148168                        end
    149169                end % }}}
     
    155175                                switch nat
    156176                                case 'ice'
    157                                         disp(sprintf('   \nIce:'));
     177                                        disp(sprintf('\n      Ice:'));
    158178                                        fielddisplay(self,'rho_ice','ice density [kg/m^3]');
    159179                                        fielddisplay(self,'rho_water','ocean water density [kg/m^3]');
     
    172192                                        fielddisplay(self,'rheology_law',['law for the temperature dependance of the rheology: ''None'', ''BuddJacka'', Cuffey'', ''CuffeyTemperate'', ''Paterson'', ''Arrhenius'', ''LliboutryDuval'', ''NyeCO2'', or ''NyeH2O''']);
    173193                                case 'litho'
    174                                         disp(sprintf('   \nLitho:'));
    175                                         fielddisplay(self,'numlayers','number of layers (default 2)');
     194                                        disp(sprintf('\n      Litho:'));
     195                                        fielddisplay(self,'numlayers','number of layers (default: 2)');
    176196                                        fielddisplay(self,'radius','array describing the radius for each interface (numlayers+1) [m]');
    177197                                        fielddisplay(self,'viscosity','array describing each layer''s viscosity (numlayers) [Pa.s]');
     
    180200                                        fielddisplay(self,'burgers_viscosity','array describing each layer''s transient viscosity, only for Burgers rheologies  (numlayers) [Pa.s]');
    181201                                        fielddisplay(self,'burgers_mu','array describing each layer''s transient shear modulus, only for Burgers rheologies  (numlayers) [Pa]');
    182                                         fielddisplay(self,'isburgers','array describing whether we adopt a MaxWell (0) or Burgers (1) rheology (default 0)');
     202
     203                                        fielddisplay(self,'ebm_alpha','array describing each layer''s exponent parameter controlling the shape of shear modulus curve between taul and tauh, only for EBM rheology (numlayers)');
     204                                        fielddisplay(self,'ebm_delta','array describing each layer''s amplitude of the transient relaxation (ratio between elastic rigity to pre-maxwell relaxation rigity), only for EBM rheology (numlayers)');
     205                                        fielddisplay(self,'ebm_taul','array describing each layer''s starting period for transient relaxation, only for EBM rheology  (numlayers) [s]');
     206                                        fielddisplay(self,'ebm_tauh','array describing each layer''s array describing each layer''s end period for transient relaxation, only for Burgers rheology (numlayers) [s]');
     207
     208
     209                                        fielddisplay(self,'rheologymodel','array describing whether we adopt a Maxwell (0), Burgers (1) or EBM (2) rheology (default: 0)');
    183210                                        fielddisplay(self,'density','array describing each layer''s density (numlayers) [kg/m^3]');
    184211                                        fielddisplay(self,'issolid','array describing whether the layer is solid or liquid (default 1) (numlayers)');
    185212                                case 'hydro'
    186                                         disp(sprintf('   \nHydro:'));
     213                                        disp(sprintf('\n      Hydro:'));
    187214                                        fielddisplay(self,'rho_ice','ice density [kg/m^3]');
    188215                                        fielddisplay(self,'rho_water','ocean water density [kg/m^3]');
     
    217244                                        md = checkfield(md,'fieldname','materials.density','NaN',1,'Inf',1,'size',[md.materials.numlayers 1],'>',0);
    218245                                        md = checkfield(md,'fieldname','materials.viscosity','NaN',1,'Inf',1,'size',[md.materials.numlayers 1],'>=',0);
    219                                         md = checkfield(md,'fieldname','materials.isburgers','NaN',1,'Inf',1,'size',[md.materials.numlayers 1],'>=',0,'<=',1);
     246                                        md = checkfield(md,'fieldname','materials.rheologymodel','NaN',1,'Inf',1,'size',[md.materials.numlayers 1],'>=',0,'<=',2);
    220247                                        md = checkfield(md,'fieldname','materials.burgers_viscosity','Inf',1,'size',[md.materials.numlayers 1],'>=',0);
    221248                                        md = checkfield(md,'fieldname','materials.burgers_mu','Inf',1,'size',[md.materials.numlayers 1],'>=',0);
     249                                        md = checkfield(md,'fieldname','materials.ebm_alpha','Inf',1,'size',[md.materials.numlayers 1],'>=',0);
     250                                        md = checkfield(md,'fieldname','materials.ebm_delta','Inf',1,'size',[md.materials.numlayers 1],'>=',0);
     251                                        md = checkfield(md,'fieldname','materials.ebm_taul','Inf',1,'size',[md.materials.numlayers 1],'>=',0);
     252                                        md = checkfield(md,'fieldname','materials.ebm_tauh','Inf',1,'size',[md.materials.numlayers 1],'>=',0);
    222253
    223254                                        for i=1:md.materials.numlayers,
    224                                                 if md.materials.isburgers(i) & (isnan(md.materials.burgers_viscosity(i) | isnan(md.materials.burgers_mu(i)))),
    225                                                         error('materials checkconsistency error message: Litho burgers_viscosity or burgers_mu has NaN values, inconsistent with isburgers choice');
     255                                                if md.materials.rheologymodel(i)==1 & (isnan(md.materials.burgers_viscosity(i) | isnan(md.materials.burgers_mu(i)))),
     256                                                        error('materials checkconsistency error message: Litho burgers_viscosity or burgers_mu has NaN values, inconsistent with rheologymodel choice');
     257                                                end
     258                                                if md.materials.rheologymodel(i)==2 & (isnan(md.materials.ebm_alpha(i)) | isnan(md.materials.ebm_delta(i)) | isnan(md.materials.ebm_taul(i)) | isnan(md.materials.ebm_tauh(i))),
     259                                                        error('materials checkconsistency error message: Litho ebm_alpha, ebm_delta, ebm_taul or ebm_tauh has NaN values, inconsistent with rheologymodel choice');
    226260                                                end
    227261                                        end
    228262                                        if md.materials.issolid(1)==0 | md.materials.lame_mu(1)==0
    229                                                         error('First layer must be solid (issolid(1) > 0 AND lame_mu(1) > 0). Add a weak inner core if necessary.');
     263                                                error('First layer must be solid (issolid(1) > 0 AND lame_mu(1) > 0). Add a weak inner core if necessary.');
    230264                                        end
    231265                                        ind=find(md.materials.issolid==0);
    232266                                        if sum(ismember(diff(ind),1)>=1) %if there are at least two consecutive indices that contain issolid = 0
    233                                                         error(['Fluid layers detected at layers #', num2str(ind'), ', but having 2 or more adjacent fluid layers is not supported yet. Consider merging them.'])
     267                                                error(['Fluid layers detected at layers #', num2str(ind'), ', but having 2 or more adjacent fluid layers is not supported yet. Consider merging them.'])
    234268                                        end
    235269
     
    250284                        %1: MatdamageiceEnum 2: MatestarEnum 3: MaticeEnum 4: MatenhancediceEnum 5: MaterialsEnum
    251285                        WriteData(fid,prefix,'name','md.materials.nature','data',naturetointeger(self.nature),'format','IntMat','mattype',3);
    252                         WriteData(fid,prefix,'name','md.materials.type','data',5,'format','Integer'); %DANGER, this can evolve if you have classes.
    253 
     286                        WriteData(fid,prefix,'name','md.materials.type','data',5,'format','Integer'); %DANGER: this can evolve if you have classes.
    254287                        for i=1:length(self.nature),
    255288                                nat=self.nature{i};
     
    264297                                        WriteData(fid,prefix,'object',self,'class','materials','fieldname','thermalconductivity','format','Double');
    265298                                        WriteData(fid,prefix,'object',self,'class','materials','fieldname','temperateiceconductivity','format','Double');
     299                                        WriteData(fid,prefix,'object',self,'class','materials','fieldname','effectiveconductivity_averaging','format','Integer');
    266300                                        WriteData(fid,prefix,'object',self,'class','materials','fieldname','meltingpoint','format','Double');
    267301                                        WriteData(fid,prefix,'object',self,'class','materials','fieldname','beta','format','Double');
     
    279313                                        WriteData(fid,prefix,'object',self,'class','materials','fieldname','density','format','DoubleMat','mattype',3);
    280314                                        WriteData(fid,prefix,'object',self,'class','materials','fieldname','viscosity','format','DoubleMat','mattype',3);
    281                                         WriteData(fid,prefix,'object',self,'class','materials','fieldname','isburgers','format','DoubleMat','mattype',3);
     315                                        WriteData(fid,prefix,'object',self,'class','materials','fieldname','rheologymodel','format','DoubleMat','mattype',3);
    282316                                        WriteData(fid,prefix,'object',self,'class','materials','fieldname','burgers_viscosity','format','DoubleMat','mattype',3);
    283317                                        WriteData(fid,prefix,'object',self,'class','materials','fieldname','burgers_mu','format','DoubleMat','mattype',3);
     318                                        WriteData(fid,prefix,'object',self,'class','materials','fieldname','ebm_alpha','format','DoubleMat','mattype',3);
     319                                        WriteData(fid,prefix,'object',self,'class','materials','fieldname','ebm_delta','format','DoubleMat','mattype',3);
     320                                        WriteData(fid,prefix,'object',self,'class','materials','fieldname','ebm_taul','format','DoubleMat','mattype',3);
     321                                        WriteData(fid,prefix,'object',self,'class','materials','fieldname','ebm_tauh','format','DoubleMat','mattype',3);
     322                                        %compute earth density compatible with our layer density distribution:
     323                                        earth_density=0;
     324                                        for i=1:self.numlayers,
     325                                                earth_density=earth_density + (self.radius(i+1)^3-self.radius(i)^3)*self.density(i);
     326                                        end
     327                                        earth_density=earth_density/self.radius(self.numlayers+1)^3;
     328                                        self.earth_density=earth_density;
    284329                                case 'hydro'
    285330                                        WriteData(fid,prefix,'object',self,'class','materials','fieldname','rho_ice','format','Double');
    286331                                        WriteData(fid,prefix,'object',self,'class','materials','fieldname','rho_water','format','Double');
    287                                         WriteData(fid,prefix,'object',self,'class','materials','fieldname','earth_density','format','Double');
    288332                                        WriteData(fid,prefix,'object',self,'class','materials','fieldname','rho_freshwater','format','Double');
    289 
    290333                                otherwise
    291334                                        error('materials constructor error message: nature of the material not supported yet! (''ice'' or ''litho'' or ''hydro'')');
    292335                                end
    293336                        end
     337                        WriteData(fid,prefix,'data',self.earth_density,'name','md.materials.earth_density','format','Double');
    294338                end % }}}
    295339                function self = extrude(self,md) % {{{
     
    317361                                        writejsdouble(fid,[modelname '.materials.thermalconductivity'],self.thermalconductivity);
    318362                                        writejsdouble(fid,[modelname '.materials.temperateiceconductivity'],self.temperateiceconductivity);
     363                                        writejsdouble(fid,[modelname '.materials.effectiveconductivity_averaging'],self.effectiveconductivity_averaging);
    319364                                        writejsdouble(fid,[modelname '.materials.meltingpoint'],self.meltingpoint);
    320365                                        writejsdouble(fid,[modelname '.materials.beta'],self.beta);
     
    333378                                        writejsdouble(fid,[modelname '.materials.density'],self.density);
    334379                                        writejsdouble(fid,[modelname '.materials.viscosity'],self.viscosity);
    335                                         writejsdouble(fid,[modelname '.materials.isburgers'],self.isburgers);
     380                                        writejsdouble(fid,[modelname '.materials.rheologymodel'],self.rheologymodel);
    336381                                        writejsdouble(fid,[modelname '.materials.burgers_viscosity'],self.burgers_viscosity);
    337382                                        writejsdouble(fid,[modelname '.materials.burgers_mu'],self.burgers_mu);
     383                                        writejsdouble(fid,[modelname '.materials.ebm_alpha'],self.ebm_alpha);
     384                                        writejsdouble(fid,[modelname '.materials.ebm_delta'],self.ebm_delta);
     385                                        writejsdouble(fid,[modelname '.materials.ebm_taul'],self.ebm_taul);
     386                                        writejsdouble(fid,[modelname '.materials.ebm_tauh'],self.ebm_tauh);
    338387
    339388                                case 'hydro'
     
    351400
    352401                end % }}}
     402                function setlitho2prem(self) % {{{
     403                        %based on materials.radius and materials.issolid, replaces materials.density, materials.lame_mu, materials.lame_lambda
     404                        % with volumetric averages of a polynomial version of the PREM model
     405                        if ~strcmpi(self.nature, 'litho')
     406                        error('materials setlitho2prem error message: materials.nature must be ''litho''')
     407                        end
     408                   
     409                   
     410                   ra=self.radius(end);
     411                   r(1) = 0.0;     r(2) = 1221.5; r(3) = 3480.0; r(4) = 3630.;
     412                   r(5) = 5600.0;  r(6) = 5701.0;  r(7) = 5771.0; r(8) = 5971.;
     413                   r(9) = 6151.0; r(10) = 6291.0; r(11) = 6346.6;
     414                   r(12) = 6356.0; r(13) = 6368.0; r(14) = 6371.;
     415                 
     416                   if (r(14)*1e3 ~= ra)
     417                        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))]);
     418                   end
     419
     420                  d = zeros(12,4); %polynomial coef for density
     421                  d(1,1) = 13.0885;                               d(1,3) = -8.8381 ;
     422                  d(2,1) = 12.5815; d(2,2) = -1.2638; d(2,3) = -3.6426; d(2,4) = -5.5281;
     423                  d(3,1) = 7.9565 ; d(3,2) = -6.4761;   d(3,3) = 5.5283;  d(3,4) = -3.0807;
     424                  d(4,1) = 7.9565 ; d(4,2) = -6.4761;   d(4,3) = 5.5283;  d(4,4) = -3.0807;
     425                  d(5,1) = 7.9565 ; d(5,2) = -6.4761;   d(5,3) = 5.5283;  d(5,4) = -3.0807;
     426                  d(6,1) = 5.3197 ; d(6,2) = -1.4836;
     427                  d(7,1) = 11.2494; d(7,2) = -8.0298;
     428                  d(8,1) = 7.1089 ; d(8,2) = -3.8045;
     429                  d(9,1) = 2.6910 ; d(9,2) = 0.6924;
     430                  d(10,1) = 2.6910; d(10,2) = 0.6924;
     431                  d(11,1) = 2.9  ;
     432                  d(12,1) = 2.6  ;
     433
     434                % ocean
     435                  if (~self.issolid(end))
     436                        d(13,1) = 1.02 ;
     437
     438                % continental
     439                  else
     440                  d(13,1) = d(12,1);
     441                  end
     442
     443                  p = zeros(13,4); %polynomial coef for Vp, pressure wave velocity
     444                  p(1,1) = 11.2622 ; p(1,3) = -6.3640;
     445                  p(2,1) = 11.0487 ; p(2,2) = -4.0362; p(2,3)  = 4.8023; p(2,4) = -13.5732;
     446                  p(3,1) = 15.3891 ; p(3,2) = -5.3181; p(3,3)  = 5.5242; p(3,4) = -2.5514;
     447                  p(4,1) = 24.952 ; p(4,2)  = -40.4673; p(4,3) = 51.4832; p(4,4) = -26.6419;
     448                  p(5,1) = 29.2766 ; p(5,2) = -23.6027; p(5,3) = 5.5242; p(5,4) = -2.5514;
     449                  p(6,1) = 19.0957 ; p(6,2)  = -9.8672;
     450                  p(7,1) = 39.7027 ; p(7,2)  = -32.6166;
     451                  p(8,1) = 20.3926 ; p(8,2)  = -12.2569;
     452                  p(9,1) = 4.1875 ; p(9,2)  = 3.9382;
     453                  p(10,1) = 4.1875 ; p(10,2) = 3.9382;
     454                  p(11,1) = 6.8 ;
     455                  p(12,1) = 5.8;
     456                %
     457                % ocean
     458                  if (~self.issolid(end))
     459                  p(13,1) = 1.45 ;
     460                %
     461                % continental
     462                  else
     463                  p(13,1) = p(12,1);
     464                  end
     465                %----
     466                %
     467                  s = zeros(13,4); %polynomial coef for Vs, shear wave velocity
     468                %
     469                  s(1,1) = 3.6678; s(1,3) = -4.4475;
     470
     471                  s(3,1) = 6.9254; s(3,2) = 1.4672; s(3,3) = -2.0834; s(3,4) = 0.9783;
     472                  s(4,1) = 11.1671; s(4,2) = -13.7818; s(4,3) = 17.4575; s(4,4) = -9.2777;
     473                  s(5,1) = 22.3459; s(5,2) = -17.2473; s(5,3) = -2.0834; s(5,4) = 0.9783;
     474                  s(6,1) = 9.9839; s(6,2) = -4.9324;
     475                  s(7,1) = 22.3512; s(7,2) = -18.5856 ;
     476                  s(8,1) = 8.9496; s(8,2) = -4.4597;
     477                  s(9,1) = 2.1519; s(9,2) = 2.3481;
     478                  s(10,1) = 2.1519; s(10,2) = 2.3481;
     479                  s(11,1) = 3.9 ;
     480                  s(12,1) = 3.2 ;
     481                %
     482                % ocean (please don't modify)
     483                  if (~self.issolid(end))
     484                %
     485                % continental
     486                  else
     487                  s(13,1) = s(12,1);
     488                  end
     489                %
     490                %
     491                  r = r*1e3;
     492                 
     493                  %- handling the first layer : central sphere
     494                  rad = self.radius;
     495                  rad(1) = 0.;
     496                 
     497                  for j = 1:self.numlayers
     498                 
     499                        ro = 0.;
     500                        vp = 0.;
     501                        vs = 0.;
     502
     503                        for i = 1:13
     504
     505                                r1 = 0.;
     506                                r2 = 0.;
     507                                if ((rad(j) > r(i)) & (rad(j) <= r(i+1)))
     508                                        if (rad(j+1) <= r(i+1))
     509                                                r2 = rad(j+1);
     510                                                r1 = rad(j);
     511                                        else
     512                                                r2 = r(i+1);
     513                                                r1 = rad(j);
     514                                        end
     515                                elseif (rad(j) <= r(i))
     516                                        if ((rad(j+1) > r(i)) & (rad(j+1) <= r(i+1)))
     517                                                r2 = rad(j+1);
     518                                                r1 = r(i);
     519                                        elseif (rad(j+1) > r(i+1))
     520                                                r2 = r(i+1);
     521                                                r1 = r(i);
     522                                        end
     523                                end
     524
     525                                t1 = d(i,1)/3.;
     526                                t2 = d(i,2)/(ra*4.);
     527                                t3 = d(i,3)/((ra^2)*5.);
     528                                t4 = d(i,4)/((ra^3)*6.);
     529                                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) );
     530                                         
     531                                t1 = p(i,1)/3.;
     532                                t2 = p(i,2)/(ra*4.);
     533                                t3 = p(i,3)/((ra^2)*5.);
     534                                t4 = p(i,4)/((ra^3)*6.);
     535                                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) );
     536                                         
     537                                t1 = s(i,1)/3.;
     538                                t2 = s(i,2)/(ra*4.);
     539                                t3 = s(i,3)/((ra^2)*5.);
     540                                t4 = s(i,4)/((ra^3)*6.);
     541                                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) );
     542
     543                        end
     544                        ro = ro*3 / (rad(j+1)^3-rad(j)^3);
     545                        vp = vp*3 /(rad(j+1)^3-rad(j)^3);
     546                        vs = vs*3 / (rad(j+1)^3-rad(j)^3);
     547                        mu = ro*vs.^2;
     548                        la = ro*vp.^2 - 2.*mu;
     549                        ro = ro*1e3;
     550                        la = la*1e9;
     551                        mu = mu*1e9;
     552
     553                        self.density(j) = ro;
     554                        self.lame_lambda(j) = la;
     555                        self.lame_mu(j) = mu;
     556                  end
     557
     558                end % }}}
    353559        end
    354560end
     
    358564        for i=1:length(strnat),
    359565                switch strnat{i},
    360                         case 'damageice'
     566                case 'damageice'
    361567                        intnat(i)=1;
    362568                case 'estar'
Note: See TracChangeset for help on using the changeset viewer.