Ignore:
Timestamp:
04/12/16 21:32:01 (9 years ago)
Author:
Mathieu Morlighem
Message:

merged trunk-jpl and trunk for revision 20497

Location:
issm/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk

  • issm/trunk/src

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

    r19105 r20500  
    2828                mantle_density             = 0.;
    2929
     30                %slr
     31                earth_density              = 0;
     32
    3033        end
    3134        methods
    32                 function createxml(self,fid) % {{{
    33                         fprintf(fid, '\n\n');
    34                         fprintf(fid, '<!-- materials -->\n');
    35                         fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="rho_ice" type="',class(self.rho_ice),'" default="',convert2str(self.rho_ice),'">','     <section name="materials" />','     <help> ice density [kg/m^3] </help>','</parameter>');
    36                         fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="rho_water" type="',class(self.rho_water),'" default="',convert2str(self.rho_water),'">','     <section name="materials" />','     <help> ocean water density [kg/m^3] </help>','</parameter>');
    37                         fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="rho_freshwater" type="',class(self.rho_freshwater),'" default="',convert2str(self.rho_freshwater),'">','     <section name="materials" />','     <help> fresh water density [kg/m^3] </help>','</parameter>');
    38 
    39 
    40                         fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="mu_water" type="',class(self.mu_water),'" default="',convert2str(self.mu_water),'">','     <section name="materials" />','     <help> water viscosity [N s/m^2] </help>','</parameter>');
    41                         fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="heatcapacity" type="',class(self.heatcapacity),'" default="',convert2str(self.heatcapacity),'">','     <section name="materials" />','     <help> heat capacity [J/kg/K] </help>','</parameter>');
    42                         fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="latentheat" type="',class(self.latentheat),'" default="',convert2str(self.latentheat),'">','     <section name="materials" />','     <help> latent heat of fusion [J/kg] </help>','</parameter>');
    43 
    44 
    45                         fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="thermalconductivity" type="',class(self.thermalconductivity),'" default="',convert2str(self.thermalconductivity),'">','     <section name="materials" />','     <help> ice thermal conductivity [W/m/K] </help>','</parameter>');
    46                         fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="temperateiceconductivity" type="',class(self.temperateiceconductivity),'" default="',convert2str(self.temperateiceconductivity),'">','     <section name="materials" />','     <help> temperate ice thermal conductivity [W/m/K] </help>','</parameter>');
    47                         fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="meltingpoint" type="',class(self.meltingpoint),'" default="',convert2str(self.meltingpoint),'">','     <section name="materials" />','     <help> melting point of ice at 1atm in K </help>','</parameter>');
    48 
    49 
    50                         fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="beta" type="',class(self.beta),'" default="',convert2str(self.beta),'">','     <section name="materials" />','     <help> rate of change of melting point with pressure [K/Pa] </help>','</parameter>');
    51                         fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="mixed_layer_capacity" type="',class(self.mixed_layer_capacity),'" default="',convert2str(self.mixed_layer_capacity),'">','     <section name="materials" />','     <help> mixed layer capacity [W/kg/K] </help>','</parameter>');
    52                         fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="thermal_exchange_velocity" type="',class(self.thermal_exchange_velocity),'" default="',convert2str(self.thermal_exchange_velocity),'">','     <section name="materials" />','     <help> thermal exchange velocity [m/s] </help>','</parameter>');
    53 
    54 
    55                         fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="rheology_B" type="',class(self.rheology_B),'" default="',convert2str(self.rheology_B),'">','     <section name="materials" />','     <help> flow law parameter [Pa/s^(1/n)] </help>','</parameter>');
    56                         fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="rheology_n" type="',class(self.rheology_n),'" default="',convert2str(self.rheology_n),'">','     <section name="materials" />','     <help> Glens flow law exponent </help>','</parameter>');
    57 
    58                         % rheology_law drop-down
    59                         fprintf(fid,'%s\n%s\n%s\n%s\n','<parameter key ="rheology_law" type="alternative" optional="false">','     <section name="materials" />','     <help> law for the temperature dependance of the rheology: "None", "Paterson",  "Arrhenius" or "LliboutryDuval" </help>');
    60                         fprintf(fid,'%s\n','       <option value="None" type="string" default="true"> </option>');
    61                         fprintf(fid,'%s\n','       <option value="Paterson" type="string" default="false"> </option>');
    62                         fprintf(fid,'%s\n','       <option value="Arrhenius" type="string" default="false"> </option>');
    63                         fprintf(fid,'%s\n%s\n','       <option value="LliboutryDuval" type="string" default="false"> </option>','</parameter>');
    64 
    65 
    66                         fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="lithosphere_shear_modulus" type="',class(self.lithosphere_shear_modulus),'" default="',convert2str(self.lithosphere_shear_modulus),'">','     <section name="materials" />','     <help> Lithosphere shear modulus [Pa] </help>','</parameter>');
    67                         fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="lithosphere_density" type="',class(self.lithosphere_density),'" default="',convert2str(self.lithosphere_density),'">','     <section name="materials" />','     <help> Lithosphere density [g/cm^-3] </help>','</parameter>');
    68                         fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="mantle_shear_modulus" type="',class(self.mantle_shear_modulus),'" default="',convert2str(self.mantle_shear_modulus),'">','     <section name="materials" />','     <help> Mantle shear modulus [Pa] </help>','</parameter>');
    69                         fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="mantle_density" type="',class(self.mantle_density),'" default="',convert2str(self.mantle_density),'">','     <section name="materials" />','     <help> Mantle density [g/cm^-3] </help>','</parameter>');
    70 
    71 
    72                 end % }}}
    7335                function self = extrude(self,md) % {{{
    7436                        self.rheology_B=project3d(md,'vector',self.rheology_B,'type','node');
     
    141103                        self.mantle_density             = 3.34;       % (g/cm^-3)
    142104
     105                        %SLR
     106                        self.earth_density= 5512;  % average density of the Earth, (kg/m^3)
     107
    143108                end % }}}
    144109                function md = checkconsistency(self,md,solution,analyses) % {{{
     
    147112                        md = checkfield(md,'fieldname','materials.rho_freshwater','>',0);
    148113                        md = checkfield(md,'fieldname','materials.mu_water','>',0);
    149                         md = checkfield(md,'fieldname','materials.rheology_B','>',0,'timeseries',1,'NaN',1);
     114                        md = checkfield(md,'fieldname','materials.rheology_B','>',0,'timeseries',1,'NaN',1,'Inf',1);
    150115                        md = checkfield(md,'fieldname','materials.rheology_n','>',0,'size',[md.mesh.numberofelements 1]);
    151116                        md = checkfield(md,'fieldname','materials.rheology_law','values',{'None' 'Cuffey' 'Paterson' 'Arrhenius' 'LliboutryDuval'});
     
    156121                                md = checkfield(md,'fieldname','materials.mantle_shear_modulus','>',0,'numel',1);
    157122                                md = checkfield(md,'fieldname','materials.mantle_density','>',0,'numel',1);
     123                        end
     124                        if ismember(SealevelriseAnalysisEnum(),analyses),
     125                                md = checkfield(md,'fieldname','materials.earth_density','>',0,'numel',1);
    158126                        end
    159127
     
    181149                        fielddisplay(self,'mantle_shear_modulus','Mantle shear modulus [Pa]');
    182150                        fielddisplay(self,'mantle_density','Mantle density [g/cm^-3]');
     151                        fielddisplay(self,'earth_density','Mantle density [kg/m^-3]');
    183152                end % }}}
    184153                function marshall(self,md,fid) % {{{
     
    204173                        WriteData(fid,'object',self,'class','materials','fieldname','mantle_shear_modulus','format','Double');
    205174                        WriteData(fid,'object',self,'class','materials','fieldname','mantle_density','format','Double','scale',10^3);
     175                        WriteData(fid,'object',self,'class','materials','fieldname','earth_density','format','Double');
     176                end % }}}
     177                function savemodeljs(self,fid,modelname) % {{{
     178               
     179                        writejsdouble(fid,[modelname '.materials.rho_ice'],self.rho_ice);
     180                        writejsdouble(fid,[modelname '.materials.rho_water'],self.rho_water);
     181                        writejsdouble(fid,[modelname '.materials.rho_freshwater'],self.rho_freshwater);
     182                        writejsdouble(fid,[modelname '.materials.mu_water'],self.mu_water);
     183                        writejsdouble(fid,[modelname '.materials.heatcapacity'],self.heatcapacity);
     184                        writejsdouble(fid,[modelname '.materials.latentheat'],self.latentheat);
     185                        writejsdouble(fid,[modelname '.materials.thermalconductivity'],self.thermalconductivity);
     186                        writejsdouble(fid,[modelname '.materials.temperateiceconductivity'],self.temperateiceconductivity);
     187                        writejsdouble(fid,[modelname '.materials.meltingpoint'],self.meltingpoint);
     188                        writejsdouble(fid,[modelname '.materials.beta'],self.beta);
     189                        writejsdouble(fid,[modelname '.materials.mixed_layer_capacity'],self.mixed_layer_capacity);
     190                        writejsdouble(fid,[modelname '.materials.thermal_exchange_velocity'],self.thermal_exchange_velocity);
     191                        writejsdouble(fid,[modelname '.materials.mixed_layer_capacity'],self.mixed_layer_capacity);
     192                        writejs1Darray(fid,[modelname '.materials.rheology_B'],self.rheology_B);
     193                        writejs1Darray(fid,[modelname '.materials.rheology_n'],self.rheology_n);
     194                        writejsstring(fid,[modelname '.materials.rheology_law'],self.rheology_law);
     195                        writejsdouble(fid,[modelname '.materials.lithosphere_shear_modulus'],self.lithosphere_shear_modulus);
     196                        writejsdouble(fid,[modelname '.materials.lithosphere_density'],self.lithosphere_density);
     197                        writejsdouble(fid,[modelname '.materials.mantle_shear_modulus'],self.mantle_shear_modulus);
     198                        writejsdouble(fid,[modelname '.materials.mantle_density'],self.mantle_density);
     199                        writejsdouble(fid,[modelname '.materials.earth_density'],self.earth_density);
     200
    206201                end % }}}
    207202        end
Note: See TracChangeset for help on using the changeset viewer.