Changeset 26126
- Timestamp:
- 03/22/21 09:39:18 (4 years ago)
- Location:
- issm/trunk-jpl/src
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/SealevelchangeAnalysis.cpp
r26121 r26126 69 69 InputUpdateFromConstantx(inputs,elements,0.,BedNorthEnum); 70 70 iomodel->FetchDataToInput(inputs,elements,"md.initialization.sealevel",SealevelEnum); 71 72 /*Initialize loads:*/ 73 iomodel->ConstantToInput(inputs,elements,0.,DeltaTwsEnum,P1Enum); 74 iomodel->ConstantToInput(inputs,elements,0.,DeltaIceThicknessEnum,P1Enum); 75 iomodel->ConstantToInput(inputs,elements,0.,DeltaBottomPressureEnum,P1Enum); 71 76 72 77 … … 140 145 parameters->AddObject(iomodel->CopyConstantObject("md.solidearth.settings.glfraction",SolidearthSettingsGlfractionEnum)); 141 146 parameters->AddObject(iomodel->CopyConstantObject("md.solidearth.settings.cross_section_shape",SolidearthSettingsCrossSectionShapeEnum)); 147 parameters->AddObject(iomodel->CopyConstantObject("md.solidearth.settings.optim",SolidearthSettingsOptimEnum)); 142 148 parameters->AddObject(new DoubleParam(CumBslcEnum,0.0)); 143 149 parameters->AddObject(new DoubleParam(CumBslcIceEnum,0.0)); -
issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
r26121 r26126 6538 6538 6539 6539 /*recover some parameters:*/ 6540 rho_ice=FindParam(MaterialsRhoIceEnum); 6541 rho_water=FindParam(MaterialsRhoSeawaterEnum); 6540 this->parameters->FindParam(&rho_ice,MaterialsRhoIceEnum); 6541 this->parameters->FindParam(&rho_water,MaterialsRhoSeawaterEnum); 6542 this->parameters->FindParam(&rho_freshwater,MaterialsRhoFreshwaterEnum); 6542 6543 this->parameters->FindParam(&computerigid,SolidearthSettingsRigidEnum); 6543 6544 this->parameters->FindParam(&glfraction,SolidearthSettingsGlfractionEnum); … … 6688 6689 6689 6690 /*compute ocean average over element:*/ 6690 OceanAverageOptim(&oceanaverage,&oceanarea, SealevelGRD,masks);6691 OceanAverageOptim(&oceanaverage,&oceanarea,&SealevelGRD[0],masks); 6691 6692 6692 6693 /*add ocean average in the global sealevelloads vector:*/ … … 6870 6871 total_weight+=gauss->weight; 6871 6872 } 6872 Sg_avg=Sg_avg/total_weight;6873 if(total_weight) Sg_avg=Sg_avg/total_weight; 6873 6874 delete gauss; 6874 6875 … … 6881 6882 void Tria::SealevelchangeMomentOfInertiaElement(IssmDouble* dI_list, IssmDouble* loads, IssmDouble* sealevelloads){/*{{{*/ 6882 6883 6883 IssmDouble S ;6884 IssmDouble S=0; 6884 6885 6885 6886 /*Compute area of element:*/ … … 6934 6935 6935 6936 /*recover total load: */ 6936 S=sealevelloads[this->Sid()]+loads[this->Sid()]; 6937 if(loads) S+=loads[this->Sid()]; 6938 if(sealevelloads) S+=sealevelloads[this->Sid()]; 6937 6939 6938 6940 /* Perturbation terms for moment of inertia (moi_list): -
issm/trunk-jpl/src/c/cores/sealevelchange_core.cpp
r26121 r26126 29 29 /*Parameters, variables:*/ 30 30 bool save_results; 31 int optim=0; 31 32 32 33 /*Retrieve parameters:*/ 33 34 femmodel->parameters->FindParam(&save_results,SaveResultsEnum); 35 femmodel->parameters->FindParam(&optim,SolidearthSettingsOptimEnum); 34 36 35 37 /*Verbose: */ … … 49 51 50 52 /*Run geodetic:*/ 51 grd_core(femmodel); 53 if(!optim) grd_core(femmodel); 54 else grd_core_optim(femmodel); 52 55 53 56 /*Run steric core for sure:*/ … … 413 416 IssmDouble eps_rel; 414 417 IssmDouble eps_abs; 418 int max_nonlinear_iterations; 419 int iterations=0; 415 420 int step; 416 421 IssmDouble time; … … 421 426 int count,frequency,iscoupling; 422 427 int grd=0; 423 int computesealevel=0; 428 int computesealevel=0; 429 424 430 /*}}}*/ 425 431 … … 432 438 femmodel->parameters->FindParam(&count,SealevelchangeRunCountEnum); 433 439 femmodel->parameters->FindParam(&computesealevel,SolidearthSettingsComputesealevelchangeEnum); 440 femmodel->parameters->FindParam(&max_nonlinear_iterations,SolidearthSettingsMaxiterEnum); 434 441 /*}}}*/ 435 442 … … 462 469 /*call masks core: */ 463 470 masks=sealevel_masks(femmodel); 471 if(VerboseSolution()) _printf0_(" starting GRD convolutions\n"); 464 472 465 473 /*buildup loads: */ … … 501 509 //compute rotation axis motion: 502 510 RotationAxisMotion(&rotationaxismotionvector[0],femmodel,allloads,allsealevelloads); 503 511 512 if(VerboseSolution()) _printf0_(" converging ocean GRD convolutions\n"); 504 513 for(;;){ 505 514 … … 525 534 slcconvergence(&converged,sealevelloads,oldsealevelloads,eps_rel,eps_abs); 526 535 if (converged)break; 536 537 //early return? 538 if(iterations>max_nonlinear_iterations)break; 539 else iterations++; 527 540 } 528 541 529 542 deformation: 543 544 if(VerboseSolution()) _printf0_(" deformation GRD convolutions\n"); 530 545 531 546 /*convolve loads and sea level loads to get the deformation:*/ … … 534 549 element->SealevelchangeDeformationConvolution(allsealevelloads, allloads, rotationaxismotionvector,masks); 535 550 } 551 552 if(VerboseSolution()) _printf0_(" updating GRD fields\n"); 536 553 537 554 /*Update bedrock motion and geoid:*/ … … 543 560 barycontrib->Save(femmodel->results,femmodel->parameters,oceanarea); 544 561 } 545 546 femmodel->inputs->AXPY( SealevelEnum,SealevelGRDEnum,1);547 femmodel->inputs->AXPY( BedEnum,BedGRDEnum,1);562 563 femmodel->inputs->AXPY(1,SealevelEnum,SealevelGRDEnum); 564 femmodel->inputs->AXPY(1,BedEnum,BedGRDEnum); 548 565 if(horiz){ 549 femmodel->inputs->AXPY( BedEastEnum,BedEastGRDEnum,1);550 femmodel->inputs->AXPY( BedNorthEnum,BedNorthGRDEnum,1);566 femmodel->inputs->AXPY(1,BedEastEnum,BedEastGRDEnum); 567 femmodel->inputs->AXPY(1,BedNorthEnum,BedNorthGRDEnum); 551 568 } 552 569 … … 594 611 int horiz; 595 612 bool geometrydone = false; 596 bool optim=false;613 int optim; 597 614 int grdmodel=0; 598 615 … … 602 619 femmodel->parameters->FindParam(&geometrydone,SealevelchangeGeometryDoneEnum); 603 620 femmodel->parameters->FindParam(&grdmodel,GrdModelEnum); 621 femmodel->parameters->FindParam(&optim,SolidearthSettingsOptimEnum); 604 622 605 623 /*early return?:*/ … … 623 641 for(Object* & object : femmodel->elements->objects){ 624 642 Element* element=xDynamicCast<Element*>(object); 625 element->SealevelchangeGeometry(latitude,longitude,radius,xx,yy,zz,xxe,yye,zze);626 //if(optim) element->SealevelchangeGeometryOptim(latitude,longitude,radius,xx,yy,zz,xxe,yye,zze);643 if(optim) element->SealevelchangeGeometryOptim(latitude,longitude,radius,xx,yy,zz,xxe,yye,zze); 644 else element->SealevelchangeGeometry(latitude,longitude,radius,xx,yy,zz,xxe,yye,zze); 627 645 } 628 646 … … 1240 1258 return sealevelloadsaverage/oceanarea; 1241 1259 } /*}}}*/ 1242 void RotationAxisMotion(IssmDouble* m, FemModel* femmodel,IssmDouble* loads, IssmDouble* sealevel oads){ /*{{{*/1260 void RotationAxisMotion(IssmDouble* m, FemModel* femmodel,IssmDouble* loads, IssmDouble* sealevelloads){ /*{{{*/ 1243 1261 1244 1262 IssmDouble moi_list[3]={0,0,0}; … … 1261 1279 for(Object* & object : femmodel->elements->objects){ 1262 1280 Element* element = xDynamicCast<Element*>(object); 1263 element->SealevelchangeMomentOfInertiaElement(&moi_list[0],loads,sealevel oads);1281 element->SealevelchangeMomentOfInertiaElement(&moi_list[0],loads,sealevelloads); 1264 1282 moi_list_cpu[0] += moi_list[0]; 1265 1283 moi_list_cpu[1] += moi_list[1]; -
issm/trunk-jpl/src/c/shared/Enum/Enum.vim
r26121 r26126 350 350 syn keyword cConstant SolidearthSettingsAbstolEnum 351 351 syn keyword cConstant SolidearthSettingsCrossSectionShapeEnum 352 syn keyword cConstant SolidearthSettingsOptimEnum 352 353 syn keyword cConstant RotationalAngularVelocityEnum 353 354 syn keyword cConstant SolidearthSettingsElasticEnum 354 355 syn keyword cConstant SealevelchangeGeometryDoneEnum 355 syn keyword cConstant SealevelGrotm1Enum356 syn keyword cConstant SealevelGrotm2Enum357 syn keyword cConstant SealevelGrotm3Enum358 356 syn keyword cConstant RotationalEquatorialMoiEnum 359 357 syn keyword cConstant TidalLoveHEnum … … 758 756 syn keyword cConstant BslcRateEnum 759 757 syn keyword cConstant GmtslcEnum 758 syn keyword cConstant SealevelGrotm1Enum 759 syn keyword cConstant SealevelGrotm2Enum 760 syn keyword cConstant SealevelGrotm3Enum 760 761 syn keyword cConstant SealevelRSLBarystaticEnum 761 762 syn keyword cConstant SealevelRSLRateEnum -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r26121 r26126 344 344 SolidearthSettingsAbstolEnum, 345 345 SolidearthSettingsCrossSectionShapeEnum, 346 SolidearthSettingsOptimEnum, 346 347 RotationalAngularVelocityEnum, 347 348 SolidearthSettingsElasticEnum, 348 349 SealevelchangeGeometryDoneEnum, 349 SealevelGrotm1Enum,350 SealevelGrotm2Enum,351 SealevelGrotm3Enum,352 350 RotationalEquatorialMoiEnum, 353 351 TidalLoveHEnum, … … 754 752 BslcRateEnum, 755 753 GmtslcEnum, 754 SealevelGrotm1Enum, 755 SealevelGrotm2Enum, 756 SealevelGrotm3Enum, 756 757 SealevelRSLBarystaticEnum, 757 758 SealevelRSLRateEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r26121 r26126 352 352 case SolidearthSettingsAbstolEnum : return "SolidearthSettingsAbstol"; 353 353 case SolidearthSettingsCrossSectionShapeEnum : return "SolidearthSettingsCrossSectionShape"; 354 case SolidearthSettingsOptimEnum : return "SolidearthSettingsOptim"; 354 355 case RotationalAngularVelocityEnum : return "RotationalAngularVelocity"; 355 356 case SolidearthSettingsElasticEnum : return "SolidearthSettingsElastic"; 356 357 case SealevelchangeGeometryDoneEnum : return "SealevelchangeGeometryDone"; 357 case SealevelGrotm1Enum : return "SealevelGrotm1";358 case SealevelGrotm2Enum : return "SealevelGrotm2";359 case SealevelGrotm3Enum : return "SealevelGrotm3";360 358 case RotationalEquatorialMoiEnum : return "RotationalEquatorialMoi"; 361 359 case TidalLoveHEnum : return "TidalLoveH"; … … 760 758 case BslcRateEnum : return "BslcRate"; 761 759 case GmtslcEnum : return "Gmtslc"; 760 case SealevelGrotm1Enum : return "SealevelGrotm1"; 761 case SealevelGrotm2Enum : return "SealevelGrotm2"; 762 case SealevelGrotm3Enum : return "SealevelGrotm3"; 762 763 case SealevelRSLBarystaticEnum : return "SealevelRSLBarystatic"; 763 764 case SealevelRSLRateEnum : return "SealevelRSLRate"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r26121 r26126 358 358 else if (strcmp(name,"SolidearthSettingsAbstol")==0) return SolidearthSettingsAbstolEnum; 359 359 else if (strcmp(name,"SolidearthSettingsCrossSectionShape")==0) return SolidearthSettingsCrossSectionShapeEnum; 360 else if (strcmp(name,"SolidearthSettingsOptim")==0) return SolidearthSettingsOptimEnum; 360 361 else if (strcmp(name,"RotationalAngularVelocity")==0) return RotationalAngularVelocityEnum; 361 362 else if (strcmp(name,"SolidearthSettingsElastic")==0) return SolidearthSettingsElasticEnum; 362 363 else if (strcmp(name,"SealevelchangeGeometryDone")==0) return SealevelchangeGeometryDoneEnum; 363 else if (strcmp(name,"SealevelGrotm1")==0) return SealevelGrotm1Enum;364 else if (strcmp(name,"SealevelGrotm2")==0) return SealevelGrotm2Enum;365 else if (strcmp(name,"SealevelGrotm3")==0) return SealevelGrotm3Enum;366 364 else if (strcmp(name,"RotationalEquatorialMoi")==0) return RotationalEquatorialMoiEnum; 367 365 else if (strcmp(name,"TidalLoveH")==0) return TidalLoveHEnum; … … 383 381 else if (strcmp(name,"SolidearthSettingsOceanAreaScaling")==0) return SolidearthSettingsOceanAreaScalingEnum; 384 382 else if (strcmp(name,"RotationalPolarMoi")==0) return RotationalPolarMoiEnum; 383 else if (strcmp(name,"SolidearthSettingsReltol")==0) return SolidearthSettingsReltolEnum; 384 else if (strcmp(name,"SealevelchangeRequestedOutputs")==0) return SealevelchangeRequestedOutputsEnum; 385 385 else stage=4; 386 386 } 387 387 if(stage==4){ 388 if (strcmp(name,"SolidearthSettingsReltol")==0) return SolidearthSettingsReltolEnum; 389 else if (strcmp(name,"SealevelchangeRequestedOutputs")==0) return SealevelchangeRequestedOutputsEnum; 390 else if (strcmp(name,"SolidearthSettingsRigid")==0) return SolidearthSettingsRigidEnum; 388 if (strcmp(name,"SolidearthSettingsRigid")==0) return SolidearthSettingsRigidEnum; 391 389 else if (strcmp(name,"SolidearthSettingsRotation")==0) return SolidearthSettingsRotationEnum; 392 390 else if (strcmp(name,"SealevelchangeRunCount")==0) return SealevelchangeRunCountEnum; … … 506 504 else if (strcmp(name,"TransientIsesa")==0) return TransientIsesaEnum; 507 505 else if (strcmp(name,"TransientIsgia")==0) return TransientIsgiaEnum; 506 else if (strcmp(name,"TransientIsgroundingline")==0) return TransientIsgroundinglineEnum; 507 else if (strcmp(name,"TransientIshydrology")==0) return TransientIshydrologyEnum; 508 508 else stage=5; 509 509 } 510 510 if(stage==5){ 511 if (strcmp(name,"TransientIsgroundingline")==0) return TransientIsgroundinglineEnum; 512 else if (strcmp(name,"TransientIshydrology")==0) return TransientIshydrologyEnum; 513 else if (strcmp(name,"TransientIsmasstransport")==0) return TransientIsmasstransportEnum; 511 if (strcmp(name,"TransientIsmasstransport")==0) return TransientIsmasstransportEnum; 514 512 else if (strcmp(name,"TransientIsoceantransport")==0) return TransientIsoceantransportEnum; 515 513 else if (strcmp(name,"TransientIsmovingfront")==0) return TransientIsmovingfrontEnum; … … 629 627 else if (strcmp(name,"Enthalpy")==0) return EnthalpyEnum; 630 628 else if (strcmp(name,"EnthalpyPicard")==0) return EnthalpyPicardEnum; 629 else if (strcmp(name,"EplHead")==0) return EplHeadEnum; 630 else if (strcmp(name,"EplHeadOld")==0) return EplHeadOldEnum; 631 631 else stage=6; 632 632 } 633 633 if(stage==6){ 634 if (strcmp(name,"EplHead")==0) return EplHeadEnum; 635 else if (strcmp(name,"EplHeadOld")==0) return EplHeadOldEnum; 636 else if (strcmp(name,"EplHeadSlopeX")==0) return EplHeadSlopeXEnum; 634 if (strcmp(name,"EplHeadSlopeX")==0) return EplHeadSlopeXEnum; 637 635 else if (strcmp(name,"EplHeadSlopeY")==0) return EplHeadSlopeYEnum; 638 636 else if (strcmp(name,"EplHeadSubstep")==0) return EplHeadSubstepEnum; … … 752 750 else if (strcmp(name,"RadarAttenuationMacGregor")==0) return RadarAttenuationMacGregorEnum; 753 751 else if (strcmp(name,"RadarAttenuationWolff")==0) return RadarAttenuationWolffEnum; 752 else if (strcmp(name,"RadarIcePeriod")==0) return RadarIcePeriodEnum; 753 else if (strcmp(name,"RadarPowerMacGregor")==0) return RadarPowerMacGregorEnum; 754 754 else stage=7; 755 755 } 756 756 if(stage==7){ 757 if (strcmp(name,"RadarIcePeriod")==0) return RadarIcePeriodEnum; 758 else if (strcmp(name,"RadarPowerMacGregor")==0) return RadarPowerMacGregorEnum; 759 else if (strcmp(name,"RadarPowerWolff")==0) return RadarPowerWolffEnum; 757 if (strcmp(name,"RadarPowerWolff")==0) return RadarPowerWolffEnum; 760 758 else if (strcmp(name,"RheologyBAbsGradient")==0) return RheologyBAbsGradientEnum; 761 759 else if (strcmp(name,"RheologyBInitialguess")==0) return RheologyBInitialguessEnum; … … 778 776 else if (strcmp(name,"BslcRate")==0) return BslcRateEnum; 779 777 else if (strcmp(name,"Gmtslc")==0) return GmtslcEnum; 778 else if (strcmp(name,"SealevelGrotm1")==0) return SealevelGrotm1Enum; 779 else if (strcmp(name,"SealevelGrotm2")==0) return SealevelGrotm2Enum; 780 else if (strcmp(name,"SealevelGrotm3")==0) return SealevelGrotm3Enum; 780 781 else if (strcmp(name,"SealevelRSLBarystatic")==0) return SealevelRSLBarystaticEnum; 781 782 else if (strcmp(name,"SealevelRSLRate")==0) return SealevelRSLRateEnum; … … 874 875 else if (strcmp(name,"SmbReini")==0) return SmbReiniEnum; 875 876 else if (strcmp(name,"SmbRunoff")==0) return SmbRunoffEnum; 876 else if (strcmp(name,"SmbRunoffSubstep")==0) return SmbRunoffSubstepEnum;877 877 else stage=8; 878 878 } 879 879 if(stage==8){ 880 if (strcmp(name,"SmbRunoffTransient")==0) return SmbRunoffTransientEnum; 880 if (strcmp(name,"SmbRunoffSubstep")==0) return SmbRunoffSubstepEnum; 881 else if (strcmp(name,"SmbRunoffTransient")==0) return SmbRunoffTransientEnum; 881 882 else if (strcmp(name,"SmbS0gcm")==0) return SmbS0gcmEnum; 882 883 else if (strcmp(name,"SmbS0p")==0) return SmbS0pEnum; … … 997 998 else if (strcmp(name,"Outputdefinition24")==0) return Outputdefinition24Enum; 998 999 else if (strcmp(name,"Outputdefinition25")==0) return Outputdefinition25Enum; 999 else if (strcmp(name,"Outputdefinition26")==0) return Outputdefinition26Enum;1000 1000 else stage=9; 1001 1001 } 1002 1002 if(stage==9){ 1003 if (strcmp(name,"Outputdefinition27")==0) return Outputdefinition27Enum; 1003 if (strcmp(name,"Outputdefinition26")==0) return Outputdefinition26Enum; 1004 else if (strcmp(name,"Outputdefinition27")==0) return Outputdefinition27Enum; 1004 1005 else if (strcmp(name,"Outputdefinition28")==0) return Outputdefinition28Enum; 1005 1006 else if (strcmp(name,"Outputdefinition29")==0) return Outputdefinition29Enum; … … 1120 1121 else if (strcmp(name,"CalvingVonmises")==0) return CalvingVonmisesEnum; 1121 1122 else if (strcmp(name,"Cfdragcoeffabsgrad")==0) return CfdragcoeffabsgradEnum; 1122 else if (strcmp(name,"Cfsurfacelogvel")==0) return CfsurfacelogvelEnum;1123 1123 else stage=10; 1124 1124 } 1125 1125 if(stage==10){ 1126 if (strcmp(name,"Cfsurfacesquare")==0) return CfsurfacesquareEnum; 1126 if (strcmp(name,"Cfsurfacelogvel")==0) return CfsurfacelogvelEnum; 1127 else if (strcmp(name,"Cfsurfacesquare")==0) return CfsurfacesquareEnum; 1127 1128 else if (strcmp(name,"Channel")==0) return ChannelEnum; 1128 1129 else if (strcmp(name,"ChannelArea")==0) return ChannelAreaEnum; … … 1243 1244 else if (strcmp(name,"Inputs")==0) return InputsEnum; 1244 1245 else if (strcmp(name,"Internal")==0) return InternalEnum; 1245 else if (strcmp(name,"Intersect")==0) return IntersectEnum;1246 1246 else stage=11; 1247 1247 } 1248 1248 if(stage==11){ 1249 if (strcmp(name,"InversionVzObs")==0) return InversionVzObsEnum; 1249 if (strcmp(name,"Intersect")==0) return IntersectEnum; 1250 else if (strcmp(name,"InversionVzObs")==0) return InversionVzObsEnum; 1250 1251 else if (strcmp(name,"J")==0) return JEnum; 1251 1252 else if (strcmp(name,"L1L2Approximation")==0) return L1L2ApproximationEnum; … … 1366 1367 else if (strcmp(name,"SMBgcm")==0) return SMBgcmEnum; 1367 1368 else if (strcmp(name,"SMBgemb")==0) return SMBgembEnum; 1368 else if (strcmp(name,"SMBgradients")==0) return SMBgradientsEnum;1369 1369 else stage=12; 1370 1370 } 1371 1371 if(stage==12){ 1372 if (strcmp(name,"SMBgradientscomponents")==0) return SMBgradientscomponentsEnum; 1372 if (strcmp(name,"SMBgradients")==0) return SMBgradientsEnum; 1373 else if (strcmp(name,"SMBgradientscomponents")==0) return SMBgradientscomponentsEnum; 1373 1374 else if (strcmp(name,"SMBgradientsela")==0) return SMBgradientselaEnum; 1374 1375 else if (strcmp(name,"SMBhenning")==0) return SMBhenningEnum; -
issm/trunk-jpl/src/m/classes/solidearthsettings.m
r26060 r26126 22 22 grdmodel = 0; %grd model (0 by default, 1 for elastic, 2 for Ivins) 23 23 cross_section_shape = 0; %cross section only used when grd model is Ivins 24 optim = 0; %new optimized version of the GRD code. 24 25 end 25 26 methods … … 65 66 self.cross_section_shape=1; %square as default (see iedge in GiaDeflectionCorex) 66 67 68 %optim? 69 self.optim=0; 70 67 71 %no grd model by default: 68 72 self.grdmodel=0; … … 83 87 md = checkfield(md,'fieldname','solidearth.settings.grdmodel','values',[1 2]); 84 88 md = checkfield(md,'fieldname','solidearth.settings.cross_section_shape','numel',[1],'values',[1,2]); 89 md = checkfield(md,'fieldname','solidearth.settings.optim','values',[0,1]); 85 90 86 91 %checks on computational flags … … 126 131 fielddisplay(self,'grdmodel','type of deformation model, 1 for elastic, 2 for visco-elastic from Ivins'); 127 132 fielddisplay(self,'cross_section_shape','1: square-edged (default). 2: elliptical. See iedge in GiaDeflectionCore'); 133 fielddisplay(self,'optim','use optimized version of the GRD code? (default 0)'); 128 134 end % }}} 129 135 function marshall(self,prefix,md,fid) % {{{ … … 144 150 WriteData(fid,prefix,'object',self,'fieldname','grdmodel','name','md.solidearth.settings.grdmodel','format','Integer'); 145 151 WriteData(fid,prefix,'object',self,'fieldname','cross_section_shape','name','md.solidearth.settings.cross_section_shape','format','Integer'); 152 WriteData(fid,prefix,'object',self,'fieldname','optim','name','md.solidearth.settings.optim','format','Integer'); 146 153 end % }}} 147 154 function savemodeljs(self,fid,modelname) % {{{ … … 158 165 writejsdouble(fid,[modelname '.solidearth.settings.glfraction'],self.glfraction); 159 166 writejsdouble(fid,[modelname '.solidearth.settings.cross_section_shape'],self.cross_section_shape); 167 writejsdouble(fid,[modelname '.solidearth.settings.optim'],self.optim); 160 168 end % }}} 161 169 function self = extrude(self,md) % {{{
Note:
See TracChangeset
for help on using the changeset viewer.