Index: ../trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp =================================================================== --- ../trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp (revision 17563) +++ ../trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp (revision 17564) @@ -50,12 +50,12 @@ iomodel->FetchDataToInput(elements,ThicknessEnum); iomodel->FetchDataToInput(elements,BaseEnum); iomodel->FetchDataToInput(elements,MaskIceLevelsetEnum); - iomodel->FetchDataToInput(elements,MeshElementonbedEnum); iomodel->FetchDataToInput(elements,EplHeadEnum); iomodel->FetchDataToInput(elements,SedimentHeadEnum); iomodel->FetchDataToInput(elements,HydrologydcEplInitialThicknessEnum); iomodel->FetchDataToInput(elements,HydrologydcSedimentTransmitivityEnum); iomodel->FetchDataToInput(elements,HydrologydcEplThicknessEnum); + if(iomodel->meshtype==Mesh3DEnum) iomodel->FetchDataToInput(elements,MeshElementonbedEnum); // elements->InputDuplicate(HydrologydcEplInitialThicknessEnum,HydrologydcEplThicknessEnum); @@ -72,9 +72,9 @@ iomodel->Constant(&isefficientlayer,HydrologydcIsefficientlayerEnum); if(!isefficientlayer) return; - iomodel->FetchData(3,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,FlowequationVertexEquationEnum); + if(iomodel->meshtype!=Mesh2DhorizontalEnum) iomodel->FetchData(2,MeshVertexonbedEnum,MeshVertexonsurfaceEnum); ::CreateNodes(nodes,iomodel,HydrologyDCEfficientAnalysisEnum,P1Enum); - iomodel->DeleteData(3,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,FlowequationVertexEquationEnum); + iomodel->DeleteData(2,MeshVertexonbedEnum,MeshVertexonsurfaceEnum); }/*}}}*/ void HydrologyDCEfficientAnalysis::CreateConstraints(Constraints* constraints,IoModel* iomodel){/*{{{*/ Index: ../trunk-jpl/src/c/analyses/SmoothedSurfaceSlopeXAnalysis.cpp =================================================================== --- ../trunk-jpl/src/c/analyses/SmoothedSurfaceSlopeXAnalysis.cpp (revision 17563) +++ ../trunk-jpl/src/c/analyses/SmoothedSurfaceSlopeXAnalysis.cpp (revision 17564) @@ -34,9 +34,9 @@ } }/*}}}*/ void SmoothedSurfaceSlopeXAnalysis::CreateNodes(Nodes* nodes,IoModel* iomodel){/*{{{*/ - iomodel->FetchData(1,MeshVertexonbedEnum); + if(iomodel->meshtype==Mesh3DEnum) iomodel->FetchData(1,MeshVertexonbedEnum); ::CreateNodes(nodes,iomodel,SmoothedSurfaceSlopeXAnalysisEnum,P1Enum); - iomodel->DeleteData(1,MeshVertexonbedEnum); + if(iomodel->meshtype==Mesh3DEnum) iomodel->DeleteData(1,MeshVertexonbedEnum); }/*}}}*/ void SmoothedSurfaceSlopeXAnalysis::CreateConstraints(Constraints* constraints,IoModel* iomodel){/*{{{*/ }/*}}}*/ Index: ../trunk-jpl/src/c/analyses/SmoothedSurfaceSlopeYAnalysis.cpp =================================================================== --- ../trunk-jpl/src/c/analyses/SmoothedSurfaceSlopeYAnalysis.cpp (revision 17563) +++ ../trunk-jpl/src/c/analyses/SmoothedSurfaceSlopeYAnalysis.cpp (revision 17564) @@ -34,9 +34,9 @@ } }/*}}}*/ void SmoothedSurfaceSlopeYAnalysis::CreateNodes(Nodes* nodes,IoModel* iomodel){/*{{{*/ - iomodel->FetchData(1,MeshVertexonbedEnum); + if(iomodel->meshtype==Mesh3DEnum) iomodel->FetchData(1,MeshVertexonbedEnum); ::CreateNodes(nodes,iomodel,SmoothedSurfaceSlopeYAnalysisEnum,P1Enum); - iomodel->DeleteData(1,MeshVertexonbedEnum); + if(iomodel->meshtype==Mesh3DEnum) iomodel->DeleteData(1,MeshVertexonbedEnum); }/*}}}*/ void SmoothedSurfaceSlopeYAnalysis::CreateConstraints(Constraints* constraints,IoModel* iomodel){/*{{{*/ }/*}}}*/ Index: ../trunk-jpl/src/c/analyses/BalancevelocityAnalysis.cpp =================================================================== --- ../trunk-jpl/src/c/analyses/BalancevelocityAnalysis.cpp (revision 17563) +++ ../trunk-jpl/src/c/analyses/BalancevelocityAnalysis.cpp (revision 17564) @@ -43,9 +43,7 @@ if(iomodel->meshtype==Mesh3DEnum) _error_("DG 3d not implemented yet"); /*First fetch data: */ - iomodel->FetchData(3,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,FlowequationVertexEquationEnum); ::CreateNodes(nodes,iomodel,BalancevelocityAnalysisEnum,P1Enum); - iomodel->DeleteData(3,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,FlowequationVertexEquationEnum); }/*}}}*/ void BalancevelocityAnalysis::CreateConstraints(Constraints* constraints,IoModel* iomodel){/*{{{*/ Index: ../trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp =================================================================== --- ../trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp (revision 17563) +++ ../trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp (revision 17564) @@ -83,13 +83,12 @@ iomodel->FetchDataToInput(elements,ThicknessEnum); iomodel->FetchDataToInput(elements,BaseEnum); iomodel->FetchDataToInput(elements,MaskIceLevelsetEnum); - iomodel->FetchDataToInput(elements,MeshElementonbedEnum); iomodel->FetchDataToInput(elements,BasalforcingsMeltingRateEnum); iomodel->FetchDataToInput(elements,HydrologydcBasalMoulinInputEnum); iomodel->FetchDataToInput(elements,SedimentHeadEnum); iomodel->FetchDataToInput(elements,HydrologydcSedimentTransmitivityEnum); + if(iomodel->meshtype==Mesh3DEnum) iomodel->FetchDataToInput(elements,MeshElementonbedEnum); - if(isefficientlayer)iomodel->FetchDataToInput(elements,HydrologydcMaskEplactiveNodeEnum); }/*}}}*/ void HydrologyDCInefficientAnalysis::CreateNodes(Nodes* nodes,IoModel* iomodel){/*{{{*/ @@ -101,7 +100,7 @@ /*Now, do we really want DC?*/ if(hydrology_model!=HydrologydcEnum) return; - if(iomodel->meshtype==Mesh3DEnum) iomodel->FetchData(2,MeshVertexonbedEnum,MeshVertexonsurfaceEnum); + if(iomodel->meshtype!=Mesh2DhorizontalEnum) iomodel->FetchData(2,MeshVertexonbedEnum,MeshVertexonsurfaceEnum); ::CreateNodes(nodes,iomodel,HydrologyDCInefficientAnalysisEnum,P1Enum); iomodel->DeleteData(2,MeshVertexonbedEnum,MeshVertexonsurfaceEnum); }/*}}}*/ @@ -121,7 +120,7 @@ iomodel->Constant(&hydrology_model,HydrologyModelEnum); if(hydrology_model!=HydrologydcEnum) return; - iomodel->FetchData(1,MeshVertexonbedEnum); + if(iomodel->meshtype==Mesh3DEnum) iomodel->FetchData(1,MeshVertexonbedEnum); //create penalties for nodes: no node can have water above the max CreateSingleNodeToElementConnectivity(iomodel); Index: ../trunk-jpl/src/m/classes/model.py =================================================================== --- ../trunk-jpl/src/m/classes/model.py (revision 17563) +++ ../trunk-jpl/src/m/classes/model.py (revision 17564) @@ -373,7 +373,6 @@ #First do the connectivity for the contourenvelope in 2d [md2.mesh.vertexconnectivity]=NodeConnectivity(md2.mesh.elements2d,md2.mesh.numberofvertices2d) [md2.mesh.elementconnectivity]=ElementConnectivity(md2.mesh.elements2d,md2.mesh.vertexconnectivity) - md2.mesh.segments=contourenvelope(md2) md2.mesh.vertexonboundary=numpy.zeros(numberofvertices2/md2.mesh.numberoflayers,bool) md2.mesh.vertexonboundary[md2.mesh.segments[:,0:2]-1]=True md2.mesh.vertexonboundary=numpy.tile(md2.mesh.vertexonboundary,md2.mesh.numberoflayers) Index: ../trunk-jpl/src/m/classes/model.m =================================================================== --- ../trunk-jpl/src/m/classes/model.m (revision 17563) +++ ../trunk-jpl/src/m/classes/model.m (revision 17564) @@ -472,7 +472,6 @@ %First do the connectivity for the contourenvelope in 2d md2.mesh.vertexconnectivity=NodeConnectivity(md2.mesh.elements2d,md2.mesh.numberofvertices2d); md2.mesh.elementconnectivity=ElementConnectivity(md2.mesh.elements2d,md2.mesh.vertexconnectivity); - md2.mesh.segments=contourenvelope(md2); md2.mesh.vertexonboundary=zeros(numberofvertices2/md2.mesh.numberoflayers,1); md2.mesh.vertexonboundary(md2.mesh.segments(:,1:2))=1; md2.mesh.vertexonboundary=repmat(md2.mesh.vertexonboundary,md2.mesh.numberoflayers,1); %Then do it for 3d as usual