Changeset 13131


Ignore:
Timestamp:
08/22/12 15:38:24 (13 years ago)
Author:
Mathieu Morlighem
Message:

NEW: tria->material is now an object-oriented that can either be Matice or Matdamageice

Location:
issm/trunk-jpl/src/m/classes
Files:
2 edited
1 moved

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/classes/initialization.m

    r13119 r13131  
    8282                        WriteData(fid,'data',obj.pressure,'format','DoubleMat','mattype',1,'enum',PressureEnum);
    8383                        WriteData(fid,'data',obj.temperature,'format','DoubleMat','mattype',1,'enum',TemperatureEnum);
    84                         WriteData(fid,'data',obj.surfacetemp,'format','DoubleMat','mattype',1,'enum',TemperatureSurfaceEnum);
    85                         WriteData(fid,'data',obj.basaltemp,'format','DoubleMat','mattype',1,'enum',TemperatureBasalEnum);
    8684                        WriteData(fid,'data',obj.watercolumn,'format','DoubleMat','mattype',1,'enum',WatercolumnEnum);
    8785                        WriteData(fid,'data',obj.waterfraction,'format','DoubleMat','mattype',1,'enum',WaterfractionEnum);
  • issm/trunk-jpl/src/m/classes/matice.m

    r13125 r13131  
    1 %MATERIALS class definition
     1%MATICE class definition
    22%
    33%   Usage:
    4 %      materials=materials();
     4%      matice=matice();
    55
    6 classdef materials
     6classdef matice
    77        properties (SetAccess=public)
    88                rho_ice                    = 0.;
     
    1919                rheology_B   = NaN;
    2020                rheology_n   = NaN;
    21                 rheology_Z   = NaN;
    2221                rheology_law = '';
    2322        end
    2423        methods
    25                 function obj = materials(varargin) % {{{
     24                function obj = matice(varargin) % {{{
    2625                        switch nargin
    2726                                case 0
     
    7776                        md = checkfield(md,'materials.rheology_B','>',0,'size',[md.mesh.numberofvertices 1]);
    7877                        md = checkfield(md,'materials.rheology_n','>',0,'size',[md.mesh.numberofelements 1]);
    79                         md = checkfield(md,'materials.rheology_Z','>',0,'size',[md.mesh.numberofvertices 1]);
    8078                        md = checkfield(md,'materials.rheology_law','values',{'None' 'Paterson' 'Arrhenius'});
    8179                end % }}}
     
    9694                        fielddisplay(obj,'rheology_B','flow law parameter [Pa/s^(1/n)]');
    9795                        fielddisplay(obj,'rheology_n','Glen''s flow law exponent');
    98                         fielddisplay(obj,'rheology_Z','rheology multiplier');
    9996                        fielddisplay(obj,'rheology_law','law for the temperature dependance of the rheology: ''None'', ''Paterson'' or ''Arrhenius''');
    10097                end % }}}
    10198                function marshall(obj,fid) % {{{
    102                         WriteData(fid,'object',obj,'fieldname','rho_ice','format','Double');
    103                         WriteData(fid,'object',obj,'fieldname','rho_water','format','Double');
    104                         WriteData(fid,'object',obj,'fieldname','rho_freshwater','format','Double');
    105                         WriteData(fid,'object',obj,'fieldname','mu_water','format','Double');
    106                         WriteData(fid,'object',obj,'fieldname','heatcapacity','format','Double');
    107                         WriteData(fid,'object',obj,'fieldname','latentheat','format','Double');
    108                         WriteData(fid,'object',obj,'fieldname','thermalconductivity','format','Double');
    109                         WriteData(fid,'object',obj,'fieldname','meltingpoint','format','Double');
    110                         WriteData(fid,'object',obj,'fieldname','beta','format','Double');
    111                         WriteData(fid,'object',obj,'fieldname','mixed_layer_capacity','format','Double');
    112                         WriteData(fid,'object',obj,'fieldname','thermal_exchange_velocity','format','Double');
    113                         WriteData(fid,'object',obj,'fieldname','rheology_B','format','DoubleMat','mattype',1);
    114                         WriteData(fid,'object',obj,'fieldname','rheology_n','format','DoubleMat','mattype',2);
    115                         WriteData(fid,'object',obj,'fieldname','rheology_Z','format','DoubleMat','mattype',1);
     99                        WriteData(fid,'enum',MaterialsEnum(),'data',MaticeEnum(),'format','Integer');
     100                        WriteData(fid,'object',obj,'class','materials','fieldname','rho_ice','format','Double');
     101                        WriteData(fid,'object',obj,'class','materials','fieldname','rho_water','format','Double');
     102                        WriteData(fid,'object',obj,'class','materials','fieldname','rho_freshwater','format','Double');
     103                        WriteData(fid,'object',obj,'class','materials','fieldname','mu_water','format','Double');
     104                        WriteData(fid,'object',obj,'class','materials','fieldname','heatcapacity','format','Double');
     105                        WriteData(fid,'object',obj,'class','materials','fieldname','latentheat','format','Double');
     106                        WriteData(fid,'object',obj,'class','materials','fieldname','thermalconductivity','format','Double');
     107                        WriteData(fid,'object',obj,'class','materials','fieldname','meltingpoint','format','Double');
     108                        WriteData(fid,'object',obj,'class','materials','fieldname','beta','format','Double');
     109                        WriteData(fid,'object',obj,'class','materials','fieldname','mixed_layer_capacity','format','Double');
     110                        WriteData(fid,'object',obj,'class','materials','fieldname','thermal_exchange_velocity','format','Double');
     111                        WriteData(fid,'object',obj,'class','materials','fieldname','rheology_B','format','DoubleMat','mattype',1);
     112                        WriteData(fid,'object',obj,'class','materials','fieldname','rheology_n','format','DoubleMat','mattype',2);
    116113                        WriteData(fid,'data',StringToEnum(obj.rheology_law),'enum',MaterialsRheologyLawEnum(),'format','Integer');
    117114                end % }}}
  • issm/trunk-jpl/src/m/classes/model/model.m

    r13119 r13131  
    168168                         md.materials.rheology_B=DepthAverage(md,md.materials.rheology_B);
    169169                         md.materials.rheology_n=project2d(md,md.materials.rheology_n,1);
    170                          md.materials.rheology_Z=DepthAverage(md,md.materials.rheology_Z);
     170                         if isa(md.materials,'matdamageice')
     171                                 md.materials.rheology_Z=DepthAverage(md,md.materials.rheology_Z);
     172                         end
    171173
    172174                         %special for thermal modeling:
     
    717719                         md.materials.rheology_B=project3d(md,'vector',md.materials.rheology_B,'type','node');
    718720                         md.materials.rheology_n=project3d(md,'vector',md.materials.rheology_n,'type','element');
    719                          md.materials.rheology_Z=project3d(md,'vector',md.materials.rheology_Z,'type','node');
     721                         if isa(md.materials,'matdamageice')
     722                                 md.materials.rheology_Z=project3d(md,'vector',md.materials.rheology_Z,'type','node');
     723                         end
    720724
    721725                         %parameters
     
    831835                         if isfield(structmd,'B'), md.materials.rheology_B=structmd.B; end
    832836                         if isfield(structmd,'n'), md.materials.rheology_n=structmd.n; end
    833                          if isfield(structmd,'Z'), md.materials.rheology_Z=structmd.Z; end
    834837                         if isfield(structmd,'rheology_B'), md.materials.rheology_B=structmd.rheology_B; end
    835838                         if isfield(structmd,'rheology_n'), md.materials.rheology_n=structmd.rheology_n; end
    836                          if isfield(structmd,'rheology_Z'), md.materials.rheology_Z=structmd.rheology_Z; end
    837839                         if isfield(structmd,'elementoniceshelf'), md.mask.elementonfloatingice=structmd.elementoniceshelf; end
    838840                         if isfield(structmd,'elementonicesheet'), md.mask.elementongroundedice=structmd.elementonicesheet; end
     
    10441046                         md.timestepping     = timestepping();
    10451047                         md.groundingline    = groundingline();
    1046                          md.materials        = materials();
     1048                         md.materials        = matice();
    10471049                         md.flowequation     = flowequation();
    10481050                         md.debug            = debug();
Note: See TracChangeset for help on using the changeset viewer.