Changeset 22993
- Timestamp:
- 07/20/18 20:44:55 (7 years ago)
- Location:
- issm/trunk-jpl
- Files:
-
- 43 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp
r22965 r22993 503 503 504 504 /*Intermediaries */ 505 int m igration_style,point1;505 int melt_style,point1; 506 506 bool mainlyfloating; 507 507 IssmDouble fraction1,fraction2; … … 521 521 /*Retrieve all inputs and parameters*/ 522 522 element->GetVerticesCoordinates(&xyz_list); 523 element->FindParam(&m igration_style,GroundinglineMigrationEnum);523 element->FindParam(&melt_style,GroundinglineMeltInterpolationEnum); 524 524 element->FindParam(&dt,TimesteppingTimeStepEnum); 525 525 Input* gmb_input = element->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(gmb_input); … … 531 531 /*Recover portion of element that is grounded*/ 532 532 phi=element->GetGroundedPortion(xyz_list); 533 if(m igration_style==SubelementMigration2Enum){533 if(melt_style==SubelementMelt2Enum){ 534 534 gllevelset_input=element->GetInput(MaskGroundediceLevelsetEnum); _assert_(gllevelset_input); 535 535 element->GetGroundedPart(&point1,&fraction1,&fraction2,&mainlyfloating); … … 553 553 thickness_input->GetInputValue(&thickness,gauss); 554 554 555 if(m igration_style==SubelementMigrationEnum){555 if(melt_style==SubelementMelt1Enum){ 556 556 if (phi>0.999999999) mb=gmb; 557 557 else mb=(1-phi)*fmb+phi*gmb; // phi is the fraction of grounded ice so (1-phi) is floating 558 558 } 559 else if(m igration_style==SubelementMigration2Enum){559 else if(melt_style==SubelementMelt2Enum){ 560 560 if(gllevelset>0.) mb=gmb; 561 561 else mb=fmb; 562 562 } 563 else if(m igration_style==SubelementMigration3Enum){563 else if(melt_style==NoMeltOnPartiallyFloatingEnum){ 564 564 if (phi<0.00000001) mb=fmb; 565 565 else mb=gmb; 566 566 } 567 else {568 if (gllevelset>0) mb=gmb;567 else if(melt_style==FullMeltOnPartiallyFloatingEnum){ 568 if (phi<0.99999999) mb=fmb; 569 569 else mb=fmb; 570 570 } 571 else{ _error_("melt interpolation not supported yet"); } 571 572 572 573 for(int i=0;i<numnodes;i++) pe->values[i]+=Jdet*gauss->weight*(thickness+dt*(ms-mb))*basis[i]; -
issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
r22874 r22993 1292 1292 int dim,domaintype; 1293 1293 bool mainlyfloating; 1294 int migration_style,point1;1294 int friction_style,point1; 1295 1295 IssmDouble alpha2,Jdet,fraction1,fraction2; 1296 1296 IssmDouble gllevelset,phi=1.; … … 1317 1317 /*Retrieve all inputs and parameters*/ 1318 1318 element->GetVerticesCoordinates(&xyz_list); 1319 element->FindParam(& migration_style,GroundinglineMigrationEnum);1319 element->FindParam(&friction_style,GroundinglineFrictionInterpolationEnum); 1320 1320 Input* surface_input = element->GetInput(SurfaceEnum); _assert_(surface_input); 1321 1321 Input* gllevelset_input = NULL; … … 1325 1325 1326 1326 /*Recover portion of element that is grounded*/ 1327 if( migration_style==SubelementMigrationEnum) phi=element->GetGroundedPortion(xyz_list);1328 if( migration_style==SubelementMigration2Enum){1327 if(!(friction_style==SubelementFriction2Enum)) phi=element->GetGroundedPortion(xyz_list); 1328 if(friction_style==SubelementFriction2Enum){ 1329 1329 gllevelset_input=element->GetInput(MaskGroundediceLevelsetEnum); _assert_(gllevelset_input); 1330 1330 element->GetGroundedPart(&point1,&fraction1,&fraction2,&mainlyfloating); … … 1340 1340 1341 1341 friction->GetAlpha2(&alpha2,gauss); 1342 if( migration_style==SubelementMigrationEnum) alpha2=phi*alpha2;1343 if(migration_style==SubelementMigration2Enum){1342 if(friction_style==SubelementFriction1Enum) alpha2=phi*alpha2; 1343 else if(friction_style==SubelementFriction2Enum){ 1344 1344 gllevelset_input->GetInputValue(&gllevelset, gauss); 1345 1345 if(gllevelset<0.) alpha2=0.; 1346 1346 } 1347 else if(friction_style==NoFrictionOnPartiallyFloatingEnum){ 1348 if (phi<0.99999999) alpha2=0.; 1349 } 1350 else _error_("friction interpolation not implemented yet"); 1347 1351 1348 1352 element->NodalFunctions(basis,gauss); … … 2333 2337 int dim; 2334 2338 bool mainlyfloating; 2335 int migration_style,point1;2339 int friction_style,point1; 2336 2340 IssmDouble alpha2,Jdet,fraction1,fraction2; 2337 2341 IssmDouble gllevelset,phi=1.; … … 2352 2356 /*Retrieve all inputs and parameters*/ 2353 2357 element->GetVerticesCoordinatesBase(&xyz_list_base); 2354 element->FindParam(& migration_style,GroundinglineMigrationEnum);2358 element->FindParam(&friction_style,GroundinglineFrictionInterpolationEnum); 2355 2359 Input* gllevelset_input = NULL; 2356 2360 … … 2359 2363 2360 2364 /*Recover portion of element that is grounded*/ 2361 if( migration_style==SubelementMigrationEnum) phi=element->GetGroundedPortion(xyz_list_base);2362 if( migration_style==SubelementMigration2Enum){2365 if(!(friction_style==SubelementFriction2Enum)) phi=element->GetGroundedPortion(xyz_list_base); 2366 if(friction_style==SubelementFriction2Enum){ 2363 2367 gllevelset_input=element->GetInput(MaskGroundediceLevelsetEnum); _assert_(gllevelset_input); 2364 2368 element->GetGroundedPart(&point1,&fraction1,&fraction2,&mainlyfloating); … … 2374 2378 2375 2379 friction->GetAlpha2(&alpha2,gauss); 2376 if( migration_style==SubelementMigrationEnum) alpha2=phi*alpha2;2377 if(migration_style==SubelementMigration2Enum){2380 if(friction_style==SubelementFriction1Enum) alpha2=phi*alpha2; 2381 else if(friction_style==SubelementFriction2Enum){ 2378 2382 gllevelset_input->GetInputValue(&gllevelset, gauss); 2379 2383 if(gllevelset<0.) alpha2=0.; 2380 2384 } 2385 else if(friction_style==NoFrictionOnPartiallyFloatingEnum){ 2386 if (phi<0.99999999) alpha2=0.; 2387 } 2388 else _error_("friction interpolation not implemented yet"); 2381 2389 2382 2390 element->JacobianDeterminantBase(&Jdet,xyz_list_base,gauss); … … 3704 3712 bool mainlyfloating; 3705 3713 int dim,domaintype; 3706 int migration_style,point1;3714 int friction_style,point1; 3707 3715 IssmDouble alpha2,Jdet,fraction1,fraction2; 3708 3716 IssmDouble gllevelset,phi=1.; … … 3725 3733 /*Retrieve all inputs and parameters*/ 3726 3734 element->GetVerticesCoordinatesBase(&xyz_list_base); 3727 element->FindParam(& migration_style,GroundinglineMigrationEnum);3735 element->FindParam(&friction_style,GroundinglineFrictionInterpolationEnum); 3728 3736 Input* gllevelset_input = NULL; 3729 3737 … … 3732 3740 3733 3741 /*Recover portion of element that is grounded*/ 3734 if( migration_style==SubelementMigrationEnum) phi=element->GetGroundedPortion(xyz_list_base);3735 if( migration_style==SubelementMigration2Enum){3736 if(domaintype==Domain2DverticalEnum) _error_("Subelement Migration 2 not implemented yet for Flowline");3742 if(!(friction_style==SubelementFriction2Enum)) phi=element->GetGroundedPortion(xyz_list_base); 3743 if(friction_style==SubelementFriction2Enum){ 3744 if(domaintype==Domain2DverticalEnum) _error_("Subelement Friction 2 not implemented yet for Flowline"); 3737 3745 gllevelset_input=element->GetInput(MaskGroundediceLevelsetEnum); _assert_(gllevelset_input); 3738 3746 element->GetGroundedPart(&point1,&fraction1,&fraction2,&mainlyfloating); … … 3749 3757 3750 3758 friction->GetAlpha2(&alpha2,gauss); 3751 if( migration_style==SubelementMigrationEnum) alpha2=phi*alpha2;3752 if(migration_style==SubelementMigration2Enum){3759 if(friction_style==SubelementFriction1Enum) alpha2=phi*alpha2; 3760 else if(friction_style==SubelementFriction2Enum){ 3753 3761 gllevelset_input->GetInputValue(&gllevelset, gauss); 3754 3762 if(gllevelset<0.) alpha2=0.; 3755 3763 } 3764 else if(friction_style==NoFrictionOnPartiallyFloatingEnum){ 3765 if (phi<0.99999999) alpha2=0.; 3766 } 3767 else _error_("friction interpolation not implemented yet"); 3756 3768 3757 3769 element->JacobianDeterminantBase(&Jdet,xyz_list_base,gauss); -
issm/trunk-jpl/src/c/classes/Elements/Element.cpp
r22984 r22993 2001 2001 parameters->FindParam(&migration_style,GroundinglineMigrationEnum); 2002 2002 2003 if(migration_style==SubelementMigrationEnum || migration_style==SubelementMigration2Enum){ //Floating if all nodes are floating2003 if(migration_style==SubelementMigrationEnum){ //Floating if all nodes are floating 2004 2004 if(this->inputs->Max(MaskGroundediceLevelsetEnum) <= 0.) shelf=true; 2005 2005 else shelf=false; … … 2338 2338 if (bed_hydro>r[i]){ 2339 2339 /*Unground only if the element is connected to the ice shelf*/ 2340 if(migration_style==AggressiveMigrationEnum || migration_style==SubelementMigrationEnum || migration_style==SubelementMigration2Enum){2340 if(migration_style==AggressiveMigrationEnum || migration_style==SubelementMigrationEnum){ 2341 2341 s[i] = (1-density)*h[i]+sl[i]; 2342 2342 b[i] = -density*h[i]+sl[i]; -
issm/trunk-jpl/src/c/classes/IoModel.cpp
r21802 r22993 663 663 this->AddConstant(new IoConstant(StringToEnumx(string),record_name)); 664 664 } else if(strcmp(record_name,"md.groundingline.migration")==0){ 665 this->AddConstant(new IoConstant(StringToEnumx(string),record_name)); 666 } else if(strcmp(record_name,"md.groundingline.friction_interpolation")==0){ 667 this->AddConstant(new IoConstant(StringToEnumx(string),record_name)); 668 } else if(strcmp(record_name,"md.groundingline.melt_interpolation")==0){ 665 669 this->AddConstant(new IoConstant(StringToEnumx(string),record_name)); 666 670 } else if(strcmp(record_name,"md.masstransport.hydrostatic_adjustment")==0){ … … 807 811 } else if(strcmp(record_name,"md.groundingline.migration")==0){ 808 812 this->AddConstant(new IoConstant(StringToEnumx(string),record_name)); 813 } else if(strcmp(record_name,"md.groundingline.friction_interpolation")==0){ 814 this->AddConstant(new IoConstant(StringToEnumx(string),record_name)); 815 } else if(strcmp(record_name,"md.groundingline.melt_interpolation")==0){ 816 this->AddConstant(new IoConstant(StringToEnumx(string),record_name)); 809 817 } else if(strcmp(record_name,"md.masstransport.hydrostatic_adjustment")==0){ 810 818 this->AddConstant(new IoConstant(StringToEnumx(string),record_name)); -
issm/trunk-jpl/src/c/cores/transient_core.cpp
r22955 r22993 363 363 if(VerboseSolution()) _printf0_(" computing requested outputs\n"); 364 364 femmodel->RequestedOutputsx(&femmodel->results,requested_outputs,numoutputs,save_results); 365 if(isgroundingline && (groundingline_migration== SubelementMigrationEnum || groundingline_migration==SubelementMigration2Enum)){365 if(isgroundingline && (groundingline_migration==AggressiveMigrationEnum || groundingline_migration==ContactEnum)){ 366 366 int outputs[1] = {MaskGroundediceLevelsetEnum}; 367 367 femmodel->RequestedOutputsx(&femmodel->results,&outputs[0],1,save_results); -
issm/trunk-jpl/src/c/modules/GroundinglineMigrationx/GroundinglineMigrationx.cpp
r19094 r22993 37 37 phi_ungrounding=ContactFSLevelset(elements,vertices); 38 38 break; 39 case SubelementMigrationEnum: 39 40 case AggressiveMigrationEnum: 40 case SubelementMigrationEnum:41 case SubelementMigration2Enum:42 41 case GroundingOnlyEnum: 43 42 /*Nothing additional to do here, MigrateGroundingLine takes care of everything*/ -
issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
r22969 r22993 69 69 parameters->AddObject(iomodel->CopyConstantObject("md.steadystate.maxiter",SteadystateMaxiterEnum)); 70 70 parameters->AddObject(iomodel->CopyConstantObject("md.groundingline.migration",GroundinglineMigrationEnum)); 71 parameters->AddObject(iomodel->CopyConstantObject("md.groundingline.friction_interpolation",GroundinglineFrictionInterpolationEnum)); 72 parameters->AddObject(iomodel->CopyConstantObject("md.groundingline.melt_interpolation",GroundinglineMeltInterpolationEnum)); 71 73 parameters->AddObject(iomodel->CopyConstantObject("md.transient.isstressbalance",TransientIsstressbalanceEnum)); 72 74 parameters->AddObject(iomodel->CopyConstantObject("md.transient.ismasstransport",TransientIsmasstransportEnum)); -
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r22974 r22993 129 129 GiaCrossSectionShapeEnum, 130 130 GroundinglineMigrationEnum, 131 GroundinglineFrictionInterpolationEnum, 132 GroundinglineMeltInterpolationEnum, 131 133 HydrologydcEplflipLockEnum, 132 134 HydrologydcEplThickCompEnum, … … 762 764 FSSolverEnum, 763 765 FSvelocityEnum, 766 FullMeltOnPartiallyFloatingEnum, 764 767 GaussPentaEnum, 765 768 GaussSegEnum, … … 908 911 NodalvalueEnum, 909 912 NodeSIdEnum, 913 NoFrictionOnPartiallyFloatingEnum, 914 NoMeltOnPartiallyFloatingEnum, 910 915 NoneApproximationEnum, 911 916 NoneEnum, … … 1102 1107 StringExternalResultEnum, 1103 1108 StringParamEnum, 1104 Subelement Migration2Enum,1105 Subelement Migration3Enum,1109 SubelementFriction1Enum, 1110 SubelementFriction2Enum, 1106 1111 SubelementMigrationEnum, 1112 SubelementMelt1Enum, 1113 SubelementMelt2Enum, 1107 1114 SurfaceCrevasseEnum, 1108 1115 SurfaceSlopeSolutionEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r22974 r22993 137 137 case GiaCrossSectionShapeEnum : return "GiaCrossSectionShape"; 138 138 case GroundinglineMigrationEnum : return "GroundinglineMigration"; 139 case GroundinglineFrictionInterpolationEnum : return "GroundinglineFrictionInterpolation"; 140 case GroundinglineMeltInterpolationEnum : return "GroundinglineMeltInterpolation"; 139 141 case HydrologydcEplflipLockEnum : return "HydrologydcEplflipLock"; 140 142 case HydrologydcEplThickCompEnum : return "HydrologydcEplThickComp"; … … 766 768 case FSSolverEnum : return "FSSolver"; 767 769 case FSvelocityEnum : return "FSvelocity"; 770 case FullMeltOnPartiallyFloatingEnum : return "FullMeltOnPartiallyFloating"; 768 771 case GaussPentaEnum : return "GaussPenta"; 769 772 case GaussSegEnum : return "GaussSeg"; … … 912 915 case NodalvalueEnum : return "Nodalvalue"; 913 916 case NodeSIdEnum : return "NodeSId"; 917 case NoFrictionOnPartiallyFloatingEnum : return "NoFrictionOnPartiallyFloating"; 918 case NoMeltOnPartiallyFloatingEnum : return "NoMeltOnPartiallyFloating"; 914 919 case NoneApproximationEnum : return "NoneApproximation"; 915 920 case NoneEnum : return "None"; … … 1106 1111 case StringExternalResultEnum : return "StringExternalResult"; 1107 1112 case StringParamEnum : return "StringParam"; 1108 case Subelement Migration2Enum : return "SubelementMigration2";1109 case Subelement Migration3Enum : return "SubelementMigration3";1113 case SubelementFriction1Enum : return "SubelementFriction1"; 1114 case SubelementFriction2Enum : return "SubelementFriction2"; 1110 1115 case SubelementMigrationEnum : return "SubelementMigration"; 1116 case SubelementMelt1Enum : return "SubelementMelt1"; 1117 case SubelementMelt2Enum : return "SubelementMelt2"; 1111 1118 case SurfaceCrevasseEnum : return "SurfaceCrevasse"; 1112 1119 case SurfaceSlopeSolutionEnum : return "SurfaceSlopeSolution"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r22974 r22993 140 140 } 141 141 if(stage==2){ 142 if (strcmp(name,"HydrologydcEplflipLock")==0) return HydrologydcEplflipLockEnum; 142 if (strcmp(name,"GroundinglineFrictionInterpolation")==0) return GroundinglineFrictionInterpolationEnum; 143 else if (strcmp(name,"GroundinglineMeltInterpolation")==0) return GroundinglineMeltInterpolationEnum; 144 else if (strcmp(name,"HydrologydcEplflipLock")==0) return HydrologydcEplflipLockEnum; 143 145 else if (strcmp(name,"HydrologydcEplThickComp")==0) return HydrologydcEplThickCompEnum; 144 146 else if (strcmp(name,"HydrologydcIsefficientlayer")==0) return HydrologydcIsefficientlayerEnum; … … 258 260 else if (strcmp(name,"SealevelRSLEustatic")==0) return SealevelRSLEustaticEnum; 259 261 else if (strcmp(name,"SealevelUNorthEsa")==0) return SealevelUNorthEsaEnum; 260 else if (strcmp(name,"SealevelUEastEsa")==0) return SealevelUEastEsaEnum;261 else if (strcmp(name,"SealevelNGiaRate")==0) return SealevelNGiaRateEnum;262 262 else stage=3; 263 263 } 264 264 if(stage==3){ 265 if (strcmp(name,"SealevelUGiaRate")==0) return SealevelUGiaRateEnum; 265 if (strcmp(name,"SealevelUEastEsa")==0) return SealevelUEastEsaEnum; 266 else if (strcmp(name,"SealevelNGiaRate")==0) return SealevelNGiaRateEnum; 267 else if (strcmp(name,"SealevelUGiaRate")==0) return SealevelUGiaRateEnum; 266 268 else if (strcmp(name,"SealevelriseAbstol")==0) return SealevelriseAbstolEnum; 267 269 else if (strcmp(name,"SealevelriseAngularVelocity")==0) return SealevelriseAngularVelocityEnum; … … 381 383 else if (strcmp(name,"TransientIsgroundingline")==0) return TransientIsgroundinglineEnum; 382 384 else if (strcmp(name,"TransientIshydrology")==0) return TransientIshydrologyEnum; 383 else if (strcmp(name,"TransientIsmasstransport")==0) return TransientIsmasstransportEnum;384 else if (strcmp(name,"TransientIsmovingfront")==0) return TransientIsmovingfrontEnum;385 385 else stage=4; 386 386 } 387 387 if(stage==4){ 388 if (strcmp(name,"TransientIsoceancoupling")==0) return TransientIsoceancouplingEnum; 388 if (strcmp(name,"TransientIsmasstransport")==0) return TransientIsmasstransportEnum; 389 else if (strcmp(name,"TransientIsmovingfront")==0) return TransientIsmovingfrontEnum; 390 else if (strcmp(name,"TransientIsoceancoupling")==0) return TransientIsoceancouplingEnum; 389 391 else if (strcmp(name,"TransientIsslr")==0) return TransientIsslrEnum; 390 392 else if (strcmp(name,"TransientIssmb")==0) return TransientIssmbEnum; … … 504 506 else if (strcmp(name,"InversionVelObs")==0) return InversionVelObsEnum; 505 507 else if (strcmp(name,"InversionVxObs")==0) return InversionVxObsEnum; 506 else if (strcmp(name,"InversionVyObs")==0) return InversionVyObsEnum;507 else if (strcmp(name,"LevelsetfunctionSlopeX")==0) return LevelsetfunctionSlopeXEnum;508 508 else stage=5; 509 509 } 510 510 if(stage==5){ 511 if (strcmp(name,"LevelsetfunctionSlopeY")==0) return LevelsetfunctionSlopeYEnum; 511 if (strcmp(name,"InversionVyObs")==0) return InversionVyObsEnum; 512 else if (strcmp(name,"LevelsetfunctionSlopeX")==0) return LevelsetfunctionSlopeXEnum; 513 else if (strcmp(name,"LevelsetfunctionSlopeY")==0) return LevelsetfunctionSlopeYEnum; 512 514 else if (strcmp(name,"LoadingforceX")==0) return LoadingforceXEnum; 513 515 else if (strcmp(name,"LoadingforceY")==0) return LoadingforceYEnum; … … 627 629 else if (strcmp(name,"SurfaceAbsVelMisfit")==0) return SurfaceAbsVelMisfitEnum; 628 630 else if (strcmp(name,"SurfaceArea")==0) return SurfaceAreaEnum; 629 else if (strcmp(name,"SurfaceAverageVelMisfit")==0) return SurfaceAverageVelMisfitEnum;630 else if (strcmp(name,"Surface")==0) return SurfaceEnum;631 631 else stage=6; 632 632 } 633 633 if(stage==6){ 634 if (strcmp(name,"SurfaceLogVelMisfit")==0) return SurfaceLogVelMisfitEnum; 634 if (strcmp(name,"SurfaceAverageVelMisfit")==0) return SurfaceAverageVelMisfitEnum; 635 else if (strcmp(name,"Surface")==0) return SurfaceEnum; 636 else if (strcmp(name,"SurfaceLogVelMisfit")==0) return SurfaceLogVelMisfitEnum; 635 637 else if (strcmp(name,"SurfaceLogVxVyMisfit")==0) return SurfaceLogVxVyMisfitEnum; 636 638 else if (strcmp(name,"SurfaceObservation")==0) return SurfaceObservationEnum; … … 750 752 else if (strcmp(name,"ElementSId")==0) return ElementSIdEnum; 751 753 else if (strcmp(name,"EnthalpyAnalysis")==0) return EnthalpyAnalysisEnum; 752 else if (strcmp(name,"EplHeadStacked")==0) return EplHeadStackedEnum;753 else if (strcmp(name,"EplHead")==0) return EplHeadEnum;754 754 else stage=7; 755 755 } 756 756 if(stage==7){ 757 if (strcmp(name,"EsaAnalysis")==0) return EsaAnalysisEnum; 757 if (strcmp(name,"EplHeadStacked")==0) return EplHeadStackedEnum; 758 else if (strcmp(name,"EplHead")==0) return EplHeadEnum; 759 else if (strcmp(name,"EsaAnalysis")==0) return EsaAnalysisEnum; 758 760 else if (strcmp(name,"EsaEmotion")==0) return EsaEmotionEnum; 759 761 else if (strcmp(name,"EsaNmotion")==0) return EsaNmotionEnum; … … 784 786 else if (strcmp(name,"FSSolver")==0) return FSSolverEnum; 785 787 else if (strcmp(name,"FSvelocity")==0) return FSvelocityEnum; 788 else if (strcmp(name,"FullMeltOnPartiallyFloating")==0) return FullMeltOnPartiallyFloatingEnum; 786 789 else if (strcmp(name,"GaussPenta")==0) return GaussPentaEnum; 787 790 else if (strcmp(name,"GaussSeg")==0) return GaussSegEnum; … … 872 875 else if (strcmp(name,"Massconaxpby")==0) return MassconaxpbyEnum; 873 876 else if (strcmp(name,"Masscon")==0) return MassconEnum; 874 else if (strcmp(name,"Massfluxatgate")==0) return MassfluxatgateEnum;875 else if (strcmp(name,"MassFlux")==0) return MassFluxEnum;876 else if (strcmp(name,"MasstransportAnalysis")==0) return MasstransportAnalysisEnum;877 877 else stage=8; 878 878 } 879 879 if(stage==8){ 880 if (strcmp(name,"MasstransportSolution")==0) return MasstransportSolutionEnum; 880 if (strcmp(name,"Massfluxatgate")==0) return MassfluxatgateEnum; 881 else if (strcmp(name,"MassFlux")==0) return MassFluxEnum; 882 else if (strcmp(name,"MasstransportAnalysis")==0) return MasstransportAnalysisEnum; 883 else if (strcmp(name,"MasstransportSolution")==0) return MasstransportSolutionEnum; 881 884 else if (strcmp(name,"Matdamageice")==0) return MatdamageiceEnum; 882 885 else if (strcmp(name,"Matenhancedice")==0) return MatenhancediceEnum; … … 933 936 else if (strcmp(name,"Nodalvalue")==0) return NodalvalueEnum; 934 937 else if (strcmp(name,"NodeSId")==0) return NodeSIdEnum; 938 else if (strcmp(name,"NoFrictionOnPartiallyFloating")==0) return NoFrictionOnPartiallyFloatingEnum; 939 else if (strcmp(name,"NoMeltOnPartiallyFloating")==0) return NoMeltOnPartiallyFloatingEnum; 935 940 else if (strcmp(name,"NoneApproximation")==0) return NoneApproximationEnum; 936 941 else if (strcmp(name,"None")==0) return NoneEnum; … … 993 998 else if (strcmp(name,"Outputdefinition56")==0) return Outputdefinition56Enum; 994 999 else if (strcmp(name,"Outputdefinition57")==0) return Outputdefinition57Enum; 995 else if (strcmp(name,"Outputdefinition58")==0) return Outputdefinition58Enum; 1000 else stage=9; 1001 } 1002 if(stage==9){ 1003 if (strcmp(name,"Outputdefinition58")==0) return Outputdefinition58Enum; 996 1004 else if (strcmp(name,"Outputdefinition59")==0) return Outputdefinition59Enum; 997 1005 else if (strcmp(name,"Outputdefinition5")==0) return Outputdefinition5Enum; 998 1006 else if (strcmp(name,"Outputdefinition60")==0) return Outputdefinition60Enum; 999 1007 else if (strcmp(name,"Outputdefinition61")==0) return Outputdefinition61Enum; 1000 else stage=9; 1001 } 1002 if(stage==9){ 1003 if (strcmp(name,"Outputdefinition62")==0) return Outputdefinition62Enum; 1008 else if (strcmp(name,"Outputdefinition62")==0) return Outputdefinition62Enum; 1004 1009 else if (strcmp(name,"Outputdefinition63")==0) return Outputdefinition63Enum; 1005 1010 else if (strcmp(name,"Outputdefinition64")==0) return Outputdefinition64Enum; … … 1116 1121 else if (strcmp(name,"SpcStatic")==0) return SpcStaticEnum; 1117 1122 else if (strcmp(name,"SpcTransient")==0) return SpcTransientEnum; 1118 else if (strcmp(name,"SSAApproximation")==0) return SSAApproximationEnum; 1123 else stage=10; 1124 } 1125 if(stage==10){ 1126 if (strcmp(name,"SSAApproximation")==0) return SSAApproximationEnum; 1119 1127 else if (strcmp(name,"SSAFSApproximation")==0) return SSAFSApproximationEnum; 1120 1128 else if (strcmp(name,"SSAHOApproximation")==0) return SSAHOApproximationEnum; 1121 1129 else if (strcmp(name,"Sset")==0) return SsetEnum; 1122 1130 else if (strcmp(name,"SteadystateSolution")==0) return SteadystateSolutionEnum; 1123 else stage=10; 1124 } 1125 if(stage==10){ 1126 if (strcmp(name,"StressbalanceAnalysis")==0) return StressbalanceAnalysisEnum; 1131 else if (strcmp(name,"StressbalanceAnalysis")==0) return StressbalanceAnalysisEnum; 1127 1132 else if (strcmp(name,"StressbalanceConvergenceNumSteps")==0) return StressbalanceConvergenceNumStepsEnum; 1128 1133 else if (strcmp(name,"StressbalanceSIAAnalysis")==0) return StressbalanceSIAAnalysisEnum; … … 1133 1138 else if (strcmp(name,"StringExternalResult")==0) return StringExternalResultEnum; 1134 1139 else if (strcmp(name,"StringParam")==0) return StringParamEnum; 1135 else if (strcmp(name,"Subelement Migration2")==0) return SubelementMigration2Enum;1136 else if (strcmp(name,"Subelement Migration3")==0) return SubelementMigration3Enum;1140 else if (strcmp(name,"SubelementFriction1")==0) return SubelementFriction1Enum; 1141 else if (strcmp(name,"SubelementFriction2")==0) return SubelementFriction2Enum; 1137 1142 else if (strcmp(name,"SubelementMigration")==0) return SubelementMigrationEnum; 1143 else if (strcmp(name,"SubelementMelt1")==0) return SubelementMelt1Enum; 1144 else if (strcmp(name,"SubelementMelt2")==0) return SubelementMelt2Enum; 1138 1145 else if (strcmp(name,"SurfaceCrevasse")==0) return SurfaceCrevasseEnum; 1139 1146 else if (strcmp(name,"SurfaceSlopeSolution")==0) return SurfaceSlopeSolutionEnum; -
issm/trunk-jpl/src/m/classes/groundingline.js
r20927 r22993 8 8 this.setdefaultparameters = function(){// {{{ 9 9 //Type of migration 10 this.migration='None'; 10 this.migration='AggressiveMigration'; 11 this.friction_interpolation='SubelementFriction1'; 12 this.melt_interpolation='NoMeltOnPartiallyFloating'; 11 13 12 14 }// }}} 13 15 this.disp= function(){// {{{ 14 16 console.log(sprintf(' grounding line migration parameters:')); 15 fielddisplay(this,'migration',"type of grounding line migration: 'SoftMigration','AggressiveMigration','SubelementMigration','SubelementMigration2' or 'None'"); 16 17 fielddisplay(this,'migration',"type of grounding line migration: 'SubelementMigration','SoftMigration','AggressiveMigration','Contact' or 'None'"); 18 fielddisplay(this,'friction_interpolation',"type of friction interpolation forpartially floating elements: 'NoFrictionOnPartiallyFloating','SubelementFriction1' or 'SubelementFriction2'"); 19 fielddisplay(this,'melt_interpolation',"type of melt interpolation forpartially floating elements: 'NoMeltOnPartiallyFloating','FullMeltOnPartiallyFloating','SubelementMelt1' or 'SubelementMelt2'"); 17 20 18 21 }// }}} … … 22 25 this.checkconsistency = function(md,solution,analyses) {// {{{ 23 26 24 checkfield(md,'fieldname','groundingline.migration','values',['None', 'AggressiveMigration', 'SoftMigration', 'SubelementMigration', 'SubelementMigration2', 'Contact', 'None', 'GroundingOnly']); 27 checkfield(md,'fieldname','groundingline.migration','values',['None', 'AggressiveMigration', 'SoftMigration', 'Contact', 'GroundingOnly']); 28 checkfield(md,'fieldname','groundingline.friction_interpolation','values',['NoFrictionOnPartiallyFloating', 'SubelementFriction1', 'SubelementFriction2']); 29 checkfield(md,'fieldname','groundingline.melt_interpolation','values',['NoMeltOnPartiallyFloating', 'SubelementMelt1', 'SubelementMelt2', 'FullMeltOnPartiallyFloating']); 25 30 26 31 if (this.migration !='None'){ … … 42 47 this.marshall=function(md,prefix,fid) { //{{{ 43 48 WriteData(fid,prefix,'data',this.migration,'name','md.groundingline.migration','format','String'); 49 WriteData(fid,prefix,'data',this.migration,'name','md.groundingline.friction_interpolation','format','String'); 50 WriteData(fid,prefix,'data',this.migration,'name','md.groundingline.melt_interpolation','format','String'); 44 51 }//}}} 45 52 this.fix=function() { //{{{ … … 47 54 //properties 48 55 // {{{ 49 this.migration = ''; 56 this.migration = ''; 57 this.friction_interpolation = ''; 58 this.melt_interpolation = ''; 50 59 this.setdefaultparameters(); 51 60 //}}} -
issm/trunk-jpl/src/m/classes/groundingline.m
r20927 r22993 6 6 classdef groundingline 7 7 properties (SetAccess=public) 8 migration = ''; 8 migration = ''; 9 friction_interpolation = ''; 10 melt_interpolation = ''; 9 11 end 10 12 methods … … 20 22 21 23 %Type of migration 22 self.migration='None'; 24 self.migration = 'SubelementMigration'; 25 self.friction_interpolation= 'SubelementFriction1'; 26 self.melt_interpolation = 'NoMeltOnPartiallyFloating'; 23 27 24 28 end % }}} 25 29 function md = checkconsistency(self,md,solution,analyses) % {{{ 26 30 27 md = checkfield(md,'fieldname','groundingline.migration','values',{'None' 'AggressiveMigration' 'SoftMigration' 'SubelementMigration' 'SubelementMigration2' 'Contact' 'None' 'GroundingOnly'}); 31 md = checkfield(md,'fieldname','groundingline.migration','values',{'None' 'SubelementMigration' 'AggressiveMigration' 'SoftMigration' 'Contact' 'GroundingOnly'}); 32 md = checkfield(md,'fieldname','groundingline.friction_interpolation','values',{'NoFrictionOnPartiallyFloating' 'SubelementFriction1' 'SubelementFriction2'}); 33 md = checkfield(md,'fieldname','groundingline.melt_interpolation','values',{'NoMeltOnPartiallyFloating' 'SubelementMelt1' 'SubelementMelt2' 'FullMeltOnPartiallyFloating'}); 28 34 29 35 if ~strcmp(self.migration,'None'), … … 44 50 function disp(self) % {{{ 45 51 disp(sprintf(' grounding line migration parameters:')); 46 fielddisplay(self,'migration','type of grounding line migration: ''SoftMigration'',''AggressiveMigration'',''SubelementMigration'',''SubelementMigration2'' or ''None'''); 52 fielddisplay(self,'migration','type of grounding line migration: ''SoftMigration'',''SubelementMigration'',''AggressiveMigration'',''Contact'' or ''None'''); 53 fielddisplay(self,'friction_interpolation','type of friction interpolation for partially floating elements: ''NoFrictionOnPartiallyFloating'',''SubelementFriction1'', or ''SubelementFriction2'''); 54 fielddisplay(self,'melt_interpolation','type of melt interpolation for partially floating elements: ''NoMeltOnPartiallyFloating'',''SubelementMelt1'',''SubelementMelt2'', or ''FullMeltOnPartiallyFloating'''); 47 55 48 56 end % }}} 49 57 function marshall(self,prefix,md,fid) % {{{ 50 58 WriteData(fid,prefix,'data',self.migration,'name','md.groundingline.migration','format','String'); 59 WriteData(fid,prefix,'data',self.friction_interpolation,'name','md.groundingline.friction_interpolation','format','String'); 60 WriteData(fid,prefix,'data',self.melt_interpolation,'name','md.groundingline.melt_interpolation','format','String'); 51 61 end % }}} 52 62 function savemodeljs(self,fid,modelname) % {{{ 53 63 54 64 writejsstring(fid,[modelname '.groundingline.migration'],self.migration); 65 writejsstring(fid,[modelname '.groundingline.friction_interpolation'],self.migration); 66 writejsstring(fid,[modelname '.groundingline.melt_interpolation'],self.migration); 55 67 56 68 end % }}} -
issm/trunk-jpl/src/m/classes/groundingline.py
r21303 r22993 15 15 def __init__(self): # {{{ 16 16 self.migration='' 17 self.friction_interpolation='' 18 self.melt_interpolation='' 17 19 18 20 #set defaults … … 23 25 string=' grounding line migration parameters:' 24 26 25 string="%s\n%s"%(string,fielddisplay(self,'migration','type of grounding line migration: ''SoftMigration'',''AggressiveMigration'',''SubelementMigration'',''SubelementMigration2'',''Contact'',''None''')) 27 string="%s\n%s"%(string,fielddisplay(self,'migration','type of grounding line migration: ''SoftMigration'',''SubelementMigration'',''AggressiveMigration'',''Contact'',''None''')) 28 string="%s\n%s"%(string,fielddisplay(self,'migration','type of friction interpolation on partially floating elements: ''SubelementFriction1'',''SubelementFriction2'',''NoFrictionOnPartiallyFloating''')) 29 string="%s\n%s"%(string,fielddisplay(self,'migration','type of melt interpolation on partially floating elements: ''SubelementMelt1'',''SubelementMelt2'',''NoMeltOnPartiallyFloating'',''FullMeltOnPartiallyFloating''')) 26 30 return string 27 31 #}}} … … 29 33 30 34 #Type of migration 31 self.migration='None' 35 self.migration='SubelementMigration' 36 self.friction_interpolation='SubelementFriction1' 37 self.melt_interpolation='NoMeltOnPartiallyFloating' 32 38 33 39 return self … … 35 41 def checkconsistency(self,md,solution,analyses): # {{{ 36 42 37 md = checkfield(md,'fieldname','groundingline.migration','values',['None','AggressiveMigration','SoftMigration','SubelementMigration','SubelementMigration2','Contact','GroundingOnly']) 43 md = checkfield(md,'fieldname','groundingline.migration','values',['None','SubelementMigration','AggressiveMigration','SoftMigration','Contact','GroundingOnly']) 44 md = checkfield(md,'fieldname','groundingline.friction_interpolation','values',['SubelementFriction1','SubelementFriction2','NoFrictionOnPartiallyFloating']) 45 md = checkfield(md,'fieldname','groundingline.melt_interpolation','values',['SubelementMelt1','SubelementMelt2','NoMeltOnPartiallyFloating','FullMeltOnPartiallyFloating']) 38 46 39 47 if not m.strcmp(self.migration,'None'): … … 50 58 def marshall(self,prefix,md,fid): # {{{ 51 59 WriteData(fid,prefix,'data',self.migration,'name','md.groundingline.migration','format','String') 60 WriteData(fid,prefix,'data',self.migration,'name','md.groundingline.friction_interpolation','format','String') 61 WriteData(fid,prefix,'data',self.migration,'name','md.groundingline.melt_interpolation','format','String') 52 62 # }}} -
issm/trunk-jpl/test/NightlyRun/test105.m
r21056 r22993 5 5 md=setflowequation(md,'SSA','all'); 6 6 md.cluster=generic('name',oshostname(),'np',3); 7 md.cluster=generic('name',oshostname(),'np',1); 7 8 md=solve(md,'Masstransport'); 8 9 -
issm/trunk-jpl/test/NightlyRun/test423.m
r21056 r22993 38 38 md.mask.groundedice_levelset=md.geometry.thickness + md.materials.rho_water/md.materials.rho_ice*md.geometry.bed; 39 39 md.groundingline.migration='SubelementMigration'; 40 md.groundingline.friction_interpolation='SubelementFriction1'; 40 41 md=solve(md,'Transient'); 41 42 element_on_iceshelf_subelement=(md.results.TransientSolution.MaskGroundediceLevelset); 42 43 vel_subelement=(md.results.TransientSolution.Vel); 43 44 44 md.groundingline. migration='SubelementMigration2';45 md.groundingline.friction_interpolation='SubelementFriction2'; 45 46 md=solve(md,'Transient'); 46 47 element_on_iceshelf_subelement2=(md.results.TransientSolution.MaskGroundediceLevelset); -
issm/trunk-jpl/test/NightlyRun/test423.py
r21408 r22993 49 49 md.mask.groundedice_levelset=md.geometry.thickness + md.materials.rho_water/md.materials.rho_ice*md.geometry.bed 50 50 md.groundingline.migration='SubelementMigration' 51 md.groundingline.friction_interpolation='SubelementFriction1' 51 52 md=solve(md,'Transient') 52 53 element_on_iceshelf_subelement=md.results.TransientSolution[0].MaskGroundediceLevelset 53 54 vel_subelement=md.results.TransientSolution[0].Vel 54 55 55 md.groundingline. migration='SubelementMigration2'56 md.groundingline.friction_interpolation='SubelementFriction2' 56 57 md=solve(md,'Transient') 57 58 element_on_iceshelf_subelement2=md.results.TransientSolution[0].MaskGroundediceLevelset -
issm/trunk-jpl/test/NightlyRun/test433.m
r21056 r22993 39 39 element_on_iceshelf_subelement=(md.results.TransientSolution.MaskGroundediceLevelset); 40 40 41 md.groundingline.migration='SubelementMigration2'; 41 md.groundingline.migration='SubelementMigration'; 42 md.groundingline.friction_interpolation='SubelementFriction2'; 42 43 md.transient.isstressbalance=1; 43 44 md=setflowequation(md,'SSA','all'); -
issm/trunk-jpl/test/NightlyRun/test433.py
r21408 r22993 50 50 element_on_iceshelf_subelement=md.results.TransientSolution[0].MaskGroundediceLevelset 51 51 52 md.groundingline.migration='SubelementMigration' 53 md.groundingline.friction_interpolation='SubelementMigration2' 54 md=solve(md,'Transient') 55 element_on_iceshelf_subelement2=md.results.TransientSolution[0].MaskGroundediceLevelset 56 52 57 #Fields and tolerances to track changes 53 58 field_names =['ElementOnIceShelfAggressive','ElementOnIceShelfSoft','ElementOnIceShelfSubelement'] -
issm/trunk-jpl/test/NightlyRun/test441.m
r21790 r22993 39 39 md.transient.issmb=1; 40 40 md.transient.requested_outputs={'default','BasalforcingsFloatingiceMeltingRate'}; 41 md.groundingline.migration='SubelementMigration2'; 41 md.groundingline.migration='SubelementMigration'; 42 md.groundingline.friction_interpolation='SubelementFriction2'; 42 43 md.timestepping.final_time=30; 43 44 md.timestepping.time_step=10; -
issm/trunk-jpl/test/NightlyRun/test441.py
r22267 r22993 50 50 md.transient.issmb = 1 51 51 md.transient.requested_outputs = ['default','BasalforcingsFloatingiceMeltingRate'] 52 md.groundingline.migration = 'SubelementMigration2' 52 md.groundingline.migration = 'SubelementMigration' 53 md.groundingline.migration = 'SubelementFriction2' 53 54 md.timestepping.final_time = 30. 54 55 md.timestepping.time_step = 10. -
issm/trunk-jpl/test/NightlyRun/test442.m
r21904 r22993 40 40 md.transient.issmb=1; 41 41 md.transient.requested_outputs={'default','BasalforcingsFloatingiceMeltingRate'}; 42 md.groundingline.migration='SubelementMigration2'; 42 md.groundingline.migration='SubelementMigration'; 43 md.groundingline.friction_interpolation='SubelementFriction2'; 43 44 md.timestepping.final_time=30; 44 45 md.timestepping.time_step=10; -
issm/trunk-jpl/test/NightlyRun/test442.py
r22348 r22993 51 51 md.transient.issmb = 1 52 52 md.transient.requested_outputs = ['default','BasalforcingsFloatingiceMeltingRate'] 53 md.groundingline.migration = 'SubelementMigration2' 53 md.groundingline.migration = 'SubelementMigration' 54 md.groundingline.friction_interpolation= 'SubelementFriction2' 54 55 md.timestepping.final_time = 30 55 56 md.timestepping.time_step = 10 -
issm/trunk-jpl/test/NightlyRun/test701.m
r21423 r22993 46 46 md.verbose=verbose('convergence',true); 47 47 md.cluster=generic('np',2); 48 md.groundingline.migration='None'; 48 49 49 50 %Go solve -
issm/trunk-jpl/test/NightlyRun/test701.py
r22869 r22993 53 53 md.verbose = verbose('convergence',True) 54 54 md.cluster = generic('np',2) 55 md.groundingline.migration='None' 55 56 56 57 #Go solve -
issm/trunk-jpl/test/NightlyRun/test702.m
r21400 r22993 44 44 md.initialization.pressure=md.constants.g*md.materials.rho_ice*(md.geometry.surface-md.mesh.y); 45 45 md.miscellaneous.name = 'test702'; 46 md.groundingline.migration='None'; 46 47 md.cluster=generic('np',2); 47 48 -
issm/trunk-jpl/test/NightlyRun/test703.m
r21076 r22993 57 57 md.transient.isthermal=0; 58 58 md.masstransport.isfreesurface=1; 59 md.groundingline.migration='None'; 59 60 60 61 %Go solve -
issm/trunk-jpl/test/NightlyRun/test703.py
r22870 r22993 87 87 md.transient.isthermal = 0 88 88 md.masstransport.isfreesurface = 1 89 md.groundline.migration='None' 89 90 90 91 #Go solve -
issm/trunk-jpl/test/Par/79North.par
r22567 r22993 51 51 md.steadystate.reltol=0.005; 52 52 md.stressbalance.abstol=NaN; 53 md.groundingline.migration='None'; 53 54 54 55 %Boundary conditions: -
issm/trunk-jpl/test/Par/79North.py
r22866 r22993 54 54 md.steadystate.reltol=0.005 55 55 md.stressbalance.abstol=float('NaN') 56 md.groundingline.migration='None' 56 57 57 58 #Boundary conditions: -
issm/trunk-jpl/test/Par/IceCube.par
r22575 r22993 37 37 md.timestepping.time_step=1.; 38 38 md.timestepping.final_time=3.; 39 md.groundingline.migration='None'; 39 40 40 41 %Boundary conditions: -
issm/trunk-jpl/test/Par/IceCube.py
r22575 r22993 46 46 md.timestepping.time_step=1. 47 47 md.timestepping.final_time=3. 48 md.groundingline.migration='None' 48 49 49 50 #Boundary conditions: -
issm/trunk-jpl/test/Par/Pig.par
r22567 r22993 51 51 md.steadystate.reltol=1; 52 52 md.stressbalance.abstol=NaN; 53 md.groundingline.migration='None'; 53 54 54 55 %Boundary conditions: -
issm/trunk-jpl/test/Par/Pig.py
r22866 r22993 51 51 md.steadystate.reltol=1. 52 52 md.stressbalance.abstol=float('nan') 53 md.groundingline.migration='None' 53 54 54 55 #Boundary conditions: -
issm/trunk-jpl/test/Par/SquareSheetConstrained.par
r22575 r22993 57 57 md.timestepping.time_step=1.; 58 58 md.timestepping.final_time=3.; 59 md.groundingline.migration='None'; 59 60 60 61 %GIA: -
issm/trunk-jpl/test/Par/SquareSheetConstrained.py
r22575 r22993 59 59 md.timestepping.time_step=1. 60 60 md.timestepping.final_time=3. 61 md.groundingline.migration='None' 61 62 62 63 #GIA: -
issm/trunk-jpl/test/Par/SquareSheetShelf.par
r22575 r22993 59 59 md.timestepping.time_step=1.; 60 60 md.timestepping.final_time=3.; 61 md.groundingline.migration='None'; 61 62 62 63 %Deal with boundary conditions: -
issm/trunk-jpl/test/Par/SquareSheetShelf.py
r22575 r22993 63 63 md.timestepping.time_step=1. 64 64 md.timestepping.final_time=3. 65 md.groundingline.migration='None' 65 66 66 67 #Deal with boundary conditions: -
issm/trunk-jpl/test/Par/SquareShelf.par
r22567 r22993 51 51 md.timestepping.time_step=1; 52 52 md.timestepping.final_time=3; 53 md.groundingline.migration='None'; 53 54 54 55 %Boundary conditions: -
issm/trunk-jpl/test/Par/SquareShelf.py
r22567 r22993 72 72 md.timestepping.time_step = 1. 73 73 md.timestepping.final_time = 3. 74 md.groundingline.migration = 'None' 74 75 75 76 #Boundary conditions: -
issm/trunk-jpl/test/Par/SquareShelf2.par
r22567 r22993 51 51 md.timestepping.time_step=1; 52 52 md.timestepping.final_time=3; 53 md.groundingline.migration='None'; 53 54 54 55 %Boundary conditions: -
issm/trunk-jpl/test/Par/SquareShelf2.py
r22567 r22993 71 71 md.timestepping.time_step = 1. 72 72 md.timestepping.final_time = 3. 73 md.groundingline.migration= 'None' 73 74 74 75 #Boundary conditions: -
issm/trunk-jpl/test/Par/SquareThermal.par
r19527 r22993 2 2 3 3 md.timestepping.time_step=0; 4 md.groundingline.migration='None'; 4 5 5 6 disp(' creating thickness'); -
issm/trunk-jpl/test/Par/SquareThermal.py
r22267 r22993 6 6 7 7 md.timestepping.time_step=0 8 md.groundingline.migration='None' 8 9 9 10 print " creating thickness"
Note:
See TracChangeset
for help on using the changeset viewer.