Changeset 9679
- Timestamp:
- 09/08/11 08:07:18 (14 years ago)
- Location:
- issm/trunk
- Files:
-
- 24 added
- 19 deleted
- 88 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h
r9678 r9679 42 42 ThermalPenaltyFactorEnum, 43 43 ThermalRequestedOutputsEnum, 44 ThermalNumRequestedOutputsEnum, 44 45 MiscellaneousNameEnum, //FIXME: only used by qmu, should not be marshalled (already in queueing script) 45 46 TimesteppingTimeStepEnum, … … 53 54 PrognosticPenaltyFactorEnum, 54 55 PrognosticRequestedOutputsEnum, 56 PrognosticNumRequestedOutputsEnum, 55 57 MaterialsRheologyBEnum, 56 58 MaterialsRheologyBbarEnum, … … 83 85 BalancethicknessStabilizationEnum, 84 86 BalancethicknessRequestedOutputsEnum, 87 BalancethicknessNumRequestedOutputsEnum, 85 88 FlowequationIshutterEnum, 86 89 FlowequationIsmacayealpattynEnum, … … 92 95 FlowequationBordermacayealEnum, 93 96 SteadystateRequestedOutputsEnum, 97 SteadystateNumRequestedOutputsEnum, 94 98 SteadystateReltolEnum, 95 99 SteadystateMaxiterEnum, … … 99 103 TransientIsgroundinglineEnum, 100 104 TransientRequestedOutputsEnum, 105 TransientNumRequestedOutputsEnum, 106 DiagnosticSpcvxEnum, 107 DiagnosticSpcvyEnum, 108 DiagnosticSpcvzEnum, 109 DiagnosticStokesreconditioningEnum, 110 DiagnosticIcefrontEnum, 111 DiagnosticReferentialEnum, 112 DiagnosticVertexPairingEnum, 113 DiagnosticPenaltyFactorEnum, 114 DiagnosticAbstolEnum, 115 DiagnosticReltolEnum, 116 DiagnosticRestolEnum, 117 DiagnosticMaxiterEnum, 118 DiagnosticShelfDampeningEnum, 119 DiagnosticRiftPenaltyLockEnum, 120 DiagnosticRiftPenaltyThresholdEnum, 121 DiagnosticRequestedOutputsEnum, 122 DiagnosticNumRequestedOutputsEnum, 123 DiagnosticViscosityOvershootEnum, 101 124 /*}}}*/ 102 125 /*Datasets {{{1*/ … … 277 300 NodeonsurfaceEnum, 278 301 NumberNodeToElementConnectivityEnum, 279 PenaltyOffsetEnum,280 302 PressureEnum, 281 303 PressurePicardEnum, … … 284 306 ResetPenaltiesEnum, 285 307 SegmentOnIceShelfEnum, 286 ShelfDampeningEnum,287 308 SurfaceAreaEnum, 288 309 SurfaceEnum, … … 298 319 VelEnum, 299 320 VelObsEnum, 300 ViscosityOvershootEnum,301 321 VxAverageEnum, 302 322 VxEnum, … … 387 407 ControlSteadyEnum, 388 408 DimEnum, 389 EpsAbsEnum,390 409 EpsCmEnum, 391 EpsRelEnum,392 EpsResEnum,393 MaxNonlinearIterationsEnum,394 MinMechanicalConstraintsEnum,395 410 NumberOfElementsEnum, 396 411 NumberOfVerticesEnum, … … 446 461 NumberOfElements2DEnum, 447 462 NumControlTypeEnum, 448 SpcvyEnum,449 463 YEnum, 450 PenaltiesEnum,451 PressureloadEnum,452 SpcvzEnum,453 464 NumberOfNodes2DEnum, 454 465 ZEnum, 455 PenaltyLockEnum,456 SpcvxEnum,457 466 UpperelementsEnum, 458 467 EdgesEnum, … … 462 471 ElementconnectivityEnum, 463 472 NumlayersEnum, 464 DiagnosticRefEnum,465 StokesreconditioningEnum,466 473 LowerelementsEnum, 467 474 NstepsEnum, … … 474 481 WaitonlockEnum, 475 482 NumberOfResponsesEnum, 476 477 RequestedOutputsEnum,478 NumRequestedOutputsEnum,479 483 BasalFrictionEnum, 480 484 ViscousHeatingEnum, -
issm/trunk/src/c/modules/ConstraintsStatex/ConstraintsStatex.cpp
r8410 r9679 27 27 28 28 /*recover parameters: */ 29 parameters->FindParam(&min_mechanical_constraints, MinMechanicalConstraintsEnum);29 parameters->FindParam(&min_mechanical_constraints,DiagnosticRiftPenaltyThresholdEnum); 30 30 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 31 31 -
issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp
r9678 r9679 46 46 case ThermalPenaltyFactorEnum : return "ThermalPenaltyFactor"; 47 47 case ThermalRequestedOutputsEnum : return "ThermalRequestedOutputs"; 48 case ThermalNumRequestedOutputsEnum : return "ThermalNumRequestedOutputs"; 48 49 case MiscellaneousNameEnum : return "MiscellaneousName"; 49 50 case TimesteppingTimeStepEnum : return "TimesteppingTimeStep"; … … 57 58 case PrognosticPenaltyFactorEnum : return "PrognosticPenaltyFactor"; 58 59 case PrognosticRequestedOutputsEnum : return "PrognosticRequestedOutputs"; 60 case PrognosticNumRequestedOutputsEnum : return "PrognosticNumRequestedOutputs"; 59 61 case MaterialsRheologyBEnum : return "MaterialsRheologyB"; 60 62 case MaterialsRheologyBbarEnum : return "MaterialsRheologyBbar"; … … 87 89 case BalancethicknessStabilizationEnum : return "BalancethicknessStabilization"; 88 90 case BalancethicknessRequestedOutputsEnum : return "BalancethicknessRequestedOutputs"; 91 case BalancethicknessNumRequestedOutputsEnum : return "BalancethicknessNumRequestedOutputs"; 89 92 case FlowequationIshutterEnum : return "FlowequationIshutter"; 90 93 case FlowequationIsmacayealpattynEnum : return "FlowequationIsmacayealpattyn"; … … 96 99 case FlowequationBordermacayealEnum : return "FlowequationBordermacayeal"; 97 100 case SteadystateRequestedOutputsEnum : return "SteadystateRequestedOutputs"; 101 case SteadystateNumRequestedOutputsEnum : return "SteadystateNumRequestedOutputs"; 98 102 case SteadystateReltolEnum : return "SteadystateReltol"; 99 103 case SteadystateMaxiterEnum : return "SteadystateMaxiter"; … … 103 107 case TransientIsgroundinglineEnum : return "TransientIsgroundingline"; 104 108 case TransientRequestedOutputsEnum : return "TransientRequestedOutputs"; 109 case TransientNumRequestedOutputsEnum : return "TransientNumRequestedOutputs"; 110 case DiagnosticSpcvxEnum : return "DiagnosticSpcvx"; 111 case DiagnosticSpcvyEnum : return "DiagnosticSpcvy"; 112 case DiagnosticSpcvzEnum : return "DiagnosticSpcvz"; 113 case DiagnosticStokesreconditioningEnum : return "DiagnosticStokesreconditioning"; 114 case DiagnosticIcefrontEnum : return "DiagnosticIcefront"; 115 case DiagnosticReferentialEnum : return "DiagnosticReferential"; 116 case DiagnosticVertexPairingEnum : return "DiagnosticVertexPairing"; 117 case DiagnosticPenaltyFactorEnum : return "DiagnosticPenaltyFactor"; 118 case DiagnosticAbstolEnum : return "DiagnosticAbstol"; 119 case DiagnosticReltolEnum : return "DiagnosticReltol"; 120 case DiagnosticRestolEnum : return "DiagnosticRestol"; 121 case DiagnosticMaxiterEnum : return "DiagnosticMaxiter"; 122 case DiagnosticShelfDampeningEnum : return "DiagnosticShelfDampening"; 123 case DiagnosticRiftPenaltyLockEnum : return "DiagnosticRiftPenaltyLock"; 124 case DiagnosticRiftPenaltyThresholdEnum : return "DiagnosticRiftPenaltyThreshold"; 125 case DiagnosticRequestedOutputsEnum : return "DiagnosticRequestedOutputs"; 126 case DiagnosticNumRequestedOutputsEnum : return "DiagnosticNumRequestedOutputs"; 127 case DiagnosticViscosityOvershootEnum : return "DiagnosticViscosityOvershoot"; 105 128 case ConstraintsEnum : return "Constraints"; 106 129 case ElementsEnum : return "Elements"; … … 244 267 case NodeonsurfaceEnum : return "Nodeonsurface"; 245 268 case NumberNodeToElementConnectivityEnum : return "NumberNodeToElementConnectivity"; 246 case PenaltyOffsetEnum : return "PenaltyOffset";247 269 case PressureEnum : return "Pressure"; 248 270 case PressurePicardEnum : return "PressurePicard"; … … 251 273 case ResetPenaltiesEnum : return "ResetPenalties"; 252 274 case SegmentOnIceShelfEnum : return "SegmentOnIceShelf"; 253 case ShelfDampeningEnum : return "ShelfDampening";254 275 case SurfaceAreaEnum : return "SurfaceArea"; 255 276 case SurfaceEnum : return "Surface"; … … 265 286 case VelEnum : return "Vel"; 266 287 case VelObsEnum : return "VelObs"; 267 case ViscosityOvershootEnum : return "ViscosityOvershoot";268 288 case VxAverageEnum : return "VxAverage"; 269 289 case VxEnum : return "Vx"; … … 339 359 case ControlSteadyEnum : return "ControlSteady"; 340 360 case DimEnum : return "Dim"; 341 case EpsAbsEnum : return "EpsAbs";342 361 case EpsCmEnum : return "EpsCm"; 343 case EpsRelEnum : return "EpsRel";344 case EpsResEnum : return "EpsRes";345 case MaxNonlinearIterationsEnum : return "MaxNonlinearIterations";346 case MinMechanicalConstraintsEnum : return "MinMechanicalConstraints";347 362 case NumberOfElementsEnum : return "NumberOfElements"; 348 363 case NumberOfVerticesEnum : return "NumberOfVertices"; … … 390 405 case NumberOfElements2DEnum : return "NumberOfElements2D"; 391 406 case NumControlTypeEnum : return "NumControlType"; 392 case SpcvyEnum : return "Spcvy";393 407 case YEnum : return "Y"; 394 case PenaltiesEnum : return "Penalties";395 case PressureloadEnum : return "Pressureload";396 case SpcvzEnum : return "Spcvz";397 408 case NumberOfNodes2DEnum : return "NumberOfNodes2D"; 398 409 case ZEnum : return "Z"; 399 case PenaltyLockEnum : return "PenaltyLock";400 case SpcvxEnum : return "Spcvx";401 410 case UpperelementsEnum : return "Upperelements"; 402 411 case EdgesEnum : return "Edges"; … … 406 415 case ElementconnectivityEnum : return "Elementconnectivity"; 407 416 case NumlayersEnum : return "Numlayers"; 408 case DiagnosticRefEnum : return "DiagnosticRef";409 case StokesreconditioningEnum : return "Stokesreconditioning";410 417 case LowerelementsEnum : return "Lowerelements"; 411 418 case NstepsEnum : return "Nsteps"; … … 418 425 case WaitonlockEnum : return "Waitonlock"; 419 426 case NumberOfResponsesEnum : return "NumberOfResponses"; 420 case RequestedOutputsEnum : return "RequestedOutputs";421 case NumRequestedOutputsEnum : return "NumRequestedOutputs";422 427 case BasalFrictionEnum : return "BasalFriction"; 423 428 case ViscousHeatingEnum : return "ViscousHeating"; -
issm/trunk/src/c/modules/ModelProcessorx/CreateParameters.cpp
r9678 r9679 30 30 parameters->AddObject(iomodel->CopyConstantObject(FlowequationIsstokesEnum)); 31 31 parameters->AddObject(iomodel->CopyConstantObject(OutputFrequencyEnum)); 32 parameters->AddObject(iomodel->CopyConstantObject( EpsResEnum));33 parameters->AddObject(iomodel->CopyConstantObject( EpsRelEnum));34 parameters->AddObject(iomodel->CopyConstantObject( EpsAbsEnum));35 parameters->AddObject(iomodel->CopyConstantObject( MaxNonlinearIterationsEnum));32 parameters->AddObject(iomodel->CopyConstantObject(DiagnosticRestolEnum)); 33 parameters->AddObject(iomodel->CopyConstantObject(DiagnosticReltolEnum)); 34 parameters->AddObject(iomodel->CopyConstantObject(DiagnosticAbstolEnum)); 35 parameters->AddObject(iomodel->CopyConstantObject(DiagnosticMaxiterEnum)); 36 36 parameters->AddObject(iomodel->CopyConstantObject(SteadystateReltolEnum)); 37 37 parameters->AddObject(iomodel->CopyConstantObject(SteadystateMaxiterEnum)); … … 43 43 parameters->AddObject(iomodel->CopyConstantObject(PrognosticHydrostaticAdjustmentEnum)); 44 44 parameters->AddObject(iomodel->CopyConstantObject(PrognosticStabilizationEnum)); 45 parameters->AddObject(iomodel->CopyConstantObject( PenaltyOffsetEnum));45 parameters->AddObject(iomodel->CopyConstantObject(DiagnosticPenaltyFactorEnum)); 46 46 parameters->AddObject(iomodel->CopyConstantObject(ThermalPenaltyFactorEnum)); 47 47 parameters->AddObject(iomodel->CopyConstantObject(SettingsLowmemEnum)); … … 55 55 parameters->AddObject(iomodel->CopyConstantObject(ThermalPenaltyThresholdEnum)); 56 56 parameters->AddObject(iomodel->CopyConstantObject(ThermalPenaltyLockEnum)); 57 parameters->AddObject(iomodel->CopyConstantObject( MinMechanicalConstraintsEnum));58 parameters->AddObject(iomodel->CopyConstantObject( StokesreconditioningEnum));59 parameters->AddObject(iomodel->CopyConstantObject( ShelfDampeningEnum));60 parameters->AddObject(iomodel->CopyConstantObject( ViscosityOvershootEnum));57 parameters->AddObject(iomodel->CopyConstantObject(DiagnosticRiftPenaltyThresholdEnum)); 58 parameters->AddObject(iomodel->CopyConstantObject(DiagnosticStokesreconditioningEnum)); 59 parameters->AddObject(iomodel->CopyConstantObject(DiagnosticShelfDampeningEnum)); 60 parameters->AddObject(iomodel->CopyConstantObject(DiagnosticViscosityOvershootEnum)); 61 61 parameters->AddObject(iomodel->CopyConstantObject(WaitonlockEnum)); 62 62 parameters->AddObject(iomodel->CopyConstantObject(NumberOfElementsEnum)); … … 76 76 77 77 /*Requested output?*/ 78 iomodel->FetchData(&requestedoutputs,&numoutputs,NULL,RequestedOutputsEnum); 79 parameters->AddObject(new IntParam(NumRequestedOutputsEnum,numoutputs)); 80 if(numoutputs)parameters->AddObject(new IntVecParam(RequestedOutputsEnum,requestedoutputs,numoutputs)); 78 iomodel->FetchData(&requestedoutputs,&numoutputs,NULL,DiagnosticRequestedOutputsEnum); 79 parameters->AddObject(new IntParam(DiagnosticNumRequestedOutputsEnum,numoutputs)); 80 if(numoutputs)parameters->AddObject(new IntVecParam(DiagnosticRequestedOutputsEnum,requestedoutputs,numoutputs)); 81 xfree((void**)&requestedoutputs); 82 iomodel->FetchData(&requestedoutputs,&numoutputs,NULL,PrognosticRequestedOutputsEnum); 83 parameters->AddObject(new IntParam(PrognosticNumRequestedOutputsEnum,numoutputs)); 84 if(numoutputs)parameters->AddObject(new IntVecParam(PrognosticRequestedOutputsEnum,requestedoutputs,numoutputs)); 85 xfree((void**)&requestedoutputs); 86 iomodel->FetchData(&requestedoutputs,&numoutputs,NULL,ThermalRequestedOutputsEnum); 87 parameters->AddObject(new IntParam(ThermalNumRequestedOutputsEnum,numoutputs)); 88 if(numoutputs)parameters->AddObject(new IntVecParam(ThermalRequestedOutputsEnum,requestedoutputs,numoutputs)); 89 xfree((void**)&requestedoutputs); 90 iomodel->FetchData(&requestedoutputs,&numoutputs,NULL,TransientRequestedOutputsEnum); 91 parameters->AddObject(new IntParam(TransientNumRequestedOutputsEnum,numoutputs)); 92 if(numoutputs)parameters->AddObject(new IntVecParam(TransientRequestedOutputsEnum,requestedoutputs,numoutputs)); 93 xfree((void**)&requestedoutputs); 94 iomodel->FetchData(&requestedoutputs,&numoutputs,NULL,SteadystateRequestedOutputsEnum); 95 parameters->AddObject(new IntParam(SteadystateNumRequestedOutputsEnum,numoutputs)); 96 if(numoutputs)parameters->AddObject(new IntVecParam(SteadystateRequestedOutputsEnum,requestedoutputs,numoutputs)); 97 xfree((void**)&requestedoutputs); 98 iomodel->FetchData(&requestedoutputs,&numoutputs,NULL,BalancethicknessRequestedOutputsEnum); 99 parameters->AddObject(new IntParam(BalancethicknessNumRequestedOutputsEnum,numoutputs)); 100 if(numoutputs)parameters->AddObject(new IntVecParam(BalancethicknessRequestedOutputsEnum,requestedoutputs,numoutputs)); 81 101 xfree((void**)&requestedoutputs); 82 102 -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp
r9661 r9679 44 44 iomodel->Constant(&g,ConstantsGEnum); 45 45 iomodel->Constant(&rho_ice,MaterialsRhoIceEnum); 46 iomodel->Constant(&stokesreconditioning, StokesreconditioningEnum);46 iomodel->Constant(&stokesreconditioning,DiagnosticStokesreconditioningEnum); 47 47 iomodel->Constant(&isstokes,FlowequationIsstokesEnum); 48 48 iomodel->Constant(&ismacayealpattyn,FlowequationIsmacayealpattynEnum); … … 61 61 62 62 /*Constraints: fetch data: */ 63 iomodel->FetchData(&spcvx,NULL,NULL, SpcvxEnum);64 iomodel->FetchData(&spcvy,NULL,NULL, SpcvyEnum);65 iomodel->FetchData(&spcvz,NULL,NULL, SpcvzEnum);63 iomodel->FetchData(&spcvx,NULL,NULL,DiagnosticSpcvxEnum); 64 iomodel->FetchData(&spcvy,NULL,NULL,DiagnosticSpcvyEnum); 65 iomodel->FetchData(&spcvz,NULL,NULL,DiagnosticSpcvzEnum); 66 66 iomodel->FetchData(&nodeonmacayeal,NULL,NULL,FlowequationBordermacayealEnum); 67 67 if(dim==3)iomodel->FetchData(&nodeonpattyn,NULL,NULL,FlowequationBorderpattynEnum); -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp
r9661 r9679 60 60 /*Create pressure loads as boundary conditions. Pay attention to the partitioning if we are running in parallel (the nodes 61 61 * referenced by a certain load must belong to the cluster node): */ 62 iomodel->FetchData(3, PressureloadEnum,ThicknessEnum,BedEnum);63 iomodel->FetchData(&pressureload,&numberofpressureloads,NULL, PressureloadEnum);62 iomodel->FetchData(3,DiagnosticIcefrontEnum,ThicknessEnum,BedEnum); 63 iomodel->FetchData(&pressureload,&numberofpressureloads,NULL,DiagnosticIcefrontEnum); 64 64 iomodel->FetchData(&elements_type,NULL,NULL,FlowequationElementEquationEnum); 65 65 … … 119 119 120 120 /*Free data: */ 121 iomodel->DeleteData(3, PressureloadEnum,ThicknessEnum,BedEnum);121 iomodel->DeleteData(3,DiagnosticIcefrontEnum,ThicknessEnum,BedEnum); 122 122 xfree((void**)&elements_type); 123 123 xfree((void**)&pressureload); … … 149 149 150 150 /*Create Penpair for penalties: */ 151 iomodel->FetchData(&penalties,&numpenalties,NULL, PenaltiesEnum);151 iomodel->FetchData(&penalties,&numpenalties,NULL,DiagnosticVertexPairingEnum); 152 152 153 153 for(i=0;i<numpenalties;i++){ -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateNodesDiagnosticHoriz.cpp
r9661 r9679 46 46 /*Create nodes: */ 47 47 iomodel->FetchData(9,NodeonbedEnum,NodeonsurfaceEnum,FlowequationBordermacayealEnum,FlowequationBorderstokesEnum, 48 MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,MaskVertexonwaterEnum,FlowequationVertexEquationEnum,DiagnosticRef Enum);48 MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,MaskVertexonwaterEnum,FlowequationVertexEquationEnum,DiagnosticReferentialEnum); 49 49 50 50 for (i=0;i<numberofvertices;i++){ … … 59 59 /*Clean fetched data: */ 60 60 iomodel->DeleteData(9,NodeonbedEnum,NodeonsurfaceEnum,FlowequationBordermacayealEnum,FlowequationBorderstokesEnum, 61 MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,MaskVertexonwaterEnum,FlowequationVertexEquationEnum,DiagnosticRef Enum);61 MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,MaskVertexonwaterEnum,FlowequationVertexEquationEnum,DiagnosticReferentialEnum); 62 62 63 63 /*Assign output pointer: */ -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateConstraintsDiagnosticHutter.cpp
r9661 r9679 42 42 43 43 /*Fetch data: */ 44 iomodel->FetchData(3, SpcvxEnum,SpcvyEnum,FlowequationVertexEquationEnum);44 iomodel->FetchData(3,DiagnosticSpcvxEnum,DiagnosticSpcvyEnum,FlowequationVertexEquationEnum); 45 45 46 46 /*Initialize conunter*/ … … 60 60 } 61 61 else{ 62 if (!isnan(iomodel->Data( SpcvxEnum)[i])){63 constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1,iomodel->Data( SpcvxEnum)[i]/yts,DiagnosticHutterAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.62 if (!isnan(iomodel->Data(DiagnosticSpcvxEnum)[i])){ 63 constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1,iomodel->Data(DiagnosticSpcvxEnum)[i]/yts,DiagnosticHutterAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx. 64 64 count++; 65 65 } 66 66 67 if (!isnan(iomodel->Data( SpcvyEnum)[i])){68 constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,2,iomodel->Data( SpcvyEnum)[i]/yts,DiagnosticHutterAnalysisEnum)); //add count'th spc, on node i+1, setting dof 2 to vy67 if (!isnan(iomodel->Data(DiagnosticSpcvyEnum)[i])){ 68 constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,2,iomodel->Data(DiagnosticSpcvyEnum)[i]/yts,DiagnosticHutterAnalysisEnum)); //add count'th spc, on node i+1, setting dof 2 to vy 69 69 count++; 70 70 } … … 74 74 75 75 /*Free data: */ 76 iomodel->DeleteData(3, SpcvxEnum,SpcvyEnum,FlowequationVertexEquationEnum);76 iomodel->DeleteData(3,DiagnosticSpcvxEnum,DiagnosticSpcvyEnum,FlowequationVertexEquationEnum); 77 77 78 78 /*Assign output pointer: */ -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateConstraintsDiagnosticVert.cpp
r9661 r9679 41 41 42 42 /*Fetch data: */ 43 iomodel->FetchData(2, SpcvzEnum,FlowequationBorderstokesEnum);43 iomodel->FetchData(2,DiagnosticSpcvzEnum,FlowequationBorderstokesEnum); 44 44 45 45 /*Initialize counter*/ … … 56 56 count++; 57 57 } 58 else if (!isnan(iomodel->Data( SpcvzEnum)[i])){58 else if (!isnan(iomodel->Data(DiagnosticSpcvzEnum)[i])){ 59 59 constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1, 60 iomodel->Data( SpcvzEnum)[i]/yts,DiagnosticVertAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.60 iomodel->Data(DiagnosticSpcvzEnum)[i]/yts,DiagnosticVertAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx. 61 61 count++; 62 62 … … 66 66 67 67 /*Free data: */ 68 iomodel->DeleteData(2, SpcvzEnum,FlowequationBorderstokesEnum);68 iomodel->DeleteData(2,DiagnosticSpcvzEnum,FlowequationBorderstokesEnum); 69 69 70 70 cleanup_and_return: -
issm/trunk/src/c/modules/ModelProcessorx/ElementsAndVerticesPartitioning.cpp
r9642 r9679 130 130 * penpair has 2 nodes that are poointing toward 2 vertices. 131 131 * The 2 vertices must be in the same cpu as the penpair*/ 132 iomodel->FetchData(&vertex_pairing,&numvertex_pairing,NULL, PenaltiesEnum);132 iomodel->FetchData(&vertex_pairing,&numvertex_pairing,NULL,DiagnosticVertexPairingEnum); 133 133 for(i=0;i<numvertex_pairing;i++){ 134 134 if(my_vertices[(int)vertex_pairing[2*i+0]-1] && !my_vertices[(int)vertex_pairing[2*i+1]-1]){ -
issm/trunk/src/c/modules/RequestedOutputsx/RequestedOutputsx.cpp
r9114 r9679 9 9 #include "../../EnumDefinitions/EnumDefinitions.h" 10 10 11 void RequestedOutputsx(Elements* elements,Nodes* nodes,Vertices* vertices,Loads* loads,Materials* materials,Parameters* parameters, int step, double time){ 12 11 void RequestedOutputsx(Elements* elements,Nodes* nodes,Vertices* vertices,Loads* loads,Materials* materials,Parameters* parameters, int* requested_outputs, int numoutputs, int step, double time){ 13 12 14 13 int i,o; 15 int numoutputs = 0;16 int *requested_outputs = NULL;17 14 int output_enum; 18 15 Element* element=NULL; 19 16 20 17 /*retrieve parameters: */ 21 parameters->FindParam(&numoutputs,NumRequestedOutputsEnum);22 if(numoutputs) parameters->FindParam(&requested_outputs,&numoutputs,RequestedOutputsEnum);23 24 18 if(numoutputs){ 25 19 for(o=0;o<numoutputs;o++){ … … 32 26 } 33 27 } 34 35 /*Free ressources:*/36 xfree((void**)&requested_outputs);37 38 28 } -
issm/trunk/src/c/modules/RequestedOutputsx/RequestedOutputsx.h
r9110 r9679 9 9 10 10 /* local prototypes: */ 11 void RequestedOutputsx(Elements* elements,Nodes* nodes,Vertices* vertices,Loads* loads,Materials* materials,Parameters* parameters, int step=1, double time=0);11 void RequestedOutputsx(Elements* elements,Nodes* nodes,Vertices* vertices,Loads* loads,Materials* materials,Parameters* parameters, int* requested_outputs, int numoutputs, int step=1, double time=0); 12 12 13 13 #endif /* _INPUTTORESULTX_H */ -
issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp
r9678 r9679 44 44 else if (strcmp(name,"ThermalPenaltyFactor")==0) return ThermalPenaltyFactorEnum; 45 45 else if (strcmp(name,"ThermalRequestedOutputs")==0) return ThermalRequestedOutputsEnum; 46 else if (strcmp(name,"ThermalNumRequestedOutputs")==0) return ThermalNumRequestedOutputsEnum; 46 47 else if (strcmp(name,"MiscellaneousName")==0) return MiscellaneousNameEnum; 47 48 else if (strcmp(name,"TimesteppingTimeStep")==0) return TimesteppingTimeStepEnum; … … 55 56 else if (strcmp(name,"PrognosticPenaltyFactor")==0) return PrognosticPenaltyFactorEnum; 56 57 else if (strcmp(name,"PrognosticRequestedOutputs")==0) return PrognosticRequestedOutputsEnum; 58 else if (strcmp(name,"PrognosticNumRequestedOutputs")==0) return PrognosticNumRequestedOutputsEnum; 57 59 else if (strcmp(name,"MaterialsRheologyB")==0) return MaterialsRheologyBEnum; 58 60 else if (strcmp(name,"MaterialsRheologyBbar")==0) return MaterialsRheologyBbarEnum; … … 85 87 else if (strcmp(name,"BalancethicknessStabilization")==0) return BalancethicknessStabilizationEnum; 86 88 else if (strcmp(name,"BalancethicknessRequestedOutputs")==0) return BalancethicknessRequestedOutputsEnum; 89 else if (strcmp(name,"BalancethicknessNumRequestedOutputs")==0) return BalancethicknessNumRequestedOutputsEnum; 87 90 else if (strcmp(name,"FlowequationIshutter")==0) return FlowequationIshutterEnum; 88 91 else if (strcmp(name,"FlowequationIsmacayealpattyn")==0) return FlowequationIsmacayealpattynEnum; … … 94 97 else if (strcmp(name,"FlowequationBordermacayeal")==0) return FlowequationBordermacayealEnum; 95 98 else if (strcmp(name,"SteadystateRequestedOutputs")==0) return SteadystateRequestedOutputsEnum; 99 else if (strcmp(name,"SteadystateNumRequestedOutputs")==0) return SteadystateNumRequestedOutputsEnum; 96 100 else if (strcmp(name,"SteadystateReltol")==0) return SteadystateReltolEnum; 97 101 else if (strcmp(name,"SteadystateMaxiter")==0) return SteadystateMaxiterEnum; … … 101 105 else if (strcmp(name,"TransientIsgroundingline")==0) return TransientIsgroundinglineEnum; 102 106 else if (strcmp(name,"TransientRequestedOutputs")==0) return TransientRequestedOutputsEnum; 107 else if (strcmp(name,"TransientNumRequestedOutputs")==0) return TransientNumRequestedOutputsEnum; 108 else if (strcmp(name,"DiagnosticSpcvx")==0) return DiagnosticSpcvxEnum; 109 else if (strcmp(name,"DiagnosticSpcvy")==0) return DiagnosticSpcvyEnum; 110 else if (strcmp(name,"DiagnosticSpcvz")==0) return DiagnosticSpcvzEnum; 111 else if (strcmp(name,"DiagnosticStokesreconditioning")==0) return DiagnosticStokesreconditioningEnum; 112 else if (strcmp(name,"DiagnosticIcefront")==0) return DiagnosticIcefrontEnum; 113 else if (strcmp(name,"DiagnosticReferential")==0) return DiagnosticReferentialEnum; 114 else if (strcmp(name,"DiagnosticVertexPairing")==0) return DiagnosticVertexPairingEnum; 115 else if (strcmp(name,"DiagnosticPenaltyFactor")==0) return DiagnosticPenaltyFactorEnum; 116 else if (strcmp(name,"DiagnosticAbstol")==0) return DiagnosticAbstolEnum; 117 else if (strcmp(name,"DiagnosticReltol")==0) return DiagnosticReltolEnum; 118 else if (strcmp(name,"DiagnosticRestol")==0) return DiagnosticRestolEnum; 119 else if (strcmp(name,"DiagnosticMaxiter")==0) return DiagnosticMaxiterEnum; 120 else if (strcmp(name,"DiagnosticShelfDampening")==0) return DiagnosticShelfDampeningEnum; 121 else if (strcmp(name,"DiagnosticRiftPenaltyLock")==0) return DiagnosticRiftPenaltyLockEnum; 122 else if (strcmp(name,"DiagnosticRiftPenaltyThreshold")==0) return DiagnosticRiftPenaltyThresholdEnum; 123 else if (strcmp(name,"DiagnosticRequestedOutputs")==0) return DiagnosticRequestedOutputsEnum; 124 else if (strcmp(name,"DiagnosticNumRequestedOutputs")==0) return DiagnosticNumRequestedOutputsEnum; 125 else if (strcmp(name,"DiagnosticViscosityOvershoot")==0) return DiagnosticViscosityOvershootEnum; 103 126 else if (strcmp(name,"Constraints")==0) return ConstraintsEnum; 104 127 else if (strcmp(name,"Elements")==0) return ElementsEnum; … … 242 265 else if (strcmp(name,"Nodeonsurface")==0) return NodeonsurfaceEnum; 243 266 else if (strcmp(name,"NumberNodeToElementConnectivity")==0) return NumberNodeToElementConnectivityEnum; 244 else if (strcmp(name,"PenaltyOffset")==0) return PenaltyOffsetEnum;245 267 else if (strcmp(name,"Pressure")==0) return PressureEnum; 246 268 else if (strcmp(name,"PressurePicard")==0) return PressurePicardEnum; … … 249 271 else if (strcmp(name,"ResetPenalties")==0) return ResetPenaltiesEnum; 250 272 else if (strcmp(name,"SegmentOnIceShelf")==0) return SegmentOnIceShelfEnum; 251 else if (strcmp(name,"ShelfDampening")==0) return ShelfDampeningEnum;252 273 else if (strcmp(name,"SurfaceArea")==0) return SurfaceAreaEnum; 253 274 else if (strcmp(name,"Surface")==0) return SurfaceEnum; … … 263 284 else if (strcmp(name,"Vel")==0) return VelEnum; 264 285 else if (strcmp(name,"VelObs")==0) return VelObsEnum; 265 else if (strcmp(name,"ViscosityOvershoot")==0) return ViscosityOvershootEnum;266 286 else if (strcmp(name,"VxAverage")==0) return VxAverageEnum; 267 287 else if (strcmp(name,"Vx")==0) return VxEnum; … … 337 357 else if (strcmp(name,"ControlSteady")==0) return ControlSteadyEnum; 338 358 else if (strcmp(name,"Dim")==0) return DimEnum; 339 else if (strcmp(name,"EpsAbs")==0) return EpsAbsEnum;340 359 else if (strcmp(name,"EpsCm")==0) return EpsCmEnum; 341 else if (strcmp(name,"EpsRel")==0) return EpsRelEnum;342 else if (strcmp(name,"EpsRes")==0) return EpsResEnum;343 else if (strcmp(name,"MaxNonlinearIterations")==0) return MaxNonlinearIterationsEnum;344 else if (strcmp(name,"MinMechanicalConstraints")==0) return MinMechanicalConstraintsEnum;345 360 else if (strcmp(name,"NumberOfElements")==0) return NumberOfElementsEnum; 346 361 else if (strcmp(name,"NumberOfVertices")==0) return NumberOfVerticesEnum; … … 388 403 else if (strcmp(name,"NumberOfElements2D")==0) return NumberOfElements2DEnum; 389 404 else if (strcmp(name,"NumControlType")==0) return NumControlTypeEnum; 390 else if (strcmp(name,"Spcvy")==0) return SpcvyEnum;391 405 else if (strcmp(name,"Y")==0) return YEnum; 392 else if (strcmp(name,"Penalties")==0) return PenaltiesEnum;393 else if (strcmp(name,"Pressureload")==0) return PressureloadEnum;394 else if (strcmp(name,"Spcvz")==0) return SpcvzEnum;395 406 else if (strcmp(name,"NumberOfNodes2D")==0) return NumberOfNodes2DEnum; 396 407 else if (strcmp(name,"Z")==0) return ZEnum; 397 else if (strcmp(name,"PenaltyLock")==0) return PenaltyLockEnum;398 else if (strcmp(name,"Spcvx")==0) return SpcvxEnum;399 408 else if (strcmp(name,"Upperelements")==0) return UpperelementsEnum; 400 409 else if (strcmp(name,"Edges")==0) return EdgesEnum; … … 404 413 else if (strcmp(name,"Elementconnectivity")==0) return ElementconnectivityEnum; 405 414 else if (strcmp(name,"Numlayers")==0) return NumlayersEnum; 406 else if (strcmp(name,"DiagnosticRef")==0) return DiagnosticRefEnum;407 else if (strcmp(name,"Stokesreconditioning")==0) return StokesreconditioningEnum;408 415 else if (strcmp(name,"Lowerelements")==0) return LowerelementsEnum; 409 416 else if (strcmp(name,"Nsteps")==0) return NstepsEnum; … … 416 423 else if (strcmp(name,"Waitonlock")==0) return WaitonlockEnum; 417 424 else if (strcmp(name,"NumberOfResponses")==0) return NumberOfResponsesEnum; 418 else if (strcmp(name,"RequestedOutputs")==0) return RequestedOutputsEnum;419 else if (strcmp(name,"NumRequestedOutputs")==0) return NumRequestedOutputsEnum;420 425 else if (strcmp(name,"BasalFriction")==0) return BasalFrictionEnum; 421 426 else if (strcmp(name,"ViscousHeating")==0) return ViscousHeatingEnum; -
issm/trunk/src/c/objects/Elements/Penta.cpp
r9661 r9679 426 426 427 427 /*retrieve some parameters: */ 428 this->parameters->FindParam(&stokesreconditioning, StokesreconditioningEnum);428 this->parameters->FindParam(&stokesreconditioning,DiagnosticStokesreconditioningEnum); 429 429 430 430 if(!IsOnBed()){ … … 757 757 /* Get node coordinates and dof list: */ 758 758 GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES); 759 this->parameters->FindParam(&viscosity_overshoot, ViscosityOvershootEnum);759 this->parameters->FindParam(&viscosity_overshoot,DiagnosticViscosityOvershootEnum); 760 760 Input* vx_input=inputs->GetInput(VxEnum); _assert_(vx_input); 761 761 Input* vy_input=inputs->GetInput(VyEnum); _assert_(vy_input); … … 939 939 /* Get node coordinates and dof list: */ 940 940 GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES); 941 parameters->FindParam(&stokesreconditioning, StokesreconditioningEnum);941 parameters->FindParam(&stokesreconditioning,DiagnosticStokesreconditioningEnum); 942 942 Input* vx_input=inputs->GetInput(VxEnum); _assert_(vx_input); 943 943 Input* vy_input=inputs->GetInput(VyEnum); _assert_(vy_input); … … 1030 1030 GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES); 1031 1031 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 1032 parameters->FindParam(&stokesreconditioning, StokesreconditioningEnum);1032 parameters->FindParam(&stokesreconditioning,DiagnosticStokesreconditioningEnum); 1033 1033 Input* vx_input=inputs->GetInput(VxEnum); _assert_(vx_input); 1034 1034 Input* vy_input=inputs->GetInput(VyEnum); _assert_(vy_input); … … 1285 1285 /*Retrieve all inputs and parameters*/ 1286 1286 GetVerticesCoordinates(&xyz_list[0][0], nodes,NUMVERTICES); 1287 this->parameters->FindParam(&viscosity_overshoot, ViscosityOvershootEnum);1287 this->parameters->FindParam(&viscosity_overshoot,DiagnosticViscosityOvershootEnum); 1288 1288 Input* vx_input=inputs->GetInput(VxEnum); _assert_(vx_input); 1289 1289 Input* vy_input=inputs->GetInput(VyEnum); _assert_(vy_input); … … 1427 1427 inputs->GetParameterValue(&approximation,ApproximationEnum); 1428 1428 GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES); 1429 this->parameters->FindParam(&viscosity_overshoot, ViscosityOvershootEnum);1429 this->parameters->FindParam(&viscosity_overshoot,DiagnosticViscosityOvershootEnum); 1430 1430 Input* vx_input=inputs->GetInput(VxEnum); _assert_(vx_input); 1431 1431 Input* vy_input=inputs->GetInput(VyEnum); _assert_(vy_input); … … 1588 1588 /*Retrieve all inputs and parameters*/ 1589 1589 GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES); 1590 parameters->FindParam(&stokesreconditioning, StokesreconditioningEnum);1590 parameters->FindParam(&stokesreconditioning,DiagnosticStokesreconditioningEnum); 1591 1591 Input* vx_input=inputs->GetInput(VxEnum); _assert_(vx_input); 1592 1592 Input* vy_input=inputs->GetInput(VyEnum); _assert_(vy_input); … … 1657 1657 GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES); 1658 1658 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 1659 parameters->FindParam(&stokesreconditioning, StokesreconditioningEnum);1659 parameters->FindParam(&stokesreconditioning,DiagnosticStokesreconditioningEnum); 1660 1660 Input* vx_input=inputs->GetInput(VxEnum); _assert_(vx_input); 1661 1661 Input* vy_input=inputs->GetInput(VyEnum); _assert_(vy_input); … … 2484 2484 /*Retrieve all inputs and parameters*/ 2485 2485 GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES); 2486 this->parameters->FindParam(&stokesreconditioning, StokesreconditioningEnum);2486 this->parameters->FindParam(&stokesreconditioning,DiagnosticStokesreconditioningEnum); 2487 2487 Input* vx_input=inputs->GetInput(VxEnum); _assert_(vx_input); 2488 2488 Input* vy_input=inputs->GetInput(VyEnum); _assert_(vy_input); … … 2549 2549 GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES); 2550 2550 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 2551 this->parameters->FindParam(&stokesreconditioning, StokesreconditioningEnum);2551 this->parameters->FindParam(&stokesreconditioning,DiagnosticStokesreconditioningEnum); 2552 2552 Input* vx_input=inputs->GetInput(VxEnum); _assert_(vx_input); 2553 2553 Input* vy_input=inputs->GetInput(VyEnum); _assert_(vy_input); … … 2629 2629 /*Retrieve all inputs and parameters*/ 2630 2630 GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES); 2631 this->parameters->FindParam(&stokesreconditioning, StokesreconditioningEnum);2631 this->parameters->FindParam(&stokesreconditioning,DiagnosticStokesreconditioningEnum); 2632 2632 Input* vx_input=inputs->GetInput(VxEnum); _assert_(vx_input); 2633 2633 Input* vy_input=inputs->GetInput(VyEnum); _assert_(vy_input); … … 2694 2694 GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES); 2695 2695 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 2696 this->parameters->FindParam(&stokesreconditioning, StokesreconditioningEnum);2696 this->parameters->FindParam(&stokesreconditioning,DiagnosticStokesreconditioningEnum); 2697 2697 Input* vx_input=inputs->GetInput(VxEnum); _assert_(vx_input); 2698 2698 Input* vy_input=inputs->GetInput(VyEnum); _assert_(vy_input); … … 3000 3000 3001 3001 /*Retrieve all inputs and parameters*/ 3002 this->parameters->FindParam(&stokesreconditioning, StokesreconditioningEnum);3002 this->parameters->FindParam(&stokesreconditioning,DiagnosticStokesreconditioningEnum); 3003 3003 rho_ice=matpar->GetRhoIce(); 3004 3004 gravity=matpar->GetG(); … … 3068 3068 if(!IsOnBed() || !IsOnShelf()) return NULL; 3069 3069 inputs->GetParameterValue(&approximation,ApproximationEnum); 3070 this->parameters->FindParam(&shelf_dampening, ShelfDampeningEnum);3070 this->parameters->FindParam(&shelf_dampening,DiagnosticShelfDampeningEnum); 3071 3071 if(approximation!=StokesApproximationEnum && approximation!=MacAyealStokesApproximationEnum && approximation!=PattynStokesApproximationEnum) return NULL; 3072 3072 ElementVector* pe=new ElementVector(nodes,NUMVERTICES,this->parameters,StokesApproximationEnum); … … 4194 4194 4195 4195 /*Recondition pressure: */ 4196 this->parameters->FindParam(&stokesreconditioning, StokesreconditioningEnum);4196 this->parameters->FindParam(&stokesreconditioning,DiagnosticStokesreconditioningEnum); 4197 4197 4198 4198 /*Ok, we have vx vy vz and P in values, fill in vx vy vz P arrays: */ … … 5563 5563 penta->GetDofList(&doflistm,MacAyealApproximationEnum,GsetEnum); 5564 5564 GetDofList(&doflists,StokesApproximationEnum,GsetEnum); 5565 this->parameters->FindParam(&stokesreconditioning, StokesreconditioningEnum);5565 this->parameters->FindParam(&stokesreconditioning,DiagnosticStokesreconditioningEnum); 5566 5566 5567 5567 /*Get node data: */ … … 5731 5731 GetDofList(&doflistp,PattynApproximationEnum,GsetEnum); 5732 5732 GetDofList(&doflists,StokesApproximationEnum,GsetEnum); 5733 this->parameters->FindParam(&stokesreconditioning, StokesreconditioningEnum);5733 this->parameters->FindParam(&stokesreconditioning,DiagnosticStokesreconditioningEnum); 5734 5734 5735 5735 /*Get node data: */ … … 6028 6028 6029 6029 /*Recondition pressure and compute vel: */ 6030 this->parameters->FindParam(&stokesreconditioning, StokesreconditioningEnum);6030 this->parameters->FindParam(&stokesreconditioning,DiagnosticStokesreconditioningEnum); 6031 6031 for(i=0;i<NUMVERTICES;i++) pressure[i]=pressure[i]*stokesreconditioning; 6032 6032 for(i=0;i<NUMVERTICES;i++) vel[i]=pow( pow(vx[i],2.0) + pow(vy[i],2.0) + pow(vz[i],2.0) , 0.5); -
issm/trunk/src/c/objects/Elements/Tria.cpp
r9650 r9679 718 718 Input* vxold_input=inputs->GetInput(VxPicardEnum); _assert_(vxold_input); 719 719 Input* vyold_input=inputs->GetInput(VyPicardEnum); _assert_(vyold_input); 720 this->parameters->FindParam(&viscosity_overshoot, ViscosityOvershootEnum);720 this->parameters->FindParam(&viscosity_overshoot,DiagnosticViscosityOvershootEnum); 721 721 722 722 /* Start looping on the number of gaussian points: */ -
issm/trunk/src/c/objects/Loads/Icefront.cpp
r9513 r9679 64 64 segment_width=6; 65 65 } 66 _assert_(iomodel->Data( PressureloadEnum));67 element=(int)(*(iomodel->Data( PressureloadEnum)+segment_width*i+segment_width-2)-1); //element is in the penultimate column (node1 node2 ... elem fill)66 _assert_(iomodel->Data(DiagnosticIcefrontEnum)); 67 element=(int)(*(iomodel->Data(DiagnosticIcefrontEnum)+segment_width*i+segment_width-2)-1); //element is in the penultimate column (node1 node2 ... elem fill) 68 68 69 69 /*Build ids for hook constructors: */ 70 icefront_eid=(int) *(iomodel->Data( PressureloadEnum)+segment_width*i+segment_width-2); //matlab indexing70 icefront_eid=(int) *(iomodel->Data(DiagnosticIcefrontEnum)+segment_width*i+segment_width-2); //matlab indexing 71 71 icefront_mparid=numberofelements+1; //matlab indexing 72 72 73 73 if (in_icefront_type==MacAyeal2dIceFrontEnum || in_icefront_type==MacAyeal3dIceFrontEnum){ 74 icefront_node_ids[0]=iomodel->nodecounter+(int)*(iomodel->Data( PressureloadEnum)+segment_width*i+0);75 icefront_node_ids[1]=iomodel->nodecounter+(int)*(iomodel->Data( PressureloadEnum)+segment_width*i+1);74 icefront_node_ids[0]=iomodel->nodecounter+(int)*(iomodel->Data(DiagnosticIcefrontEnum)+segment_width*i+0); 75 icefront_node_ids[1]=iomodel->nodecounter+(int)*(iomodel->Data(DiagnosticIcefrontEnum)+segment_width*i+1); 76 76 } 77 77 else if (in_icefront_type==PattynIceFrontEnum || in_icefront_type==StokesIceFrontEnum){ 78 icefront_node_ids[0]=iomodel->nodecounter+(int)*(iomodel->Data( PressureloadEnum)+segment_width*i+0);79 icefront_node_ids[1]=iomodel->nodecounter+(int)*(iomodel->Data( PressureloadEnum)+segment_width*i+1);80 icefront_node_ids[2]=iomodel->nodecounter+(int)*(iomodel->Data( PressureloadEnum)+segment_width*i+2);81 icefront_node_ids[3]=iomodel->nodecounter+(int)*(iomodel->Data( PressureloadEnum)+segment_width*i+3);78 icefront_node_ids[0]=iomodel->nodecounter+(int)*(iomodel->Data(DiagnosticIcefrontEnum)+segment_width*i+0); 79 icefront_node_ids[1]=iomodel->nodecounter+(int)*(iomodel->Data(DiagnosticIcefrontEnum)+segment_width*i+1); 80 icefront_node_ids[2]=iomodel->nodecounter+(int)*(iomodel->Data(DiagnosticIcefrontEnum)+segment_width*i+2); 81 icefront_node_ids[3]=iomodel->nodecounter+(int)*(iomodel->Data(DiagnosticIcefrontEnum)+segment_width*i+3); 82 82 } 83 83 else _error_("in_icefront_type %s not supported yet!",EnumToStringx(in_icefront_type)); … … 89 89 90 90 /*Fill*/ 91 icefront_fill=(int)iomodel->Data( PressureloadEnum)[segment_width*i+segment_width-1];91 icefront_fill=(int)iomodel->Data(DiagnosticIcefrontEnum)[segment_width*i+segment_width-1]; 92 92 93 93 /*Ok, we have everything to build the object: */ -
issm/trunk/src/c/objects/Loads/Pengrid.cpp
r9632 r9679 548 548 549 549 /*Retrieve all inputs and parameters*/ 550 parameters->FindParam(&penalty_offset, PenaltyOffsetEnum);550 parameters->FindParam(&penalty_offset,DiagnosticPenaltyFactorEnum); 551 551 penta->GetParameterValue(&slope[0],node,BedSlopeXEnum); 552 552 penta->GetParameterValue(&slope[1],node,BedSlopeYEnum); -
issm/trunk/src/c/objects/Loads/Penpair.cpp
r9642 r9679 314 314 315 315 /*recover parameters: */ 316 parameters->FindParam(&penalty_offset, PenaltyOffsetEnum);316 parameters->FindParam(&penalty_offset,DiagnosticPenaltyFactorEnum); 317 317 318 318 //Create elementary matrix: add penalty to … … 341 341 342 342 /*recover parameters: */ 343 parameters->FindParam(&penalty_offset, PenaltyOffsetEnum);343 parameters->FindParam(&penalty_offset,DiagnosticPenaltyFactorEnum); 344 344 345 345 //Create elementary matrix: add penalty to -
issm/trunk/src/c/objects/Loads/Riftfront.cpp
r9641 r9679 57 57 /*Fetch parameters: */ 58 58 iomodel->Constant(&numberofelements,NumberOfElementsEnum); 59 iomodel->Constant(&penalty_lock, PenaltyLockEnum);59 iomodel->Constant(&penalty_lock,DiagnosticRiftPenaltyLockEnum); 60 60 61 61 /*Ok, retrieve all the data needed to add a penalty between the two nodes: */ … … 523 523 524 524 /*Get some parameters: */ 525 this->parameters->FindParam(&penalty_offset, PenaltyOffsetEnum);525 this->parameters->FindParam(&penalty_offset,DiagnosticPenaltyFactorEnum); 526 526 this->inputs->GetParameterValue(&friction,FrictionEnum); 527 527 tria1->GetParameterValue(&h[0],nodes[0],ThicknessEnum); -
issm/trunk/src/c/solutions/convergence.cpp
r9597 r9679 38 38 39 39 /*get convergence options*/ 40 parameters->FindParam(&eps_res, EpsResEnum);41 parameters->FindParam(&eps_rel, EpsRelEnum);42 parameters->FindParam(&eps_abs, EpsAbsEnum);40 parameters->FindParam(&eps_res,DiagnosticRestolEnum); 41 parameters->FindParam(&eps_rel,DiagnosticReltolEnum); 42 parameters->FindParam(&eps_abs,DiagnosticAbstolEnum); 43 43 parameters->FindParam(&yts,ConstantsYtsEnum); 44 44 -
issm/trunk/src/c/solutions/diagnostic_core.cpp
r9661 r9679 24 24 bool control_analysis; 25 25 int solution_type; 26 int numoutputs = 0; 27 int *requested_outputs = NULL; 26 28 27 29 /* recover parameters:*/ … … 87 89 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,PressureEnum); 88 90 if(dim==3) InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,VzEnum); 89 RequestedOutputsx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters); 91 femmodel->parameters->FindParam(&numoutputs,DiagnosticNumRequestedOutputsEnum); 92 if(numoutputs) femmodel->parameters->FindParam(&requested_outputs,&numoutputs,DiagnosticRequestedOutputsEnum); 93 RequestedOutputsx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,requested_outputs,numoutputs); 90 94 } 91 95 96 /*Free ressources:*/ 97 xfree((void**)&requested_outputs); 92 98 } -
issm/trunk/src/c/solutions/steadystate_core.cpp
r9677 r9679 22 22 int maxiter; 23 23 bool control_analysis; 24 int numoutputs = 0; 25 int *requested_outputs = NULL; 24 26 25 27 /* recover parameters:*/ … … 69 71 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,TemperatureEnum); 70 72 InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,BasalforcingsMeltingRateEnum); 71 RequestedOutputsx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters); 73 femmodel->parameters->FindParam(&numoutputs,SteadystateNumRequestedOutputsEnum); 74 if(numoutputs) femmodel->parameters->FindParam(&requested_outputs,&numoutputs,SteadystateRequestedOutputsEnum); 75 RequestedOutputsx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,requested_outputs,numoutputs); 72 76 } 73 77 78 /*Free ressources:*/ 79 xfree((void**)&requested_outputs); 74 80 } -
issm/trunk/src/c/solvers/solver_nonlinear.cpp
r9285 r9679 32 32 33 33 /*Recover parameters: */ 34 femmodel->parameters->FindParam(&min_mechanical_constraints, MinMechanicalConstraintsEnum);35 femmodel->parameters->FindParam(&max_nonlinear_iterations, MaxNonlinearIterationsEnum);34 femmodel->parameters->FindParam(&min_mechanical_constraints,DiagnosticRiftPenaltyThresholdEnum); 35 femmodel->parameters->FindParam(&max_nonlinear_iterations,DiagnosticMaxiterEnum); 36 36 femmodel->parameters->FindParam(&configuration_type,ConfigurationTypeEnum); 37 37 UpdateConstraintsx(femmodel->nodes,femmodel->constraints,femmodel->parameters); -
issm/trunk/src/c/solvers/solver_stokescoupling_nonlinear.cpp
r9271 r9679 33 33 34 34 /*Recover parameters: */ 35 femmodel->parameters->FindParam(&min_mechanical_constraints, MinMechanicalConstraintsEnum);36 femmodel->parameters->FindParam(&max_nonlinear_iterations, MaxNonlinearIterationsEnum);35 femmodel->parameters->FindParam(&min_mechanical_constraints,DiagnosticRiftPenaltyThresholdEnum); 36 femmodel->parameters->FindParam(&max_nonlinear_iterations,DiagnosticMaxiterEnum); 37 37 UpdateConstraintsx(femmodel->nodes,femmodel->constraints,femmodel->parameters); 38 38 -
issm/trunk/src/m/classes/model/model.m
r9678 r9679 35 35 steadystate = modelfield('default',0,'marshall',true); 36 36 transient = modelfield('default',0,'marshall',true); 37 diagnostic = modelfield('default',0,'marshall',true); 37 38 38 39 %FIXME: all other fields should belong to other classes … … 62 63 hemisphere = modelfield('default',NaN,'marshall',false); 63 64 64 %Stokes65 stokesreconditioning = modelfield('default',0,'marshall',true,'format','Double');66 shelf_dampening = modelfield('default',0,'marshall',true,'format','Integer');67 68 65 %Penalties 69 penalties = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',3);70 penalty_offset = modelfield('default',0,'marshall',true,'format','Double');71 penalty_lock = modelfield('default',0,'marshall',true,'format','Integer');72 66 segments = modelfield('default',NaN,'marshall',false); 73 67 segmentmarkers = modelfield('default',NaN,'marshall',false); … … 93 87 %Materials parameters 94 88 95 min_mechanical_constraints = modelfield('default',0,'marshall',true,'format','Integer');96 97 89 %Geometrical parameters 98 90 surface = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1); … … 104 96 %Boundary conditions 105 97 nodeonboundary = modelfield('default',NaN,'marshall',false); 106 pressureload = modelfield('default',NaN,'marshall',true,'preprocess','marshallpressureload','format','DoubleMat','mattype',3);107 spcvx = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);108 spcvy = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);109 spcvz = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);110 diagnostic_ref = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);111 98 112 99 %Observations … … 118 105 119 106 %Statics parameters 120 eps_res = modelfield('default',0,'marshall',true,'format','Double');121 eps_rel = modelfield('default',0,'marshall',true,'format','Double');122 eps_abs = modelfield('default',0,'marshall',true,'format','Double');123 max_nonlinear_iterations = modelfield('default',0,'marshall',true,'format','Integer');124 107 connectivity = modelfield('default',0,'marshall',true,'format','Integer'); 125 viscosity_overshoot = modelfield('default',0,'marshall',true,'format','Double');126 108 127 109 %Control … … 140 122 num_control_type = modelfield('default',0,'marshall',true,'format','Integer'); 141 123 num_cm_responses = modelfield('default',0,'marshall',true,'format','Integer'); 142 %Output 143 requested_outputs = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',3); 124 144 125 %Results fields 145 126 output_frequency = modelfield('default',0,'marshall',true,'format','Integer'); … … 507 488 md.steadystate=steadystate; 508 489 md.transient=transient; 490 md.diagnostic=diagnostic; 509 491 510 492 %Solver parameters 511 493 512 %mechanical residue convergence criterion norm(K(uold)uold - F)/norm(F)513 md.eps_res=10^-4; %from test233 in nightly runs514 515 %relative convergence criterion ((vel(n-1)-vel(n))/vel(n))516 md.eps_rel=0.01;517 518 %absolute convergence criterion (max(vel(n-1)-vel(n)) (m/year)519 md.eps_abs=10;520 521 %maximum of non-linear iterations.522 md.max_nonlinear_iterations=100;523 524 494 %the connectivity is the avergaded number of nodes linked to a 525 495 %given node through an edge. This connectivity is used to initially … … 529 499 md.connectivity=25; 530 500 531 %coefficient to update the viscosity between each iteration of532 %a diagnostic according to the following formula533 %viscosity(n)=viscosity(n)+viscosity_overshoot(viscosity(n)-viscosity(n-1))534 md.viscosity_overshoot=0;535 501 536 502 %parameter used to print temporary results (convergence criterion, … … 538 504 md.verbose=verbose('solution',true,'qmu',true,'control',true); 539 505 540 %Stokes541 md.stokesreconditioning=10^13;542 md.shelf_dampening=0;543 544 %Penalties545 546 %the penalty offset is the power used to compute the value547 %of the penalty as follows548 %kappa=max(stiffness matrix)*10^penalty_offset549 md.penalty_offset=3;550 551 %in some solutions, it might be needed to stop a run when only552 %a few constraints remain unstable. For thermal computation, this553 %parameter is often used.554 md.penalty_lock=10;555 556 506 %minimum thickness to avoid stiffness singularity, used in 557 507 %the parameter file 558 508 md.minh=1; 559 560 %in some cases, it might be needed to stop a run when only561 %a few constraints remain unstable. For thermal computation, this562 %parameter is often used.563 md.min_mechanical_constraints=0;564 509 565 510 %Control … … 624 569 if(strcmp(index1.subs,'res')), displayresults(md);return; end 625 570 if(strcmp(index1.subs,'obs')), displayobservations(md);return; end 626 if(strcmp(index1.subs,'diagnostic')), displaydiagnostic(md);return; end627 571 if(strcmp(index1.subs,'control')), displaycontrol(md);return; end 628 572 if(strcmp(index1.subs,'parallel')), displayparallel(md);return; end -
issm/trunk/src/m/model/BasinConstrain.m
r9641 r9679 48 48 49 49 %all elements outside the constraint domain are equivalent to water. all nodes outside are spc'd. 50 md. spcvx(vertexnotondomain)=md.vx_obs(vertexnotondomain);51 md. spcvy(vertexnotondomain)=md.vy_obs(vertexnotondomain);50 md.diagnostic.spcvx(vertexnotondomain)=md.vx_obs(vertexnotondomain); 51 md.diagnostic.spcvy(vertexnotondomain)=md.vy_obs(vertexnotondomain); 52 52 md.mask.elementonwater(elementnotondomain)=1; 53 53 … … 56 56 numpos=unique(md.elements(pos,:)); 57 57 nodes=setdiff(1:1:md.numberofnodes,numpos); 58 md. spcvx(nodes)=md.vx_obs(nodes);59 md. spcvy(nodes)=md.vy_obs(nodes);58 md.diagnostic.spcvx(nodes)=md.vx_obs(nodes); 59 md.diagnostic.spcvy(nodes)=md.vy_obs(nodes); 60 60 61 61 %make sure icefronts that are completely spc'd are taken out: 62 free_segments=find((~isnan(md. spcvx(md.pressureload(:,1:2))) + ~isnan(md.spcvy(md.pressureload(:,1:2))))~=2);63 md. pressureload=md.pressureload(free_segments,:);62 free_segments=find((~isnan(md.diagnostic.spcvx(md.diagnostic.icefront(:,1:2))) + ~isnan(md.diagnostic.spcvy(md.diagnostic.icefront(:,1:2))))~=2); 63 md.diagnostic.icefront=md.diagnostic.icefront(free_segments,:); -
issm/trunk/src/m/model/BasinConstrainShelf.m
r9641 r9679 48 48 49 49 %all elements outside the constraint domain are equivalent to water. all nodes outside are spc'd. 50 md. spcvx(vertexnotondomain)=md.vx_obs(vertexnotondomain);51 md. spcvy(vertexnotondomain)=md.vy_obs(vertexnotondomain);50 md.diagnostic.spcvx(vertexnotondomain)=md.vx_obs(vertexnotondomain); 51 md.diagnostic.spcvy(vertexnotondomain)=md.vy_obs(vertexnotondomain); 52 52 md.mask.elementonwater(elementnotondomain)=1; 53 53 … … 56 56 numpos=unique(md.elements(pos,:)); 57 57 nodes=setdiff(1:1:md.numberofnodes,numpos); 58 md. spcvx(nodes)=md.vx_obs(nodes);59 md. spcvy(nodes)=md.vy_obs(nodes);58 md.diagnostic.spcvx(nodes)=md.vx_obs(nodes); 59 md.diagnostic.spcvy(nodes)=md.vy_obs(nodes); 60 60 61 61 … … 63 63 %we spc to the smoothed value, so that control methods don't go berserk trying to figure out what reaction force to apply for the spc to stand. 64 64 pos=find(isnan(md.vel_obs_raw)); 65 md. spcvx(pos)=md.vx_obs(pos);66 md. spcvy(pos)=md.vy_obs(pos);65 md.diagnostic.spcvx(pos)=md.vx_obs(pos); 66 md.diagnostic.spcvy(pos)=md.vy_obs(pos); 67 67 68 68 %iceshelves: any vertex on floating ice is spc'd 69 69 pos=find(md.mask.vertexongroundedice); 70 md. spcvx(pos)=md.vx_obs(pos);71 md. spcvy(pos)=md.vy_obs(pos);70 md.diagnostic.spcvx(pos)=md.vx_obs(pos); 71 md.diagnostic.spcvy(pos)=md.vy_obs(pos); 72 72 73 73 %make sure icefronts that are completely spc'd are taken out: 74 free_segments=find((~isnan(md. spcvx(md.pressureload(:,1:2))) + ~isnan(md.spcvy(md.pressureload(:,1:2))) )~=2);75 md. pressureload=md.pressureload(free_segments,:);74 free_segments=find((~isnan(md.diagnostic.spcvx(md.diagnostic.icefront(:,1:2))) + ~isnan(md.diagnostic.spcvy(md.diagnostic.icefront(:,1:2))) )~=2); 75 md.diagnostic.icefront=md.diagnostic.icefront(free_segments,:); -
issm/trunk/src/m/model/collapse.m
r9661 r9679 52 52 53 53 %boundary conditions 54 md. spcvx=project2d(md,md.spcvx,md.numlayers);55 md. spcvy=project2d(md,md.spcvy,md.numlayers);56 md. spcvz=project2d(md,md.spcvz,md.numlayers);54 md.diagnostic.spcvx=project2d(md,md.diagnostic.spcvx,md.numlayers); 55 md.diagnostic.spcvy=project2d(md,md.diagnostic.spcvy,md.numlayers); 56 md.diagnostic.spcvz=project2d(md,md.diagnostic.spcvz,md.numlayers); 57 57 md.prognostic.spcthickness=project2d(md,md.prognostic.spcthickness,md.numlayers); 58 58 md.thermal.spctemperature=project2d(md,md.thermal.spctemperature,md.numlayers); 59 59 60 60 %Extrusion of Neumann BC 61 if ~isnan(md. pressureload),62 numberofneumann2d=size(md. pressureload,1)/md.numlayers;63 md. pressureload=[md.pressureload(1:numberofneumann2d,1:2) md.pressureload(1:numberofneumann2d,5:6)]; %Add two columns on the first layer61 if ~isnan(md.diagnostic.icefront), 62 numberofneumann2d=size(md.diagnostic.icefront,1)/md.numlayers; 63 md.diagnostic.icefront=[md.diagnostic.icefront(1:numberofneumann2d,1:2) md.diagnostic.icefront(1:numberofneumann2d,5:6)]; %Add two columns on the first layer 64 64 end 65 65 -
issm/trunk/src/m/model/contourmassbalance.m
r9636 r9679 19 19 %Get segments enveloping contour 20 20 segments=contourenvelope(md,file); 21 %md. pressureload=segments; plotmodel(md,'data','pressureload','expdisp',file);21 %md.diagnostic.icefront=segments; plotmodel(md,'data','pressureload','expdisp',file); 22 22 23 23 %get flag list of elements and nodes inside the contour -
issm/trunk/src/m/model/display/displaybc.m
r9641 r9679 12 12 13 13 disp(sprintf('\n diagnostic:')); 14 fielddisplay(md,' spcvx','x-axis velocity constraint (NaN means no constraint)');15 fielddisplay(md,' spcvy','y-axis velocity constraint (NaN means no constraint)');16 fielddisplay(md,' spcvz','z-axis velocity constraint (NaN means no constraint)');14 fielddisplay(md,'diagnostic.spcvx','x-axis velocity constraint (NaN means no constraint)'); 15 fielddisplay(md,'diagnostic.spcvy','y-axis velocity constraint (NaN means no constraint)'); 16 fielddisplay(md,'diagnostic.spcvz','z-axis velocity constraint (NaN means no constraint)'); 17 17 fielddisplay(md,'pressureload','segments on ice front list (0:Air 1:Water 2:Ice)'); 18 18 -
issm/trunk/src/m/model/extrude.m
r9661 r9679 168 168 169 169 %boundary conditions 170 md. spcvx=project3d(md,'vector',md.spcvx,'type','node');171 md. spcvy=project3d(md,'vector',md.spcvy,'type','node');172 md. spcvz=project3d(md,'vector',md.spcvz,'type','node');170 md.diagnostic.spcvx=project3d(md,'vector',md.diagnostic.spcvx,'type','node'); 171 md.diagnostic.spcvy=project3d(md,'vector',md.diagnostic.spcvy,'type','node'); 172 md.diagnostic.spcvz=project3d(md,'vector',md.diagnostic.spcvz,'type','node'); 173 173 md.thermal.spctemperature=project3d(md,'vector',md.thermal.spctemperature,'type','node','layer',md.numlayers,'padding',NaN); 174 174 md.prognostic.spcthickness=project3d(md,'vector',md.prognostic.spcthickness,'type','node'); 175 md.diagnostic _ref=project3d(md,'vector',md.diagnostic_ref,'type','node');175 md.diagnostic.referential=project3d(md,'vector',md.diagnostic.referential,'type','node'); 176 176 177 177 %in 3d, pressureload: [node1 node2 node3 node4 element] 178 pressureload_layer1=[md. pressureload(:,1:2) md.pressureload(:,2)+md.numberofnodes2d md.pressureload(:,1)+md.numberofnodes2d md.pressureload(:,3:4)]; %Add two columns on the first layer178 pressureload_layer1=[md.diagnostic.icefront(:,1:2) md.diagnostic.icefront(:,2)+md.numberofnodes2d md.diagnostic.icefront(:,1)+md.numberofnodes2d md.diagnostic.icefront(:,3:4)]; %Add two columns on the first layer 179 179 pressureload=[]; 180 180 for i=1:numlayers-1, 181 181 pressureload=[pressureload ;pressureload_layer1(:,1:4)+(i-1)*md.numberofnodes2d pressureload_layer1(:,5)+(i-1)*md.numberofelements2d pressureload_layer1(:,6)]; 182 182 end 183 md. pressureload=pressureload;183 md.diagnostic.icefront=pressureload; 184 184 185 185 %connectivity -
issm/trunk/src/m/model/ismodelselfconsistent.m
r9678 r9679 71 71 %PRESSURELOAD{{{1 72 72 if (md.dim==2), 73 fields={' pressureload'};73 fields={'diagnostic.icefront'}; 74 74 checksize(md,fields,[NaN 4]); 75 75 elseif md.dim==3, 76 fields={' pressureload'};76 fields={'diagnostic.icefront'}; 77 77 checksize(md,fields,[NaN 6]); 78 78 else 79 79 message('dim should be either 2 3'); 80 80 end 81 checkvalues(md,{' pressureload(:,end)'},[0 1 2]);81 checkvalues(md,{'diagnostic.icefront(:,end)'},[0 1 2]); 82 82 %}}} 83 83 %NO NAN {{{1 84 84 fields={'numberofelements','numberofnodes','x','y','z','friction.coefficient','friction.p','friction.q',... 85 85 'materials.rho_ice','materials.rho_water','materials.rheology_B','mask.elementonfloatingice','surface','thickness','bed','constants.g','settings.lowmem','nsteps','maxiter',... 86 ' eps_res','max_nonlinear_iterations','materials.rheology_n','nodeonbed','nodeonsurface','elementonbed','elementonsurface','elementconnectivity'};86 'diagnostic.restol','diagnostic.maxiter','materials.rheology_n','nodeonbed','nodeonsurface','elementonbed','elementonsurface','elementconnectivity'}; 87 87 checknan(md,fields); 88 88 %}}}} 89 89 %FIELDS >= 0 {{{1 90 90 fields={'numberofelements','numberofnodes','elements','friction.coefficient','friction.p','friction.q',... 91 'materials.rho_ice','materials.rho_water','materials.rheology_B','mask.elementonfloatingice','thickness','constants.g',' eps_res','max_nonlinear_iterations','eps_rel','eps_abs','nsteps','maxiter',...92 ' settings.lowmem','materials.rheology_n','nodeonbed','nodeonsurface','elementonbed','elementonsurface'};91 'materials.rho_ice','materials.rho_water','materials.rheology_B','mask.elementonfloatingice','thickness','constants.g','diagnostic.restol','diagnostic.maxiter','diagnostic.reltol',... 92 'diagnostic.abstol','nsteps','maxiter','settings.lowmem','materials.rheology_n','nodeonbed','nodeonsurface','elementonbed','elementonsurface'}; 93 93 checkgreater(md,fields,0); 94 94 %}}} 95 95 %FIELDS > 0 {{{1 96 96 fields={'numberofelements','numberofnodes','elements','friction.p',... 97 'materials.rho_ice','materials.rho_water','materials.rheology_B','thickness','constants.g',' max_nonlinear_iterations','eps_res','eps_rel','eps_abs','maxiter'};97 'materials.rho_ice','materials.rho_water','materials.rheology_B','thickness','constants.g','diagnostic.maxiter','diagnostic.restol','diagnostic.reltol','diagnostic.abstol','maxiter'}; 98 98 checkgreaterstrict(md,fields,0); 99 99 %}}} … … 107 107 %}}} 108 108 %OTHER SIZES {{{1 109 fields={'diagnostic _ref'};109 fields={'diagnostic.referential'}; 110 110 checksize(md,fields,[md.numberofnodes 6]); 111 if ~isempty(md. requested_outputs),112 if(size(md. requested_outputs,2)~=1),111 if ~isempty(md.diagnostic.requested_outputs), 112 if(size(md.diagnostic.requested_outputs,2)~=1), 113 113 message(['model ' md.miscellaneous.name ' requested outputs should be a column vector']); 114 114 end … … 326 326 327 327 %eps: 328 if isnan(md. eps_rel),329 message(['model not consistent: for a steadystate computation, eps_rel (relative convergence criterion) must be defined!']);328 if isnan(md.diagnostic.reltol), 329 message(['model not consistent: for a steadystate computation, diagnostic.reltol (relative convergence criterion) must be defined!']); 330 330 end 331 331 end … … 370 370 % {{{2 371 371 %SINGULAR 372 if ~any((~isnan(md. spcvx)+~isnan(md.spcvy))==2),372 if ~any((~isnan(md.diagnostic.spcvx)+~isnan(md.diagnostic.spcvy))==2), 373 373 message(['model not consistent: model ' md.miscellaneous.name ' is not well posed (singular). You need at least one node with fixed velocity!']) 374 374 end … … 376 376 %ROTATED SPC 377 377 %CHECK THAT EACH LINES CONTAINS ONLY NAN VALUES OR NO NAN VALUES 378 if any(sum(isnan(md.diagnostic _ref),2)~=0 & sum(isnan(md.diagnostic_ref),2)~=6),379 message(['model not consistent: model ' md.miscellaneous.name ' has problem with rotated spc. Each line of diagnostic _refshould contain either only NaN values or no NaN values']);378 if any(sum(isnan(md.diagnostic.referential),2)~=0 & sum(isnan(md.diagnostic.referential),2)~=6), 379 message(['model not consistent: model ' md.miscellaneous.name ' has problem with rotated spc. Each line of diagnostic.referential should contain either only NaN values or no NaN values']); 380 380 end 381 381 %CHECK THAT THE TWO VECTORS PROVIDED ARE ORTHOGONAL 382 if any(sum(isnan(md.diagnostic _ref),2)==0),383 pos=find(sum(isnan(md.diagnostic _ref),2)==0);384 if any(dot(md.diagnostic _ref(pos,1:3),md.diagnostic_ref(pos,4:6))),385 dot(md.diagnostic _ref(pos,1:3),md.diagnostic_ref(pos,4:6))386 message(['model not consistent: model ' md.miscellaneous.name ' has problem with rotated spc. Vectors in diagnostic _ref(colums 1 to 3 and 4 to 6) must be orthogonal']);382 if any(sum(isnan(md.diagnostic.referential),2)==0), 383 pos=find(sum(isnan(md.diagnostic.referential),2)==0); 384 if any(dot(md.diagnostic.referential(pos,1:3),md.diagnostic.referential(pos,4:6))), 385 dot(md.diagnostic.referential(pos,1:3),md.diagnostic.referential(pos,4:6)) 386 message(['model not consistent: model ' md.miscellaneous.name ' has problem with rotated spc. Vectors in diagnostic.referential (colums 1 to 3 and 4 to 6) must be orthogonal']); 387 387 end 388 388 … … 390 390 %CHECK THAT ROTATION IS IN THE (X,Y) PLANE FOR 2D MODELS 391 391 if md.dim==2, 392 pos=find(sum(isnan(md.diagnostic _ref),2)==0 & md.flowequation.vertex_equation==2);393 if any(md.diagnostic _ref(pos,3:5)~=0);392 pos=find(sum(isnan(md.diagnostic.referential),2)==0 & md.flowequation.vertex_equation==2); 393 if any(md.diagnostic.referential(pos,3:5)~=0); 394 394 message(['model not consistent: model ' md.miscellaneous.name ' has problem with rotated spc. The rotation should be in the (x,y) plane for 2D diagnostic models (nodeonmacayeal)']); 395 395 end -
issm/trunk/src/m/model/marshall.m
r9641 r9679 334 334 function out=marshallverbose(in) 335 335 out = VerboseToBinary(in); 336 function out=marshall pressureload(in)336 function out=marshallicefront(in) 337 337 out=in; 338 338 pos=find(in(:,end)==0); out(pos,end)=AirEnum; -
issm/trunk/src/m/model/modelextract.m
r9642 r9679 216 216 nodestoflag1=intersect(orphans_node,pos_node); 217 217 nodestoflag2=Pnode(nodestoflag1); 218 if numel(md1. spcvx)>1 & numel(md1.spcvy)>2 & numel(md1.spcvz)>2,218 if numel(md1.diagnostic.spcvx)>1 & numel(md1.diagnostic.spcvy)>2 & numel(md1.diagnostic.spcvz)>2, 219 219 if numel(md1.vx_obs)>1 & numel(md1.vy_obs)>1 220 md2. spcvx(nodestoflag2)=md2.vx_obs(nodestoflag2);221 md2. spcvy(nodestoflag2)=md2.vy_obs(nodestoflag2);220 md2.diagnostic.spcvx(nodestoflag2)=md2.vx_obs(nodestoflag2); 221 md2.diagnostic.spcvy(nodestoflag2)=md2.vy_obs(nodestoflag2); 222 222 else 223 md2. spcvx(nodestoflag2)=NaN;224 md2. spcvy(nodestoflag2)=NaN;223 md2.diagnostic.spcvx(nodestoflag2)=NaN; 224 md2.diagnostic.spcvy(nodestoflag2)=NaN; 225 225 disp(' ') 226 226 disp('!! modelextract warning: spc values should be checked !!') … … 228 228 end 229 229 %put 0 for vz 230 md2. spcvz(nodestoflag2)=0;230 md2.diagnostic.spcvz(nodestoflag2)=0; 231 231 end 232 232 if ~isnan(md1.thermal.spctemperature), -
issm/trunk/src/m/model/plot/plot_BC.m
r8823 r9679 7 7 8 8 %plot dirichlets 9 h1=plot(md.x(find(~isnan(md. spcvx))),md.y(find(~isnan(md.spcvx))),'ro','MarkerSize',14,'MarkerFaceColor','r');10 h2=plot(md.x(find(~isnan(md. spcvy))),md.y(find(~isnan(md.spcvy))),'bo','MarkerSize',10,'MarkerFaceColor','b');11 h3=plot(md.x(find(~isnan(md. spcvz))),md.y(find(~isnan(md.spcvz))),'yo','MarkerSize',6 ,'MarkerFaceColor','y');9 h1=plot(md.x(find(~isnan(md.diagnostic.spcvx))),md.y(find(~isnan(md.diagnostic.spcvx))),'ro','MarkerSize',14,'MarkerFaceColor','r'); 10 h2=plot(md.x(find(~isnan(md.diagnostic.spcvy))),md.y(find(~isnan(md.diagnostic.spcvy))),'bo','MarkerSize',10,'MarkerFaceColor','b'); 11 h3=plot(md.x(find(~isnan(md.diagnostic.spcvz))),md.y(find(~isnan(md.diagnostic.spcvz))),'yo','MarkerSize',6 ,'MarkerFaceColor','y'); 12 12 13 13 %update legend -
issm/trunk/src/m/model/plot/plot_pressureload.m
r9464 r9679 12 12 %process mesh and data 13 13 [x y z elements is2d isplanet]=processmesh(md,[],options); 14 pressureload=md. pressureload;14 pressureload=md.diagnostic.icefront; 15 15 16 16 if (md.dim==2), -
issm/trunk/src/m/model/setflowequation.m
r9664 r9679 92 92 nodeonstokes=zeros(md.numberofnodes,1); 93 93 nodeonstokes(md.elements(find(stokesflag),:))=1; 94 fullspcnodes=double((~isnan(md. spcvx)+~isnan(md.spcvy)+~isnan(md.spcvz))==3 | (nodeonpattyn & nodeonstokes)); %find all the nodes on the boundary of the domain without icefront94 fullspcnodes=double((~isnan(md.diagnostic.spcvx)+~isnan(md.diagnostic.spcvy)+~isnan(md.diagnostic.spcvz))==3 | (nodeonpattyn & nodeonstokes)); %find all the nodes on the boundary of the domain without icefront 95 95 fullspcelems=double(sum(fullspcnodes(md.elements),2)==6); %find all the nodes on the boundary of the domain without icefront 96 96 stokesflag(find(fullspcelems))=0; … … 120 120 121 121 %Now take care of the coupling between MacAyeal and Pattyn 122 md. penalties=[];122 md.diagnostic.vertex_pairing=[]; 123 123 nodeonmacayealpattyn=zeros(md.numberofnodes,1); 124 124 nodeonpattynstokes=zeros(md.numberofnodes,1); … … 136 136 penalties=[penalties; [bordernodes2d bordernodes2d+md.numberofnodes2d*(i)]]; 137 137 end 138 md. penalties=penalties;138 md.diagnostic.vertex_pairing=penalties; 139 139 end 140 140 elseif strcmpi(coupling_method,'tiling'), -
issm/trunk/src/m/solutions/convergence.m
r9597 r9679 6 6 %Get convergence options 7 7 yts=parameters.ConstantsYts; 8 eps_res=parameters.EpsRes;9 eps_rel=parameters.EpsRel;10 eps_abs=parameters.EpsAbs;8 restol=parameters.DiagnosticRestol; 9 reltol=parameters.DiagnosticReltol; 10 abstol=parameters.DiagnosticAbstol; 11 11 12 12 %initialization … … 25 25 error('convergence error message: mechanical equilibrium convergence criterion is NaN!'); 26 26 end 27 if (res<= eps_res),28 issmprintf(VerboseConvergence(),'%-60s%g%s%g%s',' mechanical equilibrium convergence criterion',res*100,' < ', eps_res*100,' %');27 if (res<=restol), 28 issmprintf(VerboseConvergence(),'%-60s%g%s%g%s',' mechanical equilibrium convergence criterion',res*100,' < ',restol*100,' %'); 29 29 converged=true; 30 30 else 31 issmprintf(VerboseConvergence(),'%-60s%g%s%g%s',' mechanical equilibrium convergence criterion',res*100,' > ', eps_res*100,' %');31 issmprintf(VerboseConvergence(),'%-60s%g%s%g%s',' mechanical equilibrium convergence criterion',res*100,' > ',restol*100,' %'); 32 32 converged=false; 33 33 end 34 34 35 35 %Relative criterion (optional) 36 if ((~isnan( eps_rel)) | (VerboseConvergence())),36 if ((~isnan(reltol)) | (VerboseConvergence())), 37 37 38 38 %compute ndu/nu … … 45 45 46 46 %print criterion 47 if ~isnan( eps_rel),47 if ~isnan(reltol), 48 48 if nu, %avoid "dividing by zero" warning 49 if (ndu/nu<= eps_rel),50 issmprintf(VerboseConvergence(),'%-60s%g%s%g%s',' relative convergence criterion: norm(du)/norm(u)',ndu/nu*100,' < ', eps_rel*100,' %');49 if (ndu/nu<=reltol), 50 issmprintf(VerboseConvergence(),'%-60s%g%s%g%s',' relative convergence criterion: norm(du)/norm(u)',ndu/nu*100,' < ',reltol*100,' %'); 51 51 else 52 issmprintf(VerboseConvergence(),'%-60s%g%s%g%s',' relative convergence criterion: norm(du)/norm(u)',ndu/nu*100,' > ', eps_rel*100,' %');52 issmprintf(VerboseConvergence(),'%-60s%g%s%g%s',' relative convergence criterion: norm(du)/norm(u)',ndu/nu*100,' > ',reltol*100,' %'); 53 53 converged=false; 54 54 end … … 65 65 66 66 %Absolute criterion (optional) 67 if ((~isnan( eps_abs)) | VerboseConvergence()),67 if ((~isnan(abstol)) | VerboseConvergence()), 68 68 69 69 %compute max(du) … … 75 75 76 76 %print criterion 77 if ~isnan( eps_abs),78 if (nduinf<= eps_abs),79 issmprintf(VerboseConvergence(),'%-60s%g%s%g%s',' absolute convergence criterion: max(du)',nduinf,' < ', eps_abs,' m/yr');77 if ~isnan(abstol), 78 if (nduinf<=abstol), 79 issmprintf(VerboseConvergence(),'%-60s%g%s%g%s',' absolute convergence criterion: max(du)',nduinf,' < ',abstol,' m/yr'); 80 80 else 81 issmprintf(VerboseConvergence(),'%-60s%g%s%g%s',' absolute convergence criterion: max(du)',nduinf,' > ', eps_abs,' m/yr');81 issmprintf(VerboseConvergence(),'%-60s%g%s%g%s',' absolute convergence criterion: max(du)',nduinf,' > ',abstol,' m/yr'); 82 82 converged=false; 83 83 end -
issm/trunk/src/m/solvers/solver_nonlinear.m
r9328 r9679 6 6 7 7 %Branch on partitioning schema requested 8 min_mechanical_constraints=femmodel.parameters.MinMechanicalConstraints;9 max _nonlinear_iterations=femmodel.parameters.MaxNonlinearIterations;8 rift_penalty_threshold=femmodel.parameters.DiagnosticRiftPenaltyThreshold; 9 maxiter=femmodel.parameters.DiagnosticMaxiter; 10 10 configuration_type=femmodel.parameters.ConfigurationType; 11 11 [femmodel.nodes]=UpdateConstraints(femmodel.nodes,femmodel.constraints,femmodel.parameters); … … 51 51 if ~constraints_converged, 52 52 if converged, 53 if num_unstable_constraints <= min_mechanical_constraints,53 if num_unstable_constraints <= rift_penalty_threshold, 54 54 converged=1; 55 55 else … … 62 62 count=count+1; 63 63 if(converged==1) break; end 64 if(count>max _nonlinear_iterations),65 issmprintf(true,'%s%i%s',' maximum number of iterations ',max _nonlinear_iterations,' exceeded');64 if(count>maxiter), 65 issmprintf(true,'%s%i%s',' maximum number of iterations ',maxiter,' exceeded'); 66 66 break; 67 67 end -
issm/trunk/src/m/utils/BC/SetIceSheetBC.m
r9646 r9679 9 9 %node on Dirichlet 10 10 pos=find(md.nodeonboundary); 11 md. spcvx=NaN*ones(md.numberofnodes,1);12 md. spcvy=NaN*ones(md.numberofnodes,1);13 md. spcvz=NaN*ones(md.numberofnodes,1);14 md. spcvx(pos)=0;15 md. spcvy(pos)=0;16 md. spcvz(pos)=0;17 md.diagnostic _ref=NaN*ones(md.numberofnodes,6);11 md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1); 12 md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1); 13 md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1); 14 md.diagnostic.spcvx(pos)=0; 15 md.diagnostic.spcvy(pos)=0; 16 md.diagnostic.spcvz(pos)=0; 17 md.diagnostic.referential=NaN*ones(md.numberofnodes,6); 18 18 19 19 %Dirichlet Values 20 20 if (length(md.vx_obs)==md.numberofnodes & length(md.vy_obs)==md.numberofnodes) 21 21 disp(' boundary conditions for diagnostic model: spc set as observed velocities'); 22 md. spcvx(pos)=md.vx_obs(pos);23 md. spcvy(pos)=md.vy_obs(pos);22 md.diagnostic.spcvx(pos)=md.vx_obs(pos); 23 md.diagnostic.spcvy(pos)=md.vy_obs(pos); 24 24 else 25 25 disp(' boundary conditions for diagnostic model: spc set as zero'); … … 28 28 %segment on neumann (Ice Front) -> none 29 29 if (md.dim==2) 30 md. pressureload=zeros(0,4);30 md.diagnostic.icefront=zeros(0,4); 31 31 else 32 md. pressureload=zeros(0,6);32 md.diagnostic.icefront=zeros(0,6); 33 33 end 34 34 -
issm/trunk/src/m/utils/BC/SetIceShelfBC.m
r9646 r9679 28 28 end 29 29 pos=find(md.nodeonboundary & ~nodeonicefront); 30 md. spcvx=NaN*ones(md.numberofnodes,1);31 md. spcvy=NaN*ones(md.numberofnodes,1);32 md. spcvz=NaN*ones(md.numberofnodes,1);33 md. spcvx(pos)=0;34 md. spcvy(pos)=0;35 md. spcvz(pos)=0;36 md.diagnostic _ref=NaN*ones(md.numberofnodes,6);30 md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1); 31 md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1); 32 md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1); 33 md.diagnostic.spcvx(pos)=0; 34 md.diagnostic.spcvy(pos)=0; 35 md.diagnostic.spcvz(pos)=0; 36 md.diagnostic.referential=NaN*ones(md.numberofnodes,6); 37 37 38 38 %Dirichlet Values 39 39 if (length(md.vx_obs)==md.numberofnodes & length(md.vy_obs)==md.numberofnodes) 40 40 disp(' boundary conditions for diagnostic model: spc set as observed velocities'); 41 md. spcvx(pos)=md.vx_obs(pos);42 md. spcvy(pos)=md.vy_obs(pos);41 md.diagnostic.spcvx(pos)=md.vx_obs(pos); 42 md.diagnostic.spcvy(pos)=md.vy_obs(pos); 43 43 else 44 44 disp(' boundary conditions for diagnostic model: spc set as zero'); … … 62 62 63 63 %plug onto model 64 md. pressureload=pressureload;64 md.diagnostic.icefront=pressureload; 65 65 66 66 %Create zeros basalforcings.melting_rate, surfaceforcings.ablation_rate, surfaceforcings.accumulation_rate -
issm/trunk/src/m/utils/BC/SetMarineIceSheetBC.m
r9646 r9679 35 35 warning('SetMarineIceSheetBC warning: ice front all around the glacier, no dirichlet found. Dirichlet must be added manually') 36 36 end 37 md. spcvx=NaN*ones(md.numberofnodes,1);38 md. spcvy=NaN*ones(md.numberofnodes,1);39 md. spcvz=NaN*ones(md.numberofnodes,1);40 md. spcvx(pos)=0;41 md. spcvy(pos)=0;42 md. spcvz(pos)=0;43 md.diagnostic _ref=NaN*ones(md.numberofnodes,6);37 md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1); 38 md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1); 39 md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1); 40 md.diagnostic.spcvx(pos)=0; 41 md.diagnostic.spcvy(pos)=0; 42 md.diagnostic.spcvz(pos)=0; 43 md.diagnostic.referential=NaN*ones(md.numberofnodes,6); 44 44 45 45 %Dirichlet Values 46 46 if (length(md.vx_obs)==md.numberofnodes & length(md.vy_obs)==md.numberofnodes) 47 47 disp(' boundary conditions for diagnostic model: spc set as observed velocities'); 48 md. spcvx(pos)=md.vx_obs(pos);49 md. spcvy(pos)=md.vy_obs(pos);48 md.diagnostic.spcvx(pos)=md.vx_obs(pos); 49 md.diagnostic.spcvy(pos)=md.vy_obs(pos); 50 50 else 51 51 disp(' boundary conditions for diagnostic model: spc set as zero'); … … 72 72 73 73 %plug onto model 74 md. pressureload=pressureload;74 md.diagnostic.icefront=pressureload; 75 75 76 76 -
issm/trunk/template
r9678 r9679 61 61 waterfraction 62 62 }}} 63 diagnostic{{{64 spcvx65 spcvy66 spcvz67 stokesreconditioning68 shelf_dampening69 viscosity_overshoot70 pressureload -> rename icefront?71 diagnostic_ref -> rename referential?72 penalties -> rename vertex_pairing73 penalty_offset -> rename penalty_factor and change to absolute value74 75 eps_res -> rename following PETSc: restol76 eps_rel -> rename following PETSc: reltol77 eps_abs-> rename following PETSc: abstol78 max_nonlinear_iterations -> rename maxiter79 80 penalty_lock -> rename rift_penalty_lock81 min_mechanical_constraints -> rename rift_penalty_threshold82 requested_outputs83 }}}84 63 inversion{{{ 85 64 private: -
issm/trunk/test/Miscellaneous/Bump/Bump.par
r9641 r9679 28 28 %Deal with boundary conditions: 29 29 md=SetIceSheetBC(md); 30 md. spcvx=zeros(md.numberofnodes,1);31 md. spcvy=200*ones(md.numberofnodes,1);30 md.diagnostic.spcvx=zeros(md.numberofnodes,1); 31 md.diagnostic.spcvy=200*ones(md.numberofnodes,1); 32 32 33 33 %Parallel options -
issm/trunk/test/NightlyRun/test1101.m
r9664 r9679 21 21 22 22 %Create dirichlet on the bed only 23 md. spcvx=NaN*ones(md.numberofnodes,1);24 md. spcvy=NaN*ones(md.numberofnodes,1);25 md. spcvz=NaN*ones(md.numberofnodes,1);23 md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1); 24 md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1); 25 md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1); 26 26 27 27 pos=find(md.nodeonbed); 28 md. spcvx(pos)=0;29 md. spcvy(pos)=0;28 md.diagnostic.spcvx(pos)=0; 29 md.diagnostic.spcvy(pos)=0; 30 30 31 31 %Create MPCs to have periodic boundary conditions … … 36 36 posy2=find(md.y==max(md.y) & md.x~=0 & md.x~=max(md.x)); 37 37 38 md. penalties=[posx,posx2;posy,posy2];38 md.diagnostic.vertex_pairing=[posx,posx2;posy,posy2]; 39 39 40 40 %Compute the diagnostic -
issm/trunk/test/NightlyRun/test1102.m
r9664 r9679 29 29 %Create dirichlet on the bed only 30 30 pos=find(md.nodeonbed); 31 md. spcvx(pos)=0;32 md. spcvy(pos)=0;33 md. spcvz(pos)=0;31 md.diagnostic.spcvx(pos)=0; 32 md.diagnostic.spcvy(pos)=0; 33 md.diagnostic.spcvz(pos)=0; 34 34 35 35 %Create MPCs to have periodic boundary conditions … … 42 42 %posy2=find(md.y==max(md.y) & md.x~=0 & md.x~=max(md.x) & ~md.nodeonbed); 43 43 44 %md. penalties=[posx,posx2;posy,posy2];44 %md.diagnostic.vertex_pairing=[posx,posx2;posy,posy2]; 45 45 46 46 %Compute the diagnostic 47 47 md.eps_abs=NaN; 48 md. eps_rel=NaN;49 md. eps_res=1;48 md.diagnostic.reltol=NaN; 49 md.diagnostic.restol=1; 50 50 md.cluster=generic('name',oshostname(),'np',8); 51 51 md=solve(md,DiagnosticSolutionEnum); -
issm/trunk/test/NightlyRun/test1103.m
r9664 r9679 19 19 20 20 %Create dirichlet on the bed only 21 md. spcvx=NaN*ones(md.numberofnodes,1);22 md. spcvy=NaN*ones(md.numberofnodes,1);23 md. spcvz=NaN*ones(md.numberofnodes,1);21 md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1); 22 md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1); 23 md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1); 24 24 pos=find(md.nodeonbed); 25 md. spcvx(pos)=0;26 md. spcvy(pos)=0;25 md.diagnostic.spcvx(pos)=0; 26 md.diagnostic.spcvy(pos)=0; 27 27 28 28 %Create MPCs to have periodic boundary conditions … … 33 33 posy2=find(md.y==max(md.y) & md.x~=0 & md.x~=max(md.x)); 34 34 35 md. penalties=[posx,posx2;posy,posy2];35 md.diagnostic.vertex_pairing=[posx,posx2;posy,posy2]; 36 36 37 37 %Compute the diagnostic -
issm/trunk/test/NightlyRun/test1104.m
r9664 r9679 18 18 19 19 %Create dirichlet on the bed only 20 md. spcvx=NaN*ones(md.numberofnodes,1);21 md. spcvy=NaN*ones(md.numberofnodes,1);22 md. spcvz=NaN*ones(md.numberofnodes,1);20 md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1); 21 md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1); 22 md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1); 23 23 24 24 pos=find(md.nodeonbed); 25 md. spcvx(pos)=0;26 md. spcvy(pos)=0;25 md.diagnostic.spcvx(pos)=0; 26 md.diagnostic.spcvy(pos)=0; 27 27 28 28 %Create MPCs to have periodic boundary conditions … … 33 33 posy2=find(md.y==max(md.y) & md.x~=0 & md.x~=max(md.x)); 34 34 35 md. penalties=[posx,posx2;posy,posy2];35 md.diagnostic.vertex_pairing=[posx,posx2;posy,posy2]; 36 36 37 37 %Compute the diagnostic -
issm/trunk/test/NightlyRun/test1105.m
r9664 r9679 21 21 22 22 %Create MPCs to have periodic boundary conditions 23 md. spcvx=NaN*ones(md.numberofnodes,1);24 md. spcvy=NaN*ones(md.numberofnodes,1);25 md. spcvz=NaN*ones(md.numberofnodes,1);23 md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1); 24 md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1); 25 md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1); 26 26 27 27 posx=find(md.x==0 & md.y~=0 & md.y~=L); … … 31 31 posy2=find(md.y==L & md.x~=0 & md.x~=L); 32 32 33 md. penalties=[posx,posx2;posy,posy2];33 md.diagnostic.vertex_pairing=[posx,posx2;posy,posy2]; 34 34 35 35 %Add spc on the corners 36 36 pos=find((md.x==0 | md.x==L) & (md.y==0 | md.y==L) & md.nodeonbed); 37 md. spcvx(pos)=0;38 md. spcvy(pos)=0;37 md.diagnostic.spcvx(pos)=0; 38 md.diagnostic.spcvy(pos)=0; 39 39 if(L==5000), 40 md. spcvx(pos)=15.66;41 md. spcvy(pos)=-0.1967;40 md.diagnostic.spcvx(pos)=15.66; 41 md.diagnostic.spcvy(pos)=-0.1967; 42 42 elseif(L==10000), 43 md. spcvx(pos)=16.04;44 md. spcvy(pos)=-0.1977;43 md.diagnostic.spcvx(pos)=16.04; 44 md.diagnostic.spcvy(pos)=-0.1977; 45 45 elseif(L==20000), 46 md. spcvx(pos)=16.53;47 md. spcvy(pos)=-1.27;46 md.diagnostic.spcvx(pos)=16.53; 47 md.diagnostic.spcvy(pos)=-1.27; 48 48 elseif(L==40000), 49 md. spcvx(pos)=17.23;50 md. spcvy(pos)=-3.17;49 md.diagnostic.spcvx(pos)=17.23; 50 md.diagnostic.spcvy(pos)=-3.17; 51 51 elseif(L==80000), 52 md. spcvx(pos)=16.68;53 md. spcvy(pos)=-2.69;52 md.diagnostic.spcvx(pos)=16.68; 53 md.diagnostic.spcvy(pos)=-2.69; 54 54 elseif(L==160000), 55 md. spcvx(pos)=16.03;56 md. spcvy(pos)=-1.27;55 md.diagnostic.spcvx(pos)=16.03; 56 md.diagnostic.spcvy(pos)=-1.27; 57 57 end 58 58 59 59 %Spc the bed at zero for vz 60 60 pos=find(md.nodeonbed); 61 md. spcvz(pos)=0;61 md.diagnostic.spcvz(pos)=0; 62 62 63 63 %Compute the diagnostic -
issm/trunk/test/NightlyRun/test1106.m
r9664 r9679 25 25 %posy2=find(md.y==L & md.x~=0 & md.x~=L); 26 26 27 %md. penalties=[posx,posx2;posy,posy2];27 %md.diagnostic.vertex_pairing=[posx,posx2;posy,posy2]; 28 28 29 29 %Compute the diagnostic -
issm/trunk/test/NightlyRun/test1107.m
r9664 r9679 21 21 22 22 %We need one grd on dirichlet: the 4 corners are set to zero 23 md. spcvx=NaN*ones(md.numberofnodes,1);24 md. spcvy=NaN*ones(md.numberofnodes,1);25 md. spcvz=NaN*ones(md.numberofnodes,1);23 md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1); 24 md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1); 25 md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1); 26 26 27 27 %Create MPCs to have periodic boundary conditions … … 32 32 posy2=find(md.y==max(md.y) & md.x~=0 & md.x~=max(md.x)); 33 33 34 md. penalties=[posx,posx2;posy,posy2];34 md.diagnostic.vertex_pairing=[posx,posx2;posy,posy2]; 35 35 36 36 %Add spc on the corners 37 37 pos=find((md.x==0 | md.x==L) & (md.y==0 | md.y==L) & md.nodeonbed); 38 md. spcvy(:)=0;39 md. spcvx(pos)=0;38 md.diagnostic.spcvy(:)=0; 39 md.diagnostic.spcvx(pos)=0; 40 40 if(L==5000), 41 md. spcvx(pos)=16.0912;41 md.diagnostic.spcvx(pos)=16.0912; 42 42 elseif(L==10000), 43 md. spcvx(pos)=16.52;43 md.diagnostic.spcvx(pos)=16.52; 44 44 elseif(L==20000), 45 md. spcvx(pos)=17.77;45 md.diagnostic.spcvx(pos)=17.77; 46 46 elseif(L==40000), 47 md. spcvx(pos)=19.88;47 md.diagnostic.spcvx(pos)=19.88; 48 48 elseif(L==80000), 49 md. spcvx(pos)=18.65;49 md.diagnostic.spcvx(pos)=18.65; 50 50 elseif(L==160000), 51 md. spcvx(pos)=16.91;51 md.diagnostic.spcvx(pos)=16.91; 52 52 end 53 53 54 54 %Spc the bed at zero for vz 55 55 pos=find(md.nodeonbed); 56 md. spcvz(pos)=0;56 md.diagnostic.spcvz(pos)=0; 57 57 58 58 %Compute the diagnostic -
issm/trunk/test/NightlyRun/test1108.m
r9664 r9679 18 18 19 19 %We need one grd on dirichlet: the 4 corners are set to zero 20 %md. spcvx=NaN*ones(md.numberofnodes,1);21 %md. spcvy=NaN*ones(md.numberofnodes,1);22 %md. spcvz=NaN*ones(md.numberofnodes,1);20 %md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1); 21 %md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1); 22 %md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1); 23 23 24 24 %pos=find((md.x==0 | md.x==max(md.x)) & (md.y==0 | md.y==max(md.y))); 25 %md. spcvx(pos)=0;26 %md. spcvy(pos)=0;27 %md. spcvz(pos)=0;25 %md.diagnostic.spcvx(pos)=0; 26 %md.diagnostic.spcvy(pos)=0; 27 %md.diagnostic.spcvz(pos)=0; 28 28 29 29 %%Create MPCs to have periodic boundary conditions … … 34 34 %posy2=find(md.y==max(md.y) & md.x~=0 & md.x~=max(md.x)); 35 35 36 %md. penalties=[posx,posx2;posy,posy2];36 %md.diagnostic.vertex_pairing=[posx,posx2;posy,posy2]; 37 37 38 38 %Compute the diagnostic -
issm/trunk/test/NightlyRun/test1109.m
r9664 r9679 28 28 posx=find(md.x==0); 29 29 posx2=find(md.x==max(md.x)); 30 md. penalties=[posx,posx2];30 md.diagnostic.vertex_pairing=[posx,posx2]; 31 31 32 32 %Create spcs on the bed 33 33 pos=find(md.nodeonbed); 34 md. spcvx=NaN*ones(md.numberofnodes,1);35 md. spcvy=NaN*ones(md.numberofnodes,1);36 md. spcvz=NaN*ones(md.numberofnodes,1);37 md. spcvx(pos)=0;38 md. spcvy(pos)=0;39 md. spcvz(pos)=0;34 md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1); 35 md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1); 36 md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1); 37 md.diagnostic.spcvx(pos)=0; 38 md.diagnostic.spcvy(pos)=0; 39 md.diagnostic.spcvz(pos)=0; 40 40 41 41 %Remove the spc where there is some sliding (case 3 and 4): 42 42 if i==3 | i==4, 43 43 pos=find(md.y/max(md.y)>=0.44 & md.y/max(md.y)<=0.5); 44 md. spcvx(pos)=NaN;45 md. spcvy(pos)=NaN;46 md. spcvz(pos)=NaN;44 md.diagnostic.spcvx(pos)=NaN; 45 md.diagnostic.spcvy(pos)=NaN; 46 md.diagnostic.spcvz(pos)=NaN; 47 47 end 48 48 -
issm/trunk/test/NightlyRun/test1110.m
r9664 r9679 20 20 end 21 21 22 md. spcvx=NaN*ones(md.numberofnodes,1);23 md. spcvy=NaN*ones(md.numberofnodes,1);24 md. spcvz=NaN*ones(md.numberofnodes,1);22 md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1); 23 md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1); 24 md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1); 25 25 if (i==1 | i==3), 26 26 %Create dirichlet on the bed if no slip 27 27 pos=find(md.nodeonbed); 28 md. spcvx(pos)=0;29 md. spcvy(pos)=0;30 md. spcvz(pos)=0;28 md.diagnostic.spcvx(pos)=0; 29 md.diagnostic.spcvy(pos)=0; 30 md.diagnostic.spcvz(pos)=0; 31 31 else 32 32 pos=find(md.nodeonbed & (md.x==0 | md.x==max(md.x)) & (md.y==0 | md.y==max(md.y))); 33 md. spcvx(pos)=100; %because we need a dirichlet somewhere34 md. spcvy(pos)=0;35 md. spcvz(pos)=0;33 md.diagnostic.spcvx(pos)=100; %because we need a dirichlet somewhere 34 md.diagnostic.spcvy(pos)=0; 35 md.diagnostic.spcvz(pos)=0; 36 36 end 37 37 pos=find(~md.nodeonbed); … … 45 45 posy2=find(md.y==max(md.y)); 46 46 47 md. penalties=[posx,posx2;posy,posy2];47 md.diagnostic.vertex_pairing=[posx,posx2;posy,posy2]; 48 48 md.prognostic.vertex_pairing=[posx,posx2;posy,posy2]; 49 49 … … 52 52 md.output_frequency=50; 53 53 md.prognostic.stabilization=1; 54 md. max_nonlinear_iterations=1;54 md.diagnostic.maxiter=1; 55 55 56 56 %Compute the diagnostic -
issm/trunk/test/NightlyRun/test1203.m
r9664 r9679 11 11 %Impose a non zero velocity on the upper boundary condition (y=max(y)) 12 12 pos=find(md.y==max(md.y)); 13 md. spcvy(pos)=400*(((md.x(pos)-100000)/25000).^2-ones(size(pos,1),1)).*heaviside((1+eps)*ones(size(pos,1),1)-((md.x(pos)-100000)/25000).^2);13 md.diagnostic.spcvy(pos)=400*(((md.x(pos)-100000)/25000).^2-ones(size(pos,1),1)).*heaviside((1+eps)*ones(size(pos,1),1)-((md.x(pos)-100000)/25000).^2); 14 14 15 15 %Compute solution for MacAyeal's model -
issm/trunk/test/NightlyRun/test1204.m
r9664 r9679 11 11 %Impose a non zero velocity on the upper boundary condition (y=max(y)) 12 12 pos=find(md.y==max(md.y)); 13 md. spcvy(pos)=400*(((md.x(pos)-100000)/25000).^2-ones(size(pos,1),1)).*heaviside((1+eps)*ones(size(pos,1),1)-((md.x(pos)-100000)/25000).^2);13 md.diagnostic.spcvy(pos)=400*(((md.x(pos)-100000)/25000).^2-ones(size(pos,1),1)).*heaviside((1+eps)*ones(size(pos,1),1)-((md.x(pos)-100000)/25000).^2); 14 14 15 15 %Compute solution for MacAyeal's model -
issm/trunk/test/NightlyRun/test1205.m
r9664 r9679 23 23 %Spc the nodes on the bed 24 24 pos=find(md.nodeonbed); 25 md. spcvx(pos)=0;26 md. spcvy(pos)=0;27 md. spcvz(pos)=0;25 md.diagnostic.spcvx(pos)=0; 26 md.diagnostic.spcvy(pos)=0; 27 md.diagnostic.spcvz(pos)=0; 28 28 29 29 %Now we can solve the problem -
issm/trunk/test/NightlyRun/test1206.m
r9664 r9679 23 23 %Spc the nodes on the bed 24 24 pos=find(md.nodeonbed); 25 md. spcvx(pos)=0;26 md. spcvy(pos)=0;27 md. spcvz(pos)=0;25 md.diagnostic.spcvx(pos)=0; 26 md.diagnostic.spcvy(pos)=0; 27 md.diagnostic.spcvz(pos)=0; 28 28 29 29 %Now we can solve the problem -
issm/trunk/test/NightlyRun/test1207.m
r9664 r9679 23 23 %Spc the nodes on the bed 24 24 pos=find(md.nodeonbed); 25 md. spcvx(pos)=0;26 md. spcvy(pos)=0;27 md. spcvz(pos)=0;25 md.diagnostic.spcvx(pos)=0; 26 md.diagnostic.spcvy(pos)=0; 27 md.diagnostic.spcvz(pos)=0; 28 28 29 29 %Now we can solve the problem -
issm/trunk/test/NightlyRun/test1208.m
r9664 r9679 14 14 %Spc the nodes on the bed 15 15 pos=find(md.nodeonbed); 16 md. spcvx(pos)=0;17 md. spcvy(pos)=0;18 md. spcvz(pos)=0;16 md.diagnostic.spcvx(pos)=0; 17 md.diagnostic.spcvy(pos)=0; 18 md.diagnostic.spcvz(pos)=0; 19 19 20 20 %Adapt the time steps to the resolution -
issm/trunk/test/NightlyRun/test221.m
r9664 r9679 4 4 md=extrude(md,3,1); 5 5 md=setflowequation(md,'stokes','all'); 6 md. eps_rel=NaN;6 md.diagnostic.reltol=NaN; 7 7 md.cluster=none; 8 8 md=solve(md,TransientSolutionEnum); -
issm/trunk/test/NightlyRun/test222.m
r9664 r9679 4 4 md=extrude(md,3,1); 5 5 md=setflowequation(md,'stokes','all'); 6 md. eps_rel=NaN;6 md.diagnostic.reltol=NaN; 7 7 md.cluster=generic('name',oshostname(),'np',3); 8 8 md=solve(md,TransientSolutionEnum); -
issm/trunk/test/NightlyRun/test232.m
r9664 r9679 9 9 md.rifts.riftstruct.fill=MelangeEnum(); 10 10 md.rifts.riftstruct.fraction=0; 11 md. penalty_lock=2;12 md. min_mechanical_constraints=0;11 md.rift_penalty_lock=2; 12 md.rift_penalty_threshold=0; 13 13 md.rifts.riftstruct.fractionincrement=.1; 14 14 md=solve(md,DiagnosticSolutionEnum); -
issm/trunk/test/NightlyRun/test233.m
r9664 r9679 10 10 11 11 %tighten 12 md. eps_res=10^-4;12 md.diagnostic.restol=10^-4; 13 13 14 14 %needed later … … 37 37 38 38 %Boundary conditions: 39 md. spcvx=NaN*ones(md.numberofnodes,1);40 md. spcvy=NaN*ones(md.numberofnodes,1);41 md. spcvz=NaN*ones(md.numberofnodes,1);39 md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1); 40 md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1); 41 md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1); 42 42 43 43 %constrain flanks to 0 normal velocity 44 44 pos=find(md.x==xmin | md.x==xmax); 45 md. spcvx(pos)=0;46 md. spcvz(pos)=NaN;45 md.diagnostic.spcvx(pos)=0; 46 md.diagnostic.spcvz(pos)=NaN; 47 47 48 48 %constrain grounding line to 0 velocity 49 49 pos=find(md.y==ymin); 50 md. spcvx(pos)=0;51 md. spcvy(pos)=0;50 md.diagnostic.spcvx(pos)=0; 51 md.diagnostic.spcvy(pos)=0; 52 52 53 53 %icefront 54 54 nodeonicefront=zeros(md.numberofnodes,1); 55 55 pos=find(md.y==ymax); nodeonicefront(pos)=1; 56 pos=find(nodeonicefront(md.segments(:,1)) | nodeonicefront(md.segments(:,2))); pressureload=md.segments(pos,:);57 pressureload=[pressureload 1*md.mask.elementonfloatingice(pressureload(:,end))];58 md. pressureload=pressureload;56 pos=find(nodeonicefront(md.segments(:,1)) | nodeonicefront(md.segments(:,2))); diagnostic.icefront=md.segments(pos,:); 57 diagnostic.icefront=[diagnostic.icefront 1*md.mask.elementonfloatingice(diagnostic.icefront(:,end))]; 58 md.diagnostic.icefront=diagnostic.icefront; 59 59 60 60 md=solve(md,DiagnosticSolutionEnum); -
issm/trunk/test/NightlyRun/test234.m
r9664 r9679 10 10 11 11 %tighten 12 md. eps_res=10^-4;12 md.diagnostic.restol=10^-4; 13 13 14 14 %needed later … … 37 37 38 38 %Boundary conditions: 39 md. spcvx=NaN*ones(md.numberofnodes,1);40 md. spcvy=NaN*ones(md.numberofnodes,1);41 md. spcvz=NaN*ones(md.numberofnodes,1);39 md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1); 40 md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1); 41 md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1); 42 42 43 43 %constrain flanks to 0 normal velocity 44 44 pos=find(md.x==xmin | md.x==xmax); 45 md. spcvx(pos)=0;46 md. spcvz(pos)=NaN;45 md.diagnostic.spcvx(pos)=0; 46 md.diagnostic.spcvz(pos)=NaN; 47 47 48 48 %constrain grounding line to 0 velocity 49 49 pos=find(md.y==ymin); 50 md. spcvx(pos)=0;51 md. spcvy(pos)=0;50 md.diagnostic.spcvx(pos)=0; 51 md.diagnostic.spcvy(pos)=0; 52 52 53 53 %icefront 54 54 nodeonicefront=zeros(md.numberofnodes,1); 55 55 pos=find(md.y==ymax); nodeonicefront(pos)=1; 56 pos=find(nodeonicefront(md.segments(:,1)) | nodeonicefront(md.segments(:,2))); pressureload=md.segments(pos,:);57 pressureload=[pressureload 1*md.mask.elementonfloatingice(pressureload(:,end))];58 md. pressureload=pressureload;56 pos=find(nodeonicefront(md.segments(:,1)) | nodeonicefront(md.segments(:,2))); diagnostic.icefront=md.segments(pos,:); 57 diagnostic.icefront=[diagnostic.icefront 1*md.mask.elementonfloatingice(diagnostic.icefront(:,end))]; 58 md.diagnostic.icefront=diagnostic.icefront; 59 59 60 60 md=solve(md,DiagnosticSolutionEnum); -
issm/trunk/test/NightlyRun/test235.m
r9664 r9679 34 34 35 35 %Boundary conditions: 36 md. spcvx=NaN*ones(md.numberofnodes,1);37 md. spcvy=NaN*ones(md.numberofnodes,1);38 md. spcvz=NaN*ones(md.numberofnodes,1);36 md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1); 37 md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1); 38 md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1); 39 39 40 40 %constrain flanks to 0 normal velocity 41 41 pos=find(md.x==xmin | md.x==xmax); 42 md. spcvx(pos)=0;43 md. spcvz(pos)=NaN;42 md.diagnostic.spcvx(pos)=0; 43 md.diagnostic.spcvz(pos)=NaN; 44 44 45 45 %constrain grounding line to 0 velocity 46 46 pos=find(md.y==ymin); 47 md. spcvx(pos)=0;48 md. spcvy(pos)=0;47 md.diagnostic.spcvx(pos)=0; 48 md.diagnostic.spcvy(pos)=0; 49 49 50 50 %icefront 51 51 nodeonicefront=zeros(md.numberofnodes,1); 52 52 pos=find(md.y==ymax); nodeonicefront(pos)=1; 53 pos=find(nodeonicefront(md.segments(:,1)) | nodeonicefront(md.segments(:,2))); pressureload=md.segments(pos,:);54 pressureload=[pressureload 1*md.mask.elementonfloatingice(pressureload(:,end))];55 md. pressureload=pressureload;53 pos=find(nodeonicefront(md.segments(:,1)) | nodeonicefront(md.segments(:,2))); diagnostic.icefront=md.segments(pos,:); 54 diagnostic.icefront=[diagnostic.icefront 1*md.mask.elementonfloatingice(diagnostic.icefront(:,end))]; 55 md.diagnostic.icefront=diagnostic.icefront; 56 56 57 57 %partitioning … … 77 77 78 78 %imperative! 79 md. eps_rel=10^-10; %tighten for qmu analysese79 md.diagnostic.reltol=10^-10; %tighten for qmu analysese 80 80 md.qmu.isdakota=1; 81 81 -
issm/trunk/test/NightlyRun/test236.m
r9664 r9679 34 34 35 35 %Boundary conditions: 36 md. spcvx=NaN*ones(md.numberofnodes,1);37 md. spcvy=NaN*ones(md.numberofnodes,1);38 md. spcvz=NaN*ones(md.numberofnodes,1);36 md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1); 37 md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1); 38 md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1); 39 39 40 40 %constrain flanks to 0 normal velocity 41 41 pos=find(md.x==xmin | md.x==xmax); 42 md. spcvx(pos)=0;43 md. spcvz(pos)=NaN;42 md.diagnostic.spcvx(pos)=0; 43 md.diagnostic.spcvz(pos)=NaN; 44 44 45 45 %constrain grounding line to 0 velocity 46 46 pos=find(md.y==ymin); 47 md. spcvx(pos)=0;48 md. spcvy(pos)=0;47 md.diagnostic.spcvx(pos)=0; 48 md.diagnostic.spcvy(pos)=0; 49 49 50 50 %icefront 51 51 nodeonicefront=zeros(md.numberofnodes,1); 52 52 pos=find(md.y==ymax); nodeonicefront(pos)=1; 53 pos=find(nodeonicefront(md.segments(:,1)) | nodeonicefront(md.segments(:,2))); pressureload=md.segments(pos,:);54 pressureload=[pressureload 1*md.mask.elementonfloatingice(pressureload(:,end))];55 md. pressureload=pressureload;53 pos=find(nodeonicefront(md.segments(:,1)) | nodeonicefront(md.segments(:,2))); diagnostic.icefront=md.segments(pos,:); 54 diagnostic.icefront=[diagnostic.icefront 1*md.mask.elementonfloatingice(diagnostic.icefront(:,end))]; 55 md.diagnostic.icefront=diagnostic.icefront; 56 56 57 57 %partitioning … … 77 77 78 78 %imperative! 79 md. eps_rel=10^-10; %tighten for qmu analysese79 md.diagnostic.reltol=10^-10; %tighten for qmu analysese 80 80 md.qmu.isdakota=1; 81 81 -
issm/trunk/test/NightlyRun/test423.m
r9667 r9679 31 31 32 32 %imperative! 33 md. eps_rel=10^-5; %tighten for qmu analysese33 md.diagnostic.reltol=10^-5; %tighten for qmu analysese 34 34 35 35 %solve -
issm/trunk/test/NightlyRun/test424.m
r9667 r9679 30 30 31 31 %imperative! 32 md. eps_rel=10^-5; %tighten for qmu analysese32 md.diagnostic.reltol=10^-5; %tighten for qmu analysese 33 33 34 34 %solve -
issm/trunk/test/NightlyRun/test425.m
r9667 r9679 30 30 31 31 %imperative! 32 md. eps_rel=10^-5; %tighten for qmu analyses32 md.diagnostic.reltol=10^-5; %tighten for qmu analyses 33 33 md.qmu.isdakota=1; 34 34 -
issm/trunk/test/NightlyRun/test426.m
r9667 r9679 30 30 31 31 %imperative! 32 md. eps_rel=10^-5; %tighten for qmu analyses32 md.diagnostic.reltol=10^-5; %tighten for qmu analyses 33 33 md.qmu.isdakota=1; 34 34 -
issm/trunk/test/NightlyRun/test427.m
r9667 r9679 8 8 9 9 %constrain all velocities to 1 m/yr, in the y-direction 10 md. spcvx(:)=0;11 md. spcvy(:)=1;12 md. spcvz(:)=0;10 md.diagnostic.spcvx(:)=0; 11 md.diagnostic.spcvy(:)=1; 12 md.diagnostic.spcvz(:)=0; 13 13 14 14 %Dakota options … … 44 44 md.qmu.params.interval_type='forward'; 45 45 md.qmu.isdakota=1; 46 md. eps_rel=10^-5; %tighten for qmu analyses46 md.diagnostic.reltol=10^-5; %tighten for qmu analyses 47 47 48 48 %solve -
issm/trunk/test/NightlyRun/test428.m
r9667 r9679 8 8 9 9 %constrain all velocities to 1 m/yr, in the y-direction 10 md. spcvx=zeros(md.numberofnodes,1);11 md. spcvy=ones(md.numberofnodes,1);12 md. spcvz=zeros(md.numberofnodes,1);10 md.diagnostic.spcvx=zeros(md.numberofnodes,1); 11 md.diagnostic.spcvy=ones(md.numberofnodes,1); 12 md.diagnostic.spcvz=zeros(md.numberofnodes,1); 13 13 14 14 %Dakota options … … 44 44 md.qmu.params.interval_type='forward'; 45 45 md.qmu.isdakota=1; 46 md. eps_rel=10^-5; %tighten for qmu analyses46 md.diagnostic.reltol=10^-5; %tighten for qmu analyses 47 47 48 48 %solve -
issm/trunk/test/NightlyRun/test434.m
r9672 r9679 8 8 9 9 %constrain all velocities to 1 m/yr, in the y-direction 10 md. spcvx(:)=0;11 md. spcvy(:)=1;12 md. spcvz(:)=0;10 md.diagnostic.spcvx(:)=0; 11 md.diagnostic.spcvy(:)=1; 12 md.diagnostic.spcvz(:)=0; 13 13 14 14 %Dakota options … … 47 47 md.qmu.isdakota=1; 48 48 49 md. eps_rel=10^-5; %tighten for qmu analyses49 md.diagnostic.reltol=10^-5; %tighten for qmu analyses 50 50 51 51 md=solve(md,DiagnosticSolutionEnum,'overwrite','y'); -
issm/trunk/test/NightlyRun/test439.m
r9672 r9679 29 29 30 30 %imperative! 31 md. eps_rel=10^-5; %tighten for qmu analysese31 md.diagnostic.reltol=10^-5; %tighten for qmu analysese 32 32 33 33 %solve -
issm/trunk/test/NightlyRun/test440.m
r9672 r9679 29 29 30 30 %imperative! 31 md. eps_rel=10^-5; %tighten for qmu analysese31 md.diagnostic.reltol=10^-5; %tighten for qmu analysese 32 32 33 33 %solve -
issm/trunk/test/NightlyRun/test443.m
r9664 r9679 5 5 md=setflowequation(md,'stokes','../Exp/SquareHalfRight.exp','fill','macayeal','coupling','tiling'); 6 6 md.cluster=none; 7 md. eps_rel=0.4;7 md.diagnostic.reltol=0.4; 8 8 md=solve(md,DiagnosticSolutionEnum); 9 9 -
issm/trunk/test/NightlyRun/test444.m
r9664 r9679 5 5 md=setflowequation(md,'stokes','../Exp/SquareHalfRight.exp','fill','macayeal'); 6 6 md.cluster=generic('name',oshostname(),'np',3); 7 md. eps_rel=0.4;7 md.diagnostic.reltol=0.4; 8 8 md=solve(md,DiagnosticSolutionEnum); 9 9 -
issm/trunk/test/Par/79North.par
r9677 r9679 30 30 31 31 %Numerical parameters 32 md. viscosity_overshoot=0.3;32 md.diagnostic.viscosity_overshoot=0.3; 33 33 md.prognostic.stabilization=1; 34 34 md.thermal.stabilization=1; … … 37 37 md.timestepping.time_step=1; 38 38 md.timestepping.final_time=3; 39 md. eps_res=0.05;40 md. eps_rel=0.005;39 md.diagnostic.restol=0.05; 40 md.diagnostic.reltol=0.005; 41 41 md.steadystate.reltol=0.005; 42 md. eps_abs=NaN;42 md.diagnostic.abstol=NaN; 43 43 44 44 %Boundary conditions: -
issm/trunk/test/Par/ISMIPF.par
r9645 r9679 21 21 %Create node on boundary fist (because we cannot use mesh) 22 22 md=SetIceSheetBC(md); 23 md. spcvx=100*ones(md.numberofnodes,1);23 md.diagnostic.spcvx=100*ones(md.numberofnodes,1); 24 24 md.vx=zeros(md.numberofnodes,1); 25 25 md.vy=zeros(md.numberofnodes,1); -
issm/trunk/test/Par/Pig.par
r9677 r9679 28 28 29 29 %Numerical parameters 30 md. viscosity_overshoot=0.3;30 md.diagnostic.viscosity_overshoot=0.3; 31 31 md.prognostic.stabilization=1; 32 32 md.verbose=verbose(0); … … 34 34 md.timestepping.time_step=1; 35 35 md.timestepping.final_time=2; 36 md. eps_res=0.05;37 md. eps_rel=1;36 md.diagnostic.restol=0.05; 37 md.diagnostic.reltol=1; 38 38 md.steadystate.reltol=1; 39 md. eps_abs=NaN;39 md.diagnostic.abstol=NaN; 40 40 41 41 %Boundary conditions: -
issm/trunk/test/Par/RoundSheetEISMINT.par
r9636 r9679 45 45 md.x(pos)=0; md.y(pos)=0; %the closest node to the center is changed to be exactly at the center 46 46 47 md. spcvx(pos)=0;48 md. spcvy(pos)=0;49 md. spcvz(pos)=0;47 md.diagnostic.spcvx(pos)=0; 48 md.diagnostic.spcvy(pos)=0; 49 md.diagnostic.spcvz(pos)=0; 50 50 51 51 %parallel options -
issm/trunk/test/Par/RoundSheetShelf.par
r9677 r9679 57 57 58 58 %Numerical parameters 59 md. viscosity_overshoot=0.0;59 md.diagnostic.viscosity_overshoot=0.0; 60 60 md.prognostic.stabilization=1; 61 61 md.thermal.stabilization=1; 62 62 md.verbose=verbose(0); 63 63 md.waitonlock=30; 64 md. eps_res=0.05;65 md. eps_rel=0.05;64 md.diagnostic.restol=0.05; 65 md.diagnostic.reltol=0.05; 66 66 md.steadystate.reltol=0.05; 67 md. eps_abs=NaN;67 md.diagnostic.abstol=NaN; 68 68 md.timestepping.time_step=.1; 69 69 md.timestepping.final_time=5; … … 75 75 76 76 %Deal with boundary conditions: 77 md. spcvx=NaN*ones(md.numberofnodes,1);78 md. spcvy=NaN*ones(md.numberofnodes,1);79 md. spcvz=NaN*ones(md.numberofnodes,1);77 md.diagnostic.spcvx=NaN*ones(md.numberofnodes,1); 78 md.diagnostic.spcvy=NaN*ones(md.numberofnodes,1); 79 md.diagnostic.spcvz=NaN*ones(md.numberofnodes,1); 80 80 81 81 pos=find(md.x==0 & md.y==0); 82 md. spcvx(pos)=0;83 md. spcvy(pos)=0;82 md.diagnostic.spcvx(pos)=0; 83 md.diagnostic.spcvy(pos)=0; 84 84 85 85 pressureload=md.segments; 86 86 pressureload=[pressureload 1*md.mask.elementonfloatingice(pressureload(:,end)) + 0*md.mask.elementongroundedice(pressureload(:,end))]; 87 md. pressureload=pressureload;87 md.diagnostic.icefront=pressureload; 88 88 md.balancethickness.spcthickness=NaN*ones(md.numberofnodes,1); 89 89 md.prognostic.spcthickness=NaN*ones(md.numberofnodes,1); -
issm/trunk/test/Par/RoundSheetStaticEISMINT.par
r9641 r9679 50 50 md.x(pos)=0; md.y(pos)=0; %the closest node to the center is changed to be exactly at the center 51 51 52 md. spcvx(pos)=0;53 md. spcvy(pos)=0;54 md. spcvz(pos)=0;52 md.diagnostic.spcvx(pos)=0; 53 md.diagnostic.spcvy(pos)=0; 54 md.diagnostic.spcvz(pos)=0; -
issm/trunk/test/Par/SquareSheetConstrained.par
r9677 r9679 31 31 32 32 %Numerical parameters 33 md. viscosity_overshoot=0.0;33 md.diagnostic.viscosity_overshoot=0.0; 34 34 md.prognostic.stabilization=1; 35 35 md.thermal.stabilization=1; 36 36 md.verbose=verbose(0); 37 37 md.waitonlock=30; 38 md. eps_res=0.05;38 md.diagnostic.restol=0.05; 39 39 md.steadystate.reltol=0.05; 40 md. eps_rel=0.05;41 md. eps_abs=NaN;40 md.diagnostic.reltol=0.05; 41 md.diagnostic.abstol=NaN; 42 42 md.timestepping.time_step=1; 43 43 md.timestepping.final_time=3; -
issm/trunk/test/Par/SquareSheetShelf.par
r9677 r9679 38 38 39 39 %Numerical parameters 40 md. viscosity_overshoot=0.0;40 md.diagnostic.viscosity_overshoot=0.0; 41 41 md.prognostic.stabilization=1; 42 42 md.thermal.stabilization=1; 43 43 md.verbose=verbose(0); 44 44 md.waitonlock=30; 45 md. eps_res=0.05;45 md.diagnostic.restol=0.05; 46 46 md.steadystate.reltol=0.05; 47 md. eps_rel=0.05;48 md. eps_abs=NaN;47 md.diagnostic.reltol=0.05; 48 md.diagnostic.abstol=NaN; 49 49 md.timestepping.time_step=1; 50 50 md.timestepping.final_time=3; -
issm/trunk/test/Par/SquareShelf.par
r9677 r9679 31 31 32 32 %Numerical parameters 33 md. viscosity_overshoot=0.3;33 md.diagnostic.viscosity_overshoot=0.3; 34 34 md.prognostic.stabilization=1; 35 35 md.thermal.stabilization=1; 36 36 md.waitonlock=30; 37 37 md.verbose=verbose(0); 38 md. eps_res=0.10;38 md.diagnostic.restol=0.10; 39 39 md.steadystate.reltol=0.02; 40 md. eps_rel=0.02;41 md. eps_abs=NaN;40 md.diagnostic.reltol=0.02; 41 md.diagnostic.abstol=NaN; 42 42 md.timestepping.time_step=1; 43 43 md.timestepping.final_time=3; -
issm/trunk/test/Par/SquareShelfConstrained.par
r9677 r9679 35 35 36 36 %Numerical parameters 37 md. viscosity_overshoot=0.0;37 md.diagnostic.viscosity_overshoot=0.0; 38 38 md.prognostic.stabilization=1; 39 39 md.thermal.stabilization=1; 40 40 md.verbose=verbose(0); 41 41 md.waitonlock=30; 42 md. eps_res=0.05;43 md. eps_rel=0.05;42 md.diagnostic.restol=0.05; 43 md.diagnostic.reltol=0.05; 44 44 md.steadystate.reltol=0.05; 45 md. eps_abs=NaN;45 md.diagnostic.abstol=NaN; 46 46 md.timestepping.time_step=1; 47 47 md.timestepping.final_time=3;
Note:
See TracChangeset
for help on using the changeset viewer.