Changeset 24335 for issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
- Timestamp:
- 11/15/19 16:28:40 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp ¶
r24221 r24335 659 659 return numdofs; 660 660 }/*}}}*/ 661 void StressbalanceAnalysis::UpdateElements(Elements* elements,I oModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/661 void StressbalanceAnalysis::UpdateElements(Elements* elements,Inputs2* inputs2,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/ 662 662 663 663 /*Intermediaries*/ … … 730 730 if(iomodel->my_elements[i]){ 731 731 Element* element=(Element*)elements->GetObjectByOffset(counter); 732 element->Update(i,iomodel,analysis_counter,analysis_type,finiteelement_list[i]); 732 element->Update(inputs2,i,iomodel,analysis_counter,analysis_type,finiteelement_list[i]); 733 734 /*Need to know the type of approximation for this element*/ 735 if(iomodel->Data("md.flowequation.element_equation")){ 736 inputs2->SetInput(ApproximationEnum,counter,IoCodeToEnumElementEquation(reCast<int>(iomodel->Data("md.flowequation.element_equation")[i]))); 737 } 738 733 739 counter++; 734 740 } … … 736 742 737 743 /*Create inputs: */ 738 iomodel->FetchDataToInput( elements,"md.geometry.thickness",ThicknessEnum);739 iomodel->FetchDataToInput( elements,"md.geometry.surface",SurfaceEnum);740 iomodel->FetchDataToInput( elements,"md.geometry.base",BaseEnum);741 iomodel->FetchDataToInput( elements,"md.slr.sealevel",SealevelEnum,0);742 iomodel->FetchDataToInput( elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);743 iomodel->FetchDataToInput( elements,"md.mask.groundedice_levelset",MaskGroundediceLevelsetEnum);744 iomodel->FetchDataToInput( elements,"md.initialization.vx",VxEnum,0.);745 iomodel->FetchDataToInput( elements,"md.initialization.vy",VyEnum,0.);746 iomodel->FetchDataToInput( elements,"md.stressbalance.loadingforcex",LoadingforceXEnum);747 iomodel->FetchDataToInput( elements,"md.stressbalance.loadingforcey",LoadingforceYEnum);744 iomodel->FetchDataToInput(inputs2,elements,"md.geometry.thickness",ThicknessEnum); 745 iomodel->FetchDataToInput(inputs2,elements,"md.geometry.surface",SurfaceEnum); 746 iomodel->FetchDataToInput(inputs2,elements,"md.geometry.base",BaseEnum); 747 iomodel->FetchDataToInput(inputs2,elements,"md.slr.sealevel",SealevelEnum,0); 748 iomodel->FetchDataToInput(inputs2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum); 749 iomodel->FetchDataToInput(inputs2,elements,"md.mask.groundedice_levelset",MaskGroundediceLevelsetEnum); 750 iomodel->FetchDataToInput(inputs2,elements,"md.initialization.vx",VxEnum,0.); 751 iomodel->FetchDataToInput(inputs2,elements,"md.initialization.vy",VyEnum,0.); 752 iomodel->FetchDataToInput(inputs2,elements,"md.stressbalance.loadingforcex",LoadingforceXEnum); 753 iomodel->FetchDataToInput(inputs2,elements,"md.stressbalance.loadingforcey",LoadingforceYEnum); 748 754 #ifdef LATERALFRICTION 749 iomodel->FetchDataToInput( elements,"md.mesh.vertexonboundary",MeshVertexonboundaryEnum);755 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonboundary",MeshVertexonboundaryEnum); 750 756 #endif 751 757 752 758 if(iomodel->domaintype!=Domain2DhorizontalEnum){ 753 iomodel->FetchDataToInput( elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);754 iomodel->FetchDataToInput( elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);759 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum); 760 iomodel->FetchDataToInput(inputs2,elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum); 755 761 } 756 762 if(iomodel->domaintype==Domain3DEnum){ 757 iomodel->FetchDataToInput( elements,"md.flowequation.borderFS",FlowequationBorderFSEnum);758 iomodel->FetchDataToInput( elements,"md.stressbalance.loadingforcez",LoadingforceZEnum);759 iomodel->FetchDataToInput( elements,"md.initialization.vz",VzEnum,0.);763 iomodel->FetchDataToInput(inputs2,elements,"md.flowequation.borderFS",FlowequationBorderFSEnum); 764 iomodel->FetchDataToInput(inputs2,elements,"md.stressbalance.loadingforcez",LoadingforceZEnum); 765 iomodel->FetchDataToInput(inputs2,elements,"md.initialization.vz",VzEnum,0.); 760 766 } 761 767 if(isFS){ 762 iomodel->FetchDataToInput( elements,"md.initialization.pressure",PressureEnum,0.);768 iomodel->FetchDataToInput(inputs2,elements,"md.initialization.pressure",PressureEnum,0.); 763 769 764 770 /*Add basal forcings to compute melt rate*/ … … 767 773 switch(basalforcing_model){ 768 774 case FloatingMeltRateEnum: 769 iomodel->FetchDataToInput( elements,"md.basalforcings.floatingice_melting_rate",BasalforcingsFloatingiceMeltingRateEnum);775 iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.floatingice_melting_rate",BasalforcingsFloatingiceMeltingRateEnum); 770 776 break; 771 777 case LinearFloatingMeltRateEnum: … … 776 782 break; 777 783 case SpatialLinearFloatingMeltRateEnum: 778 iomodel->FetchDataToInput( elements,"md.basalforcings.deepwater_melting_rate",BasalforcingsDeepwaterMeltingRateEnum);779 iomodel->FetchDataToInput( elements,"md.basalforcings.deepwater_elevation",BasalforcingsDeepwaterElevationEnum);780 iomodel->FetchDataToInput( elements,"md.basalforcings.upperwater_elevation",BasalforcingsUpperwaterElevationEnum);784 iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.deepwater_melting_rate",BasalforcingsDeepwaterMeltingRateEnum); 785 iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.deepwater_elevation",BasalforcingsDeepwaterElevationEnum); 786 iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.upperwater_elevation",BasalforcingsUpperwaterElevationEnum); 781 787 break; 782 788 case BasalforcingsPicoEnum: 783 iomodel->FetchDataToInput( elements,"md.basalforcings.basin_id",BasalforcingsPicoBasinIdEnum);789 iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.basin_id",BasalforcingsPicoBasinIdEnum); 784 790 break; 785 791 case BasalforcingsIsmip6Enum: 786 iomodel->FetchDataToInput( elements,"md.basalforcings.basin_id",BasalforcingsIsmip6BasinIdEnum);792 iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.basin_id",BasalforcingsIsmip6BasinIdEnum); 787 793 break; 788 794 case BeckmannGoosseFloatingMeltRateEnum: 789 iomodel->FetchDataToInput( elements,"md.basalforcings.ocean_salinity",BasalforcingsOceanSalinityEnum);790 iomodel->FetchDataToInput( elements,"md.basalforcings.ocean_temp",BasalforcingsOceanTempEnum);795 iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.ocean_salinity",BasalforcingsOceanSalinityEnum); 796 iomodel->FetchDataToInput(inputs2,elements,"md.basalforcings.ocean_temp",BasalforcingsOceanTempEnum); 791 797 break; 792 798 default: … … 797 803 iomodel->FindConstant(&fe_FS,"md.flowequation.fe_FS"); 798 804 if(fe_FS==LATaylorHoodEnum || fe_FS==LACrouzeixRaviartEnum){ 799 InputUpdateFromConstantx( elements,0.,SigmaNNEnum);805 InputUpdateFromConstantx(inputs2,elements,0.,SigmaNNEnum); 800 806 } 801 807 … … 804 810 case 1: 805 811 iomodel->FindConstant(&FrictionCoupling,"md.friction.coupling"); 806 iomodel->FetchDataToInput( elements,"md.friction.coefficient",FrictionCoefficientEnum);807 iomodel->FetchDataToInput( elements,"md.friction.p",FrictionPEnum);808 iomodel->FetchDataToInput( elements,"md.friction.q",FrictionQEnum);812 iomodel->FetchDataToInput(inputs2,elements,"md.friction.coefficient",FrictionCoefficientEnum); 813 iomodel->FetchDataToInput(inputs2,elements,"md.friction.p",FrictionPEnum); 814 iomodel->FetchDataToInput(inputs2,elements,"md.friction.q",FrictionQEnum); 809 815 if(FrictionCoupling==3){ 810 iomodel->FetchDataToInput( elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);}816 iomodel->FetchDataToInput(inputs2,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);} 811 817 else if(FrictionCoupling==4){ 812 iomodel->FetchDataToInput( elements,"md.friction.effective_pressure",EffectivePressureEnum);818 iomodel->FetchDataToInput(inputs2,elements,"md.friction.effective_pressure",EffectivePressureEnum); 813 819 } 814 820 break; 815 821 case 2: 816 iomodel->FetchDataToInput( elements,"md.friction.C",FrictionCEnum);817 iomodel->FetchDataToInput( elements,"md.friction.m",FrictionMEnum);822 iomodel->FetchDataToInput(inputs2,elements,"md.friction.C",FrictionCEnum); 823 iomodel->FetchDataToInput(inputs2,elements,"md.friction.m",FrictionMEnum); 818 824 break; 819 825 case 3: 820 826 iomodel->FindConstant(&FrictionCoupling,"md.friction.coupling"); 821 iomodel->FetchDataToInput( elements,"md.friction.C",FrictionCEnum);822 iomodel->FetchDataToInput( elements,"md.friction.As",FrictionAsEnum);823 iomodel->FetchDataToInput( elements,"md.friction.q",FrictionQEnum);827 iomodel->FetchDataToInput(inputs2,elements,"md.friction.C",FrictionCEnum); 828 iomodel->FetchDataToInput(inputs2,elements,"md.friction.As",FrictionAsEnum); 829 iomodel->FetchDataToInput(inputs2,elements,"md.friction.q",FrictionQEnum); 824 830 if(FrictionCoupling==3){ 825 iomodel->FetchDataToInput( elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);}831 iomodel->FetchDataToInput(inputs2,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);} 826 832 else if(FrictionCoupling==4){ 827 iomodel->FetchDataToInput( elements,"md.friction.effective_pressure",EffectivePressureEnum);833 iomodel->FetchDataToInput(inputs2,elements,"md.friction.effective_pressure",EffectivePressureEnum); 828 834 } 829 835 break; 830 836 case 4: 831 iomodel->FetchDataToInput( elements,"md.friction.coefficient",FrictionCoefficientEnum);832 iomodel->FetchDataToInput( elements,"md.friction.p",FrictionPEnum);833 iomodel->FetchDataToInput( elements,"md.friction.q",FrictionQEnum);834 iomodel->FetchDataToInput( elements,"md.initialization.pressure",PressureEnum);835 iomodel->FetchDataToInput( elements,"md.initialization.temperature",TemperatureEnum);837 iomodel->FetchDataToInput(inputs2,elements,"md.friction.coefficient",FrictionCoefficientEnum); 838 iomodel->FetchDataToInput(inputs2,elements,"md.friction.p",FrictionPEnum); 839 iomodel->FetchDataToInput(inputs2,elements,"md.friction.q",FrictionQEnum); 840 iomodel->FetchDataToInput(inputs2,elements,"md.initialization.pressure",PressureEnum); 841 iomodel->FetchDataToInput(inputs2,elements,"md.initialization.temperature",TemperatureEnum); 836 842 iomodel->FindConstant(&FrictionCoupling,"md.friction.coupling"); 837 843 break; 838 844 case 5: 839 iomodel->FetchDataToInput( elements,"md.friction.coefficient",FrictionCoefficientEnum);840 iomodel->FetchDataToInput( elements,"md.friction.p",FrictionPEnum);841 iomodel->FetchDataToInput( elements,"md.friction.q",FrictionQEnum);842 iomodel->FetchDataToInput( elements,"md.friction.water_layer",FrictionWaterLayerEnum);845 iomodel->FetchDataToInput(inputs2,elements,"md.friction.coefficient",FrictionCoefficientEnum); 846 iomodel->FetchDataToInput(inputs2,elements,"md.friction.p",FrictionPEnum); 847 iomodel->FetchDataToInput(inputs2,elements,"md.friction.q",FrictionQEnum); 848 iomodel->FetchDataToInput(inputs2,elements,"md.friction.water_layer",FrictionWaterLayerEnum); 843 849 break; 844 850 case 6: 845 iomodel->FetchDataToInput( elements,"md.friction.C",FrictionCEnum);846 iomodel->FetchDataToInput( elements,"md.friction.m",FrictionMEnum);847 iomodel->FetchDataToInput( elements,"md.initialization.pressure",PressureEnum);848 iomodel->FetchDataToInput( elements,"md.initialization.temperature",TemperatureEnum);851 iomodel->FetchDataToInput(inputs2,elements,"md.friction.C",FrictionCEnum); 852 iomodel->FetchDataToInput(inputs2,elements,"md.friction.m",FrictionMEnum); 853 iomodel->FetchDataToInput(inputs2,elements,"md.initialization.pressure",PressureEnum); 854 iomodel->FetchDataToInput(inputs2,elements,"md.initialization.temperature",TemperatureEnum); 849 855 break; 850 856 case 7: 851 857 iomodel->FindConstant(&FrictionCoupling,"md.friction.coupling"); 852 iomodel->FetchDataToInput( elements,"md.friction.coefficient",FrictionCoefficientEnum);853 iomodel->FetchDataToInput( elements,"md.friction.coefficientcoulomb",FrictionCoefficientcoulombEnum);854 iomodel->FetchDataToInput( elements,"md.friction.p",FrictionPEnum);855 iomodel->FetchDataToInput( elements,"md.friction.q",FrictionQEnum);858 iomodel->FetchDataToInput(inputs2,elements,"md.friction.coefficient",FrictionCoefficientEnum); 859 iomodel->FetchDataToInput(inputs2,elements,"md.friction.coefficientcoulomb",FrictionCoefficientcoulombEnum); 860 iomodel->FetchDataToInput(inputs2,elements,"md.friction.p",FrictionPEnum); 861 iomodel->FetchDataToInput(inputs2,elements,"md.friction.q",FrictionQEnum); 856 862 if(FrictionCoupling==3){ 857 iomodel->FetchDataToInput( elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);}863 iomodel->FetchDataToInput(inputs2,elements,"md.friction.effective_pressure",FrictionEffectivePressureEnum);} 858 864 else if(FrictionCoupling==4){ 859 iomodel->FetchDataToInput( elements,"md.friction.effective_pressure",EffectivePressureEnum);865 iomodel->FetchDataToInput(inputs2,elements,"md.friction.effective_pressure",EffectivePressureEnum); 860 866 861 867 } 862 868 break; 863 869 case 9: 864 iomodel->FetchDataToInput( elements,"md.initialization.temperature",TemperatureEnum);865 iomodel->FetchDataToInput( elements,"md.friction.coefficient",FrictionCoefficientEnum);866 iomodel->FetchDataToInput( elements,"md.friction.pressure_adjusted_temperature",FrictionPressureAdjustedTemperatureEnum);867 InputUpdateFromConstantx( elements,1.,FrictionPEnum);868 InputUpdateFromConstantx( elements,1.,FrictionQEnum);870 iomodel->FetchDataToInput(inputs2,elements,"md.initialization.temperature",TemperatureEnum); 871 iomodel->FetchDataToInput(inputs2,elements,"md.friction.coefficient",FrictionCoefficientEnum); 872 iomodel->FetchDataToInput(inputs2,elements,"md.friction.pressure_adjusted_temperature",FrictionPressureAdjustedTemperatureEnum); 873 InputUpdateFromConstantx(inputs2,elements,1.,FrictionPEnum); 874 InputUpdateFromConstantx(inputs2,elements,1.,FrictionQEnum); 869 875 break; 870 876 case 10: 871 iomodel->FetchDataToInput( elements,"md.friction.till_friction_angle",FrictionTillFrictionAngleEnum);872 iomodel->FetchDataToInput( elements,"md.friction.sediment_compressibility_coefficient",FrictionSedimentCompressibilityCoefficientEnum);873 iomodel->FetchDataToInput( elements,"md.hydrology.watercolumn_max",HydrologyWatercolumnMaxEnum);874 iomodel->FetchDataToInput( elements,"md.initialization.watercolumn",WatercolumnEnum,0.);877 iomodel->FetchDataToInput(inputs2,elements,"md.friction.till_friction_angle",FrictionTillFrictionAngleEnum); 878 iomodel->FetchDataToInput(inputs2,elements,"md.friction.sediment_compressibility_coefficient",FrictionSedimentCompressibilityCoefficientEnum); 879 iomodel->FetchDataToInput(inputs2,elements,"md.hydrology.watercolumn_max",HydrologyWatercolumnMaxEnum); 880 iomodel->FetchDataToInput(inputs2,elements,"md.initialization.watercolumn",WatercolumnEnum,0.); 875 881 break; 876 882 case 11: 877 iomodel->FetchDataToInput( elements,"md.friction.m",FrictionMEnum);878 iomodel->FetchDataToInput( elements,"md.friction.C",FrictionCEnum);879 iomodel->FetchDataToInput( elements,"md.friction.Cmax",FrictionCmaxEnum);883 iomodel->FetchDataToInput(inputs2,elements,"md.friction.m",FrictionMEnum); 884 iomodel->FetchDataToInput(inputs2,elements,"md.friction.C",FrictionCEnum); 885 iomodel->FetchDataToInput(inputs2,elements,"md.friction.Cmax",FrictionCmaxEnum); 880 886 break; 881 887 case 12: 882 iomodel->FetchDataToInput( elements,"md.friction.m",FrictionMEnum);883 iomodel->FetchDataToInput( elements,"md.friction.C",FrictionCEnum);884 iomodel->FetchDataToInput( elements,"md.friction.f",FrictionfEnum);888 iomodel->FetchDataToInput(inputs2,elements,"md.friction.m",FrictionMEnum); 889 iomodel->FetchDataToInput(inputs2,elements,"md.friction.C",FrictionCEnum); 890 iomodel->FetchDataToInput(inputs2,elements,"md.friction.f",FrictionfEnum); 885 891 break; 886 892 default: … … 889 895 890 896 #ifdef _HAVE_ANDROID_ 891 elements->InputDuplicate(FrictionCoefficientEnum,AndroidFrictionCoefficientEnum);897 inputs2->DuplicateInput(FrictionCoefficientEnum,AndroidFrictionCoefficientEnum); 892 898 #endif 893 899 … … 1059 1065 1060 1066 int approximation; 1061 element->GetInput Value(&approximation,ApproximationEnum);1067 element->GetInput2Value(&approximation,ApproximationEnum); 1062 1068 switch(approximation){ 1063 1069 case FSApproximationEnum: … … 1072 1078 1073 1079 int approximation; 1074 element->GetInput Value(&approximation,ApproximationEnum);1080 element->GetInput2Value(&approximation,ApproximationEnum); 1075 1081 switch(approximation){ 1076 1082 case SSAApproximationEnum: … … 1088 1094 ElementMatrix* StressbalanceAnalysis::CreateKMatrix(Element* element){/*{{{*/ 1089 1095 int approximation; 1090 element->GetInput Value(&approximation,ApproximationEnum);1096 element->GetInput2Value(&approximation,ApproximationEnum); 1091 1097 switch(approximation){ 1092 1098 case SIAApproximationEnum: … … 1115 1121 1116 1122 int approximation; 1117 element->GetInput Value(&approximation,ApproximationEnum);1123 element->GetInput2Value(&approximation,ApproximationEnum); 1118 1124 switch(approximation){ 1119 1125 case SIAApproximationEnum: … … 1142 1148 1143 1149 int approximation; 1144 element->GetInput Value(&approximation,ApproximationEnum);1150 element->GetInput2Value(&approximation,ApproximationEnum); 1145 1151 switch(approximation){ 1146 1152 case FSApproximationEnum: case NoneApproximationEnum: … … 1178 1184 int numnodes = element->GetNumberOfNodes(); 1179 1185 int numdof = numnodes*dofpernode; 1180 element->GetInput Value(&approximation,ApproximationEnum);1186 element->GetInput2Value(&approximation,ApproximationEnum); 1181 1187 1182 1188 /*Fetch dof list and allocate solution vector*/ … … 1185 1191 1186 1192 /*Get inputs*/ 1187 Input * vx_input=element->GetInput(VxEnum); _assert_(vx_input);1188 Input * vy_input=NULL;1189 if(domaintype!=Domain2DverticalEnum){vy_input=element->GetInput (VyEnum); _assert_(vy_input);}1193 Input2* vx_input=element->GetInput2(VxEnum); _assert_(vx_input); 1194 Input2* vy_input=NULL; 1195 if(domaintype!=Domain2DverticalEnum){vy_input=element->GetInput2(VyEnum); _assert_(vy_input);} 1190 1196 1191 1197 /*Ok, we have vx and vy in values, fill in vx and vy arrays: */ … … 1216 1222 1217 1223 int approximation; 1218 element->GetInput Value(&approximation,ApproximationEnum);1224 element->GetInput2Value(&approximation,ApproximationEnum); 1219 1225 switch(approximation){ 1220 1226 case FSApproximationEnum: case NoneApproximationEnum: … … 1287 1293 /*Retrieve all inputs and parameters*/ 1288 1294 element->GetVerticesCoordinates(&xyz_list); 1289 Input * thickness_input = basalelement->GetInput(ThicknessEnum);_assert_(thickness_input);1290 Input * vx_input = basalelement->GetInput(VxEnum); _assert_(vx_input);1291 Input * vy_input = basalelement->GetInput(VyEnum); _assert_(vy_input);1295 Input2* thickness_input = basalelement->GetInput2(ThicknessEnum);_assert_(thickness_input); 1296 Input2* vx_input = basalelement->GetInput2(VxEnum); _assert_(vx_input); 1297 Input2* vy_input = basalelement->GetInput2(VyEnum); _assert_(vy_input); 1292 1298 1293 1299 /* Start looping on the number of gaussian points: */ … … 1406 1412 element->GetVerticesCoordinates(&xyz_list); 1407 1413 element->FindParam(&friction_style,GroundinglineFrictionInterpolationEnum); 1408 Input * surface_input = element->GetInput(SurfaceEnum); _assert_(surface_input);1409 Input * gllevelset_input = NULL;1414 Input2* surface_input = element->GetInput2(SurfaceEnum); _assert_(surface_input); 1415 Input2* gllevelset_input = NULL; 1410 1416 1411 1417 /*build friction object, used later on: */ … … 1415 1421 if(!(friction_style==SubelementFriction2Enum)) phi=element->GetGroundedPortion(xyz_list); 1416 1422 if(friction_style==SubelementFriction2Enum){ 1417 gllevelset_input=element->GetInput (MaskGroundediceLevelsetEnum); _assert_(gllevelset_input);1423 gllevelset_input=element->GetInput2(MaskGroundediceLevelsetEnum); _assert_(gllevelset_input); 1418 1424 element->GetGroundedPart(&point1,&fraction1,&fraction2,&mainlyfloating); 1419 1425 gauss = element->NewGauss(point1,fraction1,fraction2,mainlyfloating,2); … … 1501 1507 element->GetVerticesCoordinates(&xyz_list); 1502 1508 element->GetLevelCoordinates(&xyz_list_boundary,xyz_list,MeshVertexonboundaryEnum,1.); 1503 Input * icelevelset_input = element->GetInput(MaskIceLevelsetEnum); _assert_(icelevelset_input);1509 Input2* icelevelset_input = element->GetInput2(MaskIceLevelsetEnum); _assert_(icelevelset_input); 1504 1510 1505 1511 /* Start looping on the number of gaussian points: */ … … 1563 1569 /*Retrieve all inputs and parameters*/ 1564 1570 element->GetVerticesCoordinates(&xyz_list); 1565 Input * thickness_input=element->GetInput(ThicknessEnum); _assert_(thickness_input);1566 Input * vx_input=element->GetInput(VxEnum); _assert_(vx_input);1567 Input * vy_input = NULL;1571 Input2* thickness_input=element->GetInput2(ThicknessEnum); _assert_(thickness_input); 1572 Input2* vx_input=element->GetInput2(VxEnum); _assert_(vx_input); 1573 Input2* vy_input = NULL; 1568 1574 if(dim==2){ 1569 vy_input = element->GetInput (VyEnum); _assert_(vy_input);1575 vy_input = element->GetInput2(VyEnum); _assert_(vy_input); 1570 1576 } 1571 1577 … … 1680 1686 /*Retrieve all inputs and parameters*/ 1681 1687 element->GetVerticesCoordinates(&xyz_list); 1682 Input * thickness_input=element->GetInput(ThicknessEnum); _assert_(thickness_input);1683 Input * surface_input =element->GetInput(SurfaceEnum); _assert_(surface_input);1688 Input2* thickness_input=element->GetInput2(ThicknessEnum); _assert_(thickness_input); 1689 Input2* surface_input =element->GetInput2(SurfaceEnum); _assert_(surface_input); 1684 1690 IssmDouble rhog = element->FindParam(MaterialsRhoIceEnum)*element->FindParam(ConstantsGEnum); 1685 1691 … … 1744 1750 1745 1751 /*Retrieve all inputs and parameters*/ 1746 Input * thickness_input = element->GetInput(ThicknessEnum); _assert_(thickness_input);1747 Input * base_input = element->GetInput(BaseEnum); _assert_(base_input);1748 Input * sealevel_input = element->GetInput(SealevelEnum); _assert_(sealevel_input);1752 Input2* thickness_input = element->GetInput2(ThicknessEnum); _assert_(thickness_input); 1753 Input2* base_input = element->GetInput2(BaseEnum); _assert_(base_input); 1754 Input2* sealevel_input = element->GetInput2(SealevelEnum); _assert_(sealevel_input); 1749 1755 IssmDouble rho_water = element->FindParam(MaterialsRhoSeawaterEnum); 1750 1756 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); … … 1941 1947 default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet"); 1942 1948 } 1943 element->AddInput (PressureEnum,pressure,P1Enum);1949 element->AddInput2(PressureEnum,pressure,P1Enum); 1944 1950 xDelete<IssmDouble>(pressure); 1945 1951 xDelete<IssmDouble>(thickness); … … 1964 1970 /*Fetch dof list and allocate solution vectors*/ 1965 1971 basalelement->GetDofListLocal(&doflist,SSAApproximationEnum,GsetEnum); 1966 IssmDouble* values 1967 IssmDouble* vx 1968 IssmDouble* vy 1969 IssmDouble* vz 1970 IssmDouble* vel 1972 IssmDouble* values = xNew<IssmDouble>(numdof); 1973 IssmDouble* vx = xNew<IssmDouble>(numnodes); 1974 IssmDouble* vy = xNew<IssmDouble>(numnodes); 1975 IssmDouble* vz = xNew<IssmDouble>(numnodes); 1976 IssmDouble* vel = xNew<IssmDouble>(numnodes); 1971 1977 1972 1978 /*Use the dof list to index into the solution vector: */ … … 2000 2006 2001 2007 /*Add vx and vy as inputs to the tria element: */ 2002 element->AddBasalInput (VxEnum,vx,element->GetElementType());2003 if(dim==2)element->AddBasalInput (VyEnum,vy,element->GetElementType());2004 element->AddBasalInput (VelEnum,vel,element->GetElementType());2008 element->AddBasalInput2(VxEnum,vx,element->GetElementType()); 2009 if(dim==2)element->AddBasalInput2(VyEnum,vy,element->GetElementType()); 2010 element->AddBasalInput2(VelEnum,vel,element->GetElementType()); 2005 2011 2006 2012 /*Free ressources:*/ … … 2062 2068 /*Retrieve all inputs and parameters*/ 2063 2069 element->GetVerticesCoordinates(&xyz_list); 2064 Input * surface_input = element->GetInput(SurfaceEnum); _assert_(surface_input);2065 Input * vx_input = element->GetInput(VxEnum); _assert_(vx_input);2066 Input * vy_input = element->GetInput(VyEnum); _assert_(vy_input);2070 Input2* surface_input = element->GetInput2(SurfaceEnum); _assert_(surface_input); 2071 Input2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input); 2072 Input2* vy_input = element->GetInput2(VyEnum); _assert_(vy_input); 2067 2073 2068 2074 /* Start looping on the number of gaussian points: */ … … 2149 2155 /*Retrieve all inputs and parameters*/ 2150 2156 element->GetVerticesCoordinates(&xyz_list); 2151 Input * thickness_input=element->GetInput(ThicknessEnum); _assert_(thickness_input);2152 Input * surface_input =element->GetInput(SurfaceEnum); _assert_(surface_input);2157 Input2* thickness_input=element->GetInput2(ThicknessEnum); _assert_(thickness_input); 2158 Input2* surface_input =element->GetInput2(SurfaceEnum); _assert_(surface_input); 2153 2159 IssmDouble rhog = element->FindParam(MaterialsRhoIceEnum)*element->FindParam(ConstantsGEnum); 2154 2160 … … 2200 2206 2201 2207 /*Retrieve all inputs and parameters*/ 2202 Input * thickness_input = element->GetInput(ThicknessEnum); _assert_(thickness_input);2203 Input * base_input = element->GetInput(BaseEnum); _assert_(base_input);2204 Input * sealevel_input = element->GetInput(SealevelEnum); _assert_(sealevel_input);2208 Input2* thickness_input = element->GetInput2(ThicknessEnum); _assert_(thickness_input); 2209 Input2* base_input = element->GetInput2(BaseEnum); _assert_(base_input); 2210 Input2* sealevel_input = element->GetInput2(SealevelEnum); _assert_(sealevel_input); 2205 2211 IssmDouble rho_water = element->FindParam(MaterialsRhoSeawaterEnum); 2206 2212 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); … … 2270 2276 for(i=0;i<numvertices;i++) pressure[i]=rho_ice*g*(surface[i]-xyz_list[i*3+2]); 2271 2277 } 2272 element->AddInput (PressureEnum,pressure,P1Enum);2278 element->AddInput2(PressureEnum,pressure,P1Enum); 2273 2279 xDelete<IssmDouble>(pressure); 2274 2280 xDelete<IssmDouble>(thickness); … … 2323 2329 2324 2330 /*Add vx and vy as inputs to the tria element: */ 2325 element->AddBasalInput (VxEnum,vx,element->GetElementType());2326 element->AddBasalInput (VyEnum,vy,element->GetElementType());2327 element->AddBasalInput (VelEnum,vel,element->GetElementType());2331 element->AddBasalInput2(VxEnum,vx,element->GetElementType()); 2332 element->AddBasalInput2(VyEnum,vy,element->GetElementType()); 2333 element->AddBasalInput2(VelEnum,vel,element->GetElementType()); 2328 2334 2329 2335 /*Free ressources:*/ … … 2359 2365 /*Retrieve all inputs and parameters*/ 2360 2366 element->GetVerticesCoordinates(&xyz_list); 2361 Input * vx_input = element->GetInput(VxEnum); _assert_(vx_input);2362 Input * vy_input = element->GetInput(VyEnum); _assert_(vy_input);2367 Input2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input); 2368 Input2* vy_input = element->GetInput2(VyEnum); _assert_(vy_input); 2363 2369 2364 2370 /* Start looping on the number of gaussian points: */ … … 2445 2451 element->GetVerticesCoordinatesBase(&xyz_list_base); 2446 2452 element->FindParam(&friction_style,GroundinglineFrictionInterpolationEnum); 2447 Input * gllevelset_input = NULL;2453 Input2* gllevelset_input = NULL; 2448 2454 2449 2455 /*build friction object, used later on: */ … … 2453 2459 if(!(friction_style==SubelementFriction2Enum)) phi=element->GetGroundedPortion(xyz_list_base); 2454 2460 if(friction_style==SubelementFriction2Enum){ 2455 gllevelset_input=element->GetInput (MaskGroundediceLevelsetEnum); _assert_(gllevelset_input);2461 gllevelset_input=element->GetInput2(MaskGroundediceLevelsetEnum); _assert_(gllevelset_input); 2456 2462 element->GetGroundedPart(&point1,&fraction1,&fraction2,&mainlyfloating); 2457 2463 gauss = element->NewGauss(point1,fraction1,fraction2,mainlyfloating,2); … … 2513 2519 /*Intermediaries*/ 2514 2520 int dim,bsize; 2515 IssmDouble viscosity, thickness,Jdet;2521 IssmDouble viscosity,Jdet; 2516 2522 IssmDouble *xyz_list = NULL; 2517 2523 … … 2529 2535 /*Retrieve all inputs and parameters*/ 2530 2536 element->GetVerticesCoordinates(&xyz_list); 2531 Input * vx_input = element->GetInput(VxEnum); _assert_(vx_input);2532 Input * vy_input = NULL;2537 Input2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input); 2538 Input2* vy_input = NULL; 2533 2539 if(dim==3){ 2534 vy_input=element->GetInput (VyEnum); _assert_(vy_input);2540 vy_input=element->GetInput2(VyEnum); _assert_(vy_input); 2535 2541 } 2536 2542 … … 2677 2683 /*Retrieve all inputs and parameters*/ 2678 2684 element->GetVerticesCoordinates(&xyz_list); 2679 Input * surface_input = element->GetInput(SurfaceEnum); _assert_(surface_input);2685 Input2* surface_input = element->GetInput2(SurfaceEnum); _assert_(surface_input); 2680 2686 IssmDouble rhog = element->FindParam(MaterialsRhoIceEnum)*element->FindParam(ConstantsGEnum); 2681 2687 … … 2733 2739 2734 2740 /*Retrieve all inputs and parameters*/ 2735 Input * surface_input = element->GetInput(SurfaceEnum); _assert_(surface_input);2736 Input * sealevel_input = element->GetInput(SealevelEnum); _assert_(sealevel_input);2741 Input2* surface_input = element->GetInput2(SurfaceEnum); _assert_(surface_input); 2742 Input2* sealevel_input = element->GetInput2(SealevelEnum); _assert_(sealevel_input); 2737 2743 IssmDouble rho_water = element->FindParam(MaterialsRhoSeawaterEnum); 2738 2744 IssmDouble rho_ice = element->FindParam(MaterialsRhoIceEnum); … … 2938 2944 default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet"); 2939 2945 } 2940 element->AddInput (PressureEnum,pressure,P1Enum);2946 element->AddInput2(PressureEnum,pressure,P1Enum); 2941 2947 xDelete<IssmDouble>(pressure); 2942 2948 xDelete<IssmDouble>(surface); … … 2983 2989 2984 2990 /*Add vx and vy as inputs to the element: */ 2985 element->AddInput (VxEnum,vx,element->GetElementType());2986 if(dim==3)element->AddInput (VyEnum,vy,element->GetElementType());2987 element->AddInput (VelEnum,vel,element->GetElementType());2991 element->AddInput2(VxEnum,vx,element->GetElementType()); 2992 if(dim==3)element->AddInput2(VyEnum,vy,element->GetElementType()); 2993 element->AddInput2(VelEnum,vel,element->GetElementType()); 2988 2994 2989 2995 /*Free ressources:*/ … … 3051 3057 /*Retrieve all inputs and parameters*/ 3052 3058 element->GetVerticesCoordinates(&xyz_list); 3053 Input * vx_input = element->GetInput(VxEnum); _assert_(vx_input);3054 Input * vy_input = element->GetInput(VyEnum); _assert_(vy_input);3055 Input * vz_input = element->GetInput(VzEnum); _assert_(vz_input);3059 Input2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input); 3060 Input2* vy_input = element->GetInput2(VyEnum); _assert_(vy_input); 3061 Input2* vz_input = element->GetInput2(VzEnum); _assert_(vz_input); 3056 3062 3057 3063 /* Start looping on the number of gaussian points: */ … … 3141 3147 /*If on not water or not FS, skip stiffness: */ 3142 3148 int approximation,shelf_dampening; 3143 element->GetInput Value(&approximation,ApproximationEnum);3149 element->GetInput2Value(&approximation,ApproximationEnum); 3144 3150 if(approximation!=FSApproximationEnum && approximation!=SSAFSApproximationEnum && approximation!=HOFSApproximationEnum) return NULL; 3145 3151 element->FindParam(&shelf_dampening,StressbalanceShelfDampeningEnum); … … 3174 3180 IssmDouble rho_water = element->FindParam(MaterialsRhoSeawaterEnum); 3175 3181 IssmDouble gravity = element->FindParam(ConstantsGEnum); 3176 Input * base_input = element->GetInput(BaseEnum); _assert_(base_input);3182 Input2* base_input = element->GetInput2(BaseEnum); _assert_(base_input); 3177 3183 3178 3184 /* Start looping on the number of gaussian points: */ … … 3232 3238 element->GetVerticesCoordinates(&xyz_list); 3233 3239 element->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum); 3234 Input * vx_input=element->GetInput(VxEnum); _assert_(vx_input);3235 Input * vy_input=element->GetInput(VyEnum); _assert_(vy_input);3236 Input * vz_input = NULL;3237 if(dim==3){vz_input=element->GetInput (VzEnum); _assert_(vz_input);}3240 Input2* vx_input=element->GetInput2(VxEnum); _assert_(vx_input); 3241 Input2* vy_input=element->GetInput2(VyEnum); _assert_(vy_input); 3242 Input2* vz_input = NULL; 3243 if(dim==3){vz_input=element->GetInput2(VzEnum); _assert_(vz_input);} 3238 3244 3239 3245 /* Start looping on the number of gaussian points: */ … … 3382 3388 element->GetVerticesCoordinates(&xyz_list); 3383 3389 //element->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum); 3384 Input * vx_input=element->GetInput(VxEnum); _assert_(vx_input);3385 Input * vy_input=element->GetInput(VyEnum); _assert_(vy_input);3386 Input * vz_input = NULL;3387 if(dim==3){vz_input=element->GetInput (VzEnum); _assert_(vz_input);}3390 Input2* vx_input=element->GetInput2(VxEnum); _assert_(vx_input); 3391 Input2* vy_input=element->GetInput2(VyEnum); _assert_(vy_input); 3392 Input2* vz_input = NULL; 3393 if(dim==3){vz_input=element->GetInput2(VzEnum); _assert_(vz_input);} 3388 3394 3389 3395 … … 3456 3462 /*Retrieve all inputs and parameters*/ 3457 3463 element->GetVerticesCoordinates(&xyz_list); 3458 Input * vx_input = element->GetInput(VxEnum); _assert_(vx_input);3459 Input * vy_input = element->GetInput(VyEnum); _assert_(vy_input);3460 Input * vz_input = NULL;3461 if(dim==3){vz_input = element->GetInput (VzEnum); _assert_(vz_input);}3464 Input2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input); 3465 Input2* vy_input = element->GetInput2(VyEnum); _assert_(vy_input); 3466 Input2* vz_input = NULL; 3467 if(dim==3){vz_input = element->GetInput2(VzEnum); _assert_(vz_input);} 3462 3468 3463 3469 /* Start looping on the number of gaussian points: */ … … 3581 3587 element->GetVerticesCoordinates(&xyz_list); 3582 3588 element->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum); 3583 Input * vx_input=element->GetInput(VxEnum); _assert_(vx_input);3584 Input * vy_input=element->GetInput(VyEnum); _assert_(vy_input);3585 Input * vz_input;3586 if(dim==3){vz_input=element->GetInput (VzEnum); _assert_(vz_input);}3589 Input2* vx_input=element->GetInput2(VxEnum); _assert_(vx_input); 3590 Input2* vy_input=element->GetInput2(VyEnum); _assert_(vy_input); 3591 Input2* vz_input; 3592 if(dim==3){vz_input=element->GetInput2(VzEnum); _assert_(vz_input);} 3587 3593 3588 3594 /* Start looping on the number of gaussian points: */ … … 3623 3629 /*If on water or not FS, skip stiffness: */ 3624 3630 int approximation; 3625 element->GetInput Value(&approximation,ApproximationEnum);3631 element->GetInput2Value(&approximation,ApproximationEnum); 3626 3632 if(approximation!=FSApproximationEnum && approximation!=SSAFSApproximationEnum && approximation!=HOFSApproximationEnum) return NULL; 3627 3633 … … 3650 3656 element->GetVerticesCoordinatesBase(&xyz_list_base); 3651 3657 element->GetVerticesCoordinates(&xyz_list); 3652 Input * vx_input = element->GetInput(VxEnum); _assert_(vx_input);3653 Input * vy_input = element->GetInput(VyEnum); _assert_(vy_input);3654 Input * vz_input = NULL;3655 if(dim==3){ vz_input = element->GetInput (VzEnum); _assert_(vz_input);}3658 Input2* vx_input = element->GetInput2(VxEnum); _assert_(vx_input); 3659 Input2* vy_input = element->GetInput2(VyEnum); _assert_(vy_input); 3660 Input2* vz_input = NULL; 3661 if(dim==3){ vz_input = element->GetInput2(VzEnum); _assert_(vz_input);} 3656 3662 3657 3663 /* Start looping on the number of gaussian points: */ … … 3728 3734 /*Retrieve all inputs and parameters*/ 3729 3735 element->GetVerticesCoordinatesBase(&xyz_list_base); 3730 Input * alpha2_input=element->GetInput(FrictionCoefficientEnum); _assert_(alpha2_input);3736 Input2* alpha2_input=element->GetInput2(FrictionCoefficientEnum); _assert_(alpha2_input); 3731 3737 3732 3738 /* Start looping on the number of gaussian points: */ … … 3782 3788 /*Retrieve all inputs and parameters*/ 3783 3789 element->GetVerticesCoordinatesBase(&xyz_list_base); 3784 Input * sigmann_input=element->GetInput(VzEnum); _assert_(sigmann_input);3785 Input * sigmant_input=element->GetInput(TemperatureEnum); _assert_(sigmant_input);3786 Input * bedslope_input=element->GetInput(BedSlopeXEnum); _assert_(bedslope_input);3790 Input2* sigmann_input=element->GetInput2(VzEnum); _assert_(sigmann_input); 3791 Input2* sigmant_input=element->GetInput2(TemperatureEnum); _assert_(sigmant_input); 3792 Input2* bedslope_input=element->GetInput2(BedSlopeXEnum); _assert_(bedslope_input); 3787 3793 3788 3794 /* Start looping on the number of gaussian points: */ … … 3899 3905 /*If on water or not FS, skip stiffness: */ 3900 3906 int approximation; 3901 element->GetInput Value(&approximation,ApproximationEnum);3907 element->GetInput2Value(&approximation,ApproximationEnum); 3902 3908 if(approximation!=FSApproximationEnum && approximation!=SSAFSApproximationEnum && approximation!=HOFSApproximationEnum) return NULL; 3903 3909 … … 3927 3933 element->GetVerticesCoordinatesBase(&xyz_list_base); 3928 3934 element->FindParam(&friction_style,GroundinglineFrictionInterpolationEnum); 3929 Input * gllevelset_input = NULL;3935 Input2* gllevelset_input = NULL; 3930 3936 3931 3937 /*build friction object, used later on: */ … … 3936 3942 if(friction_style==SubelementFriction2Enum){ 3937 3943 if(domaintype==Domain2DverticalEnum) _error_("Subelement Friction 2 not implemented yet for Flowline"); 3938 gllevelset_input=element->GetInput (MaskGroundediceLevelsetEnum); _assert_(gllevelset_input);3944 gllevelset_input=element->GetInput2(MaskGroundediceLevelsetEnum); _assert_(gllevelset_input); 3939 3945 element->GetGroundedPart(&point1,&fraction1,&fraction2,&mainlyfloating); 3940 3946 //gauss = element->NewGauss(point1,fraction1,fraction2,mainlyfloating,2); … … 4068 4074 IssmDouble rho_ice =element->FindParam(MaterialsRhoIceEnum); 4069 4075 IssmDouble gravity =element->FindParam(ConstantsGEnum); 4070 Input * loadingforcex_input=element->GetInput(LoadingforceXEnum); _assert_(loadingforcex_input);4071 Input * loadingforcey_input=element->GetInput(LoadingforceYEnum); _assert_(loadingforcey_input);4072 Input * loadingforcez_input=NULL;4076 Input2* loadingforcex_input=element->GetInput2(LoadingforceXEnum); _assert_(loadingforcex_input); 4077 Input2* loadingforcey_input=element->GetInput2(LoadingforceYEnum); _assert_(loadingforcey_input); 4078 Input2* loadingforcez_input=NULL; 4073 4079 if(dim==3){ 4074 loadingforcez_input=element->GetInput (LoadingforceZEnum); _assert_(loadingforcez_input);4080 loadingforcez_input=element->GetInput2(LoadingforceZEnum); _assert_(loadingforcez_input); 4075 4081 } 4076 4082 … … 4146 4152 element->GetIcefrontCoordinates(&xyz_list_front,xyz_list,MaskIceLevelsetEnum); 4147 4153 element->NormalSection(&normal[0],xyz_list_front); 4148 Input * surface_input = element->GetInput(SurfaceEnum); _assert_(surface_input);4149 Input * sealevel_input = element->GetInput(SealevelEnum); _assert_(sealevel_input);4154 Input2* surface_input = element->GetInput2(SurfaceEnum); _assert_(surface_input); 4155 Input2* sealevel_input = element->GetInput2(SealevelEnum); _assert_(sealevel_input); 4150 4156 IssmDouble rho_water = element->FindParam(MaterialsRhoSeawaterEnum); 4151 4157 IssmDouble gravity = element->FindParam(ConstantsGEnum); … … 4215 4221 /*Retrieve all inputs and parameters*/ 4216 4222 element->GetVerticesCoordinatesBase(&xyz_list_base); 4217 Input * base_input=element->GetInput(BaseEnum); _assert_(base_input);4223 Input2* base_input=element->GetInput2(BaseEnum); _assert_(base_input); 4218 4224 IssmDouble rho_water=element->FindParam(MaterialsRhoSeawaterEnum); 4219 4225 IssmDouble gravity =element->FindParam(ConstantsGEnum); … … 4239 4245 element->FindParam(&shelf_dampening,StressbalanceShelfDampeningEnum); 4240 4246 if(shelf_dampening) { 4241 Input * mb_input=element->GetInput(BasalforcingsFloatingiceMeltingRateEnum); _assert_(mb_input);4247 Input2* mb_input=element->GetInput2(BasalforcingsFloatingiceMeltingRateEnum); _assert_(mb_input); 4242 4248 IssmDouble dt,mb; 4243 4249 element->FindParam(&dt,TimesteppingTimeStepEnum); … … 4290 4296 4291 4297 /*Get pressure and sigmann*/ 4292 Input * pressure_input=element->GetInput(PressureEnum); _assert_(pressure_input);4293 Input * sigmann_input =element->GetInput(SigmaNNEnum); _assert_(sigmann_input);4298 Input2* pressure_input=element->GetInput2(PressureEnum); _assert_(pressure_input); 4299 Input2* sigmann_input =element->GetInput2(SigmaNNEnum); _assert_(sigmann_input); 4294 4300 4295 4301 gauss=element->NewGauss(5); … … 4383 4389 4384 4390 /*Get d and tau*/ 4385 Input * epsxx_input=element->GetInput(StrainRatexxEnum); _assert_(epsxx_input);4386 Input * epsyy_input=element->GetInput(StrainRateyyEnum); _assert_(epsyy_input);4387 Input * epsxy_input=element->GetInput(StrainRatexyEnum); _assert_(epsxy_input);4388 Input * epszz_input=NULL; Input* epsxz_input=NULL; Input* epsyz_input=NULL;4389 Input * sigmapxx_input=element->GetInput(DeviatoricStressxxEnum); _assert_(sigmapxx_input);4390 Input * sigmapyy_input=element->GetInput(DeviatoricStressyyEnum); _assert_(sigmapyy_input);4391 Input * sigmapxy_input=element->GetInput(DeviatoricStressxyEnum); _assert_(sigmapxy_input);4392 Input * sigmapzz_input=NULL; Input* sigmapxz_input=NULL; Input* sigmapyz_input=NULL;4391 Input2* epsxx_input=element->GetInput2(StrainRatexxEnum); _assert_(epsxx_input); 4392 Input2* epsyy_input=element->GetInput2(StrainRateyyEnum); _assert_(epsyy_input); 4393 Input2* epsxy_input=element->GetInput2(StrainRatexyEnum); _assert_(epsxy_input); 4394 Input2* epszz_input=NULL; Input2* epsxz_input=NULL; Input2* epsyz_input=NULL; 4395 Input2* sigmapxx_input=element->GetInput2(DeviatoricStressxxEnum); _assert_(sigmapxx_input); 4396 Input2* sigmapyy_input=element->GetInput2(DeviatoricStressyyEnum); _assert_(sigmapyy_input); 4397 Input2* sigmapxy_input=element->GetInput2(DeviatoricStressxyEnum); _assert_(sigmapxy_input); 4398 Input2* sigmapzz_input=NULL; Input2* sigmapxz_input=NULL; Input2* sigmapyz_input=NULL; 4393 4399 if(dim==3){ 4394 epszz_input=element->GetInput (StrainRatezzEnum); _assert_(epszz_input);4395 epsxz_input=element->GetInput (StrainRatexzEnum); _assert_(epsxz_input);4396 epsyz_input=element->GetInput (StrainRateyzEnum); _assert_(epsyz_input);4397 sigmapzz_input=element->GetInput (DeviatoricStresszzEnum); _assert_(sigmapzz_input);4398 sigmapxz_input=element->GetInput (DeviatoricStressxzEnum); _assert_(sigmapxz_input);4399 sigmapyz_input=element->GetInput (DeviatoricStressyzEnum); _assert_(sigmapyz_input);4400 epszz_input=element->GetInput2(StrainRatezzEnum); _assert_(epszz_input); 4401 epsxz_input=element->GetInput2(StrainRatexzEnum); _assert_(epsxz_input); 4402 epsyz_input=element->GetInput2(StrainRateyzEnum); _assert_(epsyz_input); 4403 sigmapzz_input=element->GetInput2(DeviatoricStresszzEnum); _assert_(sigmapzz_input); 4404 sigmapxz_input=element->GetInput2(DeviatoricStressxzEnum); _assert_(sigmapxz_input); 4405 sigmapyz_input=element->GetInput2(DeviatoricStressyzEnum); _assert_(sigmapyz_input); 4400 4406 } 4401 4407 … … 5059 5065 int* vdoflist=NULL; 5060 5066 int* pdoflist=NULL; 5061 Input * vz_input=NULL;5067 Input2* vz_input=NULL; 5062 5068 int dim; 5063 5069 IssmDouble vx,vy,vz,p; … … 5081 5087 element->GetDofListVelocity(&vdoflist,GsetEnum); 5082 5088 element->GetDofListPressure(&pdoflist,GsetEnum); 5083 Input * vx_input=element->GetInput(VxEnum); _assert_(vx_input);5084 Input * vy_input=element->GetInput(VyEnum); _assert_(vy_input);5085 if(dim==3){vz_input=element->GetInput (VzEnum); _assert_(vz_input);}5086 Input * p_input =element->GetInput(PressureEnum); _assert_(p_input);5089 Input2* vx_input=element->GetInput2(VxEnum); _assert_(vx_input); 5090 Input2* vy_input=element->GetInput2(VyEnum); _assert_(vy_input); 5091 if(dim==3){vz_input=element->GetInput2(VzEnum); _assert_(vz_input);} 5092 Input2* p_input =element->GetInput2(PressureEnum); _assert_(p_input); 5087 5093 5088 5094 element->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum); … … 5142 5148 /*Get inputs and parameters*/ 5143 5149 element->GetVerticesCoordinates(&xyz_list); 5144 Input * vx_input=element->GetInput(VxEnum); _assert_(vx_input);5145 Input * vy_input=element->GetInput(VyEnum); _assert_(vy_input);5146 Input * vz_input;5147 if(dim==3){vz_input=element->GetInput (VzEnum); _assert_(vz_input);}5150 Input2* vx_input=element->GetInput2(VxEnum); _assert_(vx_input); 5151 Input2* vy_input=element->GetInput2(VyEnum); _assert_(vy_input); 5152 Input2* vz_input; 5153 if(dim==3){vz_input=element->GetInput2(VzEnum); _assert_(vz_input);} 5148 5154 5149 5155 /*Allocate new inputs*/ … … 5184 5190 5185 5191 /*Add inputs*/ 5186 element->AddInput (StrainRatexxEnum,epsxx,P1DGEnum); element->AddInput(DeviatoricStressxxEnum,sigmapxx,P1DGEnum);5187 element->AddInput (StrainRateyyEnum,epsyy,P1DGEnum); element->AddInput(DeviatoricStressyyEnum,sigmapyy,P1DGEnum);5188 element->AddInput (StrainRatexyEnum,epsxy,P1DGEnum); element->AddInput(DeviatoricStressxyEnum,sigmapxy,P1DGEnum);5192 element->AddInput2(StrainRatexxEnum,epsxx,P1DGEnum); element->AddInput2(DeviatoricStressxxEnum,sigmapxx,P1DGEnum); 5193 element->AddInput2(StrainRateyyEnum,epsyy,P1DGEnum); element->AddInput2(DeviatoricStressyyEnum,sigmapyy,P1DGEnum); 5194 element->AddInput2(StrainRatexyEnum,epsxy,P1DGEnum); element->AddInput2(DeviatoricStressxyEnum,sigmapxy,P1DGEnum); 5189 5195 if(dim==3){ 5190 element->AddInput (StrainRatezzEnum,epszz,P1DGEnum); element->AddInput(DeviatoricStresszzEnum,sigmapzz,P1DGEnum);5191 element->AddInput (StrainRatexzEnum,epsxz,P1DGEnum); element->AddInput(DeviatoricStressxzEnum,sigmapxz,P1DGEnum);5192 element->AddInput (StrainRateyzEnum,epsyz,P1DGEnum); element->AddInput(DeviatoricStressyzEnum,sigmapyz,P1DGEnum);5196 element->AddInput2(StrainRatezzEnum,epszz,P1DGEnum); element->AddInput2(DeviatoricStresszzEnum,sigmapzz,P1DGEnum); 5197 element->AddInput2(StrainRatexzEnum,epsxz,P1DGEnum); element->AddInput2(DeviatoricStressxzEnum,sigmapxz,P1DGEnum); 5198 element->AddInput2(StrainRateyzEnum,epsyz,P1DGEnum); element->AddInput2(DeviatoricStressyzEnum,sigmapyz,P1DGEnum); 5193 5199 } 5194 5200 … … 5273 5279 5274 5280 /*Add vx and vy as inputs to the tria element: */ 5275 int fe_v =element->VelocityInterpolation();5276 //if(fe_v == P1bubblecondensedEnum) fe_v =P1Enum;5277 //if(fe_v == P1bubbleEnum) fe_v= P1Enum;5278 element->AddInput (VxEnum, vx, fe_v);5279 element->AddInput (VyEnum, vy, fe_v);5280 element->AddInput (VelEnum,vel,fe_v);5281 if(pnumdof>0) element->AddInput (PressureEnum,pressure,element->PressureInterpolation());5282 if(dim==3) element->AddInput (VzEnum,vz, fe_v);5281 int v_interp = element->VelocityInterpolation(); 5282 if(v_interp==P1bubbleEnum) v_interp=P1Enum; 5283 if(v_interp == P1bubblecondensedEnum) v_interp = P1Enum; 5284 element->AddInput2(VxEnum, vx, v_interp); 5285 element->AddInput2(VyEnum, vy, v_interp); 5286 element->AddInput2(VelEnum,vel,v_interp); 5287 if(pnumdof>0) element->AddInput2(PressureEnum,pressure,element->PressureInterpolation()); 5288 if(dim==3) element->AddInput2(VzEnum,vz,v_interp); 5283 5289 5284 5290 /*Free ressources:*/ … … 5314 5320 /*Get inputs and parameters*/ 5315 5321 element->GetVerticesCoordinates(&xyz_list); 5316 Input * B_input=element->GetInput(MaterialsRheologyBEnum); _assert_(B_input);5317 Input * n_input=element->GetInput(MaterialsRheologyNEnum); _assert_(n_input);5318 Input * vx_input=element->GetInput(VxEnum); _assert_(vx_input);5319 Input * vy_input=element->GetInput(VyEnum); _assert_(vy_input);5320 Input * vz_input;5321 if(dim==3){vz_input=element->GetInput (VzEnum); _assert_(vz_input);}5322 Input2* B_input=element->GetInput2(MaterialsRheologyBEnum); _assert_(B_input); 5323 Input2* n_input=element->GetInput2(MaterialsRheologyNEnum); _assert_(n_input); 5324 Input2* vx_input=element->GetInput2(VxEnum); _assert_(vx_input); 5325 Input2* vy_input=element->GetInput2(VyEnum); _assert_(vy_input); 5326 Input2* vz_input; 5327 if(dim==3){vz_input=element->GetInput2(VzEnum); _assert_(vz_input);} 5322 5328 5323 5329 /*Fetch number of nodes and dof for this finite element*/ … … 5338 5344 5339 5345 /*Get previous d*/ 5340 Input * epsxx_input=element->GetInput(StrainRatexxEnum); _assert_(epsxx_input);5341 Input * epsyy_input=element->GetInput(StrainRateyyEnum); _assert_(epsyy_input);5342 Input * epsxy_input=element->GetInput(StrainRatexyEnum); _assert_(epsxy_input);5343 Input * epszz_input=NULL; Input* epsxz_input=NULL; Input* epsyz_input=NULL;5346 Input2* epsxx_input=element->GetInput2(StrainRatexxEnum); _assert_(epsxx_input); 5347 Input2* epsyy_input=element->GetInput2(StrainRateyyEnum); _assert_(epsyy_input); 5348 Input2* epsxy_input=element->GetInput2(StrainRatexyEnum); _assert_(epsxy_input); 5349 Input2* epszz_input=NULL; Input2* epsxz_input=NULL; Input2* epsyz_input=NULL; 5344 5350 if(dim==3){ 5345 epszz_input=element->GetInput (StrainRatezzEnum); _assert_(epszz_input);5346 epsxz_input=element->GetInput (StrainRatexzEnum); _assert_(epsxz_input);5347 epsyz_input=element->GetInput (StrainRateyzEnum); _assert_(epsyz_input);5351 epszz_input=element->GetInput2(StrainRatezzEnum); _assert_(epszz_input); 5352 epsxz_input=element->GetInput2(StrainRatexzEnum); _assert_(epsxz_input); 5353 epsyz_input=element->GetInput2(StrainRateyzEnum); _assert_(epsyz_input); 5348 5354 } 5349 5355 5350 5356 /*Get tau*/ 5351 Input * sigmapxx_input=element->GetInput(DeviatoricStressxxEnum); _assert_(sigmapxx_input);5352 Input * sigmapyy_input=element->GetInput(DeviatoricStressyyEnum); _assert_(sigmapyy_input);5353 Input * sigmapxy_input=element->GetInput(DeviatoricStressxyEnum); _assert_(sigmapxy_input);5354 Input * sigmapzz_input=NULL; Input* sigmapxz_input=NULL; Input* sigmapyz_input=NULL;5357 Input2* sigmapxx_input=element->GetInput2(DeviatoricStressxxEnum); _assert_(sigmapxx_input); 5358 Input2* sigmapyy_input=element->GetInput2(DeviatoricStressyyEnum); _assert_(sigmapyy_input); 5359 Input2* sigmapxy_input=element->GetInput2(DeviatoricStressxyEnum); _assert_(sigmapxy_input); 5360 Input2* sigmapzz_input=NULL; Input2* sigmapxz_input=NULL; Input2* sigmapyz_input=NULL; 5355 5361 if(dim==3){ 5356 sigmapzz_input=element->GetInput (DeviatoricStresszzEnum); _assert_(sigmapzz_input);5357 sigmapxz_input=element->GetInput (DeviatoricStressxzEnum); _assert_(sigmapxz_input);5358 sigmapyz_input=element->GetInput (DeviatoricStressyzEnum); _assert_(sigmapyz_input);5362 sigmapzz_input=element->GetInput2(DeviatoricStresszzEnum); _assert_(sigmapzz_input); 5363 sigmapxz_input=element->GetInput2(DeviatoricStressxzEnum); _assert_(sigmapxz_input); 5364 sigmapyz_input=element->GetInput2(DeviatoricStressyzEnum); _assert_(sigmapyz_input); 5359 5365 } 5360 5366 … … 5470 5476 for(int i=0;i<3;i++) _assert_(!xIsNan<IssmDouble>(d_yy[i])); 5471 5477 for(int i=0;i<3;i++) _assert_(!xIsNan<IssmDouble>(d_xx[i])); 5472 element->AddInput (StrainRatexxEnum,d_xx,P1DGEnum);5473 element->AddInput (StrainRateyyEnum,d_yy,P1DGEnum);5474 element->AddInput (StrainRatexyEnum,d_xy,P1DGEnum);5478 element->AddInput2(StrainRatexxEnum,d_xx,P1DGEnum); 5479 element->AddInput2(StrainRateyyEnum,d_yy,P1DGEnum); 5480 element->AddInput2(StrainRatexyEnum,d_xy,P1DGEnum); 5475 5481 } 5476 5482 else{ … … 5485 5491 Matrix4x4Solve(&d_xz[0],Ke,pe_xz); 5486 5492 Matrix4x4Solve(&d_yz[0],Ke,pe_yz); 5487 element->AddInput (StrainRatexxEnum,d_xx,P1DGEnum);5488 element->AddInput (StrainRateyyEnum,d_yy,P1DGEnum);5489 element->AddInput (StrainRatexyEnum,d_xy,P1DGEnum);5490 element->AddInput (StrainRatezzEnum,d_zz,P1DGEnum);5491 element->AddInput (StrainRatexzEnum,d_xz,P1DGEnum);5492 element->AddInput (StrainRateyzEnum,d_yz,P1DGEnum);5493 element->AddInput2(StrainRatexxEnum,d_xx,P1DGEnum); 5494 element->AddInput2(StrainRateyyEnum,d_yy,P1DGEnum); 5495 element->AddInput2(StrainRatexyEnum,d_xy,P1DGEnum); 5496 element->AddInput2(StrainRatezzEnum,d_zz,P1DGEnum); 5497 element->AddInput2(StrainRatexzEnum,d_xz,P1DGEnum); 5498 element->AddInput2(StrainRateyzEnum,d_yz,P1DGEnum); 5493 5499 } 5494 5500 … … 5527 5533 /*Get inputs and parameters*/ 5528 5534 element->GetVerticesCoordinates(&xyz_list); 5529 Input * vx_input=element->GetInput(VxEnum); _assert_(vx_input);5530 Input * vy_input=element->GetInput(VyEnum); _assert_(vy_input);5531 Input * vz_input=NULL;5532 if(dim==3){vz_input=element->GetInput (VzEnum); _assert_(vz_input);}5535 Input2* vx_input=element->GetInput2(VxEnum); _assert_(vx_input); 5536 Input2* vy_input=element->GetInput2(VyEnum); _assert_(vy_input); 5537 Input2* vz_input=NULL; 5538 if(dim==3){vz_input=element->GetInput2(VzEnum); _assert_(vz_input);} 5533 5539 5534 5540 /*Get previous tau*/ 5535 Input * sigmapxx_input=element->GetInput(DeviatoricStressxxEnum); _assert_(sigmapxx_input);5536 Input * sigmapyy_input=element->GetInput(DeviatoricStressyyEnum); _assert_(sigmapyy_input);5537 Input * sigmapxy_input=element->GetInput(DeviatoricStressxyEnum); _assert_(sigmapxy_input);5538 Input * sigmapzz_input=NULL; Input* sigmapxz_input=NULL; Input* sigmapyz_input=NULL;5541 Input2* sigmapxx_input=element->GetInput2(DeviatoricStressxxEnum); _assert_(sigmapxx_input); 5542 Input2* sigmapyy_input=element->GetInput2(DeviatoricStressyyEnum); _assert_(sigmapyy_input); 5543 Input2* sigmapxy_input=element->GetInput2(DeviatoricStressxyEnum); _assert_(sigmapxy_input); 5544 Input2* sigmapzz_input=NULL; Input2* sigmapxz_input=NULL; Input2* sigmapyz_input=NULL; 5539 5545 if(dim==3){ 5540 sigmapzz_input=element->GetInput (DeviatoricStresszzEnum); _assert_(sigmapzz_input);5541 sigmapxz_input=element->GetInput (DeviatoricStressxzEnum); _assert_(sigmapxz_input);5542 sigmapyz_input=element->GetInput (DeviatoricStressyzEnum); _assert_(sigmapyz_input);5546 sigmapzz_input=element->GetInput2(DeviatoricStresszzEnum); _assert_(sigmapzz_input); 5547 sigmapxz_input=element->GetInput2(DeviatoricStressxzEnum); _assert_(sigmapxz_input); 5548 sigmapyz_input=element->GetInput2(DeviatoricStressyzEnum); _assert_(sigmapyz_input); 5543 5549 } 5544 5550 5545 5551 /*Get NEW d*/ 5546 Input * epsxx_input=element->GetInput(StrainRatexxEnum); _assert_(epsxx_input);5547 Input * epsyy_input=element->GetInput(StrainRateyyEnum); _assert_(epsyy_input);5548 Input * epsxy_input=element->GetInput(StrainRatexyEnum); _assert_(epsxy_input);5549 Input * epszz_input=NULL; Input* epsxz_input=NULL; Input* epsyz_input=NULL;5552 Input2* epsxx_input=element->GetInput2(StrainRatexxEnum); _assert_(epsxx_input); 5553 Input2* epsyy_input=element->GetInput2(StrainRateyyEnum); _assert_(epsyy_input); 5554 Input2* epsxy_input=element->GetInput2(StrainRatexyEnum); _assert_(epsxy_input); 5555 Input2* epszz_input=NULL; Input2* epsxz_input=NULL; Input2* epsyz_input=NULL; 5550 5556 if(dim==3){ 5551 epszz_input=element->GetInput (StrainRatezzEnum); _assert_(epszz_input);5552 epsxz_input=element->GetInput (StrainRatexzEnum); _assert_(epsxz_input);5553 epsyz_input=element->GetInput (StrainRateyzEnum); _assert_(epsyz_input);5557 epszz_input=element->GetInput2(StrainRatezzEnum); _assert_(epszz_input); 5558 epsxz_input=element->GetInput2(StrainRatexzEnum); _assert_(epsxz_input); 5559 epsyz_input=element->GetInput2(StrainRateyzEnum); _assert_(epsyz_input); 5554 5560 } 5555 5561 … … 5620 5626 5621 5627 /*Add inputs*/ 5622 element->AddInput (DeviatoricStressxxEnum,tau_xx,P1DGEnum);5623 element->AddInput (DeviatoricStressyyEnum,tau_yy,P1DGEnum);5624 element->AddInput (DeviatoricStressxyEnum,tau_xy,P1DGEnum);5628 element->AddInput2(DeviatoricStressxxEnum,tau_xx,P1DGEnum); 5629 element->AddInput2(DeviatoricStressyyEnum,tau_yy,P1DGEnum); 5630 element->AddInput2(DeviatoricStressxyEnum,tau_xy,P1DGEnum); 5625 5631 if(dim==3){ 5626 element->AddInput (DeviatoricStresszzEnum,tau_zz,P1DGEnum);5627 element->AddInput (DeviatoricStressxzEnum,tau_xz,P1DGEnum);5628 element->AddInput (DeviatoricStressyzEnum,tau_yz,P1DGEnum);5632 element->AddInput2(DeviatoricStresszzEnum,tau_zz,P1DGEnum); 5633 element->AddInput2(DeviatoricStressxzEnum,tau_xz,P1DGEnum); 5634 element->AddInput2(DeviatoricStressyzEnum,tau_yz,P1DGEnum); 5629 5635 } 5630 5636 … … 5752 5758 5753 5759 /*If on water or not FS, skip stiffness: */ 5754 element->GetInput Value(&approximation,ApproximationEnum);5760 element->GetInput2Value(&approximation,ApproximationEnum); 5755 5761 if(element->IsFloating() || !element->IsOnBase()) return NULL; 5756 5762 … … 5784 5790 element->GetVerticesCoordinatesBase(&xyz_list_tria); 5785 5791 element->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum); 5786 Input * vx_input=element->GetInput(VxEnum); _assert_(vx_input);5787 Input * vy_input=element->GetInput(VyEnum); _assert_(vy_input);5788 Input * vz_input=element->GetInput(VzEnum); _assert_(vz_input);5792 Input2* vx_input=element->GetInput2(VxEnum); _assert_(vx_input); 5793 Input2* vy_input=element->GetInput2(VyEnum); _assert_(vy_input); 5794 Input2* vz_input=element->GetInput2(VzEnum); _assert_(vz_input); 5789 5795 5790 5796 /*build friction object, used later on: */ … … 5905 5911 element->GetVerticesCoordinates(&xyz_list); 5906 5912 element->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum); 5907 Input * vx_input=element->GetInput(VxEnum); _assert_(vx_input);5908 Input * vy_input=element->GetInput(VyEnum); _assert_(vy_input);5909 Input * vz_input=element->GetInput(VzEnum); _assert_(vz_input);5913 Input2* vx_input=element->GetInput2(VxEnum); _assert_(vx_input); 5914 Input2* vy_input=element->GetInput2(VyEnum); _assert_(vy_input); 5915 Input2* vz_input=element->GetInput2(VzEnum); _assert_(vz_input); 5910 5916 5911 5917 /* Start looping on the number of gaussian points: */ … … 6092 6098 /* Get node coordinates and dof list: */ 6093 6099 element->GetVerticesCoordinates(&xyz_list); 6094 Input * vx_input =element->GetInput(VxEnum); _assert_(vx_input);6095 Input * vy_input =element->GetInput(VyEnum); _assert_(vy_input);6100 Input2* vx_input =element->GetInput2(VxEnum); _assert_(vx_input); 6101 Input2* vy_input =element->GetInput2(VyEnum); _assert_(vy_input); 6096 6102 6097 6103 /* Start looping on the number of gaussian points: */ … … 6245 6251 /*Initialize Element matrix*/ 6246 6252 ElementMatrix* Ke=basaltria->NewElementMatrix(SSAApproximationEnum); 6247 element->GetInput Value(&approximation,ApproximationEnum);6253 element->GetInput2Value(&approximation,ApproximationEnum); 6248 6254 6249 6255 /*Retrieve all inputs and parameters*/ 6250 6256 element->GetVerticesCoordinates(&xyz_list); 6251 Input * vx_input =element->GetInput(VxEnum); _assert_(vx_input);6252 Input * vy_input =element->GetInput(VyEnum); _assert_(vy_input);6253 Input * vz_input =element->GetInput(VzEnum); _assert_(vz_input);6257 Input2* vx_input =element->GetInput2(VxEnum); _assert_(vx_input); 6258 Input2* vy_input =element->GetInput2(VyEnum); _assert_(vy_input); 6259 Input2* vz_input =element->GetInput2(VzEnum); _assert_(vz_input); 6254 6260 6255 6261 /* Start looping on the number of gaussian points: */ … … 6326 6332 /*Initialize Element vector and return if necessary*/ 6327 6333 if(!element->IsOnBase() || element->IsFloating()) return NULL; 6328 element->GetInput Value(&approximation,ApproximationEnum);6334 element->GetInput2Value(&approximation,ApproximationEnum); 6329 6335 if(approximation!=HOFSApproximationEnum) return NULL; 6330 6336 … … 6351 6357 element->GetVerticesCoordinatesBase(&xyz_list_tria); 6352 6358 element->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum); 6353 Input * vx_input= element->GetInput(VxEnum); _assert_(vx_input);6354 Input * vy_input= element->GetInput(VyEnum); _assert_(vy_input);6355 Input * vz_input= element->GetInput(VzEnum); _assert_(vz_input);6356 Input * vzHO_input=element->GetInput(VzHOEnum); _assert_(vzHO_input);6359 Input2* vx_input= element->GetInput2(VxEnum); _assert_(vx_input); 6360 Input2* vy_input= element->GetInput2(VyEnum); _assert_(vy_input); 6361 Input2* vz_input= element->GetInput2(VzEnum); _assert_(vz_input); 6362 Input2* vzHO_input=element->GetInput2(VzHOEnum); _assert_(vzHO_input); 6357 6363 6358 6364 /*build friction object, used later on: */ … … 6409 6415 6410 6416 /*Initialize Element vector and return if necessary*/ 6411 element->GetInput Value(&approximation,ApproximationEnum);6417 element->GetInput2Value(&approximation,ApproximationEnum); 6412 6418 if(approximation!=HOFSApproximationEnum) return NULL; 6413 6419 int vnumnodes = element->NumberofNodesVelocity(); … … 6430 6436 element->GetVerticesCoordinates(&xyz_list); 6431 6437 element->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum); 6432 Input * vx_input =element->GetInput(VxEnum); _assert_(vx_input);6433 Input * vy_input =element->GetInput(VyEnum); _assert_(vy_input);6434 Input * vz_input =element->GetInput(VzEnum); _assert_(vz_input);6435 Input * vzHO_input=element->GetInput(VzHOEnum); _assert_(vzHO_input);6438 Input2* vx_input =element->GetInput2(VxEnum); _assert_(vx_input); 6439 Input2* vy_input =element->GetInput2(VyEnum); _assert_(vy_input); 6440 Input2* vz_input =element->GetInput2(VzEnum); _assert_(vz_input); 6441 Input2* vzHO_input=element->GetInput2(VzHOEnum); _assert_(vzHO_input); 6436 6442 6437 6443 /* Start looping on the number of gaussian points: */ … … 6496 6502 /*Initialize Element vector and return if necessary*/ 6497 6503 if(!element->IsOnBase() || element->IsFloating()) return NULL; 6498 element->GetInput Value(&approximation,ApproximationEnum);6504 element->GetInput2Value(&approximation,ApproximationEnum); 6499 6505 if(approximation!=SSAFSApproximationEnum) return NULL; 6500 6506 int vnumnodes = element->NumberofNodesVelocity(); … … 6518 6524 element->GetVerticesCoordinatesBase(&xyz_list_tria); 6519 6525 element->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum); 6520 Input * vx_input= element->GetInput(VxEnum); _assert_(vx_input);6521 Input * vy_input= element->GetInput(VyEnum); _assert_(vy_input);6522 Input * vz_input= element->GetInput(VzEnum); _assert_(vz_input);6523 Input * vzSSA_input=element->GetInput(VzSSAEnum); _assert_(vzSSA_input);6526 Input2* vx_input= element->GetInput2(VxEnum); _assert_(vx_input); 6527 Input2* vy_input= element->GetInput2(VyEnum); _assert_(vy_input); 6528 Input2* vz_input= element->GetInput2(VzEnum); _assert_(vz_input); 6529 Input2* vzSSA_input=element->GetInput2(VzSSAEnum); _assert_(vzSSA_input); 6524 6530 6525 6531 /*build friction object, used later on: */ … … 6575 6581 6576 6582 /*Initialize Element vector and return if necessary*/ 6577 element->GetInput Value(&approximation,ApproximationEnum);6583 element->GetInput2Value(&approximation,ApproximationEnum); 6578 6584 if(approximation!=SSAFSApproximationEnum) return NULL; 6579 6585 int vnumnodes = element->NumberofNodesVelocity(); … … 6596 6602 element->GetVerticesCoordinates(&xyz_list); 6597 6603 element->FindParam(&FSreconditioning,StressbalanceFSreconditioningEnum); 6598 Input * vx_input =element->GetInput(VxEnum); _assert_(vx_input);6599 Input * vy_input =element->GetInput(VyEnum); _assert_(vy_input);6600 Input * vz_input =element->GetInput(VzEnum); _assert_(vz_input);6601 Input * vzSSA_input=element->GetInput(VzSSAEnum); _assert_(vzSSA_input);6604 Input2* vx_input =element->GetInput2(VxEnum); _assert_(vx_input); 6605 Input2* vy_input =element->GetInput2(VyEnum); _assert_(vy_input); 6606 Input2* vz_input =element->GetInput2(VzEnum); _assert_(vz_input); 6607 Input2* vzSSA_input=element->GetInput2(VzSSAEnum); _assert_(vzSSA_input); 6602 6608 6603 6609 /* Start looping on the number of gaussian points: */ … … 7192 7198 7193 7199 /*Add vx and vy as inputs to element: */ 7194 element->AddInput (VxEnum,vx,P1Enum);7195 element->AddInput (VyEnum,vy,P1Enum);7196 element->AddInput (VzEnum,vz,P1Enum);7197 element->AddInput (VzFSEnum,vzFS,P1Enum);7198 element->AddInput (VelEnum,vel,P1Enum);7199 element->AddInput(PressureEnum,pressure,P1Enum);7200 element->AddInput2(VxEnum,vx,P1Enum); 7201 element->AddInput2(VyEnum,vy,P1Enum); 7202 element->AddInput2(VzEnum,vz,P1Enum); 7203 element->AddInput2(VzFSEnum,vzFS,P1Enum); 7204 element->AddInput2(VelEnum,vel,P1Enum); 7205 //element->AddInput2(PressureEnum,pressure,P1Enum); 7200 7206 7201 7207 /*Free ressources:*/ … … 7295 7301 7296 7302 /*Add vx and vy as inputs to element: */ 7297 element->AddInput (VxEnum,vx,P1Enum);7298 element->AddInput (VyEnum,vy,P1Enum);7299 element->AddInput (VzEnum,vz,P1Enum);7300 element->AddInput (VzFSEnum,vzFS,P1Enum);7301 element->AddInput (VelEnum,vel,P1Enum);7302 element->AddInput(PressureEnum,pressure,P1Enum);7303 element->AddInput2(VxEnum,vx,P1Enum); 7304 element->AddInput2(VyEnum,vy,P1Enum); 7305 element->AddInput2(VzEnum,vz,P1Enum); 7306 element->AddInput2(VzFSEnum,vzFS,P1Enum); 7307 element->AddInput2(VelEnum,vel,P1Enum); 7308 //element->AddInput2(PressureEnum,pressure,P1Enum); 7303 7309 7304 7310 /*Free ressources:*/ … … 7388 7394 7389 7395 /*Add vx and vy as inputs to element: */ 7390 element->AddInput (VxEnum,vx,P1Enum);7391 element->AddInput (VyEnum,vy,P1Enum);7392 element->AddInput (VelEnum,vel,P1Enum);7393 element->AddInput (PressureEnum,pressure,P1Enum);7396 element->AddInput2(VxEnum,vx,P1Enum); 7397 element->AddInput2(VyEnum,vy,P1Enum); 7398 element->AddInput2(VelEnum,vel,P1Enum); 7399 element->AddInput2(PressureEnum,pressure,P1Enum); 7394 7400 7395 7401 /*Free ressources:*/
Note:
See TracChangeset
for help on using the changeset viewer.