Index: ../trunk-jpl/src/m/classes/initialization.m =================================================================== --- ../trunk-jpl/src/m/classes/initialization.m (revision 21405) +++ ../trunk-jpl/src/m/classes/initialization.m (revision 21406) @@ -75,6 +75,11 @@ if (ismember('EnthalpyAnalysis',analyses) & md.thermal.isenthalpy) md = checkfield(md,'fieldname','initialization.waterfraction','>=',0,'size',[md.mesh.numberofvertices 1]); md = checkfield(md,'fieldname','initialization.watercolumn' ,'>=',0,'size',[md.mesh.numberofvertices 1]); + pos=find(md.initialization.waterfraction>0.); + if(~isempty(pos)), + md = checkfield(md,'fieldname', 'delta Tpmp', 'field',abs(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'); + end end if ismember('HydrologyShreveAnalysis',analyses), if isa(md.hydrology,'hydrologyshreve'), @@ -128,7 +133,7 @@ if md.thermal.isenthalpy, tpmp = md.materials.meltingpoint - md.materials.beta*md.initialization.pressure; - pos = find(md.initialization.temperature>=tpmp-1e-12); + pos = find(md.initialization.waterfraction>0.); enthalpy = md.materials.heatcapacity*(md.initialization.temperature-md.constants.referencetemperature); enthalpy(pos) = md.materials.heatcapacity*(tpmp(pos) - md.constants.referencetemperature) + md.materials.latentheat*md.initialization.waterfraction(pos); WriteData(fid,prefix,'data',enthalpy,'format','DoubleMat','mattype',1,'name','md.initialization.enthalpy'); Index: ../trunk-jpl/src/m/classes/initialization.py =================================================================== --- ../trunk-jpl/src/m/classes/initialization.py (revision 21405) +++ ../trunk-jpl/src/m/classes/initialization.py (revision 21406) @@ -99,6 +99,9 @@ if ('EnthalpyAnalysis' in analyses and md.thermal.isenthalpy): md = checkfield(md,'fieldname','initialization.waterfraction','>=',0,'size',[md.mesh.numberofvertices]) md = checkfield(md,'fieldname','initialization.watercolumn' ,'>=',0,'size',[md.mesh.numberofvertices]) + pos = np.nonzero(md.initialization.waterfraction > 0.)[0] + if(pos.size): + 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'); if 'HydrologyShreveAnalysis' in analyses: if hasattr(md.hydrology,'hydrologyshreve'): md = checkfield(md,'fieldname','initialization.watercolumn','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices]) @@ -130,9 +133,9 @@ if md.thermal.isenthalpy: tpmp = md.materials.meltingpoint - md.materials.beta*md.initialization.pressure; - pos = np.nonzero(md.initialization.temperature > tpmp)[0] + pos = np.nonzero(md.initialization.waterfraction > 0.)[0] enthalpy = md.materials.heatcapacity*(md.initialization.temperature-md.constants.referencetemperature); - enthalpy[pos] = md.materials.heatcapacity*tpmp[pos].reshape(-1,) - md.constants.referencetemperature + md.materials.latentheat*md.initialization.waterfraction[pos].reshape(-1,) + enthalpy[pos] = md.materials.heatcapacity*(tpmp[pos].reshape(-1,) - md.constants.referencetemperature) + md.materials.latentheat*md.initialization.waterfraction[pos].reshape(-1,) WriteData(fid,prefix,'data',enthalpy,'format','DoubleMat','mattype',1,'name','md.initialization.enthalpy'); # }}} Index: ../trunk-jpl/test/Archives/Archive805.arch =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: ../trunk-jpl/test/Archives/Archive803.arch =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream