Changeset 27297
- Timestamp:
- 10/06/22 23:34:44 (2 years ago)
- Location:
- issm/trunk-jpl/src
- Files:
-
- 1 added
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified issm/trunk-jpl/src/c/analyses/SmbAnalysis.cpp ¶
r27250 r27297 419 419 /*Nothing to add to parameters*/ 420 420 break; 421 case SMBdebrisMLEnum: 422 /*Nothing to add to parameters*/ 423 break; 421 424 default: 422 425 _error_("Surface mass balance model "<<EnumToStringx(smb_model)<<" not supported yet"); … … 484 487 break; 485 488 case SMBarmaEnum: 486 487 488 489 if(VerboseSolution())_printf0_(" call smb arma module\n"); 490 Smbarmax(femmodel); 491 break; 489 492 case SMBhenningEnum: 490 493 if(VerboseSolution())_printf0_(" call smb Henning module\n"); … … 514 517 #endif //_HAVE_SEMIC_ 515 518 break; 519 case SMBdebrisMLEnum: 520 if(VerboseSolution())_printf0_(" call smb debris Mayer & Liculli module\n"); 521 SmbDebrisMLx(femmodel); 522 break; 516 523 default: 517 524 _error_("Surface mass balance model "<<EnumToStringx(smb_model)<<" not supported yet"); -
TabularUnified issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp ¶
r27278 r27297 485 485 parameters->AddObject(iomodel->CopyConstantObject("md.smb.rdl",SmbRdlEnum)); 486 486 break; 487 case SMBdebrisMLEnum: 488 break; 487 489 default: 488 490 _error_("Surface mass balance model "<<EnumToStringx(smb_model)<<" not supported yet"); -
TabularUnified issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.cpp ¶
r27260 r27297 506 506 507 507 }/*}}}*/ 508 void SmbDebrisMLx(FemModel* femmodel){/*{{{*/ 509 510 // The function is based on: 511 // Evatt GW, Abrahams ID, Heil M, Mayer C, Kingslake J, Mitchell SL, et al. Glacial melt under a porous debris layer. Journal of Glaciology 61 (2015) 825–836, doi:10.3189/2 512 // Constants/Values are taken from Mayer, Licciulli (2021): https://www.frontiersin.org/articles/10.3389/feart.2021.710276/full#B7 513 // function taken from https://github.com/carlolic/DebrisExp/blob/main/USFs/USF_DebrisCoverage.f90 514 515 /*Intermediaries*/ 516 // altitude gradients of the crucial parameters (radiation from Marty et al., TaAClimat; 2002) 517 IssmDouble LW=2.9; // W/m^2 /100m 2.9 518 IssmDouble SW=1.3; // W/m^2 /100m 1.3 519 IssmDouble HumidityG=0; // % /100m rough estimate 520 IssmDouble AirTemp=0.7; // C /100m 521 IssmDouble WindSpeed=0.02; // m/s /100m rough estimate 0.2 522 523 // accumulation follows a linear increase above the ELA up to a plateau 524 IssmDouble AccG=0.1; // m w.e. /100m 525 IssmDouble AccMax=1.; // m w.e. 526 IssmDouble ReferenceElevation=2200.; // m M&L 527 IssmDouble AblationDays=120.; // 528 529 IssmDouble In=100.; // Wm^-2 incoming long wave 530 IssmDouble Q=500.; // Wm^-2 incoming short wave 531 IssmDouble K=0.585; // Wm^-1K^-1 thermal conductivity 0.585 532 IssmDouble Qm=0.0012; // kg m^-3 measured humiditiy level 533 IssmDouble Qh=0.006 ; // kg m^-3 saturated humidity level 534 IssmDouble Tm=2.; // C air temperature 535 IssmDouble Rhoaa=1.22; // kgm^-3 air densitiy 536 IssmDouble Um=1.5; // ms^-1 measured wind speed 537 IssmDouble Xm=1.5; // ms^-1 measurement height 538 IssmDouble Xr=0.01; // ms^-1 surface roughness 0.01 539 IssmDouble Alphad=0.07; // debris albedo 0.07 540 IssmDouble Alphai=0.4; // ice ablbedo 541 IssmDouble Ustar=0.16; // ms^-1 friction velocity 0.16 542 IssmDouble Ca=1000.; // jkg^-1K^-1 specific heat capacity of air 543 IssmDouble Lm;//=3.34E+05; // jkg^-1K^-1 latent heat of ice melt 544 IssmDouble Lv=2.50E+06; // jkg^-1K^-1 latent heat of evaporation 545 IssmDouble Tf=273.; // K water freeezing temperature 546 IssmDouble Eps=0.95; // thermal emissivity 547 IssmDouble Rhoi=900.; // kgm^-3 ice density 548 IssmDouble Sigma=5.67E-08; // Wm^-2K^-4 Stefan Boltzmann constant 549 IssmDouble Kstar=0.4; // von kármán constant 550 IssmDouble Gamma=180.; // m^-1 wind speed attenuation 234 551 IssmDouble PhiD;//=0.005; // debris packing fraction 0.01 552 IssmDouble Humidity=0.2; // relative humidity 553 554 IssmDouble smb,yts,z,debris; 555 IssmDouble MassBalanceCmDayDebris,MassBalanceMYearDebris; 556 557 /*Get material parameters and constants */ 558 //femmodel->parameters->FindParam(&Rhoi,MaterialsRhoIceEnum); // Note Carlo's model used as benchmark was run with different densities for debris and FS 559 femmodel->parameters->FindParam(&Lm,MaterialsLatentheatEnum); 560 femmodel->parameters->FindParam(&yts,ConstantsYtsEnum); 561 PhiD=0.; 562 //if(isdebris) femmodel->parameters->FindParam(&PhiD,DebrisPackingFractionEnum); 563 564 /* Loop over all the elements of this partition */ 565 for(Object* & object : femmodel->elements->objects){ 566 Element* element=xDynamicCast<Element*>(object); 567 568 /* Allocate all arrays */ 569 int numvertices=element->GetNumberOfVertices(); 570 IssmDouble* surfacelist=xNew<IssmDouble>(numvertices); 571 IssmDouble* smb=xNew<IssmDouble>(numvertices); 572 IssmDouble* debriscover=xNew<IssmDouble>(numvertices); 573 element->GetInputListOnVertices(surfacelist,SurfaceEnum); 574 575 /* Get inputs */ 576 element->GetInputListOnVertices(debriscover,DebrisThicknessEnum); 577 578 /*Loop over all vertices of element and calculate SMB as function of Debris Cover and z */ 579 for(int v=0;v<numvertices;v++){ 580 581 /*Get vertex elevation */ 582 z=surfacelist[v]; 583 584 /* Get debris cover */ 585 debris=debriscover[v]; 586 587 /*IssmDouble dk=1e-5; // TODO make Alphad and Alphai a user input 588 IssmDouble n=debris/dk; 589 IssmDouble nmax=1000; 590 IssmDouble Alphaeff; 591 if(n>nmax){ 592 Alphaeff=Alphad; 593 } else { 594 Alphaeff=Alphai+n*(Alphad-Alphai)/nmax; 595 }*/ 596 597 // M&L 598 IssmDouble Alphaeff=Alphad; 599 600 /* compute smb */ 601 for (int ismb=0;ismb<2;ismb++){ 602 if(ismb==0){ 603 // calc a reference smb to identify accum and melt region; debris only develops in ablation area 604 debris=0.; 605 }else{ 606 // only in the meltregime debris develops 607 if(-MassBalanceCmDayDebris<0) debris=debriscover[v]; 608 } 609 MassBalanceCmDayDebris=(((In-(z-ReferenceElevation)*LW/100.)-(Eps*Sigma*(Tf*Tf*Tf*Tf))+ 610 (Q+(z-ReferenceElevation)*SW/100.)*(1.-Alphaeff)+ 611 (Rhoaa*Ca*Ustar*Ustar)/((Um-(z-ReferenceElevation)* 612 WindSpeed/100.)-Ustar*(2.-(exp(Gamma*Xr))))*(Tm-(z- 613 ReferenceElevation)*AirTemp/100.))/((1-PhiD)*Rhoi*Lm)/(1.+ 614 ((Rhoaa*Ca*Ustar*Ustar)/((Um-(z-ReferenceElevation)* 615 WindSpeed/100.)-Ustar*(2.-(exp(Gamma*Xr))))+4.*Eps*Sigma*(Tf*Tf*Tf))/ 616 K*debris)-(Lv*Ustar*Ustar*(Qh-(Qh*(Humidity-(z- 617 ReferenceElevation)*HumidityG/100.)))*(exp(-Gamma*Xr)))/((1.-PhiD)* 618 Rhoi*Lm*Ustar)/((((Um-(z-ReferenceElevation)*WindSpeed/100.) 619 -2.*Ustar)*exp(-Gamma*Xr))/Ustar+exp(Gamma*debris)))*100.*24.*60.*60.; 620 } 621 622 /* account form ablation days, and convert to m/s */ 623 MassBalanceMYearDebris=-MassBalanceCmDayDebris/100.*AblationDays/yts; 624 625 /*Update array accordingly*/ 626 smb[v]=MassBalanceMYearDebris; 627 } 628 629 /*Add input to element and Free memory*/ 630 element->AddInput(SmbMassBalanceEnum,smb,P1Enum); 631 xDelete<IssmDouble>(surfacelist); 632 xDelete<IssmDouble>(smb); 633 xDelete<IssmDouble>(debriscover); 634 } 635 }/*}}}*/ 508 636 void SmbGradientsComponentsx(FemModel* femmodel){/*{{{*/ 509 637 -
TabularUnified issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.h ¶
r27250 r27297 23 23 void SmbMeltComponentsx(FemModel* femmodel); 24 24 void SmbGradientsComponentsx(FemModel* femmodel); 25 void SmbDebrisMLx(FemModel* femmodel); 25 26 /* SEMIC: */ 26 27 void SmbSemicx(FemModel* femmodel); -
TabularUnified issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h ¶
r27287 r27297 157 157 DamageStressUBoundEnum, 158 158 DebugProfilingEnum, 159 DebrisThicknessEnum, 159 160 DomainDimensionEnum, 160 161 DomainTypeEnum, … … 1541 1542 SMBarmaEnum, 1542 1543 SMBcomponentsEnum, 1544 SMBdebrisMLEnum, 1543 1545 SMBd18opddEnum, 1544 1546 SMBforcingEnum, -
TabularUnified issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp ¶
r27287 r27297 165 165 case DamageStressUBoundEnum : return "DamageStressUBound"; 166 166 case DebugProfilingEnum : return "DebugProfiling"; 167 case DebrisThicknessEnum : return "DebrisThickness"; 167 168 case DomainDimensionEnum : return "DomainDimension"; 168 169 case DomainTypeEnum : return "DomainType"; … … 1544 1545 case SMBarmaEnum : return "SMBarma"; 1545 1546 case SMBcomponentsEnum : return "SMBcomponents"; 1547 case SMBdebrisMLEnum : return "SMBdebrisML"; 1546 1548 case SMBd18opddEnum : return "SMBd18opdd"; 1547 1549 case SMBforcingEnum : return "SMBforcing"; -
TabularUnified issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp ¶
r27287 r27297 168 168 else if (strcmp(name,"DamageStressUBound")==0) return DamageStressUBoundEnum; 169 169 else if (strcmp(name,"DebugProfiling")==0) return DebugProfilingEnum; 170 else if (strcmp(name,"DebrisThickness")==0) return DebrisThicknessEnum; 170 171 else if (strcmp(name,"DomainDimension")==0) return DomainDimensionEnum; 171 172 else if (strcmp(name,"DomainType")==0) return DomainTypeEnum; … … 259 260 else if (strcmp(name,"HydrologydcSedimentThickness")==0) return HydrologydcSedimentThicknessEnum; 260 261 else if (strcmp(name,"HydrologyStepAdapt")==0) return HydrologyStepAdaptEnum; 261 else if (strcmp(name,"HydrologydcTransferFlag")==0) return HydrologydcTransferFlagEnum;262 262 else stage=3; 263 263 } 264 264 if(stage==3){ 265 if (strcmp(name,"HydrologydcUnconfinedFlag")==0) return HydrologydcUnconfinedFlagEnum; 265 if (strcmp(name,"HydrologydcTransferFlag")==0) return HydrologydcTransferFlagEnum; 266 else if (strcmp(name,"HydrologydcUnconfinedFlag")==0) return HydrologydcUnconfinedFlagEnum; 266 267 else if (strcmp(name,"HydrologyshreveStabilization")==0) return HydrologyshreveStabilizationEnum; 267 268 else if (strcmp(name,"IcecapToEarthComm")==0) return IcecapToEarthCommEnum; … … 382 383 else if (strcmp(name,"QmuResponsedescriptors")==0) return QmuResponsedescriptorsEnum; 383 384 else if (strcmp(name,"QmuVariableDescriptors")==0) return QmuVariableDescriptorsEnum; 384 else if (strcmp(name,"QmuVariablePartitions")==0) return QmuVariablePartitionsEnum;385 385 else stage=4; 386 386 } 387 387 if(stage==4){ 388 if (strcmp(name,"QmuVariablePartitionsNpart")==0) return QmuVariablePartitionsNpartEnum; 388 if (strcmp(name,"QmuVariablePartitions")==0) return QmuVariablePartitionsEnum; 389 else if (strcmp(name,"QmuVariablePartitionsNpart")==0) return QmuVariablePartitionsNpartEnum; 389 390 else if (strcmp(name,"QmuVariablePartitionsNt")==0) return QmuVariablePartitionsNtEnum; 390 391 else if (strcmp(name,"QmuResponsePartitions")==0) return QmuResponsePartitionsEnum; … … 505 506 else if (strcmp(name,"SmbElevationBins")==0) return SmbElevationBinsEnum; 506 507 else if (strcmp(name,"SmbCldFrac")==0) return SmbCldFracEnum; 507 else if (strcmp(name,"SmbDelta18o")==0) return SmbDelta18oEnum;508 508 else stage=5; 509 509 } 510 510 if(stage==5){ 511 if (strcmp(name,"SmbDelta18oSurface")==0) return SmbDelta18oSurfaceEnum; 511 if (strcmp(name,"SmbDelta18o")==0) return SmbDelta18oEnum; 512 else if (strcmp(name,"SmbDelta18oSurface")==0) return SmbDelta18oSurfaceEnum; 512 513 else if (strcmp(name,"SmbDenIdx")==0) return SmbDenIdxEnum; 513 514 else if (strcmp(name,"SmbDt")==0) return SmbDtEnum; … … 628 629 else if (strcmp(name,"TransientRequestedOutputs")==0) return TransientRequestedOutputsEnum; 629 630 else if (strcmp(name,"Velocity")==0) return VelocityEnum; 630 else if (strcmp(name,"Xxe")==0) return XxeEnum;631 631 else stage=6; 632 632 } 633 633 if(stage==6){ 634 if (strcmp(name,"Yye")==0) return YyeEnum; 634 if (strcmp(name,"Xxe")==0) return XxeEnum; 635 else if (strcmp(name,"Yye")==0) return YyeEnum; 635 636 else if (strcmp(name,"Zze")==0) return ZzeEnum; 636 637 else if (strcmp(name,"Areae")==0) return AreaeEnum; … … 751 752 else if (strcmp(name,"Domain3D")==0) return Domain3DEnum; 752 753 else if (strcmp(name,"DragCoefficientAbsGradient")==0) return DragCoefficientAbsGradientEnum; 753 else if (strcmp(name,"DrivingStressX")==0) return DrivingStressXEnum;754 754 else stage=7; 755 755 } 756 756 if(stage==7){ 757 if (strcmp(name,"DrivingStressY")==0) return DrivingStressYEnum; 757 if (strcmp(name,"DrivingStressX")==0) return DrivingStressXEnum; 758 else if (strcmp(name,"DrivingStressY")==0) return DrivingStressYEnum; 758 759 else if (strcmp(name,"Dummy")==0) return DummyEnum; 759 760 else if (strcmp(name,"EffectivePressure")==0) return EffectivePressureEnum; … … 874 875 else if (strcmp(name,"MeshVertexonboundary")==0) return MeshVertexonboundaryEnum; 875 876 else if (strcmp(name,"MeshVertexonsurface")==0) return MeshVertexonsurfaceEnum; 876 else if (strcmp(name,"Misfit")==0) return MisfitEnum;877 877 else stage=8; 878 878 } 879 879 if(stage==8){ 880 if (strcmp(name,"MovingFrontalVx")==0) return MovingFrontalVxEnum; 880 if (strcmp(name,"Misfit")==0) return MisfitEnum; 881 else if (strcmp(name,"MovingFrontalVx")==0) return MovingFrontalVxEnum; 881 882 else if (strcmp(name,"MovingFrontalVy")==0) return MovingFrontalVyEnum; 882 883 else if (strcmp(name,"Neumannflux")==0) return NeumannfluxEnum; … … 997 998 else if (strcmp(name,"SmbC")==0) return SmbCEnum; 998 999 else if (strcmp(name,"SmbCcsnowValue")==0) return SmbCcsnowValueEnum; 999 else if (strcmp(name,"SmbCciceValue")==0) return SmbCciceValueEnum;1000 1000 else stage=9; 1001 1001 } 1002 1002 if(stage==9){ 1003 if (strcmp(name,"SmbCotValue")==0) return SmbCotValueEnum; 1003 if (strcmp(name,"SmbCciceValue")==0) return SmbCciceValueEnum; 1004 else if (strcmp(name,"SmbCotValue")==0) return SmbCotValueEnum; 1004 1005 else if (strcmp(name,"SmbD")==0) return SmbDEnum; 1005 1006 else if (strcmp(name,"SmbDailyairdensity")==0) return SmbDailyairdensityEnum; … … 1120 1121 else if (strcmp(name,"SurfaceAverageVelMisfit")==0) return SurfaceAverageVelMisfitEnum; 1121 1122 else if (strcmp(name,"SurfaceCrevasse")==0) return SurfaceCrevasseEnum; 1122 else if (strcmp(name,"Surface")==0) return SurfaceEnum;1123 1123 else stage=10; 1124 1124 } 1125 1125 if(stage==10){ 1126 if (strcmp(name,"SurfaceOld")==0) return SurfaceOldEnum; 1126 if (strcmp(name,"Surface")==0) return SurfaceEnum; 1127 else if (strcmp(name,"SurfaceOld")==0) return SurfaceOldEnum; 1127 1128 else if (strcmp(name,"SurfaceLogVelMisfit")==0) return SurfaceLogVelMisfitEnum; 1128 1129 else if (strcmp(name,"SurfaceLogVxVyMisfit")==0) return SurfaceLogVxVyMisfitEnum; … … 1243 1244 else if (strcmp(name,"Outputdefinition66")==0) return Outputdefinition66Enum; 1244 1245 else if (strcmp(name,"Outputdefinition67")==0) return Outputdefinition67Enum; 1245 else if (strcmp(name,"Outputdefinition68")==0) return Outputdefinition68Enum;1246 1246 else stage=11; 1247 1247 } 1248 1248 if(stage==11){ 1249 if (strcmp(name,"Outputdefinition69")==0) return Outputdefinition69Enum; 1249 if (strcmp(name,"Outputdefinition68")==0) return Outputdefinition68Enum; 1250 else if (strcmp(name,"Outputdefinition69")==0) return Outputdefinition69Enum; 1250 1251 else if (strcmp(name,"Outputdefinition6")==0) return Outputdefinition6Enum; 1251 1252 else if (strcmp(name,"Outputdefinition70")==0) return Outputdefinition70Enum; … … 1366 1367 else if (strcmp(name,"DoubleMatParam")==0) return DoubleMatParamEnum; 1367 1368 else if (strcmp(name,"DoubleParam")==0) return DoubleParamEnum; 1368 else if (strcmp(name,"DoubleVecParam")==0) return DoubleVecParamEnum;1369 1369 else stage=12; 1370 1370 } 1371 1371 if(stage==12){ 1372 if (strcmp(name,"Element")==0) return ElementEnum; 1372 if (strcmp(name,"DoubleVecParam")==0) return DoubleVecParamEnum; 1373 else if (strcmp(name,"Element")==0) return ElementEnum; 1373 1374 else if (strcmp(name,"ElementHook")==0) return ElementHookEnum; 1374 1375 else if (strcmp(name,"ElementSId")==0) return ElementSIdEnum; … … 1489 1490 else if (strcmp(name,"MantlePlumeGeothermalFlux")==0) return MantlePlumeGeothermalFluxEnum; 1490 1491 else if (strcmp(name,"MassFlux")==0) return MassFluxEnum; 1491 else if (strcmp(name,"Masscon")==0) return MassconEnum;1492 1492 else stage=13; 1493 1493 } 1494 1494 if(stage==13){ 1495 if (strcmp(name,"Massconaxpby")==0) return MassconaxpbyEnum; 1495 if (strcmp(name,"Masscon")==0) return MassconEnum; 1496 else if (strcmp(name,"Massconaxpby")==0) return MassconaxpbyEnum; 1496 1497 else if (strcmp(name,"Massfluxatgate")==0) return MassfluxatgateEnum; 1497 1498 else if (strcmp(name,"MasstransportAnalysis")==0) return MasstransportAnalysisEnum; … … 1580 1581 else if (strcmp(name,"SMBarma")==0) return SMBarmaEnum; 1581 1582 else if (strcmp(name,"SMBcomponents")==0) return SMBcomponentsEnum; 1583 else if (strcmp(name,"SMBdebrisML")==0) return SMBdebrisMLEnum; 1582 1584 else if (strcmp(name,"SMBd18opdd")==0) return SMBd18opddEnum; 1583 1585 else if (strcmp(name,"SMBforcing")==0) return SMBforcingEnum; … … 1611 1613 else if (strcmp(name,"Separate")==0) return SeparateEnum; 1612 1614 else if (strcmp(name,"Seq")==0) return SeqEnum; 1613 else if (strcmp(name,"SmbAnalysis")==0) return SmbAnalysisEnum;1614 else if (strcmp(name,"SmbSolution")==0) return SmbSolutionEnum;1615 1615 else stage=14; 1616 1616 } 1617 1617 if(stage==14){ 1618 if (strcmp(name,"SmoothAnalysis")==0) return SmoothAnalysisEnum; 1618 if (strcmp(name,"SmbAnalysis")==0) return SmbAnalysisEnum; 1619 else if (strcmp(name,"SmbSolution")==0) return SmbSolutionEnum; 1620 else if (strcmp(name,"SmoothAnalysis")==0) return SmoothAnalysisEnum; 1619 1621 else if (strcmp(name,"SoftMigration")==0) return SoftMigrationEnum; 1620 1622 else if (strcmp(name,"SpatialLinearFloatingMeltRate")==0) return SpatialLinearFloatingMeltRateEnum; -
TabularUnified issm/trunk-jpl/src/c/shared/io/Marshalling/IoCodeConversions.cpp ¶
r27287 r27297 240 240 case 10: return SMBpddSicopolisEnum; 241 241 case 11: return SMBgradientscomponentsEnum; 242 case 12: return SMBsemicEnum; 242 case 12: return SMBsemicEnum; 243 243 case 13: return SMBarmaEnum; 244 case 14: return SMBdebrisMLEnum; 244 245 default: _error_("Marshalled SMB code \""<<enum_in<<"\" not supported yet"); 245 246 } -
TabularUnified issm/trunk-jpl/src/m/classes/initialization.m ¶
r27226 r27297 25 25 str = NaN; 26 26 sample = NaN; 27 debris = NaN; 27 28 end 28 29 methods … … 121 122 if ~isnan(md.initialization.sample) 122 123 md = checkfield(md,'fieldname','initialization.sample','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]); 124 end 125 end 126 if ismember('DebrisAnalysis',analyses), 127 if ~isnan(md.initialization.debris) 128 md = checkfield(md,'fieldname','initialization.debris','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]); 123 129 end 124 130 end … … 145 151 fielddisplay(self,'dsl','Dynamic sea level.'); 146 152 fielddisplay(self,'str','Steric sea level.'); 153 fielddisplay(self,'debris','Surface debris layer [m]'); 147 154 end % }}} 148 155 function marshall(self,prefix,md,fid) % {{{ … … 167 174 WriteData(fid,prefix,'object',self,'fieldname','hydraulic_potential','format','DoubleMat','mattype',1); 168 175 WriteData(fid,prefix,'object',self,'fieldname','sample','format','DoubleMat','mattype',1); 176 WriteData(fid,prefix,'object',self,'fieldname','debris','format','DoubleMat','mattype',1); 169 177 170 178 if md.thermal.isenthalpy, … … 197 205 self.dsl=project3d(md,'vector',self.dsl,'type','node','layer',1); 198 206 self.str=project3d(md,'vector',self.str,'type','node','layer',1); 207 self.str=project3d(md,'vector',self.debris,'type','node','layer',1); 199 208 200 209 %Lithostatic pressure by default … … 218 227 writejs1Darray(fid,[modelname '.initialization.channel'],self.channelarea); 219 228 writejs1Darray(fid,[modelname '.initialization.sample'],self.sample); 229 writejs1Darray(fid,[modelname '.initialization.debris'],self.debris); 220 230 221 231 end % }}}
Note:
See TracChangeset
for help on using the changeset viewer.