Changeset 23739
- Timestamp:
- 02/19/19 11:06:40 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/classes/initialization.m
r21406 r23739 12 12 pressure = NaN; 13 13 temperature = NaN; 14 enthalpy = NaN; 14 15 waterfraction = NaN; 15 16 sediment_head = NaN; … … 25 26 self.vel=project3d(md,'vector',self.vel,'type','node'); 26 27 self.temperature=project3d(md,'vector',self.temperature,'type','node'); 28 self.enthalpy=project3d(md,'vector',self.enthalpy,'type','node'); 27 29 self.waterfraction=project3d(md,'vector',self.waterfraction,'type','node'); 28 30 self.watercolumn=project3d(md,'vector',self.watercolumn,'type','node','layer',1); … … 110 112 fielddisplay(self,'pressure','pressure field [Pa]'); 111 113 fielddisplay(self,'temperature','temperature [K]'); 114 fielddisplay(self,'enthalpy','enthalpy [J]'); 112 115 fielddisplay(self,'waterfraction','fraction of water in the ice'); 113 116 fielddisplay(self,'sediment_head','sediment water head of subglacial system [m]'); … … 126 129 WriteData(fid,prefix,'object',self,'fieldname','pressure','format','DoubleMat','mattype',1); 127 130 WriteData(fid,prefix,'object',self,'fieldname','temperature','format','DoubleMat','mattype',1); 131 WriteData(fid,prefix,'object',self,'fieldname','enthalpy','format','DoubleMat','mattype',1); 128 132 WriteData(fid,prefix,'object',self,'fieldname','waterfraction','format','DoubleMat','mattype',1); 129 133 WriteData(fid,prefix,'object',self,'fieldname','sediment_head','format','DoubleMat','mattype',1); … … 133 137 134 138 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 139 148 WriteData(fid,prefix,'data',enthalpy,'format','DoubleMat','mattype',1,'name','md.initialization.enthalpy'); 140 149 end … … 148 157 writejs1Darray(fid,[modelname '.initialization.pressure'],self.pressure); 149 158 writejs1Darray(fid,[modelname '.initialization.temperature'],self.temperature); 159 writejs1Darray(fid,[modelname '.initialization.enthalpy'],self.enthalpy); 150 160 writejs1Darray(fid,[modelname '.initialization.waterfraction'],self.waterfraction); 151 161 writejs1Darray(fid,[modelname '.initialization.sediment_head'],self.sediment_head);
Note:
See TracChangeset
for help on using the changeset viewer.