Changeset 9661
- Timestamp:
- 09/07/11 14:39:31 (14 years ago)
- Location:
- issm/trunk/src
- Files:
-
- 9 added
- 9 deleted
- 41 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h
r9655 r9661 83 83 BalancethicknessStabilizationEnum, 84 84 BalancethicknessRequestedOutputsEnum, 85 FlowequationIshutterEnum, 86 FlowequationIsmacayealpattynEnum, 87 FlowequationIsstokesEnum, 88 FlowequationElementEquationEnum, 89 FlowequationVertexEquationEnum, 90 FlowequationBorderstokesEnum, 91 FlowequationBorderpattynEnum, 92 FlowequationBordermacayealEnum, 85 93 /*}}}*/ 86 94 /*Datasets {{{1*/ … … 432 440 SpcvyEnum, 433 441 YEnum, 434 ElementsTypeEnum,435 442 PenaltiesEnum, 436 443 PressureloadEnum, 437 VerticesTypeEnum,438 444 SpcvzEnum, 439 445 NumberOfNodes2DEnum, 440 NodeonstokesEnum,441 NodeonpattynEnum,442 NodeonmacayealEnum,443 446 ZEnum, 444 447 PenaltyLockEnum, … … 452 455 NumlayersEnum, 453 456 DiagnosticRefEnum, 454 IshutterEnum,455 IsmacayealpattynEnum,456 IsstokesEnum,457 457 StokesreconditioningEnum, 458 458 LowerelementsEnum, -
issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp
r9655 r9661 87 87 case BalancethicknessStabilizationEnum : return "BalancethicknessStabilization"; 88 88 case BalancethicknessRequestedOutputsEnum : return "BalancethicknessRequestedOutputs"; 89 case FlowequationIshutterEnum : return "FlowequationIshutter"; 90 case FlowequationIsmacayealpattynEnum : return "FlowequationIsmacayealpattyn"; 91 case FlowequationIsstokesEnum : return "FlowequationIsstokes"; 92 case FlowequationElementEquationEnum : return "FlowequationElementEquation"; 93 case FlowequationVertexEquationEnum : return "FlowequationVertexEquation"; 94 case FlowequationBorderstokesEnum : return "FlowequationBorderstokes"; 95 case FlowequationBorderpattynEnum : return "FlowequationBorderpattyn"; 96 case FlowequationBordermacayealEnum : return "FlowequationBordermacayeal"; 89 97 case ConstraintsEnum : return "Constraints"; 90 98 case ElementsEnum : return "Elements"; … … 376 384 case SpcvyEnum : return "Spcvy"; 377 385 case YEnum : return "Y"; 378 case ElementsTypeEnum : return "ElementsType";379 386 case PenaltiesEnum : return "Penalties"; 380 387 case PressureloadEnum : return "Pressureload"; 381 case VerticesTypeEnum : return "VerticesType";382 388 case SpcvzEnum : return "Spcvz"; 383 389 case NumberOfNodes2DEnum : return "NumberOfNodes2D"; 384 case NodeonstokesEnum : return "Nodeonstokes";385 case NodeonpattynEnum : return "Nodeonpattyn";386 case NodeonmacayealEnum : return "Nodeonmacayeal";387 390 case ZEnum : return "Z"; 388 391 case PenaltyLockEnum : return "PenaltyLock"; … … 396 399 case NumlayersEnum : return "Numlayers"; 397 400 case DiagnosticRefEnum : return "DiagnosticRef"; 398 case IshutterEnum : return "Ishutter";399 case IsmacayealpattynEnum : return "Ismacayealpattyn";400 case IsstokesEnum : return "Isstokes";401 401 case StokesreconditioningEnum : return "Stokesreconditioning"; 402 402 case LowerelementsEnum : return "Lowerelements"; -
issm/trunk/src/c/modules/ModelProcessorx/Balancethickness/CreateNodesBalancethickness.cpp
r9646 r9661 49 49 50 50 /*First fetch data: */ 51 iomodel->FetchData(7,ElementsEnum,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum, VerticesTypeEnum,MaskVertexonwaterEnum);51 iomodel->FetchData(7,ElementsEnum,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum); 52 52 53 53 if(continuous_galerkin){ … … 88 88 89 89 /*Clean fetched data: */ 90 iomodel->DeleteData(7,ElementsEnum,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum, VerticesTypeEnum,MaskVertexonwaterEnum);90 iomodel->DeleteData(7,ElementsEnum,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum); 91 91 92 92 /*Assign output pointer: */ -
issm/trunk/src/c/modules/ModelProcessorx/BedSlope/CreateNodesBedSlope.cpp
r9641 r9661 36 36 37 37 /*First fetch data: */ 38 iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum, VerticesTypeEnum,MaskVertexonwaterEnum);38 iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum); 39 39 40 40 for (i=0;i<numberofvertices;i++){ … … 48 48 49 49 /*Clean fetched data: */ 50 iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum, VerticesTypeEnum,MaskVertexonwaterEnum);50 iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum); 51 51 52 52 /*Assign output pointer: */ -
issm/trunk/src/c/modules/ModelProcessorx/CreateParameters.cpp
r9646 r9661 26 26 /*Copy some constants from iomodel */ 27 27 parameters->AddObject(iomodel->CopyConstantObject(DimEnum)); 28 parameters->AddObject(iomodel->CopyConstantObject( IshutterEnum));29 parameters->AddObject(iomodel->CopyConstantObject( IsmacayealpattynEnum));30 parameters->AddObject(iomodel->CopyConstantObject( IsstokesEnum));28 parameters->AddObject(iomodel->CopyConstantObject(FlowequationIshutterEnum)); 29 parameters->AddObject(iomodel->CopyConstantObject(FlowequationIsmacayealpattynEnum)); 30 parameters->AddObject(iomodel->CopyConstantObject(FlowequationIsstokesEnum)); 31 31 parameters->AddObject(iomodel->CopyConstantObject(OutputFrequencyEnum)); 32 32 parameters->AddObject(iomodel->CopyConstantObject(EpsResEnum)); -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp
r9655 r9661 45 45 iomodel->Constant(&rho_ice,MaterialsRhoIceEnum); 46 46 iomodel->Constant(&stokesreconditioning,StokesreconditioningEnum); 47 iomodel->Constant(&isstokes, IsstokesEnum);48 iomodel->Constant(&ismacayealpattyn, IsmacayealpattynEnum);47 iomodel->Constant(&isstokes,FlowequationIsstokesEnum); 48 iomodel->Constant(&ismacayealpattyn,FlowequationIsmacayealpattynEnum); 49 49 50 50 /*Recover pointer: */ … … 64 64 iomodel->FetchData(&spcvy,NULL,NULL,SpcvyEnum); 65 65 iomodel->FetchData(&spcvz,NULL,NULL,SpcvzEnum); 66 iomodel->FetchData(&nodeonmacayeal,NULL,NULL, NodeonmacayealEnum);67 if(dim==3)iomodel->FetchData(&nodeonpattyn,NULL,NULL, NodeonpattynEnum);68 if(dim==3)iomodel->FetchData(&nodeonstokes,NULL,NULL, NodeonstokesEnum);69 iomodel->FetchData(&vertices_type,NULL,NULL, VerticesTypeEnum);66 iomodel->FetchData(&nodeonmacayeal,NULL,NULL,FlowequationBordermacayealEnum); 67 if(dim==3)iomodel->FetchData(&nodeonpattyn,NULL,NULL,FlowequationBorderpattynEnum); 68 if(dim==3)iomodel->FetchData(&nodeonstokes,NULL,NULL,FlowequationBorderstokesEnum); 69 iomodel->FetchData(&vertices_type,NULL,NULL,FlowequationVertexEquationEnum); 70 70 iomodel->FetchData(&surface,NULL,NULL,SurfaceEnum); 71 71 iomodel->FetchData(&z,NULL,NULL,ZEnum); -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp
r9641 r9661 42 42 iomodel->Constant(&dim,DimEnum); 43 43 iomodel->Constant(&numberofvertices,NumberOfVerticesEnum); 44 iomodel->Constant(&isstokes, IsstokesEnum);45 iomodel->Constant(&ismacayealpattyn, IsmacayealpattynEnum);44 iomodel->Constant(&isstokes,FlowequationIsstokesEnum); 45 iomodel->Constant(&ismacayealpattyn,FlowequationIsmacayealpattynEnum); 46 46 iomodel->Constant(&numrifts,RiftsNumriftsEnum); 47 47 … … 62 62 iomodel->FetchData(3,PressureloadEnum,ThicknessEnum,BedEnum); 63 63 iomodel->FetchData(&pressureload,&numberofpressureloads,NULL,PressureloadEnum); 64 iomodel->FetchData(&elements_type,NULL,NULL, ElementsTypeEnum);64 iomodel->FetchData(&elements_type,NULL,NULL,FlowequationElementEquationEnum); 65 65 66 66 /*Initialize counter: */ … … 126 126 iomodel->FetchData(&nodeonbed,NULL,NULL,NodeonbedEnum); 127 127 iomodel->FetchData(&nodeonicesheet,NULL,NULL,MaskVertexongroundediceEnum); 128 iomodel->FetchData(&nodeonstokes,NULL,NULL, NodeonstokesEnum);129 iomodel->FetchData(&vertices_type,NULL,NULL, VerticesTypeEnum);128 iomodel->FetchData(&nodeonstokes,NULL,NULL,FlowequationBorderstokesEnum); 129 iomodel->FetchData(&vertices_type,NULL,NULL,FlowequationVertexEquationEnum); 130 130 iomodel->FetchData(1,ElementsEnum); 131 131 CreateSingleNodeToElementConnectivity(iomodel); -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateNodesDiagnosticHoriz.cpp
r9655 r9661 26 26 /*Fetch parameters: */ 27 27 iomodel->Constant(&numberofvertices,NumberOfVerticesEnum); 28 iomodel->Constant(&isstokes, IsstokesEnum);29 iomodel->Constant(&ismacayealpattyn, IsmacayealpattynEnum);28 iomodel->Constant(&isstokes,FlowequationIsstokesEnum); 29 iomodel->Constant(&ismacayealpattyn,FlowequationIsmacayealpattynEnum); 30 30 31 31 /*Recover pointer: */ … … 45 45 46 46 /*Create nodes: */ 47 iomodel->FetchData(9,NodeonbedEnum,NodeonsurfaceEnum, NodeonmacayealEnum,NodeonstokesEnum,48 MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,MaskVertexonwaterEnum, VerticesTypeEnum,DiagnosticRefEnum);47 iomodel->FetchData(9,NodeonbedEnum,NodeonsurfaceEnum,FlowequationBordermacayealEnum,FlowequationBorderstokesEnum, 48 MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,MaskVertexonwaterEnum,FlowequationVertexEquationEnum,DiagnosticRefEnum); 49 49 50 50 for (i=0;i<numberofvertices;i++){ … … 58 58 59 59 /*Clean fetched data: */ 60 iomodel->DeleteData(9,NodeonbedEnum,NodeonsurfaceEnum, NodeonmacayealEnum,NodeonstokesEnum,61 MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,MaskVertexonwaterEnum, VerticesTypeEnum,DiagnosticRefEnum);60 iomodel->DeleteData(9,NodeonbedEnum,NodeonsurfaceEnum,FlowequationBordermacayealEnum,FlowequationBorderstokesEnum, 61 MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,MaskVertexonwaterEnum,FlowequationVertexEquationEnum,DiagnosticRefEnum); 62 62 63 63 /*Assign output pointer: */ -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp
r9650 r9661 24 24 25 25 /*Fetch constants needed: */ 26 iomodel->Constant(&isstokes, IsstokesEnum);27 iomodel->Constant(&ismacayealpattyn, IsmacayealpattynEnum);26 iomodel->Constant(&isstokes,FlowequationIsstokesEnum); 27 iomodel->Constant(&ismacayealpattyn,FlowequationIsmacayealpattynEnum); 28 28 iomodel->Constant(&dim,DimEnum); 29 29 iomodel->Constant(&numberofelements,NumberOfElementsEnum); … … 35 35 36 36 /*Fetch data needed: */ 37 iomodel->FetchData(2,ElementsEnum, ElementsTypeEnum);37 iomodel->FetchData(2,ElementsEnum,FlowequationElementEquationEnum); 38 38 39 39 /*Update elements: */ … … 71 71 iomodel->FetchDataToInput(elements,SurfaceforcingsMassBalanceEnum); 72 72 iomodel->FetchDataToInput(elements,BasalforcingsMeltingRateEnum); 73 iomodel->FetchDataToInput(elements, NodeonstokesEnum);73 iomodel->FetchDataToInput(elements,FlowequationBorderstokesEnum); 74 74 } 75 75 … … 95 95 96 96 /*Free data: */ 97 iomodel->DeleteData(2,ElementsEnum, ElementsTypeEnum);97 iomodel->DeleteData(2,ElementsEnum,FlowequationElementEquationEnum); 98 98 } -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateConstraintsDiagnosticHutter.cpp
r9655 r9661 30 30 iomodel->Constant(&yts,ConstantsYtsEnum); 31 31 iomodel->Constant(&numberofvertices,NumberOfVerticesEnum); 32 iomodel->Constant(&ishutter, IshutterEnum);32 iomodel->Constant(&ishutter,FlowequationIshutterEnum); 33 33 34 34 /*Create constraints if they do not exist yet*/ … … 42 42 43 43 /*Fetch data: */ 44 iomodel->FetchData(3,SpcvxEnum,SpcvyEnum, VerticesTypeEnum);44 iomodel->FetchData(3,SpcvxEnum,SpcvyEnum,FlowequationVertexEquationEnum); 45 45 46 46 /*Initialize conunter*/ … … 51 51 /*keep only this partition's nodes:*/ 52 52 if((iomodel->my_vertices[i])){ 53 if (!(int)iomodel->Data( VerticesTypeEnum)[i]==HutterApproximationEnum){53 if (!(int)iomodel->Data(FlowequationVertexEquationEnum)[i]==HutterApproximationEnum){ 54 54 55 55 constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1,0,DiagnosticHutterAnalysisEnum)); … … 74 74 75 75 /*Free data: */ 76 iomodel->DeleteData(3,SpcvxEnum,SpcvyEnum, VerticesTypeEnum);76 iomodel->DeleteData(3,SpcvxEnum,SpcvyEnum,FlowequationVertexEquationEnum); 77 77 78 78 /*Assign output pointer: */ -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateNodesDiagnosticHutter.cpp
r9655 r9661 26 26 /*Fetch parameters: */ 27 27 iomodel->Constant(&numberofvertices,NumberOfVerticesEnum); 28 iomodel->Constant(&ishutter, IshutterEnum);28 iomodel->Constant(&ishutter,FlowequationIshutterEnum); 29 29 30 30 /*Recover pointer: */ … … 44 44 45 45 /*First fetch data: */ 46 iomodel->FetchData(7,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,ElementsEnum, VerticesTypeEnum,MaskVertexonwaterEnum);46 iomodel->FetchData(7,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,ElementsEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum); 47 47 CreateNumberNodeToElementConnectivity(iomodel); 48 48 … … 57 57 58 58 /*Clean fetched data: */ 59 iomodel->DeleteData(7,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,ElementsEnum, VerticesTypeEnum,MaskVertexonwaterEnum);59 iomodel->DeleteData(7,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,ElementsEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum); 60 60 61 61 /*Assign output pointer: */ -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/UpdateElementsDiagnosticHutter.cpp
r9655 r9661 22 22 /*Fetch data needed: */ 23 23 iomodel->Constant(&numberofelements,NumberOfElementsEnum); 24 iomodel->Constant(&ishutter, IshutterEnum);24 iomodel->Constant(&ishutter,FlowequationIshutterEnum); 25 25 26 26 /*Now, is the flag hutter on? otherwise, do nothing: */ 27 27 if (!ishutter)return; 28 28 29 iomodel->FetchData(2,ElementsEnum, ElementsTypeEnum);29 iomodel->FetchData(2,ElementsEnum,FlowequationElementEquationEnum); 30 30 31 31 /*Update elements: */ … … 43 43 44 44 /*Free data: */ 45 iomodel->DeleteData(2,ElementsEnum, ElementsTypeEnum);45 iomodel->DeleteData(2,ElementsEnum,FlowequationElementEquationEnum); 46 46 } -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateConstraintsDiagnosticVert.cpp
r9641 r9661 41 41 42 42 /*Fetch data: */ 43 iomodel->FetchData(2,SpcvzEnum, NodeonstokesEnum);43 iomodel->FetchData(2,SpcvzEnum,FlowequationBorderstokesEnum); 44 44 45 45 /*Initialize counter*/ … … 52 52 if(iomodel->my_vertices[i]){ 53 53 54 if ((int)iomodel->Data( NodeonstokesEnum)[i]){54 if ((int)iomodel->Data(FlowequationBorderstokesEnum)[i]){ 55 55 constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1,0,DiagnosticVertAnalysisEnum)); //spc to zero as vertical velocity is done in Horiz for Stokes 56 56 count++; … … 66 66 67 67 /*Free data: */ 68 iomodel->DeleteData(2,SpcvzEnum, NodeonstokesEnum);68 iomodel->DeleteData(2,SpcvzEnum,FlowequationBorderstokesEnum); 69 69 70 70 cleanup_and_return: -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateNodesDiagnosticVert.cpp
r9641 r9661 44 44 45 45 /*First fetch data: */ 46 iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum, VerticesTypeEnum,MaskVertexonwaterEnum);46 iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum); 47 47 48 48 for (i=0;i<numberofvertices;i++){ … … 56 56 57 57 /*Clean fetched data: */ 58 iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum, VerticesTypeEnum,MaskVertexonwaterEnum);58 iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum); 59 59 60 60 /*Assign output pointer: */ -
issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/CreateNodesEnthalpy.cpp
r9641 r9661 36 36 37 37 /*Create nodes and vertices: */ 38 iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum, VerticesTypeEnum,MaskVertexonwaterEnum);38 iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum); 39 39 40 40 for (i=0;i<numberofvertices;i++){ … … 48 48 49 49 /*Clean fetched data: */ 50 iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum, VerticesTypeEnum,MaskVertexonwaterEnum);50 iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum); 51 51 52 52 /*Assign output pointer: */ -
issm/trunk/src/c/modules/ModelProcessorx/Enthalpy/UpdateElementsEnthalpy.cpp
r9641 r9661 49 49 iomodel->FetchDataToInput(elements,ElementonsurfaceEnum); 50 50 iomodel->FetchDataToInput(elements,MaskElementonwaterEnum); 51 iomodel->FetchDataToInput(elements, ElementsTypeEnum);51 iomodel->FetchDataToInput(elements,FlowequationElementEquationEnum); 52 52 iomodel->FetchDataToInput(elements,MaterialsRheologyBEnum); 53 53 iomodel->FetchDataToInput(elements,MaterialsRheologyNEnum); -
issm/trunk/src/c/modules/ModelProcessorx/Hydrology/CreateNodesHydrology.cpp
r9641 r9661 36 36 37 37 /*Create nodes and vertices: */ 38 iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum, VerticesTypeEnum,MaskVertexonwaterEnum);38 iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum); 39 39 for (i=0;i<numberofvertices;i++){ 40 40 … … 45 45 } 46 46 } 47 iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum, VerticesTypeEnum,MaskVertexonwaterEnum);47 iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum); 48 48 49 49 /*Assign output pointer: */ -
issm/trunk/src/c/modules/ModelProcessorx/Hydrology/UpdateElementsHydrology.cpp
r9641 r9661 42 42 iomodel->FetchDataToInput(elements,ElementonsurfaceEnum); 43 43 iomodel->FetchDataToInput(elements,MaskElementonwaterEnum); 44 iomodel->FetchDataToInput(elements, ElementsTypeEnum);44 iomodel->FetchDataToInput(elements,FlowequationElementEquationEnum); 45 45 iomodel->FetchDataToInput(elements,MaterialsRheologyBEnum); 46 46 iomodel->FetchDataToInput(elements,MaterialsRheologyNEnum); -
issm/trunk/src/c/modules/ModelProcessorx/Melting/CreateNodesMelting.cpp
r9641 r9661 36 36 37 37 /*First fetch data: */ 38 iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum, VerticesTypeEnum,MaskVertexonwaterEnum);38 iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum); 39 39 for (i=0;i<numberofvertices;i++){ 40 40 … … 46 46 } 47 47 } 48 iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum, VerticesTypeEnum,MaskVertexonwaterEnum);48 iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum); 49 49 50 50 /*Assign output pointer: */ -
issm/trunk/src/c/modules/ModelProcessorx/Melting/UpdateElementsMelting.cpp
r9641 r9661 50 50 iomodel->FetchDataToInput(elements,ElementonsurfaceEnum); 51 51 iomodel->FetchDataToInput(elements,MaskElementonwaterEnum); 52 iomodel->FetchDataToInput(elements, ElementsTypeEnum);52 iomodel->FetchDataToInput(elements,FlowequationElementEquationEnum); 53 53 iomodel->FetchDataToInput(elements,MaterialsRheologyBEnum); 54 54 iomodel->FetchDataToInput(elements,MaterialsRheologyNEnum); -
issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateNodesPrognostic.cpp
r9642 r9661 49 49 50 50 /*First fetch data: */ 51 iomodel->FetchData(7,ElementsEnum,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum, VerticesTypeEnum,MaskVertexonwaterEnum);51 iomodel->FetchData(7,ElementsEnum,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum); 52 52 if(continuous_galerkin){ 53 53 … … 88 88 89 89 /*Clean fetched data: */ 90 iomodel->DeleteData(7,ElementsEnum,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum, VerticesTypeEnum,MaskVertexonwaterEnum);90 iomodel->DeleteData(7,ElementsEnum,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum); 91 91 92 92 /*Assign output pointer: */ -
issm/trunk/src/c/modules/ModelProcessorx/SurfaceSlope/CreateNodesSurfaceSlope.cpp
r9641 r9661 36 36 37 37 /*First fetch data: */ 38 iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum, VerticesTypeEnum,MaskVertexonwaterEnum);38 iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum); 39 39 40 40 for (i=0;i<numberofvertices;i++){ … … 49 49 50 50 /*Clean fetched data: */ 51 iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum, VerticesTypeEnum,MaskVertexonwaterEnum);51 iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum); 52 52 53 53 /*Assign output pointer: */ -
issm/trunk/src/c/modules/ModelProcessorx/Thermal/CreateNodesThermal.cpp
r9641 r9661 36 36 37 37 /*Create nodes and vertices: */ 38 iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum, VerticesTypeEnum,MaskVertexonwaterEnum);38 iomodel->FetchData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum); 39 39 40 40 for (i=0;i<numberofvertices;i++){ … … 48 48 49 49 /*Clean fetched data: */ 50 iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum, VerticesTypeEnum,MaskVertexonwaterEnum);50 iomodel->DeleteData(6,NodeonbedEnum,NodeonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum); 51 51 52 52 /*Assign output pointer: */ -
issm/trunk/src/c/modules/ModelProcessorx/Thermal/UpdateElementsThermal.cpp
r9650 r9661 51 51 iomodel->FetchDataToInput(elements,ElementonsurfaceEnum); 52 52 iomodel->FetchDataToInput(elements,MaskElementonwaterEnum); 53 iomodel->FetchDataToInput(elements, ElementsTypeEnum);53 iomodel->FetchDataToInput(elements,FlowequationElementEquationEnum); 54 54 iomodel->FetchDataToInput(elements,MaterialsRheologyBEnum); 55 55 iomodel->FetchDataToInput(elements,MaterialsRheologyNEnum); -
issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp
r9655 r9661 85 85 else if (strcmp(name,"BalancethicknessStabilization")==0) return BalancethicknessStabilizationEnum; 86 86 else if (strcmp(name,"BalancethicknessRequestedOutputs")==0) return BalancethicknessRequestedOutputsEnum; 87 else if (strcmp(name,"FlowequationIshutter")==0) return FlowequationIshutterEnum; 88 else if (strcmp(name,"FlowequationIsmacayealpattyn")==0) return FlowequationIsmacayealpattynEnum; 89 else if (strcmp(name,"FlowequationIsstokes")==0) return FlowequationIsstokesEnum; 90 else if (strcmp(name,"FlowequationElementEquation")==0) return FlowequationElementEquationEnum; 91 else if (strcmp(name,"FlowequationVertexEquation")==0) return FlowequationVertexEquationEnum; 92 else if (strcmp(name,"FlowequationBorderstokes")==0) return FlowequationBorderstokesEnum; 93 else if (strcmp(name,"FlowequationBorderpattyn")==0) return FlowequationBorderpattynEnum; 94 else if (strcmp(name,"FlowequationBordermacayeal")==0) return FlowequationBordermacayealEnum; 87 95 else if (strcmp(name,"Constraints")==0) return ConstraintsEnum; 88 96 else if (strcmp(name,"Elements")==0) return ElementsEnum; … … 374 382 else if (strcmp(name,"Spcvy")==0) return SpcvyEnum; 375 383 else if (strcmp(name,"Y")==0) return YEnum; 376 else if (strcmp(name,"ElementsType")==0) return ElementsTypeEnum;377 384 else if (strcmp(name,"Penalties")==0) return PenaltiesEnum; 378 385 else if (strcmp(name,"Pressureload")==0) return PressureloadEnum; 379 else if (strcmp(name,"VerticesType")==0) return VerticesTypeEnum;380 386 else if (strcmp(name,"Spcvz")==0) return SpcvzEnum; 381 387 else if (strcmp(name,"NumberOfNodes2D")==0) return NumberOfNodes2DEnum; 382 else if (strcmp(name,"Nodeonstokes")==0) return NodeonstokesEnum;383 else if (strcmp(name,"Nodeonpattyn")==0) return NodeonpattynEnum;384 else if (strcmp(name,"Nodeonmacayeal")==0) return NodeonmacayealEnum;385 388 else if (strcmp(name,"Z")==0) return ZEnum; 386 389 else if (strcmp(name,"PenaltyLock")==0) return PenaltyLockEnum; … … 394 397 else if (strcmp(name,"Numlayers")==0) return NumlayersEnum; 395 398 else if (strcmp(name,"DiagnosticRef")==0) return DiagnosticRefEnum; 396 else if (strcmp(name,"Ishutter")==0) return IshutterEnum;397 else if (strcmp(name,"Ismacayealpattyn")==0) return IsmacayealpattynEnum;398 else if (strcmp(name,"Isstokes")==0) return IsstokesEnum;399 399 else if (strcmp(name,"Stokesreconditioning")==0) return StokesreconditioningEnum; 400 400 else if (strcmp(name,"Lowerelements")==0) return LowerelementsEnum; -
issm/trunk/src/c/objects/Elements/Penta.cpp
r9650 r9661 5213 5213 5214 5214 //Need to know the type of approximation for this element 5215 if(iomodel->Data( ElementsTypeEnum)){5216 if (*(iomodel->Data( ElementsTypeEnum)+index)==MacAyealApproximationEnum){5215 if(iomodel->Data(FlowequationElementEquationEnum)){ 5216 if (*(iomodel->Data(FlowequationElementEquationEnum)+index)==MacAyealApproximationEnum){ 5217 5217 this->inputs->AddInput(new IntInput(ApproximationEnum,MacAyealApproximationEnum)); 5218 5218 } 5219 else if (*(iomodel->Data( ElementsTypeEnum)+index)==PattynApproximationEnum){5219 else if (*(iomodel->Data(FlowequationElementEquationEnum)+index)==PattynApproximationEnum){ 5220 5220 this->inputs->AddInput(new IntInput(ApproximationEnum,PattynApproximationEnum)); 5221 5221 } 5222 else if (*(iomodel->Data( ElementsTypeEnum)+index)==MacAyealPattynApproximationEnum){5222 else if (*(iomodel->Data(FlowequationElementEquationEnum)+index)==MacAyealPattynApproximationEnum){ 5223 5223 this->inputs->AddInput(new IntInput(ApproximationEnum,MacAyealPattynApproximationEnum)); 5224 5224 } 5225 else if (*(iomodel->Data( ElementsTypeEnum)+index)==HutterApproximationEnum){5225 else if (*(iomodel->Data(FlowequationElementEquationEnum)+index)==HutterApproximationEnum){ 5226 5226 this->inputs->AddInput(new IntInput(ApproximationEnum,HutterApproximationEnum)); 5227 5227 } 5228 else if (*(iomodel->Data( ElementsTypeEnum)+index)==StokesApproximationEnum){5228 else if (*(iomodel->Data(FlowequationElementEquationEnum)+index)==StokesApproximationEnum){ 5229 5229 this->inputs->AddInput(new IntInput(ApproximationEnum,StokesApproximationEnum)); 5230 5230 } 5231 else if (*(iomodel->Data( ElementsTypeEnum)+index)==MacAyealStokesApproximationEnum){5231 else if (*(iomodel->Data(FlowequationElementEquationEnum)+index)==MacAyealStokesApproximationEnum){ 5232 5232 this->inputs->AddInput(new IntInput(ApproximationEnum,MacAyealStokesApproximationEnum)); 5233 5233 } 5234 else if (*(iomodel->Data( ElementsTypeEnum)+index)==PattynStokesApproximationEnum){5234 else if (*(iomodel->Data(FlowequationElementEquationEnum)+index)==PattynStokesApproximationEnum){ 5235 5235 this->inputs->AddInput(new IntInput(ApproximationEnum,PattynStokesApproximationEnum)); 5236 5236 } 5237 else if (*(iomodel->Data( ElementsTypeEnum)+index)==NoneApproximationEnum){5237 else if (*(iomodel->Data(FlowequationElementEquationEnum)+index)==NoneApproximationEnum){ 5238 5238 this->inputs->AddInput(new IntInput(ApproximationEnum,NoneApproximationEnum)); 5239 5239 } 5240 5240 else{ 5241 _error_("Approximation type %s not supported yet",EnumToStringx((int)*(iomodel->Data( ElementsTypeEnum)+index)));5241 _error_("Approximation type %s not supported yet",EnumToStringx((int)*(iomodel->Data(FlowequationElementEquationEnum)+index))); 5242 5242 } 5243 5243 } … … 7506 7506 iomodel->Constant(&stabilization,PrognosticStabilizationEnum); 7507 7507 iomodel->Constant(&dakota_analysis,QmuIsdakotaEnum); 7508 iomodel->Constant(&isstokes, IsstokesEnum);7508 iomodel->Constant(&isstokes,FlowequationIsstokesEnum); 7509 7509 iomodel->Constant(&beta,MaterialsBetaEnum); 7510 7510 iomodel->Constant(&heatcapacity,MaterialsHeatcapacityEnum); … … 7583 7583 } 7584 7584 } 7585 if(*(iomodel->Data( ElementsTypeEnum)+index)==PattynStokesApproximationEnum){7585 if(*(iomodel->Data(FlowequationElementEquationEnum)+index)==PattynStokesApproximationEnum){ 7586 7586 /*Create VzPattyn and VzStokes Enums*/ 7587 if(iomodel->Data(VzEnum) && iomodel->Data( NodeonstokesEnum)){7588 for(i=0;i<6;i++) nodeinputs[i]=iomodel->Data(VzEnum)[penta_vertex_ids[i]-1]/yts*iomodel->Data( NodeonstokesEnum)[penta_vertex_ids[i]-1];7587 if(iomodel->Data(VzEnum) && iomodel->Data(FlowequationBorderstokesEnum)){ 7588 for(i=0;i<6;i++) nodeinputs[i]=iomodel->Data(VzEnum)[penta_vertex_ids[i]-1]/yts*iomodel->Data(FlowequationBorderstokesEnum)[penta_vertex_ids[i]-1]; 7589 7589 this->inputs->AddInput(new PentaVertexInput(VzStokesEnum,nodeinputs)); 7590 for(i=0;i<6;i++) nodeinputs[i]=iomodel->Data(VzEnum)[penta_vertex_ids[i]-1]/yts*(1-iomodel->Data( NodeonstokesEnum)[penta_vertex_ids[i]-1]);7590 for(i=0;i<6;i++) nodeinputs[i]=iomodel->Data(VzEnum)[penta_vertex_ids[i]-1]/yts*(1-iomodel->Data(FlowequationBorderstokesEnum)[penta_vertex_ids[i]-1]); 7591 7591 this->inputs->AddInput(new PentaVertexInput(VzPattynEnum,nodeinputs)); 7592 7592 } … … 7597 7597 } 7598 7598 } 7599 if(*(iomodel->Data( ElementsTypeEnum)+index)==MacAyealStokesApproximationEnum){7599 if(*(iomodel->Data(FlowequationElementEquationEnum)+index)==MacAyealStokesApproximationEnum){ 7600 7600 /*Create VzMacAyeal and VzStokes Enums*/ 7601 if(iomodel->Data(VzEnum) && iomodel->Data( NodeonstokesEnum)){7602 for(i=0;i<6;i++) nodeinputs[i]=iomodel->Data(VzEnum)[penta_vertex_ids[i]-1]/yts*iomodel->Data( NodeonstokesEnum)[penta_vertex_ids[i]-1];7601 if(iomodel->Data(VzEnum) && iomodel->Data(FlowequationBorderstokesEnum)){ 7602 for(i=0;i<6;i++) nodeinputs[i]=iomodel->Data(VzEnum)[penta_vertex_ids[i]-1]/yts*iomodel->Data(FlowequationBorderstokesEnum)[penta_vertex_ids[i]-1]; 7603 7603 this->inputs->AddInput(new PentaVertexInput(VzStokesEnum,nodeinputs)); 7604 for(i=0;i<6;i++) nodeinputs[i]=iomodel->Data(VzEnum)[penta_vertex_ids[i]-1]/yts*(1-iomodel->Data( NodeonstokesEnum)[penta_vertex_ids[i]-1]);7604 for(i=0;i<6;i++) nodeinputs[i]=iomodel->Data(VzEnum)[penta_vertex_ids[i]-1]/yts*(1-iomodel->Data(FlowequationBorderstokesEnum)[penta_vertex_ids[i]-1]); 7605 7605 this->inputs->AddInput(new PentaVertexInput(VzMacAyealEnum,nodeinputs)); 7606 7606 } -
issm/trunk/src/c/objects/Node.cpp
r9655 r9661 46 46 47 47 /*indexing:*/ 48 DistributeNumDofs(&this->indexing,analysis_type,iomodel->Data( VerticesTypeEnum)+io_index); //number of dofs per node48 DistributeNumDofs(&this->indexing,analysis_type,iomodel->Data(FlowequationVertexEquationEnum)+io_index); //number of dofs per node 49 49 gsize=this->indexing.gsize; 50 50 … … 59 59 if (iomodel->Data(MaskVertexongroundediceEnum)) this->inputs->AddInput(new BoolInput(MaskVertexongroundediceEnum,(IssmBool)iomodel->Data(MaskVertexongroundediceEnum)[io_index])); 60 60 if (iomodel->numbernodetoelementconnectivity) this->inputs->AddInput(new IntInput(NumberNodeToElementConnectivityEnum,(IssmInt)iomodel->numbernodetoelementconnectivity[io_index])); 61 if (analysis_type==DiagnosticHorizAnalysisEnum) this->inputs->AddInput(new IntInput(ApproximationEnum,(IssmInt)iomodel->Data( VerticesTypeEnum)[io_index]));61 if (analysis_type==DiagnosticHorizAnalysisEnum) this->inputs->AddInput(new IntInput(ApproximationEnum,(IssmInt)iomodel->Data(FlowequationVertexEquationEnum)[io_index])); 62 62 63 63 /*set single point constraints: */ … … 76 76 /*We have a 3d mesh, we may have collapsed elements, hence dead nodes. Freeze them out: */ 77 77 if (!iomodel->Data(NodeonbedEnum)) _error_("iomodel->nodeonbed is NULL"); 78 if (!iomodel->Data( VerticesTypeEnum)) _error_("iomodel->vertices_type is NULL");79 if (iomodel->Data( VerticesTypeEnum)[io_index]==MacAyealApproximationEnum && !iomodel->Data(NodeonbedEnum)[io_index]){78 if (!iomodel->Data(FlowequationVertexEquationEnum)) _error_("iomodel->vertices_type is NULL"); 79 if (iomodel->Data(FlowequationVertexEquationEnum)[io_index]==MacAyealApproximationEnum && !iomodel->Data(NodeonbedEnum)[io_index]){ 80 80 for(k=1;k<=gsize;k++) this->FreezeDof(k); 81 81 } 82 if (iomodel->Data( VerticesTypeEnum)[io_index]==MacAyealPattynApproximationEnum && iomodel->Data(NodeonmacayealEnum)[io_index]){82 if (iomodel->Data(FlowequationVertexEquationEnum)[io_index]==MacAyealPattynApproximationEnum && iomodel->Data(FlowequationBordermacayealEnum)[io_index]){ 83 83 if(!iomodel->Data(NodeonbedEnum)[io_index]){ 84 84 for(k=1;k<=gsize;k++) this->FreezeDof(k); 85 85 } 86 86 } 87 if (iomodel->Data( VerticesTypeEnum)[io_index]==MacAyealStokesApproximationEnum && iomodel->Data(NodeonmacayealEnum)[io_index]){87 if (iomodel->Data(FlowequationVertexEquationEnum)[io_index]==MacAyealStokesApproximationEnum && iomodel->Data(FlowequationBordermacayealEnum)[io_index]){ 88 88 if(!iomodel->Data(NodeonbedEnum)[io_index]){ 89 89 for(k=1;k<=2;k++) this->FreezeDof(k); … … 92 92 } 93 93 /*spc all nodes on hutter*/ 94 if (iomodel->Data( VerticesTypeEnum)[io_index]==HutterApproximationEnum){94 if (iomodel->Data(FlowequationVertexEquationEnum)[io_index]==HutterApproximationEnum){ 95 95 for(k=1;k<=gsize;k++){ 96 96 this->FreezeDof(k); … … 102 102 /*Diagnostic Hutter*/ 103 103 if (analysis_type==DiagnosticHutterAnalysisEnum){ 104 if (!iomodel->Data( VerticesTypeEnum)) _error_("iomodel->vertices_type is NULL");104 if (!iomodel->Data(FlowequationVertexEquationEnum)) _error_("iomodel->vertices_type is NULL"); 105 105 /*Constrain all nodes that are not Hutter*/ 106 if (!iomodel->Data( VerticesTypeEnum)[io_index]==HutterApproximationEnum){106 if (!iomodel->Data(FlowequationVertexEquationEnum)[io_index]==HutterApproximationEnum){ 107 107 for(k=1;k<=gsize;k++){ 108 108 this->FreezeDof(k); -
issm/trunk/src/c/solutions/adjointdiagnostic_core.cpp
r8926 r9661 21 21 22 22 /*retrieve parameters:*/ 23 femmodel->parameters->FindParam(&isstokes, IsstokesEnum);23 femmodel->parameters->FindParam(&isstokes,FlowequationIsstokesEnum); 24 24 femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum); 25 25 femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum); -
issm/trunk/src/c/solutions/control_core.cpp
r9650 r9661 56 56 femmodel->parameters->FindParam(&dim,DimEnum); 57 57 femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum); 58 femmodel->parameters->FindParam(&isstokes, IsstokesEnum);58 femmodel->parameters->FindParam(&isstokes,FlowequationIsstokesEnum); 59 59 femmodel->parameters->FindParam(&dakota_analysis,QmuIsdakotaEnum); 60 60 -
issm/trunk/src/c/solutions/diagnostic_core.cpp
r9650 r9661 27 27 /* recover parameters:*/ 28 28 femmodel->parameters->FindParam(&dim,DimEnum); 29 femmodel->parameters->FindParam(&ishutter, IshutterEnum);30 femmodel->parameters->FindParam(&ismacayealpattyn, IsmacayealpattynEnum);31 femmodel->parameters->FindParam(&isstokes, IsstokesEnum);29 femmodel->parameters->FindParam(&ishutter,FlowequationIshutterEnum); 30 femmodel->parameters->FindParam(&ismacayealpattyn,FlowequationIsmacayealpattynEnum); 31 femmodel->parameters->FindParam(&isstokes,FlowequationIsstokesEnum); 32 32 femmodel->parameters->FindParam(&dakota_analysis,QmuIsdakotaEnum); 33 33 femmodel->parameters->FindParam(&control_analysis,ControlAnalysisEnum); -
issm/trunk/src/c/solutions/objectivefunctionC.cpp
r9320 r9661 37 37 38 38 /*Recover parameters: */ 39 femmodel->parameters->FindParam(&isstokes, IsstokesEnum);39 femmodel->parameters->FindParam(&isstokes,FlowequationIsstokesEnum); 40 40 femmodel->parameters->FindParam(&analysis_type,AnalysisTypeEnum); 41 41 femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum); -
issm/trunk/src/m/classes/model/model.m
r9655 r9661 32 32 qmu = modelfield('default',0,'marshall',true); 33 33 balancethickness = modelfield('default',0,'marshall',true); 34 flowequation = modelfield('default',0,'marshall',true); 34 35 35 36 %FIXME: all other fields should belong to other classes … … 40 41 numberofnodes = modelfield('default',0,'marshall',true,'format','Integer'); 41 42 elements = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',2); 42 elements_type = modelfield('default',NaN,'marshall',true,'preprocess','marshallapproximations','format','DoubleMat','mattype',2);43 vertices_type = modelfield('default',NaN,'marshall',true,'preprocess','marshallapproximations','format','DoubleMat','mattype',1);44 43 x = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1); 45 44 y = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1); … … 60 59 long = modelfield('default',NaN,'marshall',false); 61 60 hemisphere = modelfield('default',NaN,'marshall',false); 62 63 %Elements type64 ishutter = modelfield('default',0,'marshall',true,'format','Boolean');65 ismacayealpattyn = modelfield('default',0,'marshall',true,'format','Boolean');66 isstokes = modelfield('default',0,'marshall',true,'format','Boolean');67 68 %Nodes69 nodeonmacayeal = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);70 nodeonpattyn = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);71 nodeonstokes = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);72 61 73 62 %Stokes … … 384 373 if isfield(structmd,'artificial_diffusivity'), md.balancethickness.stabilization=structmd.artificial_diffusivity; end 385 374 if isfield(structmd,'dhdt'), md.balancethickness.thickening_rate=structmd.dhdt; end 375 if isfield(structmd,'ismacayealpattyn'), md.flowequation.ismacayealpattyn=structmd.ismacayealpattyn; end 376 if isfield(structmd,'ishutter'), md.flowequation.ishutter=structmd.ishutter; end 377 if isfield(structmd,'isstokes'), md.flowequation.isstokes=structmd.isstokes; end 378 if isfield(structmd,'elements_type'), md.flowequation.element_equation=structmd.elements_type; end 379 if isfield(structmd,'vertices_type'), md.flowequation.vertex_equation=structmd.vertices_type; end 386 380 387 381 %Field changes … … 507 501 md.qmu=qmu; 508 502 md.balancethickness=balancethickness; 503 md.flowequation=flowequation; 509 504 510 505 %Solver parameters -
issm/trunk/src/m/model/collapse.m
r9654 r9661 47 47 48 48 %elementstype 49 if ~isnan(md. elements_type)50 md. elements_type=project2d(md,md.elements_type,1);49 if ~isnan(md.flowequation.element_equation) 50 md.flowequation.element_equation=project2d(md,md.flowequation.element_equation,1); 51 51 end 52 52 -
issm/trunk/src/m/model/extrude.m
r9654 r9661 154 154 155 155 %elementstype 156 if ~isnan(md. elements_type)157 oldelements_type=md. elements_type;158 md. elements_type=zeros(number_el3d,1);159 md. elements_type=project3d(md,'vector',oldelements_type,'type','element');156 if ~isnan(md.flowequation.element_equation) 157 oldelements_type=md.flowequation.element_equation; 158 md.flowequation.element_equation=zeros(number_el3d,1); 159 md.flowequation.element_equation=project3d(md,'vector',oldelements_type,'type','element'); 160 160 end 161 161 162 162 %verticestype 163 if ~isnan(md. vertices_type)164 oldvertices_type=md. vertices_type;165 md. vertices_type=zeros(number_nodes3d,1);166 md. vertices_type=project3d(md,'vector',oldvertices_type,'type','node');163 if ~isnan(md.flowequation.vertex_equation) 164 oldvertices_type=md.flowequation.vertex_equation; 165 md.flowequation.vertex_equation=zeros(number_nodes3d,1); 166 md.flowequation.vertex_equation=project3d(md,'vector',oldvertices_type,'type','node'); 167 167 end 168 168 -
issm/trunk/src/m/model/ismodelselfconsistent.m
r9654 r9661 209 209 message(['model not consistent: model ' md.miscellaneous.name ' control_type field should be a cell of strings']); 210 210 end 211 if ~ismember(md.control_type,{' Dhdt' 'FrictionCoefficient' 'MaterialsRheologyBbar' 'Vx' 'Vy'});212 message(['model not consistent: model ' md.miscellaneous.name ' control_type field should be '' Dhdt'' ''FrictionCoefficient'' ''MaterialsRheologyBbar'' ''Vx'' ''Vy''']);211 if ~ismember(md.control_type,{'BalancethicknessThickeningRate' 'FrictionCoefficient' 'MaterialsRheologyBbar' 'Vx' 'Vy'}); 212 message(['model not consistent: model ' md.miscellaneous.name ' control_type field should be ''BalancethicknessThickeningRate'' ''FrictionCoefficient'' ''MaterialsRheologyBbar'' ''Vx'' ''Vy''']); 213 213 end 214 214 … … 387 387 %CHECK THAT ROTATION IS IN THE (X,Y) PLANE FOR 2D MODELS 388 388 if md.dim==2, 389 pos=find(sum(isnan(md.diagnostic_ref),2)==0 & md. vertices_type==2);389 pos=find(sum(isnan(md.diagnostic_ref),2)==0 & md.flowequation.vertex_equation==2); 390 390 if any(md.diagnostic_ref(pos,3:5)~=0); 391 391 message(['model not consistent: model ' md.miscellaneous.name ' has problem with rotated spc. The rotation should be in the (x,y) plane for 2D diagnostic models (nodeonmacayeal)']); … … 401 401 402 402 %ELEMENTSTYPE 403 %Check the size of elements_type404 fields={' elements_type'};403 %Check the size of flowequation.element_equation 404 fields={'flowequation.element_equation'}; 405 405 checksize(md,fields,[md.numberofelements 1]); 406 %Check the values of elements_type407 checkvalues(md,{' elements_type'},[0:7]);406 %Check the values of flowequation.element_equation 407 checkvalues(md,{'flowequation.element_equation'},[0:7]); 408 408 if (md.dim==2), 409 checkvalues(md,{' elements_type'},[1 2]);410 end 411 if (md. ismacayealpattyn==0 && md.ishutter==0 && md.isstokes==0),409 checkvalues(md,{'flowequation.element_equation'},[1 2]); 410 end 411 if (md.flowequation.ismacayealpattyn==0 && md.flowequation.ishutter==0 && md.flowequation.isstokes==0), 412 412 message(['model not consistent: no elements type set for this model. at least one of ismacayealpattyn, ishutter and isstokes need to be =1']); 413 413 end … … 415 415 %VERTICESTYPE 416 416 %Check the size of verticess_type 417 fields={' vertices_type'};417 fields={'flowequation.vertex_equation'}; 418 418 checksize(md,fields,[md.numberofnodes 1]); 419 %Check the values of vertices_type420 checkvalues(md,{' vertices_type'},[0:7]);419 %Check the values of flowequation.vertex_equation 420 checkvalues(md,{'flowequation.vertex_equation'},[0:7]); 421 421 if (md.dim==2), 422 checkvalues(md,{' vertices_type'},[1 2]);423 end 424 if (md. ismacayealpattyn==0 && md.ishutter==0 && md.isstokes==0),422 checkvalues(md,{'flowequation.vertex_equation'},[1 2]); 423 end 424 if (md.flowequation.ismacayealpattyn==0 && md.flowequation.ishutter==0 && md.flowequation.isstokes==0), 425 425 message(['model not consistent: no elements type set for this model. at least one of ismacayealpattyn, ishutter and isstokes need to be =1']); 426 426 end … … 435 435 % {{{2 436 436 %HUTTER ON ICESHELF WARNING 437 if any(md. elements_type==1 & md.mask.elementonfloatingice),437 if any(md.flowequation.element_equation==1 & md.mask.elementonfloatingice), 438 438 disp(sprintf('\n !!! Warning: Hutter''s model is not consistent on ice shelves !!!\n')); 439 439 end -
issm/trunk/src/m/model/mechanicalproperties.m
r9636 r9661 20 20 error('only 2d model supported yet'); 21 21 end 22 if any(md. elements_type~=2),22 if any(md.flowequation.element_equation~=2), 23 23 disp('Warning: the model has some non macayeal elements. These will be treated like MacAyeal''s elements'); 24 24 end -
issm/trunk/src/m/model/mesh/rifts/meshprocessoutsiderifts.m
r9619 r9661 88 88 md.nodeonboundary=zeros(length(md.x),1); md.nodeonboundary(md.segments(:,1:2))=1; 89 89 md.rifts.numrifts=length(md.rifts.riftstruct); 90 md. elements_type=3*ones(md.numberofelements,1);90 md.flowequation.element_equation=3*ones(md.numberofelements,1); 91 91 md.nodeonbed=ones(md.numberofnodes,1); 92 92 md.nodeonsurface=ones(md.numberofnodes,1); -
issm/trunk/src/m/model/mesh/rifts/meshprocessrifts.m
r9619 r9661 36 36 md.nodeonboundary=zeros(length(md.x),1); md.nodeonboundary(md.segments(:,1:2))=1; 37 37 md.rifts.numrifts=length(md.rifts.riftstruct); 38 md. elements_type=3*ones(md.numberofelements,1);38 md.flowequation.element_equation=3*ones(md.numberofelements,1); 39 39 md.nodeonbed=ones(md.numberofnodes,1); 40 40 md.nodeonsurface=ones(md.numberofnodes,1); -
issm/trunk/src/m/model/plot/plot_elementstype.m
r9532 r9661 9 9 %process data and model 10 10 [x y z elements is2d isplanet]=processmesh(md,[],options); 11 [data datatype]=processdata(md,md. elements_type,options);11 [data datatype]=processdata(md,md.flowequation.element_equation,options); 12 12 13 13 %edgecolor? -
issm/trunk/src/m/model/setelementstype.m
r9654 r9661 68 68 69 69 %add in model who is who 70 md. elements_type=zeros(md.numberofelements,1);70 md.flowequation.element_equation=zeros(md.numberofelements,1); 71 71 72 72 %1: Hutter elements 73 73 nodeonhutter=zeros(md.numberofnodes,1); 74 74 nodeonhutter(md.elements(find(hutterflag),:))=1; 75 md. elements_type(find(hutterflag))=1;75 md.flowequation.element_equation(find(hutterflag))=1; 76 76 77 77 %2: MacAyeal elements 78 78 nodeonmacayeal=zeros(md.numberofnodes,1); 79 79 nodeonmacayeal(md.elements(find(macayealflag),:))=1; 80 md. nodeonmacayeal=nodeonmacayeal;81 md. elements_type(find(macayealflag))=2;80 md.flowequation.bordermacayeal=nodeonmacayeal; 81 md.flowequation.element_equation(find(macayealflag))=2; 82 82 83 83 %3: Pattyn elements 84 84 nodeonpattyn=zeros(md.numberofnodes,1); 85 85 nodeonpattyn(md.elements(find(pattynflag),:))=1; 86 md. nodeonpattyn=nodeonpattyn;87 md. elements_type(find(pattynflag))=3;86 md.flowequation.borderpattyn=nodeonpattyn; 87 md.flowequation.element_equation(find(pattynflag))=3; 88 88 89 89 %4: Stokes elements … … 98 98 nodeonstokes=zeros(md.numberofnodes,1); 99 99 nodeonstokes(md.elements(find(stokesflag),:))=1; 100 md. nodeonstokes=nodeonstokes;101 md. elements_type(find(stokesflag))=4;100 md.flowequation.borderstokes=nodeonstokes; 101 md.flowequation.element_equation(find(stokesflag))=4; 102 102 103 103 %Then complete with NoneApproximation or the other model used if there is no stokes … … 106 106 pattynflag(~stokesflag)=1; 107 107 nodeonpattyn(md.elements(find(pattynflag),:))=1; 108 md. nodeonpattyn=nodeonpattyn;109 md. elements_type(find(~stokesflag))=3;108 md.flowequation.borderpattyn=nodeonpattyn; 109 md.flowequation.element_equation(find(~stokesflag))=3; 110 110 elseif any(macayealflag), %fill with macayeal 111 111 macayealflag(~stokesflag)=1; 112 112 nodeonmacayeal(md.elements(find(macayealflag),:))=1; 113 md. nodeonmacayeal=nodeonmacayeal;114 md. elements_type(find(~stokesflag))=2;113 md.flowequation.bordermacayeal=nodeonmacayeal; 114 md.flowequation.element_equation(find(~stokesflag))=2; 115 115 else %fill with none 116 116 %5: None elements (non Stokes) 117 md. elements_type(find(~stokesflag))=0;117 md.flowequation.element_equation(find(~stokesflag))=0; 118 118 end 119 119 end … … 151 151 nodeonmacayeal=zeros(md.numberofnodes,1); 152 152 nodeonmacayeal(md.elements(find(macayealflag),:))=1; 153 md. nodeonmacayeal=nodeonmacayeal;153 md.flowequation.bordermacayeal=nodeonmacayeal; 154 154 155 155 %Create MacaAyealPattynApproximation where needed 156 md. elements_type(find(macayealpattynflag))=5;156 md.flowequation.element_equation(find(macayealpattynflag))=5; 157 157 158 158 %Now recreate nodeonmacayeal and nodeonmacayealpattyn … … 170 170 nodeonstokes=zeros(md.numberofnodes,1); 171 171 nodeonstokes(md.elements(find(stokesflag),:))=1; 172 md. nodeonstokes=nodeonstokes;172 md.flowequation.borderstokes=nodeonstokes; 173 173 174 174 %Create MacaAyealPattynApproximation where needed 175 md. elements_type(find(pattynstokesflag))=7;175 md.flowequation.element_equation(find(pattynstokesflag))=7; 176 176 177 177 %Now recreate nodeonpattynstokes … … 190 190 nodeonstokes=zeros(md.numberofnodes,1); 191 191 nodeonstokes(md.elements(find(stokesflag),:))=1; 192 md. nodeonstokes=nodeonstokes;192 md.flowequation.borderstokes=nodeonstokes; 193 193 194 194 %Create MacaAyeal Approximation where needed 195 md. elements_type(find(macayealstokesflag))=6;195 md.flowequation.element_equation(find(macayealstokesflag))=6; 196 196 197 197 %Now recreate nodeonmacayealstokes … … 204 204 205 205 %Create vertices_type 206 md. vertices_type=zeros(md.numberofnodes,1);206 md.flowequation.vertex_equation=zeros(md.numberofnodes,1); 207 207 pos=find(nodeonhutter); 208 md. vertices_type(pos)=1;208 md.flowequation.vertex_equation(pos)=1; 209 209 pos=find(nodeonmacayeal); 210 md. vertices_type(pos)=2;210 md.flowequation.vertex_equation(pos)=2; 211 211 pos=find(nodeonpattyn); 212 md. vertices_type(pos)=3;212 md.flowequation.vertex_equation(pos)=3; 213 213 pos=find(nodeonhutter); 214 md. vertices_type(pos)=1;214 md.flowequation.vertex_equation(pos)=1; 215 215 pos=find(nodeonpattyn & nodeonmacayeal); 216 md. vertices_type(pos)=3;216 md.flowequation.vertex_equation(pos)=3; 217 217 pos=find(nodeonmacayealpattyn); 218 md. vertices_type(pos)=5;218 md.flowequation.vertex_equation(pos)=5; 219 219 pos=find(nodeonstokes); 220 md. vertices_type(pos)=4;220 md.flowequation.vertex_equation(pos)=4; 221 221 if any(stokesflag), 222 222 pos=find(~nodeonstokes); 223 223 if(~any(pattynflag) & ~any(macayealflag)), 224 md. vertices_type(pos)=0;224 md.flowequation.vertex_equation(pos)=0; 225 225 end 226 226 end 227 227 pos=find(nodeonpattynstokes); 228 md. vertices_type(pos)=7;228 md.flowequation.vertex_equation(pos)=7; 229 229 pos=find(nodeonmacayealstokes); 230 md. vertices_type(pos)=6;230 md.flowequation.vertex_equation(pos)=6; 231 231 232 232 %figure out solution types 233 md. ishutter=double(any(md.elements_type==1));234 md. ismacayealpattyn=double(any(md.elements_type==2 | md.elements_type==3));235 md. isstokes=double(any(md.elements_type==4));236 237 end 233 md.flowequation.ishutter=double(any(md.flowequation.element_equation==1)); 234 md.flowequation.ismacayealpattyn=double(any(md.flowequation.element_equation==2 | md.flowequation.element_equation==3)); 235 md.flowequation.isstokes=double(any(md.flowequation.element_equation==4)); 236 237 end -
issm/trunk/src/m/solutions/diagnostic_core.m
r9650 r9661 12 12 %recover parameters common to all solutions 13 13 dim=femmodel.parameters.Dim; 14 ishutter=femmodel.parameters. Ishutter;15 ismacayealpattyn=femmodel.parameters. Ismacayealpattyn;16 isstokes=femmodel.parameters. Isstokes;14 ishutter=femmodel.parameters.FlowequationIshutter; 15 ismacayealpattyn=femmodel.parameters.FlowequationIsmacayealpattyn; 16 isstokes=femmodel.parameters.FlowequationIsstokes; 17 17 dakota_analysis=femmodel.parameters.QmuIsdakota; 18 18 control_analysis=femmodel.parameters.ControlAnalysis;
Note:
See TracChangeset
for help on using the changeset viewer.