source: issm/oecreview/Archive/21337-21723/ISSM-21405-21406.diff@ 21726

Last change on this file since 21726 was 21726, checked in by Mathieu Morlighem, 8 years ago

CHG added Archive/21337-21723

File size: 4.0 KB
  • ../trunk-jpl/src/m/classes/initialization.m

     
    7575                        if (ismember('EnthalpyAnalysis',analyses) & md.thermal.isenthalpy)
    7676                                md = checkfield(md,'fieldname','initialization.waterfraction','>=',0,'size',[md.mesh.numberofvertices 1]);
    7777                                md = checkfield(md,'fieldname','initialization.watercolumn'  ,'>=',0,'size',[md.mesh.numberofvertices 1]);
     78                                pos=find(md.initialization.waterfraction>0.);
     79                                if(~isempty(pos)),
     80                                        md = checkfield(md,'fieldname', 'delta Tpmp', 'field',abs(md.initialization.temperature(pos)-(md.materials.meltingpoint-md.materials.beta*md.initialization.pressure(pos))),'<',1e-11,...
     81                                        'message','set temperature to pressure melting point at locations with waterfraction>0');
     82                                end
    7883                        end
    7984                        if ismember('HydrologyShreveAnalysis',analyses),
    8085                                if isa(md.hydrology,'hydrologyshreve'),
     
    128133
    129134                        if md.thermal.isenthalpy,
    130135                                tpmp = md.materials.meltingpoint - md.materials.beta*md.initialization.pressure;
    131                                 pos  = find(md.initialization.temperature>=tpmp-1e-12);
     136                                pos  = find(md.initialization.waterfraction>0.);
    132137                                enthalpy      = md.materials.heatcapacity*(md.initialization.temperature-md.constants.referencetemperature);
    133138                                enthalpy(pos) = md.materials.heatcapacity*(tpmp(pos) - md.constants.referencetemperature) + md.materials.latentheat*md.initialization.waterfraction(pos);
    134139                                WriteData(fid,prefix,'data',enthalpy,'format','DoubleMat','mattype',1,'name','md.initialization.enthalpy');
  • ../trunk-jpl/src/m/classes/initialization.py

     
    9999                        if ('EnthalpyAnalysis' in analyses and md.thermal.isenthalpy):
    100100                                md = checkfield(md,'fieldname','initialization.waterfraction','>=',0,'size',[md.mesh.numberofvertices])
    101101                                md = checkfield(md,'fieldname','initialization.watercolumn'  ,'>=',0,'size',[md.mesh.numberofvertices])
     102                                pos = np.nonzero(md.initialization.waterfraction > 0.)[0]
     103                                if(pos.size):
     104                                        md = checkfield(md,'fieldname', 'delta Tpmp', 'field', np.absolute(md.initialization.temperature[pos]-(md.materials.meltingpoint-md.materials.beta*md.initialization.pressure[pos])),'<',1e-11, 'message','set temperature to pressure melting point at locations with waterfraction>0');
    102105                if 'HydrologyShreveAnalysis' in analyses:
    103106                        if hasattr(md.hydrology,'hydrologyshreve'):
    104107                                md = checkfield(md,'fieldname','initialization.watercolumn','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
     
    130133               
    131134                if md.thermal.isenthalpy:
    132135                        tpmp = md.materials.meltingpoint - md.materials.beta*md.initialization.pressure;
    133                         pos  = np.nonzero(md.initialization.temperature > tpmp)[0]
     136                        pos  = np.nonzero(md.initialization.waterfraction > 0.)[0]
    134137                        enthalpy      = md.materials.heatcapacity*(md.initialization.temperature-md.constants.referencetemperature);
    135                         enthalpy[pos] = md.materials.heatcapacity*tpmp[pos].reshape(-1,) - md.constants.referencetemperature + md.materials.latentheat*md.initialization.waterfraction[pos].reshape(-1,)
     138                        enthalpy[pos] = md.materials.heatcapacity*(tpmp[pos].reshape(-1,) - md.constants.referencetemperature) + md.materials.latentheat*md.initialization.waterfraction[pos].reshape(-1,)
    136139                        WriteData(fid,prefix,'data',enthalpy,'format','DoubleMat','mattype',1,'name','md.initialization.enthalpy');
    137140
    138141        # }}}
Note: See TracBrowser for help on using the repository browser.