Changeset 23739


Ignore:
Timestamp:
02/19/19 11:06:40 (6 years ago)
Author:
Mathieu Morlighem
Message:

CHG: adding enthalpy to temperature for Josh that has non P1 elements

File:
1 edited

Legend:

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

    r21406 r23739  
    1212                pressure      = NaN;
    1313                temperature   = NaN;
     14                enthalpy      = NaN;
    1415                waterfraction = NaN;
    1516                sediment_head = NaN;
     
    2526                        self.vel=project3d(md,'vector',self.vel,'type','node');
    2627                        self.temperature=project3d(md,'vector',self.temperature,'type','node');
     28                        self.enthalpy=project3d(md,'vector',self.enthalpy,'type','node');
    2729                        self.waterfraction=project3d(md,'vector',self.waterfraction,'type','node');
    2830                        self.watercolumn=project3d(md,'vector',self.watercolumn,'type','node','layer',1);
     
    110112                        fielddisplay(self,'pressure','pressure field [Pa]');
    111113                        fielddisplay(self,'temperature','temperature [K]');
     114                        fielddisplay(self,'enthalpy','enthalpy [J]');
    112115                        fielddisplay(self,'waterfraction','fraction of water in the ice');
    113116                        fielddisplay(self,'sediment_head','sediment water head of subglacial system [m]');
     
    126129                        WriteData(fid,prefix,'object',self,'fieldname','pressure','format','DoubleMat','mattype',1);
    127130                        WriteData(fid,prefix,'object',self,'fieldname','temperature','format','DoubleMat','mattype',1);
     131                        WriteData(fid,prefix,'object',self,'fieldname','enthalpy','format','DoubleMat','mattype',1);
    128132                        WriteData(fid,prefix,'object',self,'fieldname','waterfraction','format','DoubleMat','mattype',1);
    129133                        WriteData(fid,prefix,'object',self,'fieldname','sediment_head','format','DoubleMat','mattype',1);
     
    133137
    134138                        if md.thermal.isenthalpy,
    135                                 tpmp = md.materials.meltingpoint - md.materials.beta*md.initialization.pressure;
    136                                 pos  = find(md.initialization.waterfraction>0.);
    137                                 enthalpy      = md.materials.heatcapacity*(md.initialization.temperature-md.constants.referencetemperature);
    138                                 enthalpy(pos) = md.materials.heatcapacity*(tpmp(pos) - md.constants.referencetemperature) + md.materials.latentheat*md.initialization.waterfraction(pos);
     139                                if numel(self.enthalpy) <= 1,
     140                                        %reconstruct enthalpy
     141                                        tpmp = md.materials.meltingpoint - md.materials.beta*md.initialization.pressure;
     142                                        pos  = find(md.initialization.waterfraction>0.);
     143                                        enthalpy      = md.materials.heatcapacity*(md.initialization.temperature-md.constants.referencetemperature);
     144                                        enthalpy(pos) = md.materials.heatcapacity*(tpmp(pos) - md.constants.referencetemperature) + md.materials.latentheat*md.initialization.waterfraction(pos);
     145                                else
     146                                        enthalpy = self.enthalpy;
     147                                end
    139148                                WriteData(fid,prefix,'data',enthalpy,'format','DoubleMat','mattype',1,'name','md.initialization.enthalpy');
    140149                        end
     
    148157                        writejs1Darray(fid,[modelname '.initialization.pressure'],self.pressure);
    149158                        writejs1Darray(fid,[modelname '.initialization.temperature'],self.temperature);
     159                        writejs1Darray(fid,[modelname '.initialization.enthalpy'],self.enthalpy);
    150160                        writejs1Darray(fid,[modelname '.initialization.waterfraction'],self.waterfraction);
    151161                        writejs1Darray(fid,[modelname '.initialization.sediment_head'],self.sediment_head);
Note: See TracChangeset for help on using the changeset viewer.