Changeset 9681
- Timestamp:
- 09/08/11 08:29:34 (14 years ago)
- Location:
- issm/trunk
- Files:
-
- 21 added
- 24 deleted
- 117 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h
r9680 r9681 98 98 TransientRequestedOutputsEnum, 99 99 TransientNumRequestedOutputsEnum, 100 InversionIscontrolEnum, 101 InversionControlParametersEnum, 102 InversionCostFunctionsEnum, 103 InversionCostFunctionEnum, 104 InversionCostFunctionsCoefficientsEnum, 105 InversionNstepsEnum, 106 InversionMaxiterPerStepEnum, 107 InversionGradientScalingEnum, 108 InversionGradientOnlyEnum, 109 InversionCostFunctionThresholdEnum, 110 InversionMaxParametersEnum, 111 InversionMinParametersEnum, 112 InversionStepThresholdEnum, 113 InversionNumControlParametersEnum, 114 InversionNumCostFunctionsEnum, 115 InversionVxObsEnum, 116 InversionVyObsEnum, 117 InversionVzObsEnum, 118 InversionVelObsEnum, 119 InversionThicknessObsEnum, 100 120 DiagnosticSpcvxEnum, 101 121 DiagnosticSpcvyEnum, … … 143 163 AdjointHorizAnalysisEnum, 144 164 AdjointBalancethicknessAnalysisEnum, 145 ControlAnalysisEnum,146 165 //thermal 147 166 ThermalSolutionEnum, … … 267 286 BedSlopeYEnum, 268 287 BoundaryEnum, 269 CmResponseEnum,270 CmResponsesEnum,271 288 ConstantEnum, 272 ControlTypeEnum,273 289 ConvergedEnum, 274 290 ElementonbedEnum, … … 309 325 ThicknessEnum, 310 326 ThicknessCoeffEnum, 311 ThicknessObsEnum,312 327 TypeEnum, 313 328 VelEnum, 314 VelObsEnum,315 329 VxAverageEnum, 316 330 VxEnum, 317 VxObsEnum,318 331 VxPicardEnum, 319 332 QmuVxEnum, 320 333 VyAverageEnum, 321 334 VyEnum, 322 VyObsEnum,323 335 VyPicardEnum, 324 336 QmuVyEnum, 325 337 VzEnum, 326 VzObsEnum,327 338 VzPicardEnum, 328 339 VzMacAyealEnum, … … 330 341 VzStokesEnum, 331 342 QmuVzEnum, 332 WeightsEnum,333 343 /*}}}*/ 334 344 /*Element types{{{1*/ … … 388 398 ColinearEnum, 389 399 SeparateEnum, 390 CmGradientEnum,391 CmJumpEnum,392 CmMaxEnum,393 CmMinEnum,394 400 AdjointEnum, 395 401 GradientEnum, … … 401 407 ControlSteadyEnum, 402 408 DimEnum, 403 EpsCmEnum,404 409 NumberOfElementsEnum, 405 410 NumberOfVerticesEnum, … … 454 459 /*Temporary*/ 455 460 NumberOfElements2DEnum, 456 NumControlTypeEnum,457 461 YEnum, 458 462 NumberOfNodes2DEnum, … … 462 466 Elements2DEnum, 463 467 XEnum, 464 NumCmResponsesEnum,465 468 ElementconnectivityEnum, 466 469 NumlayersEnum, 467 470 LowerelementsEnum, 468 NstepsEnum,469 MaxiterEnum,470 TolxEnum,471 OptscalEnum,472 471 OutputfilenameEnum, 473 472 WaterfractionEnum, -
issm/trunk/src/c/EnumDefinitions/EnumToModelField.cpp
r9646 r9681 19 19 case BalancethicknessThickeningRateEnum: return "dhdt"; 20 20 case VxEnum : return "vx"; 21 case VxObsEnum : return "vx_obs";21 case InversionVxObsEnum : return "vx_obs"; 22 22 case VyEnum : return "vy"; 23 case VyObsEnum : return "vy_obs";23 case InversionVyObsEnum : return "vy_obs"; 24 24 case BasalforcingsMeltingRateEnum : return "basal_melting_rate"; 25 25 case SurfaceforcingsAccumulationRateEnum : return "surface_accumulation_rate"; -
issm/trunk/src/c/modules/CostFunctionx/CostFunctionx.cpp
r9356 r9681 24 24 25 25 /*Recover parameters*/ 26 parameters->FindParam(&num_responses, NumCmResponsesEnum);26 parameters->FindParam(&num_responses,InversionNumCostFunctionsEnum); 27 27 parameters->FindParam(&responses,NULL,NULL,StepResponsesEnum); 28 28 -
issm/trunk/src/c/modules/Dakotax/SpawnCoreParallel.cpp
r9650 r9681 57 57 femmodel->parameters->FindParam(&responses_descriptors,&numresponsedescriptors,QmuResponsedescriptorsEnum); 58 58 femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum); 59 femmodel->parameters->FindParam(&control_analysis, ControlAnalysisEnum);59 femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum); 60 60 61 61 /* only cpu 0, running dakota is providing us with variables and variables_descriptors and numresponses: broadcast onto other cpus: */ -
issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp
r9680 r9681 102 102 case TransientRequestedOutputsEnum : return "TransientRequestedOutputs"; 103 103 case TransientNumRequestedOutputsEnum : return "TransientNumRequestedOutputs"; 104 case InversionIscontrolEnum : return "InversionIscontrol"; 105 case InversionControlParametersEnum : return "InversionControlParameters"; 106 case InversionCostFunctionsEnum : return "InversionCostFunctions"; 107 case InversionCostFunctionEnum : return "InversionCostFunction"; 108 case InversionCostFunctionsCoefficientsEnum : return "InversionCostFunctionsCoefficients"; 109 case InversionNstepsEnum : return "InversionNsteps"; 110 case InversionMaxiterPerStepEnum : return "InversionMaxiterPerStep"; 111 case InversionGradientScalingEnum : return "InversionGradientScaling"; 112 case InversionGradientOnlyEnum : return "InversionGradientOnly"; 113 case InversionCostFunctionThresholdEnum : return "InversionCostFunctionThreshold"; 114 case InversionMaxParametersEnum : return "InversionMaxParameters"; 115 case InversionMinParametersEnum : return "InversionMinParameters"; 116 case InversionStepThresholdEnum : return "InversionStepThreshold"; 117 case InversionNumControlParametersEnum : return "InversionNumControlParameters"; 118 case InversionNumCostFunctionsEnum : return "InversionNumCostFunctions"; 119 case InversionVxObsEnum : return "InversionVxObs"; 120 case InversionVyObsEnum : return "InversionVyObs"; 121 case InversionVzObsEnum : return "InversionVzObs"; 122 case InversionVelObsEnum : return "InversionVelObs"; 123 case InversionThicknessObsEnum : return "InversionThicknessObs"; 104 124 case DiagnosticSpcvxEnum : return "DiagnosticSpcvx"; 105 125 case DiagnosticSpcvyEnum : return "DiagnosticSpcvy"; … … 139 159 case AdjointHorizAnalysisEnum : return "AdjointHorizAnalysis"; 140 160 case AdjointBalancethicknessAnalysisEnum : return "AdjointBalancethicknessAnalysis"; 141 case ControlAnalysisEnum : return "ControlAnalysis";142 161 case ThermalSolutionEnum : return "ThermalSolution"; 143 162 case ThermalAnalysisEnum : return "ThermalAnalysis"; … … 234 253 case BedSlopeYEnum : return "BedSlopeY"; 235 254 case BoundaryEnum : return "Boundary"; 236 case CmResponseEnum : return "CmResponse";237 case CmResponsesEnum : return "CmResponses";238 255 case ConstantEnum : return "Constant"; 239 case ControlTypeEnum : return "ControlType";240 256 case ConvergedEnum : return "Converged"; 241 257 case ElementonbedEnum : return "Elementonbed"; … … 276 292 case ThicknessEnum : return "Thickness"; 277 293 case ThicknessCoeffEnum : return "ThicknessCoeff"; 278 case ThicknessObsEnum : return "ThicknessObs";279 294 case TypeEnum : return "Type"; 280 295 case VelEnum : return "Vel"; 281 case VelObsEnum : return "VelObs";282 296 case VxAverageEnum : return "VxAverage"; 283 297 case VxEnum : return "Vx"; 284 case VxObsEnum : return "VxObs";285 298 case VxPicardEnum : return "VxPicard"; 286 299 case QmuVxEnum : return "QmuVx"; 287 300 case VyAverageEnum : return "VyAverage"; 288 301 case VyEnum : return "Vy"; 289 case VyObsEnum : return "VyObs";290 302 case VyPicardEnum : return "VyPicard"; 291 303 case QmuVyEnum : return "QmuVy"; 292 304 case VzEnum : return "Vz"; 293 case VzObsEnum : return "VzObs";294 305 case VzPicardEnum : return "VzPicard"; 295 306 case VzMacAyealEnum : return "VzMacAyeal"; … … 297 308 case VzStokesEnum : return "VzStokes"; 298 309 case QmuVzEnum : return "QmuVz"; 299 case WeightsEnum : return "Weights";300 310 case P0Enum : return "P0"; 301 311 case P1Enum : return "P1"; … … 340 350 case ColinearEnum : return "Colinear"; 341 351 case SeparateEnum : return "Separate"; 342 case CmGradientEnum : return "CmGradient";343 case CmJumpEnum : return "CmJump";344 case CmMaxEnum : return "CmMax";345 case CmMinEnum : return "CmMin";346 352 case AdjointEnum : return "Adjoint"; 347 353 case GradientEnum : return "Gradient"; … … 353 359 case ControlSteadyEnum : return "ControlSteady"; 354 360 case DimEnum : return "Dim"; 355 case EpsCmEnum : return "EpsCm";356 361 case NumberOfElementsEnum : return "NumberOfElements"; 357 362 case NumberOfVerticesEnum : return "NumberOfVertices"; … … 398 403 case TransientInputEnum : return "TransientInput"; 399 404 case NumberOfElements2DEnum : return "NumberOfElements2D"; 400 case NumControlTypeEnum : return "NumControlType";401 405 case YEnum : return "Y"; 402 406 case NumberOfNodes2DEnum : return "NumberOfNodes2D"; … … 406 410 case Elements2DEnum : return "Elements2D"; 407 411 case XEnum : return "X"; 408 case NumCmResponsesEnum : return "NumCmResponses";409 412 case ElementconnectivityEnum : return "Elementconnectivity"; 410 413 case NumlayersEnum : return "Numlayers"; 411 414 case LowerelementsEnum : return "Lowerelements"; 412 case NstepsEnum : return "Nsteps";413 case MaxiterEnum : return "Maxiter";414 case TolxEnum : return "Tolx";415 case OptscalEnum : return "Optscal";416 415 case OutputfilenameEnum : return "Outputfilename"; 417 416 case WaterfractionEnum : return "Waterfraction"; -
issm/trunk/src/c/modules/ModelProcessorx/Control/CreateParametersControl.cpp
r9563 r9681 30 30 31 31 /*retrieve some parameters: */ 32 iomodel->Constant(&control_analysis, ControlAnalysisEnum);33 parameters->AddObject(new BoolParam( ControlAnalysisEnum,control_analysis));32 iomodel->Constant(&control_analysis,InversionIscontrolEnum); 33 parameters->AddObject(new BoolParam(InversionIscontrolEnum,control_analysis)); 34 34 35 35 if(control_analysis){ 36 36 37 37 /*How many controls and how many responses?*/ 38 parameters->AddObject(iomodel->CopyConstantObject( NumControlTypeEnum));39 parameters->AddObject(iomodel->CopyConstantObject( NumCmResponsesEnum));40 parameters->AddObject(iomodel->CopyConstantObject( NstepsEnum));41 parameters->AddObject(iomodel->CopyConstantObject( EpsCmEnum));42 parameters->AddObject(iomodel->CopyConstantObject( CmGradientEnum));38 parameters->AddObject(iomodel->CopyConstantObject(InversionNumControlParametersEnum)); 39 parameters->AddObject(iomodel->CopyConstantObject(InversionNumCostFunctionsEnum)); 40 parameters->AddObject(iomodel->CopyConstantObject(InversionNstepsEnum)); 41 parameters->AddObject(iomodel->CopyConstantObject(InversionCostFunctionThresholdEnum)); 42 parameters->AddObject(iomodel->CopyConstantObject(InversionGradientOnlyEnum)); 43 43 44 44 /*What solution type?*/ … … 51 51 52 52 /*Now, recover fit, optscal and maxiter as vectors: */ 53 iomodel->FetchData(&control_type,NULL,&num_control_type, ControlTypeEnum);54 iomodel->FetchData(&cm_responses,&nsteps,&num_cm_responses, CmResponsesEnum);55 iomodel->FetchData(&cm_jump,&nsteps,NULL, CmJumpEnum);56 iomodel->FetchData(&optscal,NULL,NULL, OptscalEnum);57 iomodel->FetchData(&maxiter,NULL,NULL, MaxiterEnum);53 iomodel->FetchData(&control_type,NULL,&num_control_type,InversionControlParametersEnum); 54 iomodel->FetchData(&cm_responses,&nsteps,&num_cm_responses,InversionCostFunctionsEnum); 55 iomodel->FetchData(&cm_jump,&nsteps,NULL,InversionStepThresholdEnum); 56 iomodel->FetchData(&optscal,NULL,NULL,InversionGradientScalingEnum); 57 iomodel->FetchData(&maxiter,NULL,NULL,InversionMaxiterPerStepEnum); 58 58 59 parameters->AddObject(new IntVecParam( ControlTypeEnum,control_type,num_control_type));60 parameters->AddObject(new DoubleMatParam( OptscalEnum,optscal,nsteps,num_control_type));61 parameters->AddObject(new DoubleMatParam( CmResponsesEnum,cm_responses,nsteps,num_cm_responses));62 parameters->AddObject(new DoubleVecParam( CmJumpEnum,cm_jump,nsteps));63 parameters->AddObject(new DoubleVecParam( MaxiterEnum,maxiter,nsteps));59 parameters->AddObject(new IntVecParam(InversionControlParametersEnum,control_type,num_control_type)); 60 parameters->AddObject(new DoubleMatParam(InversionGradientScalingEnum,optscal,nsteps,num_control_type)); 61 parameters->AddObject(new DoubleMatParam(InversionCostFunctionsEnum,cm_responses,nsteps,num_cm_responses)); 62 parameters->AddObject(new DoubleVecParam(InversionStepThresholdEnum,cm_jump,nsteps)); 63 parameters->AddObject(new DoubleVecParam(InversionMaxiterPerStepEnum,maxiter,nsteps)); 64 64 65 65 xfree((void**)&control_type); -
issm/trunk/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp
r9646 r9681 28 28 /*Fetch parameters: */ 29 29 iomodel->Constant(&numberofelements,NumberOfElementsEnum); 30 iomodel->Constant(&control_analysis, ControlAnalysisEnum);31 iomodel->Constant(&num_control_type, NumControlTypeEnum);30 iomodel->Constant(&control_analysis,InversionIscontrolEnum); 31 iomodel->Constant(&num_control_type,InversionNumControlParametersEnum); 32 32 33 33 /*Now, return if no control*/ … … 36 36 /*Fetch data needed: */ 37 37 iomodel->FetchData(1,ElementsEnum); 38 iomodel->FetchDataToInput(elements, VxObsEnum);39 iomodel->FetchDataToInput(elements, VyObsEnum);40 iomodel->FetchDataToInput(elements, ThicknessObsEnum);38 iomodel->FetchDataToInput(elements,InversionVxObsEnum); 39 iomodel->FetchDataToInput(elements,InversionVyObsEnum); 40 iomodel->FetchDataToInput(elements,InversionThicknessObsEnum); 41 41 42 iomodel->FetchData(4, ControlTypeEnum,WeightsEnum,CmMinEnum,CmMaxEnum);42 iomodel->FetchData(4,InversionControlParametersEnum,InversionCostFunctionsCoefficientsEnum,InversionMinParametersEnum,InversionMaxParametersEnum); 43 43 for(i=0;i<num_control_type;i++){ 44 switch((int)iomodel->Data( ControlTypeEnum)[i]){44 switch((int)iomodel->Data(InversionControlParametersEnum)[i]){ 45 45 case BalancethicknessThickeningRateEnum: iomodel->FetchData(1,BalancethicknessThickeningRateEnum); break; 46 46 case VxEnum: iomodel->FetchData(1,VxEnum); break; … … 48 48 case FrictionCoefficientEnum: iomodel->FetchData(1,FrictionCoefficientEnum); break; 49 49 case MaterialsRheologyBbarEnum: iomodel->FetchData(1,MaterialsRheologyBEnum); break; 50 default: _error_("Control %s not implemented yet",EnumToStringx((int)iomodel->Data( ControlTypeEnum)[i]));50 default: _error_("Control %s not implemented yet",EnumToStringx((int)iomodel->Data(InversionControlParametersEnum)[i])); 51 51 } 52 52 } … … 66 66 67 67 /*Free data: */ 68 iomodel->DeleteData(1+4+5,ElementsEnum, ControlTypeEnum,WeightsEnum,CmMinEnum,CmMaxEnum,BalancethicknessThickeningRateEnum,VxEnum,VyEnum,FrictionCoefficientEnum,MaterialsRheologyBEnum);68 iomodel->DeleteData(1+4+5,ElementsEnum,InversionControlParametersEnum,InversionCostFunctionsCoefficientsEnum,InversionMinParametersEnum,InversionMaxParametersEnum,BalancethicknessThickeningRateEnum,VxEnum,VyEnum,FrictionCoefficientEnum,MaterialsRheologyBEnum); 69 69 } -
issm/trunk/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp
r9636 r9681 31 31 iomodel->Constant(&numberofelements,NumberOfElementsEnum); 32 32 iomodel->Constant(&numberofvertices,NumberOfVerticesEnum); 33 iomodel->Constant(&control_analysis, ControlAnalysisEnum);33 iomodel->Constant(&control_analysis,InversionIscontrolEnum); 34 34 35 35 /*Did we already create the elements? : */ … … 47 47 iomodel->FetchData(4,ElementsEnum,ElementconnectivityEnum,MaterialsRheologyBEnum,MaterialsRheologyNEnum); 48 48 if(dim==3) iomodel->FetchData(2,UpperelementsEnum,LowerelementsEnum); 49 if(control_analysis)iomodel->FetchData(3, ControlTypeEnum,CmMinEnum,CmMaxEnum);49 if(control_analysis)iomodel->FetchData(3,InversionControlParametersEnum,InversionMinParametersEnum,InversionMaxParametersEnum); 50 50 51 51 /*Create elements and materials: */ … … 64 64 /*Free data: */ 65 65 iomodel->DeleteData(9,ElementsEnum,ElementconnectivityEnum,UpperelementsEnum,LowerelementsEnum, 66 MaterialsRheologyBEnum,MaterialsRheologyNEnum, ControlTypeEnum,CmMinEnum,CmMaxEnum);66 MaterialsRheologyBEnum,MaterialsRheologyNEnum,InversionControlParametersEnum,InversionMinParametersEnum,InversionMaxParametersEnum); 67 67 68 68 /*Add new constrant material property tgo materials, at the end: */ -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp
r9661 r9681 28 28 iomodel->Constant(&dim,DimEnum); 29 29 iomodel->Constant(&numberofelements,NumberOfElementsEnum); 30 iomodel->Constant(&control_analysis, ControlAnalysisEnum);30 iomodel->Constant(&control_analysis,InversionIscontrolEnum); 31 31 iomodel->Constant(&dakota_analysis,QmuIsdakotaEnum); 32 32 … … 59 59 iomodel->FetchDataToInput(elements,MaterialsRheologyBEnum); 60 60 iomodel->FetchDataToInput(elements,MaterialsRheologyNEnum); 61 iomodel->FetchDataToInput(elements,VxEnum, VxObsEnum,0);62 iomodel->FetchDataToInput(elements,VyEnum, VyObsEnum,0);61 iomodel->FetchDataToInput(elements,VxEnum,InversionVxObsEnum,0); 62 iomodel->FetchDataToInput(elements,VyEnum,InversionVyObsEnum,0); 63 63 iomodel->FetchDataToInput(elements,BathymetryEnum); 64 64 … … 75 75 76 76 if(control_analysis){ 77 iomodel->FetchDataToInput(elements, VxObsEnum);78 iomodel->FetchDataToInput(elements, VyObsEnum);77 iomodel->FetchDataToInput(elements,InversionVxObsEnum); 78 iomodel->FetchDataToInput(elements,InversionVyObsEnum); 79 79 } 80 80 81 81 /*Post-process: */ 82 82 elements->InputDuplicate(VxEnum,VxPicardEnum); 83 elements->InputDuplicate(VxEnum, VxObsEnum);83 elements->InputDuplicate(VxEnum,InversionVxObsEnum); 84 84 if(dakota_analysis)elements->InputDuplicate(VxEnum,QmuVxEnum); 85 85 86 86 elements->InputDuplicate(VyEnum,VyPicardEnum); 87 elements->InputDuplicate(VyEnum, VyObsEnum);87 elements->InputDuplicate(VyEnum,InversionVyObsEnum); 88 88 if(dakota_analysis)elements->InputDuplicate(VyEnum,QmuVyEnum); 89 89 90 90 if(dim==3){ 91 91 elements->InputDuplicate(VzEnum,VzPicardEnum); 92 elements->InputDuplicate(VzEnum, VzObsEnum);92 elements->InputDuplicate(VzEnum,InversionVzObsEnum); 93 93 if(dakota_analysis)elements->InputDuplicate(VzEnum,QmuVzEnum); 94 94 } -
issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp
r9680 r9681 100 100 else if (strcmp(name,"TransientRequestedOutputs")==0) return TransientRequestedOutputsEnum; 101 101 else if (strcmp(name,"TransientNumRequestedOutputs")==0) return TransientNumRequestedOutputsEnum; 102 else if (strcmp(name,"InversionIscontrol")==0) return InversionIscontrolEnum; 103 else if (strcmp(name,"InversionControlParameters")==0) return InversionControlParametersEnum; 104 else if (strcmp(name,"InversionCostFunctions")==0) return InversionCostFunctionsEnum; 105 else if (strcmp(name,"InversionCostFunction")==0) return InversionCostFunctionEnum; 106 else if (strcmp(name,"InversionCostFunctionsCoefficients")==0) return InversionCostFunctionsCoefficientsEnum; 107 else if (strcmp(name,"InversionNsteps")==0) return InversionNstepsEnum; 108 else if (strcmp(name,"InversionMaxiterPerStep")==0) return InversionMaxiterPerStepEnum; 109 else if (strcmp(name,"InversionGradientScaling")==0) return InversionGradientScalingEnum; 110 else if (strcmp(name,"InversionGradientOnly")==0) return InversionGradientOnlyEnum; 111 else if (strcmp(name,"InversionCostFunctionThreshold")==0) return InversionCostFunctionThresholdEnum; 112 else if (strcmp(name,"InversionMaxParameters")==0) return InversionMaxParametersEnum; 113 else if (strcmp(name,"InversionMinParameters")==0) return InversionMinParametersEnum; 114 else if (strcmp(name,"InversionStepThreshold")==0) return InversionStepThresholdEnum; 115 else if (strcmp(name,"InversionNumControlParameters")==0) return InversionNumControlParametersEnum; 116 else if (strcmp(name,"InversionNumCostFunctions")==0) return InversionNumCostFunctionsEnum; 117 else if (strcmp(name,"InversionVxObs")==0) return InversionVxObsEnum; 118 else if (strcmp(name,"InversionVyObs")==0) return InversionVyObsEnum; 119 else if (strcmp(name,"InversionVzObs")==0) return InversionVzObsEnum; 120 else if (strcmp(name,"InversionVelObs")==0) return InversionVelObsEnum; 121 else if (strcmp(name,"InversionThicknessObs")==0) return InversionThicknessObsEnum; 102 122 else if (strcmp(name,"DiagnosticSpcvx")==0) return DiagnosticSpcvxEnum; 103 123 else if (strcmp(name,"DiagnosticSpcvy")==0) return DiagnosticSpcvyEnum; … … 137 157 else if (strcmp(name,"AdjointHorizAnalysis")==0) return AdjointHorizAnalysisEnum; 138 158 else if (strcmp(name,"AdjointBalancethicknessAnalysis")==0) return AdjointBalancethicknessAnalysisEnum; 139 else if (strcmp(name,"ControlAnalysis")==0) return ControlAnalysisEnum;140 159 else if (strcmp(name,"ThermalSolution")==0) return ThermalSolutionEnum; 141 160 else if (strcmp(name,"ThermalAnalysis")==0) return ThermalAnalysisEnum; … … 232 251 else if (strcmp(name,"BedSlopeY")==0) return BedSlopeYEnum; 233 252 else if (strcmp(name,"Boundary")==0) return BoundaryEnum; 234 else if (strcmp(name,"CmResponse")==0) return CmResponseEnum;235 else if (strcmp(name,"CmResponses")==0) return CmResponsesEnum;236 253 else if (strcmp(name,"Constant")==0) return ConstantEnum; 237 else if (strcmp(name,"ControlType")==0) return ControlTypeEnum;238 254 else if (strcmp(name,"Converged")==0) return ConvergedEnum; 239 255 else if (strcmp(name,"Elementonbed")==0) return ElementonbedEnum; … … 274 290 else if (strcmp(name,"Thickness")==0) return ThicknessEnum; 275 291 else if (strcmp(name,"ThicknessCoeff")==0) return ThicknessCoeffEnum; 276 else if (strcmp(name,"ThicknessObs")==0) return ThicknessObsEnum;277 292 else if (strcmp(name,"Type")==0) return TypeEnum; 278 293 else if (strcmp(name,"Vel")==0) return VelEnum; 279 else if (strcmp(name,"VelObs")==0) return VelObsEnum;280 294 else if (strcmp(name,"VxAverage")==0) return VxAverageEnum; 281 295 else if (strcmp(name,"Vx")==0) return VxEnum; 282 else if (strcmp(name,"VxObs")==0) return VxObsEnum;283 296 else if (strcmp(name,"VxPicard")==0) return VxPicardEnum; 284 297 else if (strcmp(name,"QmuVx")==0) return QmuVxEnum; 285 298 else if (strcmp(name,"VyAverage")==0) return VyAverageEnum; 286 299 else if (strcmp(name,"Vy")==0) return VyEnum; 287 else if (strcmp(name,"VyObs")==0) return VyObsEnum;288 300 else if (strcmp(name,"VyPicard")==0) return VyPicardEnum; 289 301 else if (strcmp(name,"QmuVy")==0) return QmuVyEnum; 290 302 else if (strcmp(name,"Vz")==0) return VzEnum; 291 else if (strcmp(name,"VzObs")==0) return VzObsEnum;292 303 else if (strcmp(name,"VzPicard")==0) return VzPicardEnum; 293 304 else if (strcmp(name,"VzMacAyeal")==0) return VzMacAyealEnum; … … 295 306 else if (strcmp(name,"VzStokes")==0) return VzStokesEnum; 296 307 else if (strcmp(name,"QmuVz")==0) return QmuVzEnum; 297 else if (strcmp(name,"Weights")==0) return WeightsEnum;298 308 else if (strcmp(name,"P0")==0) return P0Enum; 299 309 else if (strcmp(name,"P1")==0) return P1Enum; … … 338 348 else if (strcmp(name,"Colinear")==0) return ColinearEnum; 339 349 else if (strcmp(name,"Separate")==0) return SeparateEnum; 340 else if (strcmp(name,"CmGradient")==0) return CmGradientEnum;341 else if (strcmp(name,"CmJump")==0) return CmJumpEnum;342 else if (strcmp(name,"CmMax")==0) return CmMaxEnum;343 else if (strcmp(name,"CmMin")==0) return CmMinEnum;344 350 else if (strcmp(name,"Adjoint")==0) return AdjointEnum; 345 351 else if (strcmp(name,"Gradient")==0) return GradientEnum; … … 351 357 else if (strcmp(name,"ControlSteady")==0) return ControlSteadyEnum; 352 358 else if (strcmp(name,"Dim")==0) return DimEnum; 353 else if (strcmp(name,"EpsCm")==0) return EpsCmEnum;354 359 else if (strcmp(name,"NumberOfElements")==0) return NumberOfElementsEnum; 355 360 else if (strcmp(name,"NumberOfVertices")==0) return NumberOfVerticesEnum; … … 396 401 else if (strcmp(name,"TransientInput")==0) return TransientInputEnum; 397 402 else if (strcmp(name,"NumberOfElements2D")==0) return NumberOfElements2DEnum; 398 else if (strcmp(name,"NumControlType")==0) return NumControlTypeEnum;399 403 else if (strcmp(name,"Y")==0) return YEnum; 400 404 else if (strcmp(name,"NumberOfNodes2D")==0) return NumberOfNodes2DEnum; … … 404 408 else if (strcmp(name,"Elements2D")==0) return Elements2DEnum; 405 409 else if (strcmp(name,"X")==0) return XEnum; 406 else if (strcmp(name,"NumCmResponses")==0) return NumCmResponsesEnum;407 410 else if (strcmp(name,"Elementconnectivity")==0) return ElementconnectivityEnum; 408 411 else if (strcmp(name,"Numlayers")==0) return NumlayersEnum; 409 412 else if (strcmp(name,"Lowerelements")==0) return LowerelementsEnum; 410 else if (strcmp(name,"Nsteps")==0) return NstepsEnum;411 else if (strcmp(name,"Maxiter")==0) return MaxiterEnum;412 else if (strcmp(name,"Tolx")==0) return TolxEnum;413 else if (strcmp(name,"Optscal")==0) return OptscalEnum;414 413 else if (strcmp(name,"Outputfilename")==0) return OutputfilenameEnum; 415 414 else if (strcmp(name,"Waterfraction")==0) return WaterfractionEnum; -
issm/trunk/src/c/objects/Elements/Penta.cpp
r9679 r9681 4456 4456 int *responses = NULL; 4457 4457 int num_responses,resp; 4458 this->parameters->FindParam(&num_responses, NumCmResponsesEnum);4458 this->parameters->FindParam(&num_responses,InversionNumCostFunctionsEnum); 4459 4459 this->parameters->FindParam(&responses,NULL,NULL,StepResponsesEnum); 4460 4460 … … 4780 4780 4781 4781 /*retrieve some parameters: */ 4782 this->parameters->FindParam(&num_controls, NumControlTypeEnum);4783 this->parameters->FindParam(&control_type,NULL, ControlTypeEnum);4782 this->parameters->FindParam(&num_controls,InversionNumControlParametersEnum); 4783 this->parameters->FindParam(&control_type,NULL,InversionControlParametersEnum); 4784 4784 4785 4785 for(int i=0;i<num_controls;i++){ … … 5154 5154 /*Fetch parameters: */ 5155 5155 iomodel->Constant(&yts,ConstantsYtsEnum); 5156 iomodel->Constant(&control_analysis, ControlAnalysisEnum);5157 iomodel->Constant(&num_control_type, NumControlTypeEnum);5158 iomodel->Constant(&num_cm_responses, NumCmResponsesEnum);5156 iomodel->Constant(&control_analysis,InversionIscontrolEnum); 5157 iomodel->Constant(&num_control_type,InversionNumControlParametersEnum); 5158 iomodel->Constant(&num_cm_responses,InversionNumCostFunctionsEnum); 5159 5159 5160 5160 /*Checks if debuging*/ … … 5169 5169 5170 5170 /*Control Inputs*/ 5171 if (control_analysis && iomodel->Data( ControlTypeEnum)){5171 if (control_analysis && iomodel->Data(InversionControlParametersEnum)){ 5172 5172 for(i=0;i<num_control_type;i++){ 5173 switch((int)iomodel->Data( ControlTypeEnum)[i]){5173 switch((int)iomodel->Data(InversionControlParametersEnum)[i]){ 5174 5174 case BalancethicknessThickeningRateEnum: 5175 5175 if (iomodel->Data(BalancethicknessThickeningRateEnum)){ 5176 5176 for(j=0;j<6;j++)nodeinputs[j]=iomodel->Data(BalancethicknessThickeningRateEnum)[penta_vertex_ids[j]-1]/yts; 5177 for(j=0;j<6;j++)cmmininputs[j]=iomodel->Data( CmMinEnum)[(penta_vertex_ids[j]-1)*num_control_type+i]/yts;5178 for(j=0;j<6;j++)cmmaxinputs[j]=iomodel->Data( CmMaxEnum)[(penta_vertex_ids[j]-1)*num_control_type+i]/yts;5177 for(j=0;j<6;j++)cmmininputs[j]=iomodel->Data(InversionMinParametersEnum)[(penta_vertex_ids[j]-1)*num_control_type+i]/yts; 5178 for(j=0;j<6;j++)cmmaxinputs[j]=iomodel->Data(InversionMaxParametersEnum)[(penta_vertex_ids[j]-1)*num_control_type+i]/yts; 5179 5179 this->inputs->AddInput(new ControlInput(BalancethicknessThickeningRateEnum,PentaVertexInputEnum,nodeinputs,cmmininputs,cmmaxinputs,i+1)); 5180 5180 } … … 5183 5183 if (iomodel->Data(VxEnum)){ 5184 5184 for(j=0;j<6;j++)nodeinputs[j]=iomodel->Data(VxEnum)[penta_vertex_ids[j]-1]/yts; 5185 for(j=0;j<6;j++)cmmininputs[j]=iomodel->Data( CmMinEnum)[(penta_vertex_ids[j]-1)*num_control_type+i]/yts;5186 for(j=0;j<6;j++)cmmaxinputs[j]=iomodel->Data( CmMaxEnum)[(penta_vertex_ids[j]-1)*num_control_type+i]/yts;5185 for(j=0;j<6;j++)cmmininputs[j]=iomodel->Data(InversionMinParametersEnum)[(penta_vertex_ids[j]-1)*num_control_type+i]/yts; 5186 for(j=0;j<6;j++)cmmaxinputs[j]=iomodel->Data(InversionMaxParametersEnum)[(penta_vertex_ids[j]-1)*num_control_type+i]/yts; 5187 5187 this->inputs->AddInput(new ControlInput(VxEnum,PentaVertexInputEnum,nodeinputs,cmmininputs,cmmaxinputs,i+1)); 5188 5188 } … … 5191 5191 if (iomodel->Data(VyEnum)){ 5192 5192 for(j=0;j<6;j++)nodeinputs[j]=iomodel->Data(VyEnum)[penta_vertex_ids[j]-1]/yts; 5193 for(j=0;j<6;j++)cmmininputs[j]=iomodel->Data( CmMinEnum)[(penta_vertex_ids[j]-1)*num_control_type+i]/yts;5194 for(j=0;j<6;j++)cmmaxinputs[j]=iomodel->Data( CmMaxEnum)[(penta_vertex_ids[j]-1)*num_control_type+i]/yts;5193 for(j=0;j<6;j++)cmmininputs[j]=iomodel->Data(InversionMinParametersEnum)[(penta_vertex_ids[j]-1)*num_control_type+i]/yts; 5194 for(j=0;j<6;j++)cmmaxinputs[j]=iomodel->Data(InversionMaxParametersEnum)[(penta_vertex_ids[j]-1)*num_control_type+i]/yts; 5195 5195 this->inputs->AddInput(new ControlInput(VyEnum,PentaVertexInputEnum,nodeinputs,cmmininputs,cmmaxinputs,i+1)); 5196 5196 } … … 5199 5199 if (iomodel->Data(FrictionCoefficientEnum)){ 5200 5200 for(j=0;j<6;j++)nodeinputs[j]=iomodel->Data(FrictionCoefficientEnum)[penta_vertex_ids[j]-1]; 5201 for(j=0;j<6;j++)cmmininputs[j]=iomodel->Data( CmMinEnum)[(penta_vertex_ids[j]-1)*num_control_type+i];5202 for(j=0;j<6;j++)cmmaxinputs[j]=iomodel->Data( CmMaxEnum)[(penta_vertex_ids[j]-1)*num_control_type+i];5201 for(j=0;j<6;j++)cmmininputs[j]=iomodel->Data(InversionMinParametersEnum)[(penta_vertex_ids[j]-1)*num_control_type+i]; 5202 for(j=0;j<6;j++)cmmaxinputs[j]=iomodel->Data(InversionMaxParametersEnum)[(penta_vertex_ids[j]-1)*num_control_type+i]; 5203 5203 this->inputs->AddInput(new ControlInput(FrictionCoefficientEnum,PentaVertexInputEnum,nodeinputs,cmmininputs,cmmaxinputs,i+1)); 5204 5204 } … … 5207 5207 /*Matice will take care of it*/ break; 5208 5208 default: 5209 _error_("Control %s not implemented yet",EnumToStringx((int)iomodel->Data( ControlTypeEnum)[i]));5209 _error_("Control %s not implemented yet",EnumToStringx((int)iomodel->Data(InversionControlParametersEnum)[i])); 5210 5210 } 5211 5211 } … … 5244 5244 5245 5245 /*DatasetInputs*/ 5246 if (control_analysis && iomodel->Data( WeightsEnum)) {5246 if (control_analysis && iomodel->Data(InversionCostFunctionsCoefficientsEnum)) { 5247 5247 5248 5248 /*Create inputs and add to DataSetInput*/ 5249 DatasetInput* datasetinput=new DatasetInput( WeightsEnum);5249 DatasetInput* datasetinput=new DatasetInput(InversionCostFunctionsCoefficientsEnum); 5250 5250 for(i=0;i<num_cm_responses;i++){ 5251 for(j=0;j<6;j++)nodeinputs[j]=iomodel->Data( WeightsEnum)[(penta_vertex_ids[j]-1)*num_cm_responses+i];5252 datasetinput->inputs->AddObject(new PentaVertexInput( WeightsEnum,nodeinputs));5251 for(j=0;j<6;j++)nodeinputs[j]=iomodel->Data(InversionCostFunctionsCoefficientsEnum)[(penta_vertex_ids[j]-1)*num_cm_responses+i]; 5252 datasetinput->inputs->AddObject(new PentaVertexInput(InversionCostFunctionsCoefficientsEnum,nodeinputs)); 5253 5253 } 5254 5254 … … 6595 6595 name==VyEnum || 6596 6596 name==VzEnum || 6597 name== VxObsEnum ||6598 name== VyObsEnum ||6599 name== VzObsEnum ||6597 name==InversionVxObsEnum || 6598 name==InversionVyObsEnum || 6599 name==InversionVzObsEnum || 6600 6600 name==TemperatureEnum || 6601 6601 name==FrictionCoefficientEnum || … … 7552 7552 /*default vx,vy and vz: either observation or 0 */ 7553 7553 if(!iomodel->Data(VxEnum)){ 7554 if (iomodel->Data( VxObsEnum)) for(i=0;i<6;i++)nodeinputs[i]=iomodel->Data(VxObsEnum)[penta_vertex_ids[i]-1]/yts;7554 if (iomodel->Data(InversionVxObsEnum)) for(i=0;i<6;i++)nodeinputs[i]=iomodel->Data(InversionVxObsEnum)[penta_vertex_ids[i]-1]/yts; 7555 7555 else for(i=0;i<6;i++)nodeinputs[i]=0; 7556 7556 this->inputs->AddInput(new PentaVertexInput(VxEnum,nodeinputs)); … … 7559 7559 } 7560 7560 if(!iomodel->Data(VyEnum)){ 7561 if (iomodel->Data( VyObsEnum)) for(i=0;i<6;i++)nodeinputs[i]=iomodel->Data(VyObsEnum)[penta_vertex_ids[i]-1]/yts;7561 if (iomodel->Data(InversionVyObsEnum)) for(i=0;i<6;i++)nodeinputs[i]=iomodel->Data(InversionVyObsEnum)[penta_vertex_ids[i]-1]/yts; 7562 7562 else for(i=0;i<6;i++)nodeinputs[i]=0; 7563 7563 this->inputs->AddInput(new PentaVertexInput(VyEnum,nodeinputs)); … … 7566 7566 } 7567 7567 if(!iomodel->Data(VzEnum)){ 7568 if (iomodel->Data( VzObsEnum)) for(i=0;i<6;i++)nodeinputs[i]=iomodel->Data(VzObsEnum)[penta_vertex_ids[i]-1]/yts;7568 if (iomodel->Data(InversionVzObsEnum)) for(i=0;i<6;i++)nodeinputs[i]=iomodel->Data(InversionVzObsEnum)[penta_vertex_ids[i]-1]/yts; 7569 7569 else for(i=0;i<6;i++)nodeinputs[i]=0; 7570 7570 this->inputs->AddInput(new PentaVertexInput(VzEnum,nodeinputs)); -
issm/trunk/src/c/objects/Elements/Tria.cpp
r9679 r9681 1456 1456 /*Retrieve all inputs and parameters*/ 1457 1457 GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES); 1458 this->parameters->FindParam(&num_responses, NumCmResponsesEnum);1458 this->parameters->FindParam(&num_responses,InversionNumCostFunctionsEnum); 1459 1459 this->parameters->FindParam(&responses,NULL,NULL,StepResponsesEnum); 1460 1460 Input* thickness_input = inputs->GetInput(ThicknessEnum); _assert_(thickness_input); 1461 Input* thicknessobs_input = inputs->GetInput( ThicknessObsEnum);_assert_(thicknessobs_input);1462 Input* weights_input = inputs->GetInput( WeightsEnum); _assert_(weights_input);1461 Input* thicknessobs_input = inputs->GetInput(InversionThicknessObsEnum);_assert_(thicknessobs_input); 1462 Input* weights_input = inputs->GetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 1463 1463 1464 1464 /* Start looping on the number of gaussian points: */ … … 1524 1524 /*Retrieve all inputs and parameters*/ 1525 1525 GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES); 1526 this->parameters->FindParam(&num_responses, NumCmResponsesEnum);1526 this->parameters->FindParam(&num_responses,InversionNumCostFunctionsEnum); 1527 1527 this->parameters->FindParam(&responses,NULL,NULL,StepResponsesEnum); 1528 Input* weights_input=inputs->GetInput( WeightsEnum); _assert_(weights_input);1528 Input* weights_input=inputs->GetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 1529 1529 Input* vx_input =inputs->GetInput(VxEnum); _assert_(vx_input); 1530 1530 Input* vy_input =inputs->GetInput(VyEnum); _assert_(vy_input); 1531 Input* vxobs_input =inputs->GetInput( VxObsEnum); _assert_(vxobs_input);1532 Input* vyobs_input =inputs->GetInput( VyObsEnum); _assert_(vyobs_input);1531 Input* vxobs_input =inputs->GetInput(InversionVxObsEnum); _assert_(vxobs_input); 1532 Input* vyobs_input =inputs->GetInput(InversionVyObsEnum); _assert_(vyobs_input); 1533 1533 1534 1534 /*Get Surface if required by one response*/ … … 1700 1700 /*Retrieve all inputs and parameters*/ 1701 1701 GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES); 1702 this->parameters->FindParam(&num_responses, NumCmResponsesEnum);1702 this->parameters->FindParam(&num_responses,InversionNumCostFunctionsEnum); 1703 1703 this->parameters->FindParam(&responses,NULL,NULL,StepResponsesEnum); 1704 Input* weights_input = inputs->GetInput( WeightsEnum); _assert_(weights_input);1704 Input* weights_input = inputs->GetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 1705 1705 Input* vx_input = inputs->GetInput(VxEnum); _assert_(vx_input); 1706 1706 Input* vy_input = inputs->GetInput(VyEnum); _assert_(vy_input); 1707 Input* vxobs_input = inputs->GetInput( VxObsEnum); _assert_(vxobs_input);1708 Input* vyobs_input = inputs->GetInput( VyObsEnum); _assert_(vyobs_input);1707 Input* vxobs_input = inputs->GetInput(InversionVxObsEnum); _assert_(vxobs_input); 1708 Input* vyobs_input = inputs->GetInput(InversionVyObsEnum); _assert_(vyobs_input); 1709 1709 1710 1710 /*Get Surface if required by one response*/ … … 2271 2271 /*Retrieve all inputs we will be needing: */ 2272 2272 GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES); 2273 Input* weights_input=inputs->GetInput( WeightsEnum); _assert_(weights_input);2273 Input* weights_input=inputs->GetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 2274 2274 Input* drag_input =inputs->GetInput(FrictionCoefficientEnum); _assert_(drag_input); 2275 2275 … … 2712 2712 int *responses = NULL; 2713 2713 int num_responses,resp; 2714 this->parameters->FindParam(&num_responses, NumCmResponsesEnum);2714 this->parameters->FindParam(&num_responses,InversionNumCostFunctionsEnum); 2715 2715 this->parameters->FindParam(&responses,NULL,NULL,StepResponsesEnum); 2716 2716 … … 2756 2756 GetDofList1(&doflist1[0]); 2757 2757 Input* rheologyb_input=matice->inputs->GetInput(MaterialsRheologyBbarEnum); _assert_(rheologyb_input); 2758 Input* weights_input=inputs->GetInput( WeightsEnum); _assert_(weights_input);2758 Input* weights_input=inputs->GetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 2759 2759 2760 2760 /* Start looping on the number of gaussian points: */ … … 2941 2941 GetDofList1(&doflist1[0]); 2942 2942 Input* dragcoefficient_input=inputs->GetInput(FrictionCoefficientEnum); _assert_(dragcoefficient_input); 2943 Input* weights_input=inputs->GetInput( WeightsEnum); _assert_(weights_input);2943 Input* weights_input=inputs->GetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 2944 2944 2945 2945 /* Start looping on the number of gaussian points: */ … … 3106 3106 3107 3107 /*retrieve some parameters: */ 3108 this->parameters->FindParam(&num_controls, NumControlTypeEnum);3109 this->parameters->FindParam(&control_type,NULL, ControlTypeEnum);3108 this->parameters->FindParam(&num_controls,InversionNumControlParametersEnum); 3109 this->parameters->FindParam(&control_type,NULL,InversionControlParametersEnum); 3110 3110 3111 3111 for(int i=0;i<num_controls;i++){ … … 3271 3271 3272 3272 /*Get parameters: */ 3273 iomodel->Constant(&control_analysis, ControlAnalysisEnum);3274 iomodel->Constant(&num_control_type, NumControlTypeEnum);3273 iomodel->Constant(&control_analysis,InversionIscontrolEnum); 3274 iomodel->Constant(&num_control_type,InversionNumControlParametersEnum); 3275 3275 iomodel->Constant(&yts,ConstantsYtsEnum); 3276 iomodel->Constant(&num_cm_responses, NumCmResponsesEnum);3276 iomodel->Constant(&num_cm_responses,InversionNumCostFunctionsEnum); 3277 3277 3278 3278 /*Recover vertices ids needed to initialize inputs*/ … … 3282 3282 3283 3283 /*Control Inputs*/ 3284 if (control_analysis && iomodel->Data( ControlTypeEnum)){3284 if (control_analysis && iomodel->Data(InversionControlParametersEnum)){ 3285 3285 for(i=0;i<num_control_type;i++){ 3286 switch((int)iomodel->Data( ControlTypeEnum)[i]){3286 switch((int)iomodel->Data(InversionControlParametersEnum)[i]){ 3287 3287 case BalancethicknessThickeningRateEnum: 3288 3288 if (iomodel->Data(BalancethicknessThickeningRateEnum)){ 3289 3289 for(j=0;j<3;j++)nodeinputs[j]=iomodel->Data(BalancethicknessThickeningRateEnum)[tria_vertex_ids[j]-1]/yts; 3290 for(j=0;j<3;j++)cmmininputs[j]=iomodel->Data( CmMinEnum)[(tria_vertex_ids[j]-1)*num_control_type+i]/yts;3291 for(j=0;j<3;j++)cmmaxinputs[j]=iomodel->Data( CmMaxEnum)[(tria_vertex_ids[j]-1)*num_control_type+i]/yts;3290 for(j=0;j<3;j++)cmmininputs[j]=iomodel->Data(InversionMinParametersEnum)[(tria_vertex_ids[j]-1)*num_control_type+i]/yts; 3291 for(j=0;j<3;j++)cmmaxinputs[j]=iomodel->Data(InversionMaxParametersEnum)[(tria_vertex_ids[j]-1)*num_control_type+i]/yts; 3292 3292 this->inputs->AddInput(new ControlInput(BalancethicknessThickeningRateEnum,TriaVertexInputEnum,nodeinputs,cmmininputs,cmmaxinputs,i+1)); 3293 3293 } … … 3296 3296 if (iomodel->Data(VxEnum)){ 3297 3297 for(j=0;j<3;j++)nodeinputs[j]=iomodel->Data(VxEnum)[tria_vertex_ids[j]-1]/yts; 3298 for(j=0;j<3;j++)cmmininputs[j]=iomodel->Data( CmMinEnum)[(tria_vertex_ids[j]-1)*num_control_type+i]/yts;3299 for(j=0;j<3;j++)cmmaxinputs[j]=iomodel->Data( CmMaxEnum)[(tria_vertex_ids[j]-1)*num_control_type+i]/yts;3298 for(j=0;j<3;j++)cmmininputs[j]=iomodel->Data(InversionMinParametersEnum)[(tria_vertex_ids[j]-1)*num_control_type+i]/yts; 3299 for(j=0;j<3;j++)cmmaxinputs[j]=iomodel->Data(InversionMaxParametersEnum)[(tria_vertex_ids[j]-1)*num_control_type+i]/yts; 3300 3300 this->inputs->AddInput(new ControlInput(VxEnum,TriaVertexInputEnum,nodeinputs,cmmininputs,cmmaxinputs,i+1)); 3301 3301 } … … 3304 3304 if (iomodel->Data(VyEnum)){ 3305 3305 for(j=0;j<3;j++)nodeinputs[j]=iomodel->Data(VyEnum)[tria_vertex_ids[j]-1]/yts; 3306 for(j=0;j<3;j++)cmmininputs[j]=iomodel->Data( CmMinEnum)[(tria_vertex_ids[j]-1)*num_control_type+i]/yts;3307 for(j=0;j<3;j++)cmmaxinputs[j]=iomodel->Data( CmMaxEnum)[(tria_vertex_ids[j]-1)*num_control_type+i]/yts;3306 for(j=0;j<3;j++)cmmininputs[j]=iomodel->Data(InversionMinParametersEnum)[(tria_vertex_ids[j]-1)*num_control_type+i]/yts; 3307 for(j=0;j<3;j++)cmmaxinputs[j]=iomodel->Data(InversionMaxParametersEnum)[(tria_vertex_ids[j]-1)*num_control_type+i]/yts; 3308 3308 this->inputs->AddInput(new ControlInput(VyEnum,TriaVertexInputEnum,nodeinputs,cmmininputs,cmmaxinputs,i+1)); 3309 3309 } … … 3312 3312 if (iomodel->Data(FrictionCoefficientEnum)){ 3313 3313 for(j=0;j<3;j++)nodeinputs[j]=iomodel->Data(FrictionCoefficientEnum)[tria_vertex_ids[j]-1]; 3314 for(j=0;j<3;j++)cmmininputs[j]=iomodel->Data( CmMinEnum)[(tria_vertex_ids[j]-1)*num_control_type+i];3315 for(j=0;j<3;j++)cmmaxinputs[j]=iomodel->Data( CmMaxEnum)[(tria_vertex_ids[j]-1)*num_control_type+i];3314 for(j=0;j<3;j++)cmmininputs[j]=iomodel->Data(InversionMinParametersEnum)[(tria_vertex_ids[j]-1)*num_control_type+i]; 3315 for(j=0;j<3;j++)cmmaxinputs[j]=iomodel->Data(InversionMaxParametersEnum)[(tria_vertex_ids[j]-1)*num_control_type+i]; 3316 3316 this->inputs->AddInput(new ControlInput(FrictionCoefficientEnum,TriaVertexInputEnum,nodeinputs,cmmininputs,cmmaxinputs,i+1)); 3317 3317 } … … 3320 3320 /*Matice will take care of it*/ break; 3321 3321 default: 3322 _error_("Control %s not implemented yet",EnumToStringx((int)iomodel->Data( ControlTypeEnum)[i]));3322 _error_("Control %s not implemented yet",EnumToStringx((int)iomodel->Data(InversionControlParametersEnum)[i])); 3323 3323 } 3324 3324 } … … 3326 3326 3327 3327 /*DatasetInputs*/ 3328 if (control_analysis && iomodel->Data( WeightsEnum)){3328 if (control_analysis && iomodel->Data(InversionCostFunctionsCoefficientsEnum)){ 3329 3329 3330 3330 /*Create inputs and add to DataSetInput*/ 3331 DatasetInput* datasetinput=new DatasetInput( WeightsEnum);3331 DatasetInput* datasetinput=new DatasetInput(InversionCostFunctionsCoefficientsEnum); 3332 3332 for(i=0;i<num_cm_responses;i++){ 3333 for(j=0;j<3;j++)nodeinputs[j]=iomodel->Data( WeightsEnum)[(tria_vertex_ids[j]-1)*num_cm_responses+i];3334 datasetinput->inputs->AddObject(new TriaVertexInput( WeightsEnum,nodeinputs));3333 for(j=0;j<3;j++)nodeinputs[j]=iomodel->Data(InversionCostFunctionsCoefficientsEnum)[(tria_vertex_ids[j]-1)*num_cm_responses+i]; 3334 datasetinput->inputs->AddObject(new TriaVertexInput(InversionCostFunctionsCoefficientsEnum,nodeinputs)); 3335 3335 } 3336 3336 … … 3986 3986 name==VxEnum || 3987 3987 name==VyEnum || 3988 name== VxObsEnum ||3989 name== VyObsEnum ||3988 name==InversionVxObsEnum || 3989 name==InversionVyObsEnum || 3990 3990 name==FrictionCoefficientEnum || 3991 3991 name==GradientEnum || … … 4499 4499 /*Retrieve all inputs we will be needing: */ 4500 4500 GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES); 4501 Input* weights_input =inputs->GetInput( WeightsEnum); _assert_(weights_input);4501 Input* weights_input =inputs->GetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 4502 4502 Input* rheologyb_input=matice->inputs->GetInput(MaterialsRheologyBbarEnum); _assert_(rheologyb_input); 4503 4503 … … 4717 4717 4718 4718 /*Retrieve all inputs we will be needing: */ 4719 Input* weights_input=inputs->GetInput( WeightsEnum); _assert_(weights_input);4719 Input* weights_input=inputs->GetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 4720 4720 Input* vx_input =inputs->GetInput(VxEnum); _assert_(vx_input); 4721 4721 Input* vy_input =inputs->GetInput(VyEnum); _assert_(vy_input); 4722 Input* vxobs_input =inputs->GetInput( VxObsEnum); _assert_(vxobs_input);4723 Input* vyobs_input =inputs->GetInput( VyObsEnum); _assert_(vyobs_input);4722 Input* vxobs_input =inputs->GetInput(InversionVxObsEnum); _assert_(vxobs_input); 4723 Input* vyobs_input =inputs->GetInput(InversionVyObsEnum); _assert_(vyobs_input); 4724 4724 4725 4725 /* Start looping on the number of gaussian points: */ … … 4808 4808 /*Retrieve all inputs we will be needing: */ 4809 4809 inputs->GetParameterValue(&S,SurfaceAreaEnum); 4810 Input* weights_input=inputs->GetInput( WeightsEnum); _assert_(weights_input);4810 Input* weights_input=inputs->GetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 4811 4811 Input* vx_input =inputs->GetInput(VxEnum); _assert_(vx_input); 4812 4812 Input* vy_input =inputs->GetInput(VyEnum); _assert_(vy_input); 4813 Input* vxobs_input =inputs->GetInput( VxObsEnum); _assert_(vxobs_input);4814 Input* vyobs_input =inputs->GetInput( VyObsEnum); _assert_(vyobs_input);4813 Input* vxobs_input =inputs->GetInput(InversionVxObsEnum); _assert_(vxobs_input); 4814 Input* vyobs_input =inputs->GetInput(InversionVyObsEnum); _assert_(vyobs_input); 4815 4815 4816 4816 /* Start looping on the number of gaussian points: */ … … 4871 4871 4872 4872 /*Retrieve all inputs we will be needing: */ 4873 Input* weights_input=inputs->GetInput( WeightsEnum); _assert_(weights_input);4873 Input* weights_input=inputs->GetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 4874 4874 Input* vx_input =inputs->GetInput(VxEnum); _assert_(vx_input); 4875 4875 Input* vy_input =inputs->GetInput(VyEnum); _assert_(vy_input); 4876 Input* vxobs_input =inputs->GetInput( VxObsEnum); _assert_(vxobs_input);4877 Input* vyobs_input =inputs->GetInput( VyObsEnum); _assert_(vyobs_input);4876 Input* vxobs_input =inputs->GetInput(InversionVxObsEnum); _assert_(vxobs_input); 4877 Input* vyobs_input =inputs->GetInput(InversionVyObsEnum); _assert_(vyobs_input); 4878 4878 4879 4879 /* Start looping on the number of gaussian points: */ … … 4936 4936 4937 4937 /*Retrieve all inputs we will be needing: */ 4938 Input* weights_input=inputs->GetInput( WeightsEnum); _assert_(weights_input);4938 Input* weights_input=inputs->GetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 4939 4939 Input* vx_input =inputs->GetInput(VxEnum); _assert_(vx_input); 4940 4940 Input* vy_input =inputs->GetInput(VyEnum); _assert_(vy_input); 4941 Input* vxobs_input =inputs->GetInput( VxObsEnum); _assert_(vxobs_input);4942 Input* vyobs_input =inputs->GetInput( VyObsEnum); _assert_(vyobs_input);4941 Input* vxobs_input =inputs->GetInput(InversionVxObsEnum); _assert_(vxobs_input); 4942 Input* vyobs_input =inputs->GetInput(InversionVyObsEnum); _assert_(vyobs_input); 4943 4943 4944 4944 /* Start looping on the number of gaussian points: */ … … 5025 5025 5026 5026 /*Retrieve all inputs we will be needing: */ 5027 Input* weights_input=inputs->GetInput( WeightsEnum); _assert_(weights_input);5027 Input* weights_input=inputs->GetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 5028 5028 Input* vx_input =inputs->GetInput(VxEnum); _assert_(vx_input); 5029 5029 Input* vy_input =inputs->GetInput(VyEnum); _assert_(vy_input); 5030 Input* vxobs_input =inputs->GetInput( VxObsEnum); _assert_(vxobs_input);5031 Input* vyobs_input =inputs->GetInput( VyObsEnum); _assert_(vyobs_input);5030 Input* vxobs_input =inputs->GetInput(InversionVxObsEnum); _assert_(vxobs_input); 5031 Input* vyobs_input =inputs->GetInput(InversionVyObsEnum); _assert_(vyobs_input); 5032 5032 5033 5033 /* Start looping on the number of gaussian points: */ … … 5087 5087 /*Retrieve all inputs we will be needing: */ 5088 5088 GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES); 5089 Input* weights_input =inputs->GetInput( WeightsEnum); _assert_(weights_input);5089 Input* weights_input =inputs->GetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 5090 5090 Input* thickness_input=inputs->GetInput(ThicknessEnum); _assert_(thickness_input); 5091 5091 … … 5130 5130 GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES); 5131 5131 Input* thickness_input =inputs->GetInput(ThicknessEnum); _assert_(thickness_input); 5132 Input* thicknessobs_input=inputs->GetInput( ThicknessObsEnum);_assert_(thicknessobs_input);5133 Input* weights_input =inputs->GetInput( WeightsEnum); _assert_(weights_input);5132 Input* thicknessobs_input=inputs->GetInput(InversionThicknessObsEnum);_assert_(thicknessobs_input); 5133 Input* weights_input =inputs->GetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input); 5134 5134 5135 5135 /* Start looping on the number of gaussian points: */ … … 5265 5265 /*default vx,vy and vz: either observation or 0 */ 5266 5266 if(!iomodel->Data(VxEnum)){ 5267 if (iomodel->Data( VxObsEnum)) for(i=0;i<3;i++)nodeinputs[i]=iomodel->Data(VxObsEnum)[tria_vertex_ids[i]-1]/yts;5267 if (iomodel->Data(InversionVxObsEnum)) for(i=0;i<3;i++)nodeinputs[i]=iomodel->Data(InversionVxObsEnum)[tria_vertex_ids[i]-1]/yts; 5268 5268 else for(i=0;i<3;i++)nodeinputs[i]=0; 5269 5269 this->inputs->AddInput(new TriaVertexInput(VxEnum,nodeinputs)); … … 5272 5272 } 5273 5273 if(!iomodel->Data(VyEnum)){ 5274 if (iomodel->Data( VyObsEnum)) for(i=0;i<3;i++)nodeinputs[i]=iomodel->Data(VyObsEnum)[tria_vertex_ids[i]-1]/yts;5274 if (iomodel->Data(InversionVyObsEnum)) for(i=0;i<3;i++)nodeinputs[i]=iomodel->Data(InversionVyObsEnum)[tria_vertex_ids[i]-1]/yts; 5275 5275 else for(i=0;i<3;i++)nodeinputs[i]=0; 5276 5276 this->inputs->AddInput(new TriaVertexInput(VyEnum,nodeinputs)); … … 5279 5279 } 5280 5280 if(!iomodel->Data(VzEnum)){ 5281 if (iomodel->Data( VzObsEnum)) for(i=0;i<3;i++)nodeinputs[i]=iomodel->Data(VzObsEnum)[tria_vertex_ids[i]-1]/yts;5281 if (iomodel->Data(InversionVzObsEnum)) for(i=0;i<3;i++)nodeinputs[i]=iomodel->Data(InversionVzObsEnum)[tria_vertex_ids[i]-1]/yts; 5282 5282 else for(i=0;i<3;i++)nodeinputs[i]=0; 5283 5283 this->inputs->AddInput(new TriaVertexInput(VzEnum,nodeinputs)); -
issm/trunk/src/c/objects/Materials/Matice.cpp
r9636 r9681 661 661 /*Fetch parameters: */ 662 662 iomodel->Constant(&dim,DimEnum); 663 iomodel->Constant(&control_analysis, ControlAnalysisEnum);664 iomodel->Constant(&num_control_type, NumControlTypeEnum);663 iomodel->Constant(&control_analysis,InversionIscontrolEnum); 664 iomodel->Constant(&num_control_type,InversionNumControlParametersEnum); 665 665 666 666 /*if 2d*/ … … 686 686 687 687 /*Control Inputs*/ 688 if (control_analysis && iomodel->Data( ControlTypeEnum)){688 if (control_analysis && iomodel->Data(InversionControlParametersEnum)){ 689 689 for(i=0;i<num_control_type;i++){ 690 switch((int)iomodel->Data( ControlTypeEnum)[i]){690 switch((int)iomodel->Data(InversionControlParametersEnum)[i]){ 691 691 case MaterialsRheologyBbarEnum: 692 692 if (iomodel->Data(MaterialsRheologyBEnum)){ 693 _assert_(iomodel->Data(MaterialsRheologyBEnum));_assert_(iomodel->Data( CmMinEnum)); _assert_(iomodel->Data(CmMaxEnum));693 _assert_(iomodel->Data(MaterialsRheologyBEnum));_assert_(iomodel->Data(InversionMinParametersEnum)); _assert_(iomodel->Data(InversionMaxParametersEnum)); 694 694 for(j=0;j<num_vertices;j++)nodeinputs[j]=iomodel->Data(MaterialsRheologyBEnum)[int(iomodel->Data(ElementsEnum)[num_vertices*index+j]-1)]; 695 for(j=0;j<num_vertices;j++)cmmininputs[j]=iomodel->Data( CmMinEnum)[int(iomodel->Data(ElementsEnum)[num_vertices*index+j]-1)*num_control_type+i];696 for(j=0;j<num_vertices;j++)cmmaxinputs[j]=iomodel->Data( CmMaxEnum)[int(iomodel->Data(ElementsEnum)[num_vertices*index+j]-1)*num_control_type+i];695 for(j=0;j<num_vertices;j++)cmmininputs[j]=iomodel->Data(InversionMinParametersEnum)[int(iomodel->Data(ElementsEnum)[num_vertices*index+j]-1)*num_control_type+i]; 696 for(j=0;j<num_vertices;j++)cmmaxinputs[j]=iomodel->Data(InversionMaxParametersEnum)[int(iomodel->Data(ElementsEnum)[num_vertices*index+j]-1)*num_control_type+i]; 697 697 this->inputs->AddInput(new ControlInput(MaterialsRheologyBbarEnum,TriaVertexInputEnum,nodeinputs,cmmininputs,cmmaxinputs,i+1)); 698 698 } … … 725 725 726 726 /*Control Inputs*/ 727 if (control_analysis && iomodel->Data( ControlTypeEnum)){727 if (control_analysis && iomodel->Data(InversionControlParametersEnum)){ 728 728 for(i=0;i<num_control_type;i++){ 729 switch((int)iomodel->Data( ControlTypeEnum)[i]){729 switch((int)iomodel->Data(InversionControlParametersEnum)[i]){ 730 730 case MaterialsRheologyBbarEnum: 731 731 if (iomodel->Data(MaterialsRheologyBEnum)){ 732 _assert_(iomodel->Data(MaterialsRheologyBEnum));_assert_(iomodel->Data( CmMinEnum)); _assert_(iomodel->Data(CmMaxEnum));732 _assert_(iomodel->Data(MaterialsRheologyBEnum));_assert_(iomodel->Data(InversionMinParametersEnum)); _assert_(iomodel->Data(InversionMaxParametersEnum)); 733 733 for(j=0;j<num_vertices;j++)nodeinputs[j]=iomodel->Data(MaterialsRheologyBEnum)[int(iomodel->Data(ElementsEnum)[num_vertices*index+j]-1)]; 734 for(j=0;j<num_vertices;j++)cmmininputs[j]=iomodel->Data( CmMinEnum)[int(iomodel->Data(ElementsEnum)[num_vertices*index+j]-1)*num_control_type+i];735 for(j=0;j<num_vertices;j++)cmmaxinputs[j]=iomodel->Data( CmMaxEnum)[int(iomodel->Data(ElementsEnum)[num_vertices*index+j]-1)*num_control_type+i];734 for(j=0;j<num_vertices;j++)cmmininputs[j]=iomodel->Data(InversionMinParametersEnum)[int(iomodel->Data(ElementsEnum)[num_vertices*index+j]-1)*num_control_type+i]; 735 for(j=0;j<num_vertices;j++)cmmaxinputs[j]=iomodel->Data(InversionMaxParametersEnum)[int(iomodel->Data(ElementsEnum)[num_vertices*index+j]-1)*num_control_type+i]; 736 736 this->inputs->AddInput(new ControlInput(MaterialsRheologyBEnum,PentaVertexInputEnum,nodeinputs,cmmininputs,cmmaxinputs,i+1)); 737 737 } -
issm/trunk/src/c/shared/Numerics/UnitConversion.cpp
r9646 r9681 51 51 case TimeEnum: scale=1.0/yts;break; //yr 52 52 case VxEnum: scale=yts;break; //m/yr 53 case VxObsEnum: scale=yts;break; //m/yr53 case InversionVxObsEnum: scale=yts;break; //m/yr 54 54 case VyEnum: scale=yts;break; //m/yr 55 case VyObsEnum: scale=yts;break; //m/yr55 case InversionVyObsEnum: scale=yts;break; //m/yr 56 56 case VzEnum: scale=yts;break; //m/yr 57 case VzObsEnum: scale=yts;break; //m/yr57 case InversionVzObsEnum: scale=yts;break; //m/yr 58 58 case VelEnum: scale=yts;break; //m/yr 59 case VelObsEnum: scale=yts;break; //m/yr59 case InversionVelObsEnum: scale=yts;break; //m/yr 60 60 case BalancethicknessThickeningRateEnum: scale=yts;break; //m/yr 61 61 case BasalforcingsMeltingRateEnum: scale=yts;break; //m/yr -
issm/trunk/src/c/solutions/CorePointerFromSolutionEnum.cpp
r9650 r9681 28 28 29 29 /*retrieve some parameters: */ 30 parameters->FindParam(&control_analysis, ControlAnalysisEnum);30 parameters->FindParam(&control_analysis,InversionIscontrolEnum); 31 31 parameters->FindParam(&dakota_analysis,QmuIsdakotaEnum); 32 32 -
issm/trunk/src/c/solutions/adjointbalancethickness_core.cpp
r8288 r9681 19 19 20 20 /*retrieve parameters:*/ 21 femmodel->parameters->FindParam(&control_analysis, ControlAnalysisEnum);21 femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum); 22 22 femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum); 23 23 -
issm/trunk/src/c/solutions/adjointdiagnostic_core.cpp
r9661 r9681 22 22 /*retrieve parameters:*/ 23 23 femmodel->parameters->FindParam(&isstokes,FlowequationIsstokesEnum); 24 femmodel->parameters->FindParam(&control_analysis, ControlAnalysisEnum);24 femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum); 25 25 femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum); 26 26 -
issm/trunk/src/c/solutions/balancethickness_core.cpp
r8288 r9681 24 24 /*recover parameters: */ 25 25 femmodel->parameters->FindParam(&dim,DimEnum); 26 femmodel->parameters->FindParam(&control_analysis, ControlAnalysisEnum);26 femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum); 27 27 femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum); 28 28 -
issm/trunk/src/c/solutions/bedslope_core.cpp
r6412 r9681 21 21 /*Recover some parameters: */ 22 22 femmodel->parameters->FindParam(&dim,DimEnum); 23 femmodel->parameters->FindParam(&control_analysis, ControlAnalysisEnum);23 femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum); 24 24 femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum); 25 25 -
issm/trunk/src/c/solutions/control_core.cpp
r9661 r9681 45 45 46 46 /*Recover parameters used throughout the solution*/ 47 femmodel->parameters->FindParam(&num_controls, NumControlTypeEnum);48 femmodel->parameters->FindParam(&num_responses, NumCmResponsesEnum);49 femmodel->parameters->FindParam(&control_type,NULL, ControlTypeEnum);50 femmodel->parameters->FindParam(&responses,NULL,NULL, CmResponsesEnum);51 femmodel->parameters->FindParam(&nsteps, NstepsEnum);52 femmodel->parameters->FindParam(&maxiter,NULL, MaxiterEnum);53 femmodel->parameters->FindParam(&cm_jump,NULL, CmJumpEnum);54 femmodel->parameters->FindParam(&eps_cm, EpsCmEnum);55 femmodel->parameters->FindParam(&cm_gradient, CmGradientEnum);47 femmodel->parameters->FindParam(&num_controls,InversionNumControlParametersEnum); 48 femmodel->parameters->FindParam(&num_responses,InversionNumCostFunctionsEnum); 49 femmodel->parameters->FindParam(&control_type,NULL,InversionControlParametersEnum); 50 femmodel->parameters->FindParam(&responses,NULL,NULL,InversionCostFunctionsEnum); 51 femmodel->parameters->FindParam(&nsteps,InversionNstepsEnum); 52 femmodel->parameters->FindParam(&maxiter,NULL,InversionMaxiterPerStepEnum); 53 femmodel->parameters->FindParam(&cm_jump,NULL,InversionStepThresholdEnum); 54 femmodel->parameters->FindParam(&eps_cm,InversionCostFunctionThresholdEnum); 55 femmodel->parameters->FindParam(&cm_gradient,InversionGradientOnlyEnum); 56 56 femmodel->parameters->FindParam(&dim,DimEnum); 57 57 femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum); … … 114 114 115 115 _printf_(VerboseControl(),"%s\n"," preparing final solution"); 116 femmodel->parameters->SetParam(false, ControlAnalysisEnum); //needed to turn control result output in solutioncore116 femmodel->parameters->SetParam(false,InversionIscontrolEnum); //needed to turn control result output in solutioncore 117 117 solutioncore(femmodel); 118 118 … … 121 121 for(i=0;i<num_controls;i++) InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,control_type[i]); 122 122 femmodel->results->AddObject(new DoubleVecExternalResult(femmodel->results->Size()+1,JEnum,J,nsteps,1,0)); 123 //femmodel->results->AddObject(new StringExternalResult(femmodel->results->Size()+1, ControlTypeEnum,EnumToStringx(control_type),1,0));123 //femmodel->results->AddObject(new StringExternalResult(femmodel->results->Size()+1,InversionControlParametersEnum,EnumToStringx(control_type),1,0)); 124 124 } 125 125 … … 134 134 135 135 /*control_core might be used in Qmu, so leave everything similar to where it started: */ 136 femmodel->parameters->SetParam(true, ControlAnalysisEnum);136 femmodel->parameters->SetParam(true,InversionIscontrolEnum); 137 137 } -
issm/trunk/src/c/solutions/controlrestart.cpp
r9650 r9681 15 15 16 16 /*retrieve output file name: */ 17 femmodel->parameters->FindParam(&num_controls, NumControlTypeEnum);18 femmodel->parameters->FindParam(&control_type,NULL, ControlTypeEnum);19 femmodel->parameters->FindParam(&nsteps, NstepsEnum);17 femmodel->parameters->FindParam(&num_controls,InversionNumControlParametersEnum); 18 femmodel->parameters->FindParam(&control_type,NULL,InversionControlParametersEnum); 19 femmodel->parameters->FindParam(&nsteps,InversionNstepsEnum); 20 20 femmodel->parameters->FindParam(&dakota_analysis,QmuIsdakotaEnum); 21 21 … … 26 26 for(int i=0;i<num_controls;i++) InputToResultx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,control_type[i]); 27 27 femmodel->results->AddObject(new DoubleVecExternalResult(femmodel->results->Size()+1,JEnum,J,nsteps,1,0)); 28 //femmodel->results->AddObject(new StringExternalResult(femmodel->results->Size()+1, ControlTypeEnum,EnumToStringx(control_type),1,0));28 //femmodel->results->AddObject(new StringExternalResult(femmodel->results->Size()+1,InversionControlParametersEnum,EnumToStringx(control_type),1,0)); 29 29 30 30 /*write to disk: */ -
issm/trunk/src/c/solutions/controltao_core.cpp
r9636 r9681 106 106 /*End Temp*/ 107 107 108 InputUpdateFromConstantx(femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,SurfaceAbsVelMisfitEnum, CmResponseEnum);108 InputUpdateFromConstantx(femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,SurfaceAbsVelMisfitEnum,InversionCostFunctionEnum); 109 109 InputUpdateFromVectorx(femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,X,MaterialsRheologyBbarEnum,VertexEnum); 110 110 adjointdiagnostic_core(user->femmodel); -
issm/trunk/src/c/solutions/diagnostic_core.cpp
r9680 r9681 33 33 femmodel->parameters->FindParam(&isstokes,FlowequationIsstokesEnum); 34 34 femmodel->parameters->FindParam(&dakota_analysis,QmuIsdakotaEnum); 35 femmodel->parameters->FindParam(&control_analysis, ControlAnalysisEnum);35 femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum); 36 36 femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum); 37 37 femmodel->parameters->FindParam(&numoutputs,DiagnosticNumRequestedOutputsEnum); -
issm/trunk/src/c/solutions/enthalpy_core.cpp
r9628 r9681 28 28 femmodel->parameters->FindParam(&final_time,TimesteppingFinalTimeEnum); 29 29 femmodel->parameters->FindParam(&dt,TimesteppingTimeStepEnum); 30 femmodel->parameters->FindParam(&control_analysis, ControlAnalysisEnum);30 femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum); 31 31 femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum); 32 32 -
issm/trunk/src/c/solutions/gradient_core.cpp
r9356 r9681 29 29 /*retrieve parameters:*/ 30 30 femmodel->parameters->FindParam(&control_steady,ControlSteadyEnum); 31 femmodel->parameters->FindParam(&num_controls, NumControlTypeEnum);32 femmodel->parameters->FindParam(&control_type,NULL, ControlTypeEnum);33 femmodel->parameters->FindParam(&optscal_list,NULL,NULL, OptscalEnum);31 femmodel->parameters->FindParam(&num_controls,InversionNumControlParametersEnum); 32 femmodel->parameters->FindParam(&control_type,NULL,InversionControlParametersEnum); 33 femmodel->parameters->FindParam(&optscal_list,NULL,NULL,InversionGradientScalingEnum); 34 34 35 35 /*Compute and norm gradient of all controls*/ -
issm/trunk/src/c/solutions/hydrology_core.cpp
r9628 r9681 26 26 femmodel->parameters->FindParam(&final_time,TimesteppingFinalTimeEnum); 27 27 femmodel->parameters->FindParam(&dt,TimesteppingTimeStepEnum); 28 femmodel->parameters->FindParam(&control_analysis, ControlAnalysisEnum);28 femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum); 29 29 femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum); 30 30 -
issm/trunk/src/c/solutions/issm.cpp
r9650 r9681 88 88 femmodel->parameters->FindParam(&waitonlock,WaitonlockEnum); 89 89 femmodel->parameters->FindParam(&dakota_analysis,QmuIsdakotaEnum); 90 femmodel->parameters->FindParam(&control_analysis, ControlAnalysisEnum);90 femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum); 91 91 92 92 MPI_Barrier(MPI_COMM_WORLD); finish_init=MPI_Wtime(); -
issm/trunk/src/c/solutions/prognostic_core.cpp
r6412 r9681 21 21 22 22 /*recover parameters: */ 23 femmodel->parameters->FindParam(&control_analysis, ControlAnalysisEnum);23 femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum); 24 24 femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum); 25 25 -
issm/trunk/src/c/solutions/steadystate_core.cpp
r9680 r9681 27 27 /* recover parameters:*/ 28 28 femmodel->parameters->FindParam(&dim,DimEnum); 29 femmodel->parameters->FindParam(&control_analysis, ControlAnalysisEnum);29 femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum); 30 30 femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum); 31 31 femmodel->parameters->FindParam(&maxiter,SteadystateMaxiterEnum); -
issm/trunk/src/c/solutions/surfaceslope_core.cpp
r6412 r9681 21 21 /*Recover some parameters: */ 22 22 femmodel->parameters->FindParam(&dim,DimEnum); 23 femmodel->parameters->FindParam(&control_analysis, ControlAnalysisEnum);23 femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum); 24 24 femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum); 25 25 -
issm/trunk/src/c/solutions/thermal_core.cpp
r9650 r9681 29 29 femmodel->parameters->FindParam(&final_time,TimesteppingFinalTimeEnum); 30 30 femmodel->parameters->FindParam(&dt,TimesteppingTimeStepEnum); 31 femmodel->parameters->FindParam(&control_analysis, ControlAnalysisEnum);31 femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum); 32 32 femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum); 33 33 femmodel->parameters->FindParam(&dakota_analysis,QmuIsdakotaEnum); -
issm/trunk/src/c/solutions/transient_core.cpp
r9680 r9681 34 34 femmodel->parameters->FindParam(&dt,TimesteppingTimeStepEnum); 35 35 femmodel->parameters->FindParam(&yts,ConstantsYtsEnum); 36 femmodel->parameters->FindParam(&control_analysis, ControlAnalysisEnum);36 femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum); 37 37 femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum); 38 38 femmodel->parameters->FindParam(&output_frequency,OutputFrequencyEnum); -
issm/trunk/src/m/classes/model/model.m
r9679 r9681 8 8 % {{{1 9 9 %Careful here: no other class should be used as default value this is a bug of matlab 10 cluster = modelfield('default',0,'marshall',false);11 verbose = modelfield('default',0,'marshall',true,'preprocess','marshallverbose','format','Integer');12 results = modelfield('default',0,'marshall',false);13 solver = modelfield('default',0,'marshall',false);14 debug = modelfield('default',0,'marshall',false);15 constants = modelfield('default',0,'marshall',true);16 flaim = modelfield('default',0,'marshall',false);17 surfaceforcings = modelfield('default',0,'marshall',true);18 basalforcings = modelfield('default',0,'marshall',true);19 friction = modelfield('default',0,'marshall',true);20 private = modelfield('default',0,'marshall',false);21 rifts = modelfield('default',0,'marshall',true);22 hydrology = modelfield('default',0,'marshall',true);23 settings = modelfield('default',0,'marshall',true);24 radaroverlay = modelfield('default',0,'marshall',false);25 thermal = modelfield('default',0,'marshall',true);26 miscellaneous = modelfield('default',0,'marshall',true);27 timestepping = modelfield('default',0,'marshall',true);28 groundingline = modelfield('default',0,'marshall',true);29 prognostic = modelfield('default',0,'marshall',true);30 materials = modelfield('default',0,'marshall',true);31 mask = modelfield('default',0,'marshall',true);32 qmu = modelfield('default',0,'marshall',true);10 cluster = modelfield('default',0,'marshall',false); 11 verbose = modelfield('default',0,'marshall',true,'preprocess','marshallverbose','format','Integer'); 12 results = modelfield('default',0,'marshall',false); 13 solver = modelfield('default',0,'marshall',false); 14 debug = modelfield('default',0,'marshall',false); 15 constants = modelfield('default',0,'marshall',true); 16 flaim = modelfield('default',0,'marshall',false); 17 surfaceforcings = modelfield('default',0,'marshall',true); 18 basalforcings = modelfield('default',0,'marshall',true); 19 friction = modelfield('default',0,'marshall',true); 20 private = modelfield('default',0,'marshall',false); 21 rifts = modelfield('default',0,'marshall',true); 22 hydrology = modelfield('default',0,'marshall',true); 23 settings = modelfield('default',0,'marshall',true); 24 radaroverlay = modelfield('default',0,'marshall',false); 25 thermal = modelfield('default',0,'marshall',true); 26 miscellaneous = modelfield('default',0,'marshall',true); 27 timestepping = modelfield('default',0,'marshall',true); 28 groundingline = modelfield('default',0,'marshall',true); 29 prognostic = modelfield('default',0,'marshall',true); 30 materials = modelfield('default',0,'marshall',true); 31 mask = modelfield('default',0,'marshall',true); 32 qmu = modelfield('default',0,'marshall',true); 33 33 balancethickness = modelfield('default',0,'marshall',true); 34 flowequation = modelfield('default',0,'marshall',true); 35 steadystate = modelfield('default',0,'marshall',true); 36 transient = modelfield('default',0,'marshall',true); 34 flowequation = modelfield('default',0,'marshall',true); 35 steadystate = modelfield('default',0,'marshall',true); 36 inversion = modelfield('default',0,'marshall',true); 37 transient = modelfield('default',0,'marshall',true); 37 38 diagnostic = modelfield('default',0,'marshall',true); 38 39 … … 97 98 nodeonboundary = modelfield('default',NaN,'marshall',false); 98 99 99 %Observations100 vx_obs = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);101 vy_obs = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);102 vel_obs = modelfield('default',NaN,'marshall',false);103 104 thickness_obs = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);105 106 100 %Statics parameters 107 101 connectivity = modelfield('default',0,'marshall',true,'format','Integer'); 108 102 109 %Control110 control_analysis = modelfield('default',0,'marshall',true,'format','Boolean');111 control_type = modelfield('default',NaN,'marshall',true,'preprocess','marshallcontroltype','format','DoubleMat','mattype',3);112 weights = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);113 nsteps = modelfield('default',0,'marshall',true,'format','Integer');114 maxiter = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',3);115 cm_responses = modelfield('default',NaN,'marshall',true,'preprocess','marshallcmresponses','format','DoubleMat','mattype',3);116 optscal = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',3);117 eps_cm = modelfield('default',0,'marshall',true,'format','Double');118 cm_min = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',3);119 cm_max = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',3);120 cm_jump = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',3);121 cm_gradient = modelfield('default',0,'marshall',true,'format','Boolean');122 num_control_type = modelfield('default',0,'marshall',true,'format','Integer');123 num_cm_responses = modelfield('default',0,'marshall',true,'format','Integer');124 103 125 104 %Results fields … … 254 233 disp(sprintf(' Parameters:')); 255 234 disp(sprintf('%s%s%s',' Boundary conditions: type ''',inputname(1),'.bc'' to display')); 256 disp(sprintf('%s%s%s',' Observations: type ''',inputname(1),'.obs'' to display'));257 235 disp(sprintf('%s%s%s',' Materials: type ''',inputname(1),'.mat'' to display')); 258 236 disp(sprintf('%s%s%s',' Parameters: type ''',inputname(1),'.par'' to display')); … … 302 280 if isfield(structmd,'basal_melting_rate_correction'), md.basalforcings.melting_rate_correction=structmd.basal_melting_rate_correction; end 303 281 if isfield(structmd,'geothermalflux'), md.basalforcings.geothermalflux=structmd.geothermalflux; end 282 if isfield(structmd,'drag'), md.friction.coefficient=structmd.drag; end 304 283 if isfield(structmd,'drag_coefficient'), md.friction.coefficient=structmd.drag_coefficient; end 305 284 if isfield(structmd,'drag_p'), md.friction.p=structmd.drag_p; end … … 357 336 if isfield(structmd,'elements_type'), md.flowequation.element_equation=structmd.elements_type; end 358 337 if isfield(structmd,'vertices_type'), md.flowequation.vertex_equation=structmd.vertices_type; end 359 if isfield(structmd,'eps_rel'), md. flowequation.reltol=structmd.eps_rel; end360 if isfield(structmd,'max_steadystate_iterations'), md. flowequation.maxiter=structmd.max_steadystate_iterations; end338 if isfield(structmd,'eps_rel'), md.steadystate.reltol=structmd.eps_rel; end 339 if isfield(structmd,'max_steadystate_iterations'), md.steadystate.maxiter=structmd.max_steadystate_iterations; end 361 340 if isfield(structmd,'isdiagnostic'), md.transient.isdiagnostic=structmd.isdiagnostic; end 362 341 if isfield(structmd,'isprognostic'), md.transient.isprognostic=structmd.isprognostic; end 363 342 if isfield(structmd,'isthermal'), md.transient.isthermal=structmd.isthermal; end 343 if isfield(structmd,'control_analysis'), md.inversion.iscontrol=structmd.control_analysis; end 344 if isfield(structmd,'weights'), md.inversion.cost_functions_coefficients=structmd.weights; end 345 if isfield(structmd,'nsteps'), md.inversion.nsteps=structmd.nsteps; end 346 if isfield(structmd,'maxiter_per_step'), md.inversion.maxiter_per_step=structmd.maxiter_per_step; end 347 if isfield(structmd,'cm_min'), md.inversion.min_parameters=structmd.cm_min; end 348 if isfield(structmd,'cm_max'), md.inversion.max_parameters=structmd.cm_max; end 349 if isfield(structmd,'vx_obs'), md.inversion.vx_obs=structmd.vx_obs; end 350 if isfield(structmd,'vy_obs'), md.inversion.vy_obs=structmd.vy_obs; end 351 if isfield(structmd,'vel_obs'), md.inversion.vel_obs=structmd.vel_obs; end 352 if isfield(structmd,'thickness_obs'), md.inversion.thickness_obs=structmd.thickness_obs; end 364 353 365 354 %Field changes … … 412 401 if (structmd.groundingline_migration==274), md.groundingline.migration='SoftMigration'; end 413 402 end 414 if is numeric(md.control_type),415 if (structmd.control_type==143), md. control_type={'FrictionCoefficient'}; end416 if (structmd.control_type==190), md. control_type={'RheologyBbar'}; end417 if (structmd.control_type==147), md. control_type={'Dhdt'}; end418 end 419 if is member(structmd.cm_responses(end,end),[165:170 383 388 389]),420 pos=find(structmd.cm_responses==166); md. control_type(pos)=101;421 pos=find(structmd.cm_responses==167); md. control_type(pos)=102;422 pos=find(structmd.cm_responses==168); md. control_type(pos)=103;423 pos=find(structmd.cm_responses==169); md. control_type(pos)=104;424 pos=find(structmd.cm_responses==170); md. control_type(pos)=105;425 pos=find(structmd.cm_responses==165); md. control_type(pos)=201;426 pos=find(structmd.cm_responses==389); md. control_type(pos)=501;427 pos=find(structmd.cm_responses==388); md. control_type(pos)=502;428 pos=find(structmd.cm_responses==382); md. control_type(pos)=503;403 if isfield(structmd,'control_type') & isnumeric(structmd.control_type), 404 if (structmd.control_type==143), md.inversion.control_parameters={'FrictionCoefficient'}; end 405 if (structmd.control_type==190), md.inversion.control_parameters={'RheologyBbar'}; end 406 if (structmd.control_type==147), md.inversion.control_parameters={'Thickeningrate'}; end 407 end 408 if isfield(structmd,'cost_functions') & ismember(structmd.cm_responses(end,end),[165:170 383 388 389]), 409 pos=find(structmd.cm_responses==166); md.inversion.cost_functions(pos)=101; 410 pos=find(structmd.cm_responses==167); md.inversion.cost_functions(pos)=102; 411 pos=find(structmd.cm_responses==168); md.inversion.cost_functions(pos)=103; 412 pos=find(structmd.cm_responses==169); md.inversion.cost_functions(pos)=104; 413 pos=find(structmd.cm_responses==170); md.inversion.cost_functions(pos)=105; 414 pos=find(structmd.cm_responses==165); md.inversion.cost_functions(pos)=201; 415 pos=find(structmd.cm_responses==389); md.inversion.cost_functions(pos)=501; 416 pos=find(structmd.cm_responses==388); md.inversion.cost_functions(pos)=502; 417 pos=find(structmd.cm_responses==382); md.inversion.cost_functions(pos)=503; 429 418 end 430 419 … … 461 450 462 451 %initialize subclasses 463 md.cluster=none; 464 md.solver=solver; 465 md.solver=addoptions(md.solver,DiagnosticVertAnalysisEnum,mumpsoptions); 466 md.results=struct(); 467 md.debug=debug; 468 md.constants=constants; 469 md.flaim=flaim; 470 md.surfaceforcings=surfaceforcings; 471 md.basalforcings=basalforcings; 472 md.friction=friction; 473 md.private=private; 474 md.rifts=rifts; 475 md.hydrology=hydrology; 476 md.settings=settings; 477 md.radaroverlay=radaroverlay; 478 md.thermal=thermal; 479 md.miscellaneous=miscellaneous; 480 md.timestepping=timestepping; 481 md.groundingline=groundingline; 482 md.prognostic=prognostic; 483 md.materials=materials; 484 md.mask=mask; 485 md.qmu=qmu; 486 md.balancethickness=balancethickness; 487 md.flowequation=flowequation; 488 md.steadystate=steadystate; 489 md.transient=transient; 452 md.cluster = none; 453 md.solver = solver; 454 md.solver = addoptions(md.solver,DiagnosticVertAnalysisEnum,mumpsoptions); 455 md.results = struct(); 456 md.debug = debug; 457 md.constants = constants; 458 md.flaim = flaim; 459 md.surfaceforcings = surfaceforcings; 460 md.basalforcings = basalforcings; 461 md.friction = friction; 462 md.private = private; 463 md.rifts = rifts; 464 md.hydrology = hydrology; 465 md.settings = settings; 466 md.radaroverlay = radaroverlay; 467 md.thermal = thermal; 468 md.miscellaneous = miscellaneous; 469 md.timestepping = timestepping; 470 md.groundingline = groundingline; 471 md.prognostic = prognostic; 472 md.materials = materials; 473 md.mask = mask; 474 md.qmu = qmu; 475 md.balancethickness = balancethickness; 476 md.flowequation = flowequation; 477 md.steadystate = steadystate; 478 md.inversion = inversion; 479 md.transient = transient; 490 480 md.diagnostic=diagnostic; 491 481 … … 508 498 md.minh=1; 509 499 510 %Control511 512 %parameter to be inferred by control methods (only513 %drag and B are supported yet)514 md.control_type={'FrictionCoefficient'};515 516 %number of steps in the control methods517 md.nsteps=20;518 519 %maximum number of iteration in the optimization algorithm for520 %each step521 md.maxiter=20*ones(md.nsteps,1);522 523 %the inversed parameter is updated as follows:524 %new_par=old_par + optscal(n)*C*gradient with C in [0 1];525 %usually the optscal must be of the order of magnitude of the526 %inversed parameter (10^8 for B, 50 for drag) and can be decreased527 %after the first iterations528 md.optscal=50*ones(md.nsteps,1);529 530 %several responses can be used:531 md.cm_responses=101*ones(md.nsteps,1);532 533 %cm_jump is used to speed up control method. When534 %misfit(1)/misfit(0) < md.cm_jump, we go directly to535 %the next step536 md.cm_jump=.7*ones(md.nsteps,1); %30 per cent decrement.537 538 %stop control solution at the gradient computation and return it?539 md.cm_gradient=0;540 541 %eps_cm is a criteria to stop the control methods.542 %if J[n]-J[n-1]/J[n] < criteria, the control run stops543 %NaN if not applied544 md.eps_cm=NaN; %not activated545 546 500 %How often to save results, default is 1 so save every step 547 501 md.output_frequency=1; 548 549 %Parallelisation parameters550 551 %cluster set as none for serial552 502 553 503 %this option can be activated to load automatically the results … … 556 506 %0 to desactivate 557 507 md.waitonlock=Inf; 558 559 508 end 560 509 %}}} … … 568 517 if(strcmp(index1.subs,'par')), displayparameters(md);return; end 569 518 if(strcmp(index1.subs,'res')), displayresults(md);return; end 570 if(strcmp(index1.subs,'obs')), displayobservations(md);return; end571 if(strcmp(index1.subs,'control')), displaycontrol(md);return; end572 519 if(strcmp(index1.subs,'parallel')), displayparallel(md);return; end 573 520 end -
issm/trunk/src/m/classes/verbose.m
r8587 r9681 43 43 if strcmpi(binary,'all'), 44 44 binary=2^11-1; %all ones 45 verbose=BinaryToVerbose(verbose,binary); 46 verbose.solver=false; %Do not use by default 45 47 else 46 48 binary=bin2dec(binary); 49 verbose=BinaryToVerbose(verbose,binary); 47 50 end 48 51 end 49 verbose=BinaryToVerbose(verbose,binary);50 51 52 else 52 53 -
issm/trunk/src/m/enum/EnumToModelField.m
r9650 r9681 17 17 case BalancethicknessThickeningRateEnum: string='dhdt'; return 18 18 case VxEnum(), string='vx'; return 19 case VxObsEnum(), string='vx_obs'; return19 case InversionVxObsEnum(), string='vx_obs'; return 20 20 case VyEnum(), string='vy'; return 21 case VyObsEnum(), string='vy_obs'; return21 case InversionVyObsEnum(), string='vy_obs'; return 22 22 case BasalforcingsMeltingRateEnum(), string='basal_melting_rate'; return 23 23 case SurfaceforcingsAccumulationRateEnum(), string='surface_accumulation_rate'; return -
issm/trunk/src/m/model/BasinConstrain.m
r9679 r9681 48 48 49 49 %all elements outside the constraint domain are equivalent to water. all nodes outside are spc'd. 50 md.diagnostic.spcvx(vertexnotondomain)=md. vx_obs(vertexnotondomain);51 md.diagnostic.spcvy(vertexnotondomain)=md. vy_obs(vertexnotondomain);50 md.diagnostic.spcvx(vertexnotondomain)=md.inversion.vx_obs(vertexnotondomain); 51 md.diagnostic.spcvy(vertexnotondomain)=md.inversion.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.diagnostic.spcvx(nodes)=md. vx_obs(nodes);59 md.diagnostic.spcvy(nodes)=md. vy_obs(nodes);58 md.diagnostic.spcvx(nodes)=md.inversion.vx_obs(nodes); 59 md.diagnostic.spcvy(nodes)=md.inversion.vy_obs(nodes); 60 60 61 61 %make sure icefronts that are completely spc'd are taken out: -
issm/trunk/src/m/model/BasinConstrainShelf.m
r9679 r9681 48 48 49 49 %all elements outside the constraint domain are equivalent to water. all nodes outside are spc'd. 50 md.diagnostic.spcvx(vertexnotondomain)=md. vx_obs(vertexnotondomain);51 md.diagnostic.spcvy(vertexnotondomain)=md. vy_obs(vertexnotondomain);50 md.diagnostic.spcvx(vertexnotondomain)=md.inversion.vx_obs(vertexnotondomain); 51 md.diagnostic.spcvy(vertexnotondomain)=md.inversion.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.diagnostic.spcvx(nodes)=md.vx_obs(nodes); 59 md.diagnostic.spcvy(nodes)=md.vy_obs(nodes); 60 58 md.diagnostic.spcvx(nodes)=md.inversion.vx_obs(nodes); 59 md.diagnostic.spcvy(nodes)=md.inversion.vy_obs(nodes); 61 60 62 61 %make sure any node with NaN velocity is spc'd: 63 62 %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 pos=find(isnan(md. vel_obs_raw));65 md.diagnostic.spcvx(pos)=md. vx_obs(pos);66 md.diagnostic.spcvy(pos)=md. vy_obs(pos);63 pos=find(isnan(md.inversion.vel_obs_raw)); 64 md.diagnostic.spcvx(pos)=md.inversion.vx_obs(pos); 65 md.diagnostic.spcvy(pos)=md.inversion.vy_obs(pos); 67 66 68 67 %iceshelves: any vertex on floating ice is spc'd 69 68 pos=find(md.mask.vertexongroundedice); 70 md.diagnostic.spcvx(pos)=md. vx_obs(pos);71 md.diagnostic.spcvy(pos)=md. vy_obs(pos);69 md.diagnostic.spcvx(pos)=md.inversion.vx_obs(pos); 70 md.diagnostic.spcvy(pos)=md.inversion.vy_obs(pos); 72 71 73 72 %make sure icefronts that are completely spc'd are taken out: -
issm/trunk/src/m/model/bamg.m
r9654 r9681 46 46 % Examples: 47 47 % md=bamg(md,'domain','DomainOutline.exp','hmax',3000); 48 % md=bamg(md,'field',[md. vel_obs md.thickness],'hmax',20000,'hmin',1000);48 % md=bamg(md,'field',[md.inversion.vel_obs md.thickness],'hmax',20000,'hmin',1000); 49 49 % md=bamg(md,'metric',A,'hmin',1000,'hmax',20000,'gradation',3,'anisomax',1); 50 50 -
issm/trunk/src/m/model/collapse.m
r9679 r9681 26 26 27 27 %observations 28 if ~isnan(md. vx_obs), md.vx_obs=project2d(md,md.vx_obs,md.numlayers); end;29 if ~isnan(md. vy_obs), md.vy_obs=project2d(md,md.vy_obs,md.numlayers); end;30 if ~isnan(md. vel_obs), md.vel_obs=project2d(md,md.vel_obs,md.numlayers); end;28 if ~isnan(md.inversion.vx_obs), md.inversion.vx_obs=project2d(md,md.inversion.vx_obs,md.numlayers); end; 29 if ~isnan(md.inversion.vy_obs), md.inversion.vy_obs=project2d(md,md.inversion.vy_obs,md.numlayers); end; 30 if ~isnan(md.inversion.vel_obs), md.inversion.vel_obs=project2d(md,md.inversion.vel_obs,md.numlayers); end; 31 31 if ~isnan(md.surfaceforcings.mass_balance), 32 32 md.surfaceforcings.mass_balance=project2d(md,md.surfaceforcings.mass_balance,md.numlayers); -
issm/trunk/src/m/model/extrude.m
r9679 r9681 131 131 132 132 %observations 133 md. vx_obs=project3d(md,'vector',md.vx_obs,'type','node');134 md. vy_obs=project3d(md,'vector',md.vy_obs,'type','node');135 md. vel_obs=project3d(md,'vector',md.vel_obs,'type','node');133 md.inversion.vx_obs=project3d(md,'vector',md.inversion.vx_obs,'type','node'); 134 md.inversion.vy_obs=project3d(md,'vector',md.inversion.vy_obs,'type','node'); 135 md.inversion.vel_obs=project3d(md,'vector',md.inversion.vel_obs,'type','node'); 136 136 md.surfaceforcings.mass_balance=project3d(md,'vector',md.surfaceforcings.mass_balance,'type','node'); 137 137 md.surfaceforcings.accumulation_rate=project3d(md,'vector',md.surfaceforcings.accumulation_rate,'type','node'); … … 209 209 md.mask.elementonwater=project3d(md,'vector',md.mask.elementonwater,'type','element'); 210 210 md.mask.vertexonwater=project3d(md,'vector',md.mask.vertexonwater,'type','node'); 211 if ~isnan(md. weights),md.weights=project3d(md,'vector',md.weights,'type','node');end;211 if ~isnan(md.inversion.cost_functions_coefficients),md.inversion.cost_functions_coefficients=project3d(md,'vector',md.inversion.cost_functions_coefficients,'type','node');end; 212 212 213 213 %Put lithostatic pressure is there is an existing pressure -
issm/trunk/src/m/model/graddetection.m
r7629 r9681 14 14 15 15 %plug optimized parameter in model. 16 md2.(EnumToModelField(md2.results.DiagnosticAnalysis. control_type))=parameter1;16 md2.(EnumToModelField(md2.results.DiagnosticAnalysis.inversion.control_parameters))=parameter1; 17 17 18 18 %put nsteps to 1: -
issm/trunk/src/m/model/ismodelselfconsistent.m
r9679 r9681 83 83 %NO NAN {{{1 84 84 fields={'numberofelements','numberofnodes','x','y','z','friction.coefficient','friction.p','friction.q',... 85 'materials.rho_ice','materials.rho_water','materials.rheology_B','mask.elementonfloatingice','surface','thickness','bed','constants.g','settings.lowmem',' nsteps','maxiter',...85 'materials.rho_ice','materials.rho_water','materials.rheology_B','mask.elementonfloatingice','surface','thickness','bed','constants.g','settings.lowmem','inversion.nsteps','inversion.maxiter_per_step',... 86 86 'diagnostic.restol','diagnostic.maxiter','materials.rheology_n','nodeonbed','nodeonsurface','elementonbed','elementonsurface','elementconnectivity'}; 87 87 checknan(md,fields); … … 90 90 fields={'numberofelements','numberofnodes','elements','friction.coefficient','friction.p','friction.q',... 91 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'}; 92 'diagnostic.abstol','inversion.nsteps','inversion.maxiter_per_step',... 93 'settings.lowmem','materials.rheology_n','nodeonbed','nodeonsurface','elementonbed','elementonsurface'}; 93 94 checkgreater(md,fields,0); 94 95 %}}} 95 96 %FIELDS > 0 {{{1 96 97 fields={'numberofelements','numberofnodes','elements','friction.p',... 97 'materials.rho_ice','materials.rho_water','materials.rheology_B','thickness','constants.g','diagnostic.maxiter','diagnostic.restol','diagnostic.reltol','diagnostic.abstol',' maxiter'};98 'materials.rho_ice','materials.rho_water','materials.rheology_B','thickness','constants.g','diagnostic.maxiter','diagnostic.restol','diagnostic.reltol','diagnostic.abstol','inversion.maxiter_per_step'}; 98 99 checkgreaterstrict(md,fields,0); 99 100 %}}} … … 201 202 %}}} 202 203 %CONTROL{{{1 203 if md. control_analysis,204 if md.inversion.iscontrol, 204 205 205 206 %CONTROL TYPE 206 num_controls=numel(md. control_type);207 num_costfunc=size(md. cm_responses,2);208 if ~iscell(md. control_type)209 message(['model not consistent: model ' md.miscellaneous.name ' control_typefield should be a cell of strings']);210 end 211 if ~ismember(md. control_type,{'BalancethicknessThickeningRate' 'FrictionCoefficient' 'MaterialsRheologyBbar' 'Vx' 'Vy'});212 message(['model not consistent: model ' md.miscellaneous.name ' control_typefield should be ''BalancethicknessThickeningRate'' ''FrictionCoefficient'' ''MaterialsRheologyBbar'' ''Vx'' ''Vy''']);207 num_controls=numel(md.inversion.control_parameters); 208 num_costfunc=size(md.inversion.cost_functions,2); 209 if ~iscell(md.inversion.control_parameters) 210 message(['model not consistent: model ' md.miscellaneous.name ' inversion.control_parameters field should be a cell of strings']); 211 end 212 if ~ismember(md.inversion.control_parameters,{'BalancethicknessThickeningRate' 'FrictionCoefficient' 'MaterialsRheologyBbar' 'Vx' 'Vy'}); 213 message(['model not consistent: model ' md.miscellaneous.name ' inversion.control_parameters field should be ''BalancethicknessThickeningRate'' ''FrictionCoefficient'' ''MaterialsRheologyBbar'' ''Vx'' ''Vy''']); 213 214 end 214 215 215 216 %LENGTH CONTROL FIELDS 216 fields={' maxiter','cm_jump'};217 checksize(md,fields,[md. nsteps 1]);218 fields={' cm_responses'};219 checksize(md,fields,[md. nsteps num_costfunc]);220 fields={' optscal'};221 checksize(md,fields,[md. nsteps num_controls]);222 fields={' cm_min','cm_max'};217 fields={'inversion.maxiter_per_step','inversion.step_threshold'}; 218 checksize(md,fields,[md.inversion.nsteps 1]); 219 fields={'inversion.cost_functions'}; 220 checksize(md,fields,[md.inversion.nsteps num_costfunc]); 221 fields={'inversion.gradient_scaling'}; 222 checksize(md,fields,[md.inversion.nsteps num_controls]); 223 fields={'inversion.min_parameters','inversion.max_parameters'}; 223 224 checksize(md,fields,[md.numberofnodes num_controls]); 224 225 225 226 %RESPONSES 226 checkvalues(md,{' cm_responses'},[101:105 201 501:503]);227 checkvalues(md,{'inversion.cost_functions'},[101:105 201 501:503]); 227 228 228 229 %WEIGHTS 229 fields={' weights'};230 fields={'inversion.cost_functions_coefficients'}; 230 231 checksize(md,fields,[md.numberofnodes num_costfunc]); 231 232 checkgreater(md,fields,0); … … 233 234 %OBSERVED VELOCITIES 234 235 if md.private.solution==BalancethicknessSolutionEnum 235 fields={' thickness_obs'};236 fields={'inversion.thickness_obs'}; 236 237 checksize(md,fields,[md.numberofnodes 1]); 237 238 checknan(md,fields); 238 239 else 239 fields={' vx_obs','vy_obs'};240 fields={'inversion.vx_obs','inversion.vy_obs'}; 240 241 checksize(md,fields,[md.numberofnodes 1]); 241 242 checknan(md,fields); … … 623 624 disp('!!! WARNING: cm_min must now be of size [md.numberofnodes x 1]. Update your parameter file as follows:'); 624 625 disp('!!! '); 625 disp('!!! md. cm_min=md.cm_min*ones(md.numberofnodes,1);');626 disp('!!! md.inversion.min_parameters=md.inversion.min_parameters*ones(md.numberofnodes,1);'); 626 627 disp('!!! '); 627 628 end … … 631 632 disp('!!! WARNING: cm_max must now be of size [md.numberofnodes x 1]. Update your parameter file as follows:'); 632 633 disp('!!! '); 633 disp('!!! md. cm_max=md.cm_max*ones(md.numberofnodes,1);');634 disp('!!! md.inversion.max_parameters=md.inversion.max_parameters*ones(md.numberofnodes,1);'); 634 635 disp('!!! '); 635 636 end -
issm/trunk/src/m/model/mechanicalproperties.m
r9661 r9681 11 11 % Example: 12 12 % md=mechanicalproperties(md,md.vx,md.vy); 13 % md=mechanicalproperties(md,md. vx_obs,md.vy_obs);13 % md=mechanicalproperties(md,md.inversion.vx_obs,md.inversion.vy_obs); 14 14 15 15 %some checks -
issm/trunk/src/m/model/mesh/meshyams.m
r9619 r9681 127 127 end 128 128 if strcmpi(Names.interp,'node'), 129 md. vx_obs=InterpFromGridToMesh(Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vxname),md.x,md.y,0);130 md. vy_obs=InterpFromGridToMesh(Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vyname),md.x,md.y,0);129 md.inversion.vx_obs=InterpFromGridToMesh(Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vxname),md.x,md.y,0); 130 md.inversion.vy_obs=InterpFromGridToMesh(Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vyname),md.x,md.y,0); 131 131 else 132 md. vx_obs=InterpFromMeshToMesh2d(Vel.(Names.indexname),Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vxname),md.x,md.y,0);133 md. vy_obs=InterpFromMeshToMesh2d(Vel.(Names.indexname),Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vyname),md.x,md.y,0);132 md.inversion.vx_obs=InterpFromMeshToMesh2d(Vel.(Names.indexname),Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vxname),md.x,md.y,0); 133 md.inversion.vy_obs=InterpFromMeshToMesh2d(Vel.(Names.indexname),Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vyname),md.x,md.y,0); 134 134 end 135 md. vel_obs=sqrt(md.vx_obs.^2+md.vy_obs.^2);135 md.inversion.vel_obs=sqrt(md.inversion.vx_obs.^2+md.inversion.vy_obs.^2); 136 136 137 137 %deal with rifts -
issm/trunk/src/m/model/misfit.m
r9597 r9681 15 15 vx=md.vx; 16 16 vy=md.vy; 17 vx_obs=md. vx_obs;18 vy_obs=md. vy_obs;17 vx_obs=md.inversion.vx_obs; 18 vy_obs=md.inversion.vy_obs; 19 19 else 20 20 elements=md.elements2d; … … 23 23 vx=project2d(md,md.vx,md.numlayers); 24 24 vy=project2d(md,md.vy,md.numlayers); 25 vx_obs=project2d(md,md. vx_obs,md.numlayers);26 vy_obs=project2d(md,md. vy_obs,md.numlayers);25 vx_obs=project2d(md,md.inversion.vx_obs,md.numlayers); 26 vy_obs=project2d(md,md.inversion.vy_obs,md.numlayers); 27 27 end 28 28 -
issm/trunk/src/m/model/parametercontroloptimization.m
r9610 r9681 30 30 md2.eps_cm=NaN; 31 31 md2.nsteps=getfieldvalue(options,'nsteps',5); 32 md2. control_type=getfieldvalue(options,'md2.control_type',{'FrictionCoefficient'});32 md2.inversion.control_parameters=getfieldvalue(options,'md2.inversion.control_parameters',{'FrictionCoefficient'}); 33 33 md2.maxiter=10*ones(md2.nsteps,1); 34 34 md2.cm_jump=0.99*ones(md2.nsteps,1); 35 md2. control_analysis=1;35 md2.inversion.iscontrol=1; 36 36 md2.weights=ones(md2.numberofnodes,1); 37 37 … … 67 67 %load final parameters onto initial model 68 68 md.fit =fit_final; 69 md. cm_max=cmmax_final;70 md. optscal=optscal_final;69 md.inversion.max_parameters =cmmax_final; 70 md.inversion.gradient_scaling=optscal_final; -
issm/trunk/src/m/model/parameterization/parametercontrolB.m
r9542 r9681 21 21 22 22 %control type 23 md. control_type={'RheologyBbar'};23 md.inversion.control_parameters={'RheologyBbar'}; 24 24 25 25 %weights 26 26 weights=getfieldvalue(options,'weights',ones(md.numberofnodes,1)); 27 27 if (length(weights)~=md.numberofnodes) 28 md. weights=ones(md.numberofnodes,1);28 md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1); 29 29 else 30 md. weights=weights;30 md.inversion.cost_functions_coefficients=weights; 31 31 end 32 32 … … 34 34 nsteps=getfieldvalue(options,'nsteps',100); 35 35 if (length(nsteps)~=1 | nsteps<=0 | floor(nsteps)~=nsteps) 36 md. nsteps=100;36 md.inversion.nsteps=100; 37 37 else 38 md. nsteps=nsteps;38 md.inversion.nsteps=nsteps; 39 39 end 40 40 … … 43 43 cm_min=getfieldvalue(options,'cm_min',paterson(273.15+5)*ones(md.numberofnodes,1)); 44 44 if (length(cm_min)==1) 45 md. cm_min=cm_min*ones(md.numberofnodes,1);45 md.inversion.min_parameters=cm_min*ones(md.numberofnodes,1); 46 46 elseif (length(cm_min)==md.numberofnodes) 47 md. cm_min=cm_min;47 md.inversion.min_parameters=cm_min; 48 48 else 49 md. cm_min=cm_min;49 md.inversion.min_parameters=cm_min; 50 50 end 51 51 … … 53 53 cm_max=getfieldvalue(options,'cm_max',paterson(273.15-70)*ones(md.numberofnodes,1)); 54 54 if (length(cm_max)==1) 55 md. cm_max=cm_max*ones(md.numberofnodes,1);55 md.inversion.max_parameters=cm_max*ones(md.numberofnodes,1); 56 56 elseif (length(cm_max)==md.numberofnodes) 57 md. cm_max=cm_max;57 md.inversion.max_parameters=cm_max; 58 58 else 59 md. cm_max=cm_max;59 md.inversion.max_parameters=cm_max; 60 60 end 61 61 … … 63 63 eps_cm=getfieldvalue(options,'eps_cm',NaN); 64 64 if (length(eps_cm)~=1 | eps_cm<0 ) 65 md. eps_cm=NaN;65 md.inversion.cost_function_threshold=NaN; 66 66 else 67 md. eps_cm=eps_cm;67 md.inversion.cost_function_threshold=eps_cm; 68 68 end 69 69 70 70 %maxiter 71 maxiter=getfieldvalue(options,'maxiter',10*ones(md. nsteps,1));71 maxiter=getfieldvalue(options,'maxiter',10*ones(md.inversion.nsteps,1)); 72 72 if (any(maxiter<0) | any(floor(maxiter)~=maxiter)) 73 md. maxiter=10*ones(md.nsteps,1);73 md.inversion.maxiter_per_step=10*ones(md.inversion.nsteps,1); 74 74 else 75 md. maxiter=repmat(maxiter(:),md.nsteps,1);76 md. maxiter(md.nsteps+1:end)=[];75 md.inversion.maxiter_per_step=repmat(maxiter(:),md.inversion.nsteps,1); 76 md.inversion.maxiter_per_step(md.inversion.nsteps+1:end)=[]; 77 77 end 78 78 79 79 %cm_jump 80 cm_jump=getfieldvalue(options,'cm_jump',0.9*ones(md. nsteps,1));80 cm_jump=getfieldvalue(options,'cm_jump',0.9*ones(md.inversion.nsteps,1)); 81 81 if ~isreal(cm_jump) 82 md. cm_jump=0.9*ones(md.nsteps,1);82 md.inversion.step_threshold=0.9*ones(md.inversion.nsteps,1); 83 83 else 84 md. cm_jump=repmat(cm_jump(:),md.nsteps,1);85 md. cm_jump(md.nsteps+1:end)=[];84 md.inversion.step_threshold=repmat(cm_jump(:),md.inversion.nsteps,1); 85 md.inversion.step_threshold(md.inversion.nsteps+1:end)=[]; 86 86 end 87 87 … … 91 91 cm_responses=getfieldvalue(options,'cm_responses'); 92 92 if ~any(~ismember(cm_responses,[ 101:105])), 93 md. cm_responses=repmat(cm_responses(:),md.nsteps,1);94 md. cm_responses(md.nsteps+1:end)=[];93 md.inversion.cost_functions=repmat(cm_responses(:),md.inversion.nsteps,1); 94 md.inversion.cost_functions(md.inversion.nsteps+1:end)=[]; 95 95 found=1; 96 96 end 97 97 end 98 98 if ~found 99 third=ceil(md. nsteps/3);100 md. cm_responses=[...99 third=ceil(md.inversion.nsteps/3); 100 md.inversion.cost_functions=[... 101 101 103*ones(third,1);... 102 102 101*ones(third,1);... 103 103 repmat([101;101;103;101],third,1)... 104 104 ]; 105 md. cm_responses(md.nsteps+1:end)=[];105 md.inversion.cost_functions(md.inversion.nsteps+1:end)=[]; 106 106 end 107 107 … … 111 111 optscal=getfieldvalue(options,'optscal'); 112 112 if ~any(optscal<0), 113 md. optscal=repmat(optscal(:),md.nsteps,1);114 md. optscal(md.nsteps+1:end)=[];113 md.inversion.gradient_scaling=repmat(optscal(:),md.inversion.nsteps,1); 114 md.inversion.gradient_scaling(md.inversion.nsteps+1:end)=[]; 115 115 found=1; 116 116 end 117 117 end 118 118 if ~found 119 third=ceil(md. nsteps/3);120 md. optscal=[2*10^8*ones(3,1);10^8*ones(third-3,1);10^7*ones(2*third,1);];121 md. optscal(md.nsteps+1:end)=[];119 third=ceil(md.inversion.nsteps/3); 120 md.inversion.gradient_scaling=[2*10^8*ones(3,1);10^8*ones(third-3,1);10^7*ones(2*third,1);]; 121 md.inversion.gradient_scaling(md.inversion.nsteps+1:end)=[]; 122 122 end -
issm/trunk/src/m/model/parameterization/parametercontroldrag.m
r9610 r9681 21 21 22 22 %control type 23 md. control_type={'FrictionCoefficient'};23 md.inversion.control_parameters={'FrictionCoefficient'}; 24 24 25 25 %weights 26 26 weights=getfieldvalue(options,'weights',ones(md.numberofnodes,1)); 27 27 if (length(weights)~=md.numberofnodes) 28 md. weights=ones(md.numberofnodes,1);28 md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1); 29 29 else 30 md. weights=weights;30 md.inversion.cost_functions_coefficients=weights; 31 31 end 32 32 … … 34 34 nsteps=getfieldvalue(options,'nsteps',100); 35 35 if (length(nsteps)~=1 | nsteps<=0 | floor(nsteps)~=nsteps) 36 md. nsteps=100;36 md.inversion.nsteps=100; 37 37 else 38 md. nsteps=nsteps;38 md.inversion.nsteps=nsteps; 39 39 end 40 40 … … 42 42 cm_min=getfieldvalue(options,'cm_min',1*ones(md.numberofnodes,1)); 43 43 if (length(cm_min)==1) 44 md. cm_min=cm_min*ones(md.numberofnodes,1);44 md.inversion.min_parameters=cm_min*ones(md.numberofnodes,1); 45 45 elseif (length(cm_min)==md.numberofnodes) 46 md. cm_min=cm_min;46 md.inversion.min_parameters=cm_min; 47 47 else 48 md. cm_min=cm_min;48 md.inversion.min_parameters=cm_min; 49 49 end 50 50 … … 52 52 cm_max=getfieldvalue(options,'cm_max',250*ones(md.numberofnodes,1)); 53 53 if (length(cm_max)==1) 54 md. cm_max=cm_max*ones(md.numberofnodes,1);54 md.inversion.max_parameters=cm_max*ones(md.numberofnodes,1); 55 55 elseif (length(cm_max)==md.numberofnodes) 56 md. cm_max=cm_max;56 md.inversion.max_parameters=cm_max; 57 57 else 58 md. cm_max=cm_max;58 md.inversion.max_parameters=cm_max; 59 59 end 60 60 … … 62 62 eps_cm=getfieldvalue(options,'eps_cm',NaN); 63 63 if (length(eps_cm)~=1 | eps_cm<0 ) 64 md. eps_cm=NaN;64 md.inversion.cost_function_threshold=NaN; 65 65 else 66 md. eps_cm=eps_cm;66 md.inversion.cost_function_threshold=eps_cm; 67 67 end 68 68 69 69 %maxiter 70 maxiter=getfieldvalue(options,'maxiter',10*ones(md. nsteps,1));70 maxiter=getfieldvalue(options,'maxiter',10*ones(md.inversion.nsteps,1)); 71 71 if (any(maxiter<0) | any(floor(maxiter)~=maxiter)) 72 md. maxiter=10*ones(md.nsteps,1);72 md.inversion.maxiter_per_step=10*ones(md.inversion.nsteps,1); 73 73 else 74 md. maxiter=repmat(maxiter(:),md.nsteps,1);75 md. maxiter(md.nsteps+1:end)=[];74 md.inversion.maxiter_per_step=repmat(maxiter(:),md.inversion.nsteps,1); 75 md.inversion.maxiter_per_step(md.inversion.nsteps+1:end)=[]; 76 76 end 77 77 78 78 %cm_jump 79 cm_jump=getfieldvalue(options,'cm_jump',0.8*ones(md. nsteps,1));79 cm_jump=getfieldvalue(options,'cm_jump',0.8*ones(md.inversion.nsteps,1)); 80 80 if ~isreal(cm_jump) 81 md. cm_jump=0.8*ones(md.nsteps,1);81 md.inversion.step_threshold=0.8*ones(md.inversion.nsteps,1); 82 82 else 83 md. cm_jump=repmat(cm_jump(:),md.nsteps,1);84 md. cm_jump(md.nsteps+1:end)=[];83 md.inversion.step_threshold=repmat(cm_jump(:),md.inversion.nsteps,1); 84 md.inversion.step_threshold(md.inversion.nsteps+1:end)=[]; 85 85 end 86 86 … … 90 90 cm_responses=getfieldvalue(options,'cm_responses'); 91 91 if ~any(~ismember(cm_responses,[101 105])). 92 md. cm_responses=repmat(cm_responses(:),md.nsteps,1);93 md. cm_responses(md.nsteps+1:end)=[];92 md.inversion.cost_functions=repmat(cm_responses(:),md.inversion.nsteps,1); 93 md.inversion.cost_functions(md.inversion.nsteps+1:end)=[]; 94 94 found=1; 95 95 end 96 96 end 97 97 if ~found 98 third=ceil(md. nsteps/3);99 md. cm_responses=[...98 third=ceil(md.inversion.nsteps/3); 99 md.inversion.cost_functions=[... 100 100 103*ones(third,1);... 101 101 101*ones(third,1);... 102 102 repmat([101;101;103;101],third,1)... 103 103 ]; 104 md. cm_responses(md.nsteps+1:end)=[];104 md.inversion.cost_functions(md.inversion.nsteps+1:end)=[]; 105 105 end 106 106 … … 110 110 optscal=getfieldvalue(options,'optscal'); 111 111 if ~any(optscal<0), 112 md. optscal=repmat(optscal(:),md.nsteps,1);113 md. optscal(md.nsteps+1:end)=[];112 md.inversion.gradient_scaling=repmat(optscal(:),md.inversion.nsteps,1); 113 md.inversion.gradient_scaling(md.inversion.nsteps+1:end)=[]; 114 114 found=1; 115 115 end 116 116 end 117 117 if ~found 118 third=ceil(md. nsteps/3);119 md. optscal=[50*ones(3,1);15*ones(third-3,1);10*ones(third,1);repmat([10;10;20;10],third,1)];120 md. optscal(md.nsteps+1:end)=[];118 third=ceil(md.inversion.nsteps/3); 119 md.inversion.gradient_scaling=[50*ones(3,1);15*ones(third-3,1);10*ones(third,1);repmat([10;10;20;10],third,1)]; 120 md.inversion.gradient_scaling(md.inversion.nsteps+1:end)=[]; 121 121 end -
issm/trunk/src/m/model/presolve.m
r9619 r9681 13 13 14 14 %Control methods 15 md. num_control_type=numel(md.control_type);16 md. num_cm_responses=size(md.cm_responses,2);15 md.inversion.num_control_parameters=numel(md.inversion.control_parameters); 16 md.inversion.num_cost_functions=size(md.inversion.cost_functions,2); -
issm/trunk/src/m/model/tres.m
r9650 r9681 39 39 end 40 40 end 41 if md. control_analysis==1,42 for control_type=md.control_type41 if md.inversion.iscontrol==1, 42 for inversion.control_parameters=md.inversion.control_parameters 43 43 %Will need to be updated... good luck ;) 44 md.(EnumToModelField( control_type))=PatchToVec(md.results.DiagnosticSolution.(EnumToString(control_type)));44 md.(EnumToModelField(inversion.control_parameters))=PatchToVec(md.results.DiagnosticSolution.(EnumToString(inversion.control_parameters))); 45 45 end 46 46 end … … 87 87 md.basalforcings.melting_rate=PatchToVec(md.results.SteadystateSolution.BasalforcingsMeltingRate); 88 88 89 if md. control_analysis==1,90 for control_type=md.control_type91 md.(EnumToModelField( control_type))=PatchToVec(md.results.SteadystateSolution.(EnumToString(control_type)));89 if md.inversion.iscontrol==1, 90 for inversion.control_parameters=md.inversion.control_parameters 91 md.(EnumToModelField(inversion.control_parameters))=PatchToVec(md.results.SteadystateSolution.(EnumToString(inversion.control_parameters))); 92 92 end 93 93 end -
issm/trunk/src/m/solutions/SpawnCore.m
r9585 r9681 9 9 responsedescriptors=femmodel.parameters.Responsedescriptors; 10 10 solution_type=femmodel.parameters.SolutionType; 11 control_analysis=femmodel.parameters. ControlAnalysis;11 control_analysis=femmodel.parameters.InversionIscontrol; 12 12 13 13 issmprintf(VerboseQmu(),'%s%i',[' qmu iteration:'],counter); -
issm/trunk/src/m/solutions/adjointbalancethickness_core.m
r8288 r9681 6 6 7 7 %recover parameters common to all solutions 8 control_analysis=femmodel.parameters. ControlAnalysis;8 control_analysis=femmodel.parameters.InversionIscontrol; 9 9 solution_type=femmodel.parameters.SolutionType; 10 10 -
issm/trunk/src/m/solutions/adjointdiagnostic_core.m
r9663 r9681 8 8 isstokes=femmodel.parameters.FlowequationIsstokes; 9 9 dim=femmodel.parameters.Dim; 10 control_analysis=femmodel.parameters. ControlAnalysis;10 control_analysis=femmodel.parameters.InversionIscontrol; 11 11 solution_type=femmodel.parameters.SolutionType; 12 12 conserve_loads=true; -
issm/trunk/src/m/solutions/balancethickness_core.m
r8288 r9681 7 7 %recover parameters common to all solutions 8 8 dim=femmodel.parameters.Dim; 9 control_analysis=femmodel.parameters. ControlAnalysis;9 control_analysis=femmodel.parameters.InversionIscontrol; 10 10 solution_type=femmodel.parameters.SolutionType; 11 11 -
issm/trunk/src/m/solutions/bedslope_core.m
r6323 r9681 8 8 %Recover some parameters: 9 9 dim=femmodel.parameters.Dim; 10 control_analysis=femmodel.parameters. ControlAnalysis;10 control_analysis=femmodel.parameters.InversionIscontrol; 11 11 solution_type=femmodel.parameters.SolutionType; 12 12 -
issm/trunk/src/m/solutions/control_core.m
r9662 r9681 7 7 8 8 %recover parameters common to all solutions 9 num_controls=femmodel.parameters. NumControlType;10 num_responses=femmodel.parameters. NumCmResponses;11 responses=femmodel.parameters. CmResponses;12 control_type=femmodel.parameters. ControlType;9 num_controls=femmodel.parameters.InversionNumControlParameters; 10 num_responses=femmodel.parameters.InversionNumCostFunctions; 11 responses=femmodel.parameters.InversionCostFunctions; 12 control_type=femmodel.parameters.InversionControlParameters; 13 13 solution_type=femmodel.parameters.SolutionType; 14 nsteps=femmodel.parameters. Nsteps;15 maxiter=femmodel.parameters. Maxiter;16 cm_jump=femmodel.parameters.CmJump;17 eps_cm=femmodel.parameters. EpsCm;18 cm_gradient=femmodel.parameters.CmGradient;14 nsteps=femmodel.parameters.InversionNsteps; 15 maxiter=femmodel.parameters.InversionMaxiterPerStep; 16 step_threshold=femmodel.parameters.InversionStepThreshold; 17 eps_cm=femmodel.parameters.InversionCostFunctionThreshold; 18 gradient_only=femmodel.parameters.InversionGradientOnly; 19 19 dim=femmodel.parameters.Dim; 20 20 isstokes=femmodel.parameters.FlowequationIsstokes; 21 21 22 22 %Initialise options with maxiter 23 options.MaxIter=femmodel.parameters. Maxiter;23 options.MaxIter=femmodel.parameters.InversionMaxiterPerStep; 24 24 25 25 %Initialize misfits with a vector of zeros … … 39 39 for n=1:nsteps, 40 40 41 issmprintf(VerboseControl(),['control method step ' num2str(n) '/' num2str(femmodel.parameters. Nsteps)]);41 issmprintf(VerboseControl(),['control method step ' num2str(n) '/' num2str(femmodel.parameters.InversionNsteps)]); 42 42 femmodel.parameters.StepResponses=responses(n,:); 43 43 … … 53 53 54 54 %Return gradient if asked 55 if cm_gradient,55 if gradient_only, 56 56 femmodel.elements=InputToResult(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,GradientEnum); 57 57 return; … … 75 75 %generate output 76 76 issmprintf(VerboseControl,' preparing final velocity solution'); 77 femmodel.parameters. ControlAnalysis=0;77 femmodel.parameters.InversionIscontrol=0; 78 78 eval(['femmodel=' solutioncore '(femmodel);']); 79 79 … … 83 83 end 84 84 femmodel.results=AddExternalResult(femmodel.results,JEnum,J); 85 %femmodel.results=AddExternalResult(femmodel.results, ControlTypeEnum,control_type);85 %femmodel.results=AddExternalResult(femmodel.results,InversionControlParametersEnum,control_type); 86 86 87 87 end %end function -
issm/trunk/src/m/solutions/diagnostic_core.m
r9661 r9681 16 16 isstokes=femmodel.parameters.FlowequationIsstokes; 17 17 dakota_analysis=femmodel.parameters.QmuIsdakota; 18 control_analysis=femmodel.parameters. ControlAnalysis;18 control_analysis=femmodel.parameters.InversionIscontrol; 19 19 solution_type=femmodel.parameters.SolutionType; 20 20 -
issm/trunk/src/m/solutions/enthalpy_core.m
r9634 r9681 9 9 ndt=femmodel.parameters.TimesteppingFinalTime; 10 10 dt=femmodel.parameters.TimesteppingTimeStep; 11 control_analysis=femmodel.parameters. ControlAnalysis;11 control_analysis=femmodel.parameters.InversionIscontrol; 12 12 solution_type=femmodel.parameters.SolutionType; 13 13 -
issm/trunk/src/m/solutions/gradient_core.m
r9391 r9681 21 21 22 22 %recover parameters common to all solutions 23 num_controls=femmodel.parameters. NumControlType;24 control_type=femmodel.parameters. ControlType;23 num_controls=femmodel.parameters.InversionNumControlParameters; 24 control_type=femmodel.parameters.InversionControlParameters; 25 25 control_steady=femmodel.parameters.ControlSteady; 26 optscal_list=femmodel.parameters.Optscal;26 gradient_scaling_list=femmodel.parameters.InversionGradientScaling; 27 27 28 28 for i=1:num_controls, … … 48 48 if(norm_grad<=0), error(['||∂J/∂α||∞ = 0 gradient norm of J with respect to ' EnumToString(control_type(i)) ' is zero']); end 49 49 if(isnan(norm_grad)), error(['||∂J/∂α||∞ = NaN gradient norm of J with respect to ' EnumToString(control_type(i)) ' is NaN' ]); end 50 if(i==1 | ( optscal_list(step,i)/norm_grad)<optscal) optscal=optscal_list(step,i)/norm_grad; end50 if(i==1 | (gradient_scaling_list(step,i)/norm_grad)<gradient_scaling) gradient_scaling=gradient_scaling_list(step,i)/norm_grad; end 51 51 52 52 %plug back into inputs: … … 56 56 %Scale all gradients 57 57 for i=1:num_controls, 58 [femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters]=ControlInputScaleGradient(femmodel.elements,femmodel.nodes, femmodel.vertices,femmodel.loads, femmodel.materials, femmodel.parameters,control_type(i), optscal);58 [femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters]=ControlInputScaleGradient(femmodel.elements,femmodel.nodes, femmodel.vertices,femmodel.loads, femmodel.materials, femmodel.parameters,control_type(i),gradient_scaling); 59 59 end -
issm/trunk/src/m/solutions/issm.m
r9650 r9681 23 23 %retrieve parameters 24 24 dakota_analysis=femmodel.parameters.QmuIsdakota; 25 control_analysis=femmodel.parameters. ControlAnalysis;25 control_analysis=femmodel.parameters.InversionIscontrol; 26 26 27 27 %compute solution -
issm/trunk/src/m/solutions/prognostic_core.m
r6323 r9681 6 6 7 7 %recover parameters common to all solutions 8 control_analysis=femmodel.parameters. ControlAnalysis;8 control_analysis=femmodel.parameters.InversionIscontrol; 9 9 solution_type=femmodel.parameters.SolutionType; 10 10 -
issm/trunk/src/m/solutions/steadystate_core.m
r9612 r9681 8 8 %recover parameters common to all solutions 9 9 dim=femmodel.parameters.Dim; 10 control_analysis=femmodel.parameters. ControlAnalysis;10 control_analysis=femmodel.parameters.InversionIscontrol; 11 11 solution_type=femmodel.parameters.SolutionType; 12 12 -
issm/trunk/src/m/solutions/surfaceslope_core.m
r6323 r9681 8 8 %Recover some parameters: 9 9 dim=femmodel.parameters.Dim; 10 control_analysis=femmodel.parameters. ControlAnalysis;10 control_analysis=femmodel.parameters.InversionIscontrol; 11 11 solution_type=femmodel.parameters.SolutionType; 12 12 -
issm/trunk/src/m/solutions/thermal_core.m
r9634 r9681 9 9 ndt=femmodel.parameters.TimesteppingFinalTime; 10 10 dt=femmodel.parameters.TimesteppingTimeStep; 11 control_analysis=femmodel.parameters. ControlAnalysis;11 control_analysis=femmodel.parameters.InversionIscontrol; 12 12 solution_type=femmodel.parameters.SolutionType; 13 13 -
issm/trunk/src/m/solutions/transient_core.m
r9678 r9681 10 10 dt=femmodel.parameters.TimesteppingTimeStep; 11 11 yts=femmodel.parameters.ConstantsYts; 12 control_analysis=femmodel.parameters. ControlAnalysis;12 control_analysis=femmodel.parameters.InversionIscontrol; 13 13 solution_type=femmodel.parameters.SolutionType; 14 14 output_frequency=femmodel.parameters.OutputFrequency; -
issm/trunk/src/m/utils/BC/SetIceSheetBC.m
r9679 r9681 18 18 19 19 %Dirichlet Values 20 if (length(md. vx_obs)==md.numberofnodes & length(md.vy_obs)==md.numberofnodes)20 if (length(md.inversion.vx_obs)==md.numberofnodes & length(md.inversion.vy_obs)==md.numberofnodes) 21 21 disp(' boundary conditions for diagnostic model: spc set as observed velocities'); 22 md.diagnostic.spcvx(pos)=md. vx_obs(pos);23 md.diagnostic.spcvy(pos)=md. vy_obs(pos);22 md.diagnostic.spcvx(pos)=md.inversion.vx_obs(pos); 23 md.diagnostic.spcvy(pos)=md.inversion.vy_obs(pos); 24 24 else 25 25 disp(' boundary conditions for diagnostic model: spc set as zero'); -
issm/trunk/src/m/utils/BC/SetIceShelfBC.m
r9680 r9681 37 37 38 38 %Dirichlet Values 39 if (length(md. vx_obs)==md.numberofnodes & length(md.vy_obs)==md.numberofnodes)39 if (length(md.inversion.vx_obs)==md.numberofnodes & length(md.inversion.vy_obs)==md.numberofnodes) 40 40 disp(' boundary conditions for diagnostic model: spc set as observed velocities'); 41 md.diagnostic.spcvx(pos)=md. vx_obs(pos);42 md.diagnostic.spcvy(pos)=md. vy_obs(pos);41 md.diagnostic.spcvx(pos)=md.inversion.vx_obs(pos); 42 md.diagnostic.spcvy(pos)=md.inversion.vy_obs(pos); 43 43 else 44 44 disp(' boundary conditions for diagnostic model: spc set as zero'); -
issm/trunk/src/m/utils/BC/SetMarineIceSheetBC.m
r9679 r9681 44 44 45 45 %Dirichlet Values 46 if (length(md. vx_obs)==md.numberofnodes & length(md.vy_obs)==md.numberofnodes)46 if (length(md.inversion.vx_obs)==md.numberofnodes & length(md.inversion.vy_obs)==md.numberofnodes) 47 47 disp(' boundary conditions for diagnostic model: spc set as observed velocities'); 48 md.diagnostic.spcvx(pos)=md. vx_obs(pos);49 md.diagnostic.spcvy(pos)=md. vy_obs(pos);48 md.diagnostic.spcvx(pos)=md.inversion.vx_obs(pos); 49 md.diagnostic.spcvy(pos)=md.inversion.vy_obs(pos); 50 50 else 51 51 disp(' boundary conditions for diagnostic model: spc set as zero'); -
issm/trunk/src/m/utils/Exp/clicktoflowline.m
r5392 r9681 4 4 % Usage: clicktoflowline(index,x,y,u,v,x0,y0,filename) 5 5 % 6 % Ex: clicktoflowline(md.elements,md.x,md.y,md. vx_obs,md.vy_obs,'flowline1.exp')6 % Ex: clicktoflowline(md.elements,md.x,md.y,md.inversion.vx_obs,md.inversion.vy_obs,'flowline1.exp') 7 7 8 8 -
issm/trunk/src/m/utils/Interp/plugvelocities.m
r8298 r9681 29 29 %Interpolation 30 30 if strcmpi(Names.interp,'node'), 31 md. vx_obs=InterpFromGridToMesh(Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vxname),md.x,md.y,default_value);32 md. vy_obs=InterpFromGridToMesh(Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vyname),md.x,md.y,default_value);31 md.inversion.vx_obs=InterpFromGridToMesh(Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vxname),md.x,md.y,default_value); 32 md.inversion.vy_obs=InterpFromGridToMesh(Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vyname),md.x,md.y,default_value); 33 33 else 34 md. vx_obs=InterpFromMeshToMesh2d(Vel.(Names.indexname),Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vxname),md.x,md.y,default_value);35 md. vy_obs=InterpFromMeshToMesh2d(Vel.(Names.indexname),Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vyname),md.x,md.y,default_value);34 md.inversion.vx_obs=InterpFromMeshToMesh2d(Vel.(Names.indexname),Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vxname),md.x,md.y,default_value); 35 md.inversion.vy_obs=InterpFromMeshToMesh2d(Vel.(Names.indexname),Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vyname),md.x,md.y,default_value); 36 36 end 37 37 38 md. vel_obs=sqrt(md.vx_obs.^2+md.vy_obs.^2);39 md.vx=md. vx_obs;40 md.vy=md. vy_obs;41 md.vel=md. vel_obs;38 md.inversion.vel_obs=sqrt(md.inversion.vx_obs.^2+md.inversion.vy_obs.^2); 39 md.vx=md.inversion.vx_obs; 40 md.vy=md.inversion.vy_obs; 41 md.vel=md.inversion.vel_obs; -
issm/trunk/src/m/utils/Mesh/BamgCall.m
r8298 r9681 13 13 % 14 14 % Example: 15 % md=BamgCall(md,md. vel_obs,1500,10^8,1.3,0.9);15 % md=BamgCall(md,md.inversion.vel_obs,1500,10^8,1.3,0.9); 16 16 17 17 %2d geometric parameter (do not change) -
issm/trunk/src/m/utils/Mesh/ComputeHessian.m
r8298 r9681 10 10 % 11 11 % Example: 12 % hessian=ComputeHessian(md.elements,md.x,md.y,md. vel_obs,'node')12 % hessian=ComputeHessian(md.elements,md.x,md.y,md.inversion.vel_obs,'node') 13 13 14 14 %some variables -
issm/trunk/src/m/utils/Mesh/MeshQuality.m
r8927 r9681 14 14 15 15 %Compute Hessian 16 hessian=ComputeHessian(index,x,y,md. vel_obs,'node');16 hessian=ComputeHessian(index,x,y,md.inversion.vel_obs,'node'); 17 17 18 18 %Compute metric -
issm/trunk/src/m/utils/Mesh/YamsCall.m
r9619 r9681 13 13 % 14 14 % Example: 15 % md=YamsCall(md,md. vel_obs,1500,10^8,1.3,0.9);15 % md=YamsCall(md,md.inversion.vel_obs,1500,10^8,1.3,0.9); 16 16 17 17 %2d geometric parameter (do not change) -
issm/trunk/src/mex/ControlOptimization/ControlOptimization.cpp
r9563 r9681 20 20 /*arguments to objectivefunctionC: */ 21 21 int n_value; 22 double* cm_jump=NULL;22 double* threshold=NULL; 23 23 24 24 /*Boot module: */ … … 32 32 FetchMatlabData(&xmin,XMIN); 33 33 FetchMatlabData(&xmax,XMAX); 34 FetchMatlabData(&maxiter,NULL,NULL,mxGetField(OPTIONS,0,"MaxIter"));35 34 36 35 /*Parameters: */ 37 FetchMatlabData(&cm_jump,NULL,NULL,mxGetField(PARAMETERS,0,"CmJump")); 36 FetchMatlabData(&maxiter,NULL,NULL,mxGetField(OPTIONS,0,"MaxIter")); 37 FetchMatlabData(&threshold,NULL,NULL,mxGetField(PARAMETERS,0,"InversionStepThreshold")); 38 38 FetchMatlabData(&n_value,STEP); 39 39 … … 44 44 optpars.xmax=xmax; 45 45 optpars.maxiter=(int)maxiter[n_value-1]; 46 optpars.cm_jump= cm_jump[n_value-1];46 optpars.cm_jump=threshold[n_value-1]; 47 47 48 48 BrentSearch(&search_scalar,&J,&optpars,&OptFunc,&optargs); … … 54 54 /*Free ressources: */ 55 55 xfree((void**)&function_name); 56 xfree((void**)& cm_jump);56 xfree((void**)&threshold); 57 57 xfree((void**)&maxiter); 58 58 -
issm/trunk/template
r9679 r9681 61 61 waterfraction 62 62 }}} 63 inversion{{{64 private:65 num_control_type -> num_control_parameters66 num_cm_responses -> rename num_cost_functions67 68 control_analysis ->rename iscontrol69 control_type -> rename control_parameters?70 cm_responses -> rename cost_functions71 cm_gradient -> rename gradient_only72 weights -> rename cost_functions_coefficients73 74 cm_min -> min_parameters75 cm_max -> max_parameters76 77 nsteps78 maxiter -> rename maxiter_per_step79 optscal -> gradient_scaling80 cm_jump -> step_threshold81 eps_cm -> misfit_threshold82 83 vx_obs84 vy_obs85 vel_obs86 thickness_obs87 }}}88 63 89 64 %To be completed -
issm/trunk/test/NightlyRun/test1205.m
r9679 r9681 15 15 vx_obs=constant/2*md.x.*(md.thickness).^-1; 16 16 vy_obs=constant/2*md.y.*(md.thickness).^-1; 17 vel_obs=(sqrt((md. vx_obs).^2+(md.vy_obs).^2));17 vel_obs=(sqrt((md.inversion.vx_obs).^2+(md.inversion.vy_obs).^2)); 18 18 19 19 %We extrude the model to have a 3d model -
issm/trunk/test/NightlyRun/test1206.m
r9679 r9681 15 15 vx_obs=constant/2*md.x.*(md.thickness).^-1; 16 16 vy_obs=constant/2*md.y.*(md.thickness).^-1; 17 vel_obs=(sqrt((md. vx_obs).^2+(md.vy_obs).^2));17 vel_obs=(sqrt((md.inversion.vx_obs).^2+(md.inversion.vy_obs).^2)); 18 18 19 19 %We extrude the model to have a 3d model -
issm/trunk/test/NightlyRun/test1207.m
r9679 r9681 15 15 vx_obs=constant/2*md.x.*(md.thickness).^-1; 16 16 vy_obs=constant/2*md.y.*(md.thickness).^-1; 17 vel_obs=(sqrt((md. vx_obs).^2+(md.vy_obs).^2));17 vel_obs=(sqrt((md.inversion.vx_obs).^2+(md.inversion.vy_obs).^2)); 18 18 19 19 %We extrude the model to have a 3d model -
issm/trunk/test/NightlyRun/test1401.m
r6088 r9681 11 11 %mesh adaptation loop YAMS 12 12 md=squaremesh(md,L,L,nx,ny); 13 md. vel_obs=exp(-(sqrt((md.x+0.1).^2+(md.y+0.1).^2)-0.75).^2*10^6)+((md.x+0.1).^2+(md.y+0.1).^2)/2;13 md.inversion.vel_obs=exp(-(sqrt((md.x+0.1).^2+(md.y+0.1).^2)-0.75).^2*10^6)+((md.x+0.1).^2+(md.y+0.1).^2)/2; 14 14 plotmodel(md,'data','vel_obs','data','vel_obs','nlines',1,'ncols',2,'title','','figposition',[500 500 1000 500],'axis#all','equal','xlim#all',[0 1],'ylim#all',[0 1],'edgecolor#1','w'); pause(0.5); 15 15 if printingflag, … … 19 19 end 20 20 21 md=YamsCall(md,md. vel_obs,0.001,0.3,1.3,10^-4);22 md. vel_obs=exp(-(sqrt((md.x+0.1).^2+(md.y+0.1).^2)-0.75).^2*10^6)+((md.x+0.1).^2+(md.y+0.1).^2)/2;21 md=YamsCall(md,md.inversion.vel_obs,0.001,0.3,1.3,10^-4); 22 md.inversion.vel_obs=exp(-(sqrt((md.x+0.1).^2+(md.y+0.1).^2)-0.75).^2*10^6)+((md.x+0.1).^2+(md.y+0.1).^2)/2; 23 23 plotmodel(md,'data','vel_obs','data','vel_obs','nlines',1,'ncols',2,'title','','figposition',[500 500 1000 500],'axis#all','equal','xlim#all',[0 1],'ylim#all',[0 1],'edgecolor#1','w'); pause(0.5); 24 24 if printingflag, … … 28 28 end 29 29 30 md=YamsCall(md,md. vel_obs,0.001,0.3,2.5,0.008);31 md. vel_obs=exp(-(sqrt((md.x+0.1).^2+(md.y+0.1).^2)-0.75).^2*10^6)+((md.x+0.1).^2+(md.y+0.1).^2)/2;30 md=YamsCall(md,md.inversion.vel_obs,0.001,0.3,2.5,0.008); 31 md.inversion.vel_obs=exp(-(sqrt((md.x+0.1).^2+(md.y+0.1).^2)-0.75).^2*10^6)+((md.x+0.1).^2+(md.y+0.1).^2)/2; 32 32 plotmodel(md,'data','vel_obs','data','vel_obs','nlines',1,'ncols',2,'title','','figposition',[500 500 1000 500],'axis#all','equal','xlim#all',[0 1],'ylim#all',[0 1],'edgecolor#1','w'); pause(0.5); 33 33 if printingflag, … … 41 41 %mesh adaptation loop BAMG 42 42 md=squaremesh(md,L,L,nx,ny); 43 md. vel_obs=exp(-(sqrt((md.x+0.1).^2+(md.y+0.1).^2)-0.75).^2*10^6)+((md.x+0.1).^2+(md.y+0.1).^2)/2;43 md.inversion.vel_obs=exp(-(sqrt((md.x+0.1).^2+(md.y+0.1).^2)-0.75).^2*10^6)+((md.x+0.1).^2+(md.y+0.1).^2)/2; 44 44 plotmodel(md,'data','vel_obs','data','vel_obs','nlines',1,'ncols',2,'title','','figposition',[500 500 1000 500],'axis#all','equal','xlim#all',[0 1],'ylim#all',[0 1],'edgecolor#1','w'); pause(0.5); 45 45 if printingflag, … … 50 50 51 51 md.bamg=NaN; 52 md=bamg(md,'field',md. vel_obs,'hmin',0.001,'hmax',0.3,'gradation',1.3,'err',10^-4);53 md. vel_obs=exp(-(sqrt((md.x+0.1).^2+(md.y+0.1).^2)-0.75).^2*10^6)+((md.x+0.1).^2+(md.y+0.1).^2)/2;52 md=bamg(md,'field',md.inversion.vel_obs,'hmin',0.001,'hmax',0.3,'gradation',1.3,'err',10^-4); 53 md.inversion.vel_obs=exp(-(sqrt((md.x+0.1).^2+(md.y+0.1).^2)-0.75).^2*10^6)+((md.x+0.1).^2+(md.y+0.1).^2)/2; 54 54 plotmodel(md,'data','vel_obs','data','vel_obs','nlines',1,'ncols',2,'title','','figposition',[500 500 1000 500],'axis#all','equal','xlim#all',[0 1],'ylim#all',[0 1],'edgecolor#1','w'); pause(0.5); 55 55 if printingflag, … … 60 60 61 61 md.bamg=NaN; 62 md=bamg(md,'field',md. vel_obs,'hmin',0.001,'hmax',0.3,'gradation',2.5,'err',0.008);63 md. vel_obs=exp(-(sqrt((md.x+0.1).^2+(md.y+0.1).^2)-0.75).^2*10^6)+((md.x+0.1).^2+(md.y+0.1).^2)/2;62 md=bamg(md,'field',md.inversion.vel_obs,'hmin',0.001,'hmax',0.3,'gradation',2.5,'err',0.008); 63 md.inversion.vel_obs=exp(-(sqrt((md.x+0.1).^2+(md.y+0.1).^2)-0.75).^2*10^6)+((md.x+0.1).^2+(md.y+0.1).^2)/2; 64 64 plotmodel(md,'data','vel_obs','data','vel_obs','nlines',1,'ncols',2,'title','','figposition',[500 500 1000 500],'axis#all','equal','xlim#all',[0 1],'ylim#all',[0 1],'edgecolor#1','w'); pause(0.5); 65 65 if printingflag, -
issm/trunk/test/NightlyRun/test1402.m
r6088 r9681 11 11 md=squaremesh(md,L,L,nx,ny); 12 12 u=4*md.x-2; v=4*md.y-2; 13 md. vel_obs=tanh(30*(u.^2+v.^2-0.25)) ...13 md.inversion.vel_obs=tanh(30*(u.^2+v.^2-0.25)) ... 14 14 +tanh(30*((u-0.75).^2+(v-0.75).^2-0.25)) +tanh(30*((u-0.75).^2+(v+0.75).^2-0.25)) ... 15 15 +tanh(30*((u+0.75).^2+(v-0.75).^2-0.25)) +tanh(30*((u+0.75).^2+(v+0.75).^2-0.25)) ; … … 21 21 end 22 22 23 md=YamsCall(md,md. vel_obs,0.005,0.3,2.3,10^-2);23 md=YamsCall(md,md.inversion.vel_obs,0.005,0.3,2.3,10^-2); 24 24 u=4*md.x-2; v=4*md.y-2; 25 md. vel_obs=tanh(30*(u.^2+v.^2-0.25)) ...25 md.inversion.vel_obs=tanh(30*(u.^2+v.^2-0.25)) ... 26 26 +tanh(30*((u-0.75).^2+(v-0.75).^2-0.25)) +tanh(30*((u-0.75).^2+(v+0.75).^2-0.25)) ... 27 27 +tanh(30*((u+0.75).^2+(v-0.75).^2-0.25)) +tanh(30*((u+0.75).^2+(v+0.75).^2-0.25)) ; … … 33 33 end 34 34 35 md=YamsCall(md,md. vel_obs,0.005,0.3,3,0.005);35 md=YamsCall(md,md.inversion.vel_obs,0.005,0.3,3,0.005); 36 36 u=4*md.x-2; v=4*md.y-2; 37 md. vel_obs=tanh(30*(u.^2+v.^2-0.25)) ...37 md.inversion.vel_obs=tanh(30*(u.^2+v.^2-0.25)) ... 38 38 +tanh(30*((u-0.75).^2+(v-0.75).^2-0.25)) +tanh(30*((u-0.75).^2+(v+0.75).^2-0.25)) ... 39 39 +tanh(30*((u+0.75).^2+(v-0.75).^2-0.25)) +tanh(30*((u+0.75).^2+(v+0.75).^2-0.25)) ; … … 50 50 md=squaremesh(md,L,L,nx,ny); 51 51 u=4*md.x-2; v=4*md.y-2; 52 md. vel_obs=tanh(30*(u.^2+v.^2-0.25)) ...52 md.inversion.vel_obs=tanh(30*(u.^2+v.^2-0.25)) ... 53 53 +tanh(30*((u-0.75).^2+(v-0.75).^2-0.25)) +tanh(30*((u-0.75).^2+(v+0.75).^2-0.25)) ... 54 54 +tanh(30*((u+0.75).^2+(v-0.75).^2-0.25)) +tanh(30*((u+0.75).^2+(v+0.75).^2-0.25)) ; … … 61 61 62 62 md.bamg=NaN; 63 md=bamg(md,'field',md. vel_obs,'hmin',0.005,'hmax',0.3,'gradation',2.3,'err',10^-2);63 md=bamg(md,'field',md.inversion.vel_obs,'hmin',0.005,'hmax',0.3,'gradation',2.3,'err',10^-2); 64 64 u=4*md.x-2; v=4*md.y-2; 65 md. vel_obs=tanh(30*(u.^2+v.^2-0.25)) ...65 md.inversion.vel_obs=tanh(30*(u.^2+v.^2-0.25)) ... 66 66 +tanh(30*((u-0.75).^2+(v-0.75).^2-0.25)) +tanh(30*((u-0.75).^2+(v+0.75).^2-0.25)) ... 67 67 +tanh(30*((u+0.75).^2+(v-0.75).^2-0.25)) +tanh(30*((u+0.75).^2+(v+0.75).^2-0.25)) ; … … 74 74 75 75 md.bamg=NaN; 76 md=bamg(md,'field',md. vel_obs,'hmin',0.005,'hmax',0.3,'gradation',3,'err',0.005);76 md=bamg(md,'field',md.inversion.vel_obs,'hmin',0.005,'hmax',0.3,'gradation',3,'err',0.005); 77 77 u=4*md.x-2; v=4*md.y-2; 78 md. vel_obs=tanh(30*(u.^2+v.^2-0.25)) ...78 md.inversion.vel_obs=tanh(30*(u.^2+v.^2-0.25)) ... 79 79 +tanh(30*((u-0.75).^2+(v-0.75).^2-0.25)) +tanh(30*((u-0.75).^2+(v+0.75).^2-0.25)) ... 80 80 +tanh(30*((u+0.75).^2+(v-0.75).^2-0.25)) +tanh(30*((u+0.75).^2+(v+0.75).^2-0.25)) ; … … 87 87 88 88 md.bamg=NaN; 89 md=bamg(md,'field',md. vel_obs,'hmin',0.005,'hmax',0.3,'gradation',1.5,'err',0.003,'anisomax',1);89 md=bamg(md,'field',md.inversion.vel_obs,'hmin',0.005,'hmax',0.3,'gradation',1.5,'err',0.003,'anisomax',1); 90 90 u=4*md.x-2; v=4*md.y-2; 91 md. vel_obs=tanh(30*(u.^2+v.^2-0.25)) ...91 md.inversion.vel_obs=tanh(30*(u.^2+v.^2-0.25)) ... 92 92 +tanh(30*((u-0.75).^2+(v-0.75).^2-0.25)) +tanh(30*((u-0.75).^2+(v+0.75).^2-0.25)) ... 93 93 +tanh(30*((u+0.75).^2+(v-0.75).^2-0.25)) +tanh(30*((u+0.75).^2+(v+0.75).^2-0.25)) ; -
issm/trunk/test/NightlyRun/test223.m
r9664 r9681 5 5 6 6 %control parameters 7 md. control_analysis=1;8 md. control_type={'MaterialsRheologyBbar'};9 md. cm_min=10^6*ones(md.numberofnodes,1);10 md. cm_max=2*10^9*ones(md.numberofnodes,1);11 md. nsteps=2;12 md. cm_responses=101*ones(md.nsteps,1);13 md. weights=ones(md.numberofnodes,1);14 md. optscal=10^7*ones(md.nsteps,1);15 md. maxiter=2*ones(md.nsteps,1);16 md. cm_jump=0.3*ones(md.nsteps,1);17 md. vx_obs=md.vx; md.vy_obs=md.vy;7 md.inversion.iscontrol=1; 8 md.inversion.control_parameters={'MaterialsRheologyBbar'}; 9 md.inversion.min_parameters=10^6*ones(md.numberofnodes,1); 10 md.inversion.max_parameters=2*10^9*ones(md.numberofnodes,1); 11 md.inversion.nsteps=2; 12 md.inversion.cost_functions=101*ones(md.inversion.nsteps,1); 13 md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1); 14 md.inversion.gradient_scaling=10^7*ones(md.inversion.nsteps,1); 15 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1); 16 md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1); 17 md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy; 18 18 19 19 md.cluster=none; 20 md.verbose=verbose('all'); 20 21 md=solve(md,DiagnosticSolutionEnum); 21 22 -
issm/trunk/test/NightlyRun/test224.m
r9664 r9681 5 5 6 6 %control parameters 7 md. control_analysis=1;8 md. control_type={'MaterialsRheologyBbar'};9 md. cm_min=10^6*ones(md.numberofnodes,1);10 md. cm_max=2*10^9*ones(md.numberofnodes,1);11 md. nsteps=2;12 md. cm_responses=101*ones(md.nsteps,1);13 md. weights=ones(md.numberofnodes,1);14 md. optscal=10^7*ones(md.nsteps,1);15 md. maxiter=2*ones(md.nsteps,1);16 md. cm_jump=0.3*ones(md.nsteps,1);17 md. vx_obs=md.vx; md.vy_obs=md.vy;7 md.inversion.iscontrol=1; 8 md.inversion.control_parameters={'MaterialsRheologyBbar'}; 9 md.inversion.min_parameters=10^6*ones(md.numberofnodes,1); 10 md.inversion.max_parameters=2*10^9*ones(md.numberofnodes,1); 11 md.inversion.nsteps=2; 12 md.inversion.cost_functions=101*ones(md.inversion.nsteps,1); 13 md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1); 14 md.inversion.gradient_scaling=10^7*ones(md.inversion.nsteps,1); 15 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1); 16 md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1); 17 md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy; 18 18 19 19 md.cluster=generic('name',oshostname(),'np',3); -
issm/trunk/test/NightlyRun/test225.m
r9664 r9681 6 6 7 7 %control parameters 8 md. control_analysis=1;9 md. control_type={'MaterialsRheologyBbar'};10 md. cm_min=10^6*ones(md.numberofnodes,1);11 md. cm_max=2*10^9*ones(md.numberofnodes,1);12 md. nsteps=2;13 md. cm_responses=101*ones(md.nsteps,1);14 md. weights=ones(md.numberofnodes,1);15 md. optscal=10^7*ones(md.nsteps,1);16 md. maxiter=2*ones(md.nsteps,1);17 md. cm_jump=0.3*ones(md.nsteps,1);18 md. vx_obs=md.vx; md.vy_obs=md.vy;8 md.inversion.iscontrol=1; 9 md.inversion.control_parameters={'MaterialsRheologyBbar'}; 10 md.inversion.min_parameters=10^6*ones(md.numberofnodes,1); 11 md.inversion.max_parameters=2*10^9*ones(md.numberofnodes,1); 12 md.inversion.nsteps=2; 13 md.inversion.cost_functions=101*ones(md.inversion.nsteps,1); 14 md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1); 15 md.inversion.gradient_scaling=10^7*ones(md.inversion.nsteps,1); 16 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1); 17 md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1); 18 md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy; 19 19 20 20 md.cluster=none; -
issm/trunk/test/NightlyRun/test226.m
r9664 r9681 6 6 7 7 %control parameters 8 md. control_analysis=1;9 md. control_type={'MaterialsRheologyBbar'};10 md. cm_min=10^6*ones(md.numberofnodes,1);11 md. cm_max=2*10^9*ones(md.numberofnodes,1);12 md. nsteps=2;13 md. cm_responses=101*ones(md.nsteps,1);14 md. weights=ones(md.numberofnodes,1);15 md. optscal=10^7*ones(md.nsteps,1);16 md. maxiter=2*ones(md.nsteps,1);17 md. cm_jump=0.3*ones(md.nsteps,1);18 md. vx_obs=md.vx; md.vy_obs=md.vy;8 md.inversion.iscontrol=1; 9 md.inversion.control_parameters={'MaterialsRheologyBbar'}; 10 md.inversion.min_parameters=10^6*ones(md.numberofnodes,1); 11 md.inversion.max_parameters=2*10^9*ones(md.numberofnodes,1); 12 md.inversion.nsteps=2; 13 md.inversion.cost_functions=101*ones(md.inversion.nsteps,1); 14 md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1); 15 md.inversion.gradient_scaling=10^7*ones(md.inversion.nsteps,1); 16 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1); 17 md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1); 18 md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy; 19 19 20 20 md.cluster=generic('name',oshostname(),'np',3); -
issm/trunk/test/NightlyRun/test227.m
r9664 r9681 6 6 7 7 %control parameters 8 md. control_analysis=1;9 md. control_type={'MaterialsRheologyBbar'};10 md. cm_min=10^6*ones(md.numberofnodes,1);11 md. cm_max=2*10^9*ones(md.numberofnodes,1);12 md. nsteps=2;13 md. cm_responses=101*ones(md.nsteps,1);14 md. weights=ones(md.numberofnodes,1);15 md. optscal=10^7*ones(md.nsteps,1);16 md. maxiter=2*ones(md.nsteps,1);17 md. cm_jump=0.3*ones(md.nsteps,1);18 md. vx_obs=md.vx; md.vy_obs=md.vy;8 md.inversion.iscontrol=1; 9 md.inversion.control_parameters={'MaterialsRheologyBbar'}; 10 md.inversion.min_parameters=10^6*ones(md.numberofnodes,1); 11 md.inversion.max_parameters=2*10^9*ones(md.numberofnodes,1); 12 md.inversion.nsteps=2; 13 md.inversion.cost_functions=101*ones(md.inversion.nsteps,1); 14 md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1); 15 md.inversion.gradient_scaling=10^7*ones(md.inversion.nsteps,1); 16 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1); 17 md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1); 18 md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy; 19 19 20 20 md.cluster=none; -
issm/trunk/test/NightlyRun/test228.m
r9664 r9681 6 6 7 7 %control parameters 8 md. control_analysis=1;9 md. control_type={'MaterialsRheologyBbar'};10 md. cm_min=10^6*ones(md.numberofnodes,1);11 md. cm_max=2*10^9*ones(md.numberofnodes,1);12 md. nsteps=2;13 md. cm_responses=101*ones(md.nsteps,1);14 md. weights=ones(md.numberofnodes,1);15 md. optscal=10^7*ones(md.nsteps,1);16 md. maxiter=2*ones(md.nsteps,1);17 md. cm_jump=0.3*ones(md.nsteps,1);18 md. vx_obs=md.vx; md.vy_obs=md.vy;8 md.inversion.iscontrol=1; 9 md.inversion.control_parameters={'MaterialsRheologyBbar'}; 10 md.inversion.min_parameters=10^6*ones(md.numberofnodes,1); 11 md.inversion.max_parameters=2*10^9*ones(md.numberofnodes,1); 12 md.inversion.nsteps=2; 13 md.inversion.cost_functions=101*ones(md.inversion.nsteps,1); 14 md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1); 15 md.inversion.gradient_scaling=10^7*ones(md.inversion.nsteps,1); 16 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1); 17 md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1); 18 md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy; 19 19 20 20 md.cluster=generic('name',oshostname(),'np',3); -
issm/trunk/test/NightlyRun/test229.m
r9664 r9681 6 6 7 7 %control parameters 8 md. control_analysis=1;9 md. control_type={'MaterialsRheologyBbar'};10 md. cm_min=10^6*ones(md.numberofnodes,1);11 md. cm_max=2*10^9*ones(md.numberofnodes,1);12 md. nsteps=2;13 md. cm_responses=101*ones(md.nsteps,1);14 md. weights=ones(md.numberofnodes,1);15 md. optscal=10^7*ones(md.nsteps,1);16 md. maxiter=2*ones(md.nsteps,1);17 md. cm_jump=0.3*ones(md.nsteps,1);18 md. vx_obs=md.vx; md.vy_obs=md.vy;8 md.inversion.iscontrol=1; 9 md.inversion.control_parameters={'MaterialsRheologyBbar'}; 10 md.inversion.min_parameters=10^6*ones(md.numberofnodes,1); 11 md.inversion.max_parameters=2*10^9*ones(md.numberofnodes,1); 12 md.inversion.nsteps=2; 13 md.inversion.cost_functions=101*ones(md.inversion.nsteps,1); 14 md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1); 15 md.inversion.gradient_scaling=10^7*ones(md.inversion.nsteps,1); 16 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1); 17 md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1); 18 md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy; 19 19 20 20 md.cluster=none; -
issm/trunk/test/NightlyRun/test230.m
r9664 r9681 6 6 7 7 %control parameters 8 md. control_analysis=1;9 md. control_type={'MaterialsRheologyBbar'};10 md. cm_min=10^6*ones(md.numberofnodes,1);11 md. cm_max=2*10^9*ones(md.numberofnodes,1);12 md. nsteps=2;13 md. cm_responses=101*ones(md.nsteps,1);14 md. weights=ones(md.numberofnodes,1);15 md. optscal=10^7*ones(md.nsteps,1);16 md. maxiter=2*ones(md.nsteps,1);17 md. cm_jump=0.3*ones(md.nsteps,1);18 md. vx_obs=md.vx; md.vy_obs=md.vy;8 md.inversion.iscontrol=1; 9 md.inversion.control_parameters={'MaterialsRheologyBbar'}; 10 md.inversion.min_parameters=10^6*ones(md.numberofnodes,1); 11 md.inversion.max_parameters=2*10^9*ones(md.numberofnodes,1); 12 md.inversion.nsteps=2; 13 md.inversion.cost_functions=101*ones(md.inversion.nsteps,1); 14 md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1); 15 md.inversion.gradient_scaling=10^7*ones(md.inversion.nsteps,1); 16 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1); 17 md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1); 18 md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy; 19 19 20 20 md.cluster=generic('name',oshostname(),'np',3); -
issm/trunk/test/NightlyRun/test337.m
r9664 r9681 5 5 6 6 %control parameters 7 md. control_analysis=1;8 md. control_type={'FrictionCoefficient'};9 md. cm_min=1*ones(md.numberofnodes,1);10 md. cm_max=200*ones(md.numberofnodes,1);11 md. nsteps=2;12 md. cm_responses=[103*ones(md.nsteps,1) 501*ones(md.nsteps,1)];13 md. weights=ones(md.numberofnodes,2); md.weights(:,2)=0*2*10^-7;14 md. optscal=3*ones(md.nsteps,1);15 md. maxiter=2*ones(md.nsteps,1);16 md. cm_jump=0.3*ones(md.nsteps,1);17 md. vx_obs=md.vx; md.vy_obs=md.vy;7 md.inversion.iscontrol=1; 8 md.inversion.control_parameters={'FrictionCoefficient'}; 9 md.inversion.min_parameters=1*ones(md.numberofnodes,1); 10 md.inversion.max_parameters=200*ones(md.numberofnodes,1); 11 md.inversion.nsteps=2; 12 md.inversion.cost_functions=[103*ones(md.inversion.nsteps,1) 501*ones(md.inversion.nsteps,1)]; 13 md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=0*2*10^-7; 14 md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1); 15 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1); 16 md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1); 17 md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy; 18 18 19 19 md.cluster=none; -
issm/trunk/test/NightlyRun/test338.m
r9664 r9681 5 5 6 6 %control parameters 7 md. control_analysis=1;8 md. control_type={'FrictionCoefficient'};9 md. cm_min=1*ones(md.numberofnodes,1);10 md. cm_max=200*ones(md.numberofnodes,1);11 md. nsteps=2;12 md. cm_responses=[103*ones(md.nsteps,1) 501*ones(md.nsteps,1)];13 md. weights=ones(md.numberofnodes,2); md.weights(:,2)=2*10^-7;14 md. optscal=3*ones(md.nsteps,1);15 md. maxiter=2*ones(md.nsteps,1);16 md. cm_jump=0.3*ones(md.nsteps,1);17 md. vx_obs=md.vx; md.vy_obs=md.vy;7 md.inversion.iscontrol=1; 8 md.inversion.control_parameters={'FrictionCoefficient'}; 9 md.inversion.min_parameters=1*ones(md.numberofnodes,1); 10 md.inversion.max_parameters=200*ones(md.numberofnodes,1); 11 md.inversion.nsteps=2; 12 md.inversion.cost_functions=[103*ones(md.inversion.nsteps,1) 501*ones(md.inversion.nsteps,1)]; 13 md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7; 14 md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1); 15 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1); 16 md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1); 17 md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy; 18 18 19 19 md.cluster=generic('name',oshostname(),'np',3); -
issm/trunk/test/NightlyRun/test339.m
r9664 r9681 6 6 7 7 %control parameters 8 md. control_analysis=1;9 md. control_type={'FrictionCoefficient'};10 md. cm_min=1*ones(md.numberofnodes,1);11 md. cm_max=200*ones(md.numberofnodes,1);12 md. nsteps=2;13 md. cm_responses=[103*ones(md.nsteps,1) 501*ones(md.nsteps,1)];14 md. weights=ones(md.numberofnodes,2); md.weights(:,2)=2*10^-7;15 md. optscal=3*ones(md.nsteps,1);16 md. maxiter=2*ones(md.nsteps,1);17 md. cm_jump=0.3*ones(md.nsteps,1);18 md. vx_obs=md.vx; md.vy_obs=md.vy;8 md.inversion.iscontrol=1; 9 md.inversion.control_parameters={'FrictionCoefficient'}; 10 md.inversion.min_parameters=1*ones(md.numberofnodes,1); 11 md.inversion.max_parameters=200*ones(md.numberofnodes,1); 12 md.inversion.nsteps=2; 13 md.inversion.cost_functions=[103*ones(md.inversion.nsteps,1) 501*ones(md.inversion.nsteps,1)]; 14 md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7; 15 md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1); 16 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1); 17 md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1); 18 md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy; 19 19 20 20 md.cluster=none; -
issm/trunk/test/NightlyRun/test340.m
r9664 r9681 6 6 7 7 %control parameters 8 md. control_analysis=1;9 md. control_type={'FrictionCoefficient'};10 md. cm_min=1*ones(md.numberofnodes,1);11 md. cm_max=200*ones(md.numberofnodes,1);12 md. nsteps=2;13 md. cm_responses=[103*ones(md.nsteps,1) 501*ones(md.nsteps,1)];14 md. weights=ones(md.numberofnodes,2); md.weights(:,2)=2*10^-7;15 md. optscal=3*ones(md.nsteps,1);16 md. maxiter=2*ones(md.nsteps,1);17 md. cm_jump=0.3*ones(md.nsteps,1);18 md. vx_obs=md.vx; md.vy_obs=md.vy;8 md.inversion.iscontrol=1; 9 md.inversion.control_parameters={'FrictionCoefficient'}; 10 md.inversion.min_parameters=1*ones(md.numberofnodes,1); 11 md.inversion.max_parameters=200*ones(md.numberofnodes,1); 12 md.inversion.nsteps=2; 13 md.inversion.cost_functions=[103*ones(md.inversion.nsteps,1) 501*ones(md.inversion.nsteps,1)]; 14 md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7; 15 md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1); 16 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1); 17 md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1); 18 md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy; 19 19 20 20 md.cluster=generic('name',oshostname(),'np',3); -
issm/trunk/test/NightlyRun/test341.m
r9664 r9681 6 6 7 7 %control parameters 8 md. control_analysis=1;9 md. control_type={'FrictionCoefficient'};10 md. cm_min=1*ones(md.numberofnodes,1);11 md. cm_max=200*ones(md.numberofnodes,1);12 md. nsteps=2;13 md. cm_responses=[102*ones(md.nsteps,1) 501*ones(md.nsteps,1)];14 md. weights=ones(md.numberofnodes,2); md.weights(:,2)=2*10^-7;15 md. optscal=3*ones(md.nsteps,1);16 md. maxiter=2*ones(md.nsteps,1);17 md. cm_jump=0.3*ones(md.nsteps,1);18 md. vx_obs=md.vx; md.vy_obs=md.vy;8 md.inversion.iscontrol=1; 9 md.inversion.control_parameters={'FrictionCoefficient'}; 10 md.inversion.min_parameters=1*ones(md.numberofnodes,1); 11 md.inversion.max_parameters=200*ones(md.numberofnodes,1); 12 md.inversion.nsteps=2; 13 md.inversion.cost_functions=[102*ones(md.inversion.nsteps,1) 501*ones(md.inversion.nsteps,1)]; 14 md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7; 15 md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1); 16 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1); 17 md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1); 18 md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy; 19 19 20 20 md.cluster=none; -
issm/trunk/test/NightlyRun/test342.m
r9664 r9681 6 6 7 7 %control parameters 8 md. control_analysis=1;9 md. control_type={'FrictionCoefficient'};10 md. cm_min=1*ones(md.numberofnodes,1);11 md. cm_max=200*ones(md.numberofnodes,1);12 md. nsteps=2;13 md. cm_responses=[102*ones(md.nsteps,1) 501*ones(md.nsteps,1)];14 md. weights=ones(md.numberofnodes,2); md.weights(:,2)=2*10^-7;15 md. optscal=3*ones(md.nsteps,1);16 md. maxiter=2*ones(md.nsteps,1);17 md. cm_jump=0.3*ones(md.nsteps,1);18 md. vx_obs=md.vx; md.vy_obs=md.vy;8 md.inversion.iscontrol=1; 9 md.inversion.control_parameters={'FrictionCoefficient'}; 10 md.inversion.min_parameters=1*ones(md.numberofnodes,1); 11 md.inversion.max_parameters=200*ones(md.numberofnodes,1); 12 md.inversion.nsteps=2; 13 md.inversion.cost_functions=[102*ones(md.inversion.nsteps,1) 501*ones(md.inversion.nsteps,1)]; 14 md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7; 15 md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1); 16 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1); 17 md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1); 18 md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy; 19 19 20 20 md.cluster=generic('name',oshostname(),'np',3); -
issm/trunk/test/NightlyRun/test343.m
r9664 r9681 6 6 7 7 %control parameters 8 md. control_analysis=1;9 md. control_type={'FrictionCoefficient'};10 md. cm_min=1*ones(md.numberofnodes,1);11 md. cm_max=200*ones(md.numberofnodes,1);12 md. nsteps=2;13 md. cm_responses=[104*ones(md.nsteps,1) 501*ones(md.nsteps,1)];14 md. weights=ones(md.numberofnodes,2); md.weights(:,2)=2*10^-7;15 md. optscal=3*ones(md.nsteps,1);16 md. maxiter=2*ones(md.nsteps,1);17 md. cm_jump=0.3*ones(md.nsteps,1);18 md. vx_obs=md.vx; md.vy_obs=md.vy;8 md.inversion.iscontrol=1; 9 md.inversion.control_parameters={'FrictionCoefficient'}; 10 md.inversion.min_parameters=1*ones(md.numberofnodes,1); 11 md.inversion.max_parameters=200*ones(md.numberofnodes,1); 12 md.inversion.nsteps=2; 13 md.inversion.cost_functions=[104*ones(md.inversion.nsteps,1) 501*ones(md.inversion.nsteps,1)]; 14 md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7; 15 md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1); 16 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1); 17 md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1); 18 md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy; 19 19 20 20 md.cluster=none; -
issm/trunk/test/NightlyRun/test344.m
r9664 r9681 6 6 7 7 %control parameters 8 md. control_analysis=1;9 md. control_type={'FrictionCoefficient'};10 md. cm_min=1*ones(md.numberofnodes,1);11 md. cm_max=200*ones(md.numberofnodes,1);12 md. nsteps=2;13 md. cm_responses=[104*ones(md.nsteps,1) 501*ones(md.nsteps,1)];14 md. weights=ones(md.numberofnodes,2); md.weights(:,2)=2*10^-7;15 md. optscal=3*ones(md.nsteps,1);16 md. maxiter=2*ones(md.nsteps,1);17 md. cm_jump=0.3*ones(md.nsteps,1);18 md. vx_obs=md.vx; md.vy_obs=md.vy;8 md.inversion.iscontrol=1; 9 md.inversion.control_parameters={'FrictionCoefficient'}; 10 md.inversion.min_parameters=1*ones(md.numberofnodes,1); 11 md.inversion.max_parameters=200*ones(md.numberofnodes,1); 12 md.inversion.nsteps=2; 13 md.inversion.cost_functions=[104*ones(md.inversion.nsteps,1) 501*ones(md.inversion.nsteps,1)]; 14 md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7; 15 md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1); 16 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1); 17 md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1); 18 md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy; 19 19 20 20 md.cluster=generic('name',oshostname(),'np',3); -
issm/trunk/test/NightlyRun/test429.m
r9664 r9681 6 6 7 7 %control parameters 8 md. control_analysis=1;9 md. control_type={'FrictionCoefficient'};10 md. cm_min=1*ones(md.numberofnodes,1);11 md. cm_max=200*ones(md.numberofnodes,1);12 md. nsteps=2;13 md. cm_responses=[103*ones(md.nsteps,1) 501*ones(md.nsteps,1)];14 md. weights=ones(md.numberofnodes,2); md.weights(:,2)=2*10^-7;15 md. optscal=3*ones(md.nsteps,1);16 md. maxiter=2*ones(md.nsteps,1);17 md. cm_jump=0.3*ones(md.nsteps,1);8 md.inversion.iscontrol=1; 9 md.inversion.control_parameters={'FrictionCoefficient'}; 10 md.inversion.min_parameters=1*ones(md.numberofnodes,1); 11 md.inversion.max_parameters=200*ones(md.numberofnodes,1); 12 md.inversion.nsteps=2; 13 md.inversion.cost_functions=[103*ones(md.inversion.nsteps,1) 501*ones(md.inversion.nsteps,1)]; 14 md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7; 15 md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1); 16 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1); 17 md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1); 18 18 md.timestepping.time_step=0; 19 md. vx_obs=md.vx; md.vy_obs=md.vy;19 md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy; 20 20 21 21 md.cluster=none; -
issm/trunk/test/NightlyRun/test430.m
r9664 r9681 6 6 7 7 %control parameters 8 md. control_analysis=1;9 md. control_type={'FrictionCoefficient'};10 md. cm_min=1*ones(md.numberofnodes,1);11 md. cm_max=200*ones(md.numberofnodes,1);12 md. nsteps=2;13 md. cm_responses=[103*ones(md.nsteps,1) 501*ones(md.nsteps,1)];14 md. weights=ones(md.numberofnodes,2); md.weights(:,2)=2*10^-7;15 md. optscal=3*ones(md.nsteps,1);16 md. maxiter=2*ones(md.nsteps,1);17 md. cm_jump=0.3*ones(md.nsteps,1);8 md.inversion.iscontrol=1; 9 md.inversion.control_parameters={'FrictionCoefficient'}; 10 md.inversion.min_parameters=1*ones(md.numberofnodes,1); 11 md.inversion.max_parameters=200*ones(md.numberofnodes,1); 12 md.inversion.nsteps=2; 13 md.inversion.cost_functions=[103*ones(md.inversion.nsteps,1) 501*ones(md.inversion.nsteps,1)]; 14 md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7; 15 md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1); 16 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1); 17 md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1); 18 18 md.timestepping.time_step=0; 19 md. vx_obs=md.vx; md.vy_obs=md.vy;19 md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy; 20 20 21 21 md.cluster=generic('name',oshostname(),'np',3); -
issm/trunk/test/NightlyRun/test431.m
r9664 r9681 6 6 7 7 %control parameters 8 md. control_analysis=1;9 md. control_type={'FrictionCoefficient'};10 md. cm_min=1*ones(md.numberofnodes,1);11 md. cm_max=200*ones(md.numberofnodes,1);12 md. nsteps=2;13 md. cm_responses=[102*ones(md.nsteps,1) 501*ones(md.nsteps,1)];14 md. weights=ones(md.numberofnodes,2); md.weights(:,2)=2*10^-7;15 md. optscal=3*ones(md.nsteps,1);16 md. maxiter=2*ones(md.nsteps,1);17 md. cm_jump=0.3*ones(md.nsteps,1);8 md.inversion.iscontrol=1; 9 md.inversion.control_parameters={'FrictionCoefficient'}; 10 md.inversion.min_parameters=1*ones(md.numberofnodes,1); 11 md.inversion.max_parameters=200*ones(md.numberofnodes,1); 12 md.inversion.nsteps=2; 13 md.inversion.cost_functions=[102*ones(md.inversion.nsteps,1) 501*ones(md.inversion.nsteps,1)]; 14 md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7; 15 md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1); 16 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1); 17 md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1); 18 18 md.timestepping.time_step=0; 19 md. vx_obs=md.vx; md.vy_obs=md.vy;19 md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy; 20 20 21 21 md.cluster=none; -
issm/trunk/test/NightlyRun/test432.m
r9664 r9681 6 6 7 7 %control parameters 8 md. control_analysis=1;9 md. control_type={'FrictionCoefficient'};10 md. cm_min=1*ones(md.numberofnodes,1);11 md. cm_max=200*ones(md.numberofnodes,1);12 md. nsteps=2;13 md. cm_responses=[102*ones(md.nsteps,1) 501*ones(md.nsteps,1)];14 md. weights=ones(md.numberofnodes,2); md.weights(:,2)=2*10^-7;15 md. optscal=3*ones(md.nsteps,1);16 md. maxiter=2*ones(md.nsteps,1);17 md. cm_jump=0.3*ones(md.nsteps,1);8 md.inversion.iscontrol=1; 9 md.inversion.control_parameters={'FrictionCoefficient'}; 10 md.inversion.min_parameters=1*ones(md.numberofnodes,1); 11 md.inversion.max_parameters=200*ones(md.numberofnodes,1); 12 md.inversion.nsteps=2; 13 md.inversion.cost_functions=[102*ones(md.inversion.nsteps,1) 501*ones(md.inversion.nsteps,1)]; 14 md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7; 15 md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1); 16 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1); 17 md.inversion.step_threshold=0.3*ones(md.inversion.nsteps,1); 18 18 md.timestepping.time_step=0; 19 md. vx_obs=md.vx; md.vy_obs=md.vy;19 md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy; 20 20 21 21 md.cluster=generic('name',oshostname(),'np',3); -
issm/trunk/test/NightlyRun/test521.m
r9664 r9681 11 11 12 12 %control parameters 13 md. control_analysis=1;14 md. control_type={'MaterialsRheologyBbar'};15 md. cm_min=10^6*ones(md.numberofnodes,1);16 md. cm_max=2*10^9*ones(md.numberofnodes,1);17 md. nsteps=2;18 md. cm_responses=101*ones(md.nsteps,1);19 md. weights=ones(md.numberofnodes,1);20 md. optscal=10^8*ones(md.nsteps,1);21 md. maxiter=2*ones(md.nsteps,1);22 md. cm_jump=0.99*ones(md.nsteps,1);23 md. vx_obs=md.vx; md.vy_obs=md.vy;13 md.inversion.iscontrol=1; 14 md.inversion.control_parameters={'MaterialsRheologyBbar'}; 15 md.inversion.min_parameters=10^6*ones(md.numberofnodes,1); 16 md.inversion.max_parameters=2*10^9*ones(md.numberofnodes,1); 17 md.inversion.nsteps=2; 18 md.inversion.cost_functions=101*ones(md.inversion.nsteps,1); 19 md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1); 20 md.inversion.gradient_scaling=10^8*ones(md.inversion.nsteps,1); 21 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1); 22 md.inversion.step_threshold=0.99*ones(md.inversion.nsteps,1); 23 md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy; 24 24 25 25 md.cluster=none; -
issm/trunk/test/NightlyRun/test522.m
r9664 r9681 11 11 12 12 %control parameters 13 md. control_analysis=1;14 md. control_type={'MaterialsRheologyBbar'};15 md. cm_min=10^6*ones(md.numberofnodes,1);16 md. cm_max=2*10^9*ones(md.numberofnodes,1);17 md. nsteps=2;18 md. cm_responses=101*ones(md.nsteps,1);19 md. weights=ones(md.numberofnodes,1);20 md. optscal=10^8*ones(md.nsteps,1);21 md. maxiter=2*ones(md.nsteps,1);22 md. cm_jump=0.99*ones(md.nsteps,1);23 md. vx_obs=md.vx; md.vy_obs=md.vy;13 md.inversion.iscontrol=1; 14 md.inversion.control_parameters={'MaterialsRheologyBbar'}; 15 md.inversion.min_parameters=10^6*ones(md.numberofnodes,1); 16 md.inversion.max_parameters=2*10^9*ones(md.numberofnodes,1); 17 md.inversion.nsteps=2; 18 md.inversion.cost_functions=101*ones(md.inversion.nsteps,1); 19 md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1); 20 md.inversion.gradient_scaling=10^8*ones(md.inversion.nsteps,1); 21 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1); 22 md.inversion.step_threshold=0.99*ones(md.inversion.nsteps,1); 23 md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy; 24 24 25 25 md.cluster=generic('name',oshostname(),'np',3); -
issm/trunk/test/NightlyRun/test523.m
r9664 r9681 6 6 7 7 %control parameters 8 md. control_analysis=1;9 md. control_type={'FrictionCoefficient'};10 md. cm_min=1*ones(md.numberofnodes,1);11 md. cm_max=200*ones(md.numberofnodes,1);12 md. nsteps=2;13 md. cm_responses=[103*ones(md.nsteps,1) 501*ones(md.nsteps,1)];14 md. weights=ones(md.numberofnodes,2); md.weights(:,2)=2*10^-7;15 md. optscal=3*ones(md.nsteps,1);16 md. maxiter=2*ones(md.nsteps,1);17 md. cm_jump=0.99*ones(md.nsteps,1);18 md. vx_obs=md.vx; md.vy_obs=md.vy;8 md.inversion.iscontrol=1; 9 md.inversion.control_parameters={'FrictionCoefficient'}; 10 md.inversion.min_parameters=1*ones(md.numberofnodes,1); 11 md.inversion.max_parameters=200*ones(md.numberofnodes,1); 12 md.inversion.nsteps=2; 13 md.inversion.cost_functions=[103*ones(md.inversion.nsteps,1) 501*ones(md.inversion.nsteps,1)]; 14 md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7; 15 md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1); 16 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1); 17 md.inversion.step_threshold=0.99*ones(md.inversion.nsteps,1); 18 md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy; 19 19 20 20 md.cluster=none; -
issm/trunk/test/NightlyRun/test524.m
r9664 r9681 6 6 7 7 %control parameters 8 md. control_analysis=1;9 md. control_type={'FrictionCoefficient'};10 md. cm_min=1*ones(md.numberofnodes,1);11 md. cm_max=200*ones(md.numberofnodes,1);12 md. nsteps=2;13 md. cm_responses=[103*ones(md.nsteps,1) 501*ones(md.nsteps,1)];14 md. weights=ones(md.numberofnodes,2); md.weights(:,2)=2*10^-7;15 md. optscal=3*ones(md.nsteps,1);16 md. maxiter=2*ones(md.nsteps,1);17 md. cm_jump=0.99*ones(md.nsteps,1);18 md. vx_obs=md.vx; md.vy_obs=md.vy;8 md.inversion.iscontrol=1; 9 md.inversion.control_parameters={'FrictionCoefficient'}; 10 md.inversion.min_parameters=1*ones(md.numberofnodes,1); 11 md.inversion.max_parameters=200*ones(md.numberofnodes,1); 12 md.inversion.nsteps=2; 13 md.inversion.cost_functions=[103*ones(md.inversion.nsteps,1) 501*ones(md.inversion.nsteps,1)]; 14 md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7; 15 md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1); 16 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1); 17 md.inversion.step_threshold=0.99*ones(md.inversion.nsteps,1); 18 md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy; 19 19 20 20 md.cluster=generic('name',oshostname(),'np',3); -
issm/trunk/test/NightlyRun/test525.m
r9664 r9681 6 6 7 7 %control parameters 8 md. control_analysis=1;9 md. control_type={'FrictionCoefficient'};10 md. cm_min=1*ones(md.numberofnodes,1);11 md. cm_max=200*ones(md.numberofnodes,1);12 md. nsteps=2;13 md. cm_responses=[103*ones(md.nsteps,1) 501*ones(md.nsteps,1)];14 md. weights=ones(md.numberofnodes,2); md.weights(:,2)=2*10^-7;15 md. optscal=3*ones(md.nsteps,1);16 md. maxiter=2*ones(md.nsteps,1);17 md. cm_jump=0.99*ones(md.nsteps,1);18 md. vx_obs=md.vx; md.vy_obs=md.vy;8 md.inversion.iscontrol=1; 9 md.inversion.control_parameters={'FrictionCoefficient'}; 10 md.inversion.min_parameters=1*ones(md.numberofnodes,1); 11 md.inversion.max_parameters=200*ones(md.numberofnodes,1); 12 md.inversion.nsteps=2; 13 md.inversion.cost_functions=[103*ones(md.inversion.nsteps,1) 501*ones(md.inversion.nsteps,1)]; 14 md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7; 15 md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1); 16 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1); 17 md.inversion.step_threshold=0.99*ones(md.inversion.nsteps,1); 18 md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy; 19 19 md.timestepping.time_step=0; 20 20 -
issm/trunk/test/NightlyRun/test526.m
r9664 r9681 6 6 7 7 %control parameters 8 md. control_analysis=1;9 md. control_type={'FrictionCoefficient'};10 md. cm_min=1*ones(md.numberofnodes,1);11 md. cm_max=200*ones(md.numberofnodes,1);12 md. nsteps=2;13 md. cm_responses=[103*ones(md.nsteps,1) 501*ones(md.nsteps,1)];14 md. weights=ones(md.numberofnodes,2); md.weights(:,2)=2*10^-7;15 md. optscal=3*ones(md.nsteps,1);16 md. maxiter=2*ones(md.nsteps,1);17 md. cm_jump=0.99*ones(md.nsteps,1);18 md. vx_obs=md.vx; md.vy_obs=md.vy;8 md.inversion.iscontrol=1; 9 md.inversion.control_parameters={'FrictionCoefficient'}; 10 md.inversion.min_parameters=1*ones(md.numberofnodes,1); 11 md.inversion.max_parameters=200*ones(md.numberofnodes,1); 12 md.inversion.nsteps=2; 13 md.inversion.cost_functions=[103*ones(md.inversion.nsteps,1) 501*ones(md.inversion.nsteps,1)]; 14 md.inversion.cost_functions_coefficients=ones(md.numberofnodes,2); md.inversion.cost_functions_coefficients(:,2)=2*10^-7; 15 md.inversion.gradient_scaling=3*ones(md.inversion.nsteps,1); 16 md.inversion.maxiter_per_step=2*ones(md.inversion.nsteps,1); 17 md.inversion.step_threshold=0.99*ones(md.inversion.nsteps,1); 18 md.inversion.vx_obs=md.vx; md.inversion.vy_obs=md.vy; 19 19 md.timestepping.time_step=0; 20 20 -
issm/trunk/test/NightlyRun/test527.m
r9659 r9681 14 14 15 15 %refine existing mesh 1 16 hessian=ComputeHessian(md.elements,md.x,md.y,md. vy_obs,'node');16 hessian=ComputeHessian(md.elements,md.x,md.y,md.inversion.vy_obs,'node'); 17 17 metric=ComputeMetric(hessian,2/9,1,1000,25*10^3,[]); 18 18 md.miscellaneous.dummy=metric; … … 34 34 35 35 %refine existing mesh 4 36 md2=bamg(md,'field',md. vy_obs,'hmin',1000,'hmax',20000,'gradation',3,'geometricalmetric',1,'Hessiantype',0,'err',1);36 md2=bamg(md,'field',md.inversion.vy_obs,'hmin',1000,'hmax',20000,'gradation',3,'geometricalmetric',1,'Hessiantype',0,'err',1); 37 37 x6=md2.x; 38 38 y6=md2.y; 39 39 40 40 %refine existing mesh 5 41 md2=bamg(md,'field',[md. vy_obs md.thickness],'hmin',1000,'hmax',20000,'gradation',3,'geometricalmetric',1,'Hessiantype',1,'err',[10 100]);41 md2=bamg(md,'field',[md.inversion.vy_obs md.thickness],'hmin',1000,'hmax',20000,'gradation',3,'geometricalmetric',1,'Hessiantype',1,'err',[10 100]); 42 42 x7=md2.x; 43 43 y7=md2.y; -
issm/trunk/test/NightlyRun/test621.m
r9664 r9681 5 5 6 6 %control parameters 7 md. nsteps=2;7 md.inversion.nsteps=2; 8 8 md.prognostic.stabilization=1; 9 md. control_analysis=1;10 md. control_type={'BalancethicknessThickeningRate'};11 md. thickness_obs=md.thickness;12 md. cm_min=-50*ones(md.numberofnodes,1);13 md. cm_max=50*ones(md.numberofnodes,1);14 md. cm_responses=201*ones(md.nsteps,1);15 md. weights=ones(md.numberofnodes,1);16 md. optscal=10/md.constants.yts*ones(md.nsteps,1);17 md. maxiter=4*ones(md.nsteps,1);18 md. cm_jump=0.99*ones(md.nsteps,1);9 md.inversion.iscontrol=1; 10 md.inversion.control_parameters={'BalancethicknessThickeningRate'}; 11 md.inversion.thickness_obs=md.thickness; 12 md.inversion.min_parameters=-50*ones(md.numberofnodes,1); 13 md.inversion.max_parameters=50*ones(md.numberofnodes,1); 14 md.inversion.cost_functions=201*ones(md.inversion.nsteps,1); 15 md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1); 16 md.inversion.gradient_scaling=10/md.constants.yts*ones(md.inversion.nsteps,1); 17 md.inversion.maxiter_per_step=4*ones(md.inversion.nsteps,1); 18 md.inversion.step_threshold=0.99*ones(md.inversion.nsteps,1); 19 19 20 20 md.cluster=none; -
issm/trunk/test/NightlyRun/test622.m
r9664 r9681 5 5 6 6 %control parameters 7 md. nsteps=2;7 md.inversion.nsteps=2; 8 8 md.prognostic.stabilization=1; 9 md. control_analysis=1;10 md. control_type={'BalancethicknessThickeningRate'};11 md. thickness_obs=md.thickness;12 md. cm_min=-50*ones(md.numberofnodes,1);13 md. cm_max=50*ones(md.numberofnodes,1);14 md. cm_responses=201*ones(md.nsteps,1);15 md. weights=ones(md.numberofnodes,1);16 md. optscal=10/md.constants.yts*ones(md.nsteps,1);17 md. maxiter=4*ones(md.nsteps,1);18 md. cm_jump=0.99*ones(md.nsteps,1);9 md.inversion.iscontrol=1; 10 md.inversion.control_parameters={'BalancethicknessThickeningRate'}; 11 md.inversion.thickness_obs=md.thickness; 12 md.inversion.min_parameters=-50*ones(md.numberofnodes,1); 13 md.inversion.max_parameters=50*ones(md.numberofnodes,1); 14 md.inversion.cost_functions=201*ones(md.inversion.nsteps,1); 15 md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1); 16 md.inversion.gradient_scaling=10/md.constants.yts*ones(md.inversion.nsteps,1); 17 md.inversion.maxiter_per_step=4*ones(md.inversion.nsteps,1); 18 md.inversion.step_threshold=0.99*ones(md.inversion.nsteps,1); 19 19 20 20 md.cluster=generic('name',oshostname(),'np',3); -
issm/trunk/test/NightlyRun/test623.m
r9664 r9681 6 6 7 7 %control parameters 8 md. nsteps=2;8 md.inversion.nsteps=2; 9 9 md.prognostic.stabilization=3; 10 md. control_analysis=1;11 md. control_type={'BalancethicknessThickeningRate'};12 md. thickness_obs=md.thickness;13 md. cm_min=-50*ones(md.numberofnodes,1);14 md. cm_max=50*ones(md.numberofnodes,1);15 md. cm_responses=201*ones(md.nsteps,1);16 md. weights=ones(md.numberofnodes,1);17 md. optscal=10/md.constants.yts*ones(md.nsteps,1);18 md. maxiter=4*ones(md.nsteps,1);19 md. cm_jump=0.99*ones(md.nsteps,1);10 md.inversion.iscontrol=1; 11 md.inversion.control_parameters={'BalancethicknessThickeningRate'}; 12 md.inversion.thickness_obs=md.thickness; 13 md.inversion.min_parameters=-50*ones(md.numberofnodes,1); 14 md.inversion.max_parameters=50*ones(md.numberofnodes,1); 15 md.inversion.cost_functions=201*ones(md.inversion.nsteps,1); 16 md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1); 17 md.inversion.gradient_scaling=10/md.constants.yts*ones(md.inversion.nsteps,1); 18 md.inversion.maxiter_per_step=4*ones(md.inversion.nsteps,1); 19 md.inversion.step_threshold=0.99*ones(md.inversion.nsteps,1); 20 20 21 21 md.cluster=none; -
issm/trunk/test/NightlyRun/test624.m
r9664 r9681 6 6 7 7 %control parameters 8 md. nsteps=2;8 md.inversion.nsteps=2; 9 9 md.prognostic.stabilization=3; 10 md. control_analysis=1;11 md. control_type={'BalancethicknessThickeningRate'};12 md. thickness_obs=md.thickness;13 md. cm_min=-50*ones(md.numberofnodes,1);14 md. cm_max=50*ones(md.numberofnodes,1);15 md. cm_responses=201*ones(md.nsteps,1);16 md. weights=ones(md.numberofnodes,1);17 md. optscal=10/md.constants.yts*ones(md.nsteps,1);18 md. maxiter=4*ones(md.nsteps,1);19 md. cm_jump=0.99*ones(md.nsteps,1);10 md.inversion.iscontrol=1; 11 md.inversion.control_parameters={'BalancethicknessThickeningRate'}; 12 md.inversion.thickness_obs=md.thickness; 13 md.inversion.min_parameters=-50*ones(md.numberofnodes,1); 14 md.inversion.max_parameters=50*ones(md.numberofnodes,1); 15 md.inversion.cost_functions=201*ones(md.inversion.nsteps,1); 16 md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1); 17 md.inversion.gradient_scaling=10/md.constants.yts*ones(md.inversion.nsteps,1); 18 md.inversion.maxiter_per_step=4*ones(md.inversion.nsteps,1); 19 md.inversion.step_threshold=0.99*ones(md.inversion.nsteps,1); 20 20 21 21 md.cluster=generic('name',oshostname(),'np',3); -
issm/trunk/test/NightlyRun/test625.m
r9664 r9681 11 11 12 12 %control parameters 13 md. thickness_obs=md.thickness;14 md. control_analysis=1;15 md. thickness_obs=md.thickness;16 md. nsteps=2;17 md. control_type={'Vx' 'Vy'};13 md.inversion.thickness_obs=md.thickness; 14 md.inversion.iscontrol=1; 15 md.inversion.thickness_obs=md.thickness; 16 md.inversion.nsteps=2; 17 md.inversion.control_parameters={'Vx' 'Vy'}; 18 18 md.prognostic.stabilization=1; 19 md. optscal=[10/md.constants.yts*ones(md.nsteps,1) 10/md.constants.yts*ones(md.nsteps,1)];20 md. cm_min=[-2000*ones(md.numberofnodes,1) -2000*ones(md.numberofnodes,1)];21 md. cm_max=[+2000*ones(md.numberofnodes,1) +2000*ones(md.numberofnodes,1)];22 md. cm_responses=201*ones(md.nsteps,1);23 md. weights=ones(md.numberofnodes,1);24 md. maxiter=4*ones(md.nsteps,1);25 md. cm_jump=0.99*ones(md.nsteps,1);19 md.inversion.gradient_scaling=[10/md.constants.yts*ones(md.inversion.nsteps,1) 10/md.constants.yts*ones(md.inversion.nsteps,1)]; 20 md.inversion.min_parameters=[-2000*ones(md.numberofnodes,1) -2000*ones(md.numberofnodes,1)]; 21 md.inversion.max_parameters=[+2000*ones(md.numberofnodes,1) +2000*ones(md.numberofnodes,1)]; 22 md.inversion.cost_functions=201*ones(md.inversion.nsteps,1); 23 md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1); 24 md.inversion.maxiter_per_step=4*ones(md.inversion.nsteps,1); 25 md.inversion.step_threshold=0.99*ones(md.inversion.nsteps,1); 26 26 27 27 md.cluster=none; -
issm/trunk/test/NightlyRun/test626.m
r9664 r9681 11 11 12 12 %control parameters 13 md. thickness_obs=md.thickness;14 md. control_analysis=1;15 md. thickness_obs=md.thickness;16 md. nsteps=2;17 md. control_type={'Vx' 'Vy'};13 md.inversion.thickness_obs=md.thickness; 14 md.inversion.iscontrol=1; 15 md.inversion.thickness_obs=md.thickness; 16 md.inversion.nsteps=2; 17 md.inversion.control_parameters={'Vx' 'Vy'}; 18 18 md.prognostic.stabilization=1; 19 md. optscal=[10/md.constants.yts*ones(md.nsteps,1) 10/md.constants.yts*ones(md.nsteps,1)];20 md. cm_min=[-2000*ones(md.numberofnodes,1) -2000*ones(md.numberofnodes,1)];21 md. cm_max=[+2000*ones(md.numberofnodes,1) +2000*ones(md.numberofnodes,1)];22 md. cm_responses=201*ones(md.nsteps,1);23 md. weights=ones(md.numberofnodes,1);24 md. maxiter=4*ones(md.nsteps,1);25 md. cm_jump=0.99*ones(md.nsteps,1);19 md.inversion.gradient_scaling=[10/md.constants.yts*ones(md.inversion.nsteps,1) 10/md.constants.yts*ones(md.inversion.nsteps,1)]; 20 md.inversion.min_parameters=[-2000*ones(md.numberofnodes,1) -2000*ones(md.numberofnodes,1)]; 21 md.inversion.max_parameters=[+2000*ones(md.numberofnodes,1) +2000*ones(md.numberofnodes,1)]; 22 md.inversion.cost_functions=201*ones(md.inversion.nsteps,1); 23 md.inversion.cost_functions_coefficients=ones(md.numberofnodes,1); 24 md.inversion.maxiter_per_step=4*ones(md.inversion.nsteps,1); 25 md.inversion.step_threshold=0.99*ones(md.inversion.nsteps,1); 26 26 27 27 md.cluster=generic('name',oshostname(),'np',3); -
issm/trunk/test/Par/Pig.par
r9679 r9681 3 3 %Geometry and observation 4 4 load('../Data/Pig.data','-mat'); 5 md. vx_obs =InterpFromMeshToMesh2d(index,x,y,vx_obs,md.x,md.y);6 md. vy_obs =InterpFromMeshToMesh2d(index,x,y,vy_obs,md.x,md.y);5 md.inversion.vx_obs =InterpFromMeshToMesh2d(index,x,y,vx_obs,md.x,md.y); 6 md.inversion.vy_obs =InterpFromMeshToMesh2d(index,x,y,vy_obs,md.x,md.y); 7 7 md.surface =InterpFromMeshToMesh2d(index,x,y,surface,md.x,md.y); 8 8 md.thickness=InterpFromMeshToMesh2d(index,x,y,thickness,md.x,md.y); 9 9 md.bed=md.surface-md.thickness; 10 10 clear surface thickness vx_obs vy_obs x y index; 11 md.vx=md. vx_obs;12 md.vy=md. vy_obs;11 md.vx=md.inversion.vx_obs; 12 md.vy=md.inversion.vy_obs; 13 13 md.vz=zeros(md.numberofnodes,1); 14 14 md.pressure=zeros(md.numberofnodes,1); -
issm/trunk/test/Par/RoundSheetEISMINT.par
r9679 r9681 29 29 disp(' creating velocities'); 30 30 constant=0.3; 31 md. vx_obs=constant/2*md.x.*(md.thickness).^-1;32 md. vy_obs=constant/2*md.y.*(md.thickness).^-1;33 md. vel_obs=(sqrt((md.vx_obs).^2+(md.vy_obs).^2));31 md.inversion.vx_obs=constant/2*md.x.*(md.thickness).^-1; 32 md.inversion.vy_obs=constant/2*md.y.*(md.thickness).^-1; 33 md.inversion.vel_obs=(sqrt((md.inversion.vx_obs).^2+(md.inversion.vy_obs).^2)); 34 34 md.vx=zeros(md.numberofnodes,1); 35 35 md.vy=zeros(md.numberofnodes,1); -
issm/trunk/test/Par/RoundSheetStaticEISMINT.par
r9679 r9681 34 34 disp(' creating velocities'); 35 35 constant=0.3; 36 md. vx_obs=constant/2*md.x.*(md.thickness).^-1;37 md. vy_obs=constant/2*md.y.*(md.thickness).^-1;38 md. vel_obs=(sqrt((md.vx_obs).^2+(md.vy_obs).^2));36 md.inversion.vx_obs=constant/2*md.x.*(md.thickness).^-1; 37 md.inversion.vy_obs=constant/2*md.y.*(md.thickness).^-1; 38 md.inversion.vel_obs=(sqrt((md.inversion.vx_obs).^2+(md.inversion.vy_obs).^2)); 39 39 md.vx=zeros(md.numberofnodes,1); 40 40 md.vy=zeros(md.numberofnodes,1);
Note:
See TracChangeset
for help on using the changeset viewer.