Changeset 17609


Ignore:
Timestamp:
03/31/14 16:33:33 (11 years ago)
Author:
Mathieu Morlighem
Message:

CHG: InputUpdateFromSolution do not assume a P1 finite element anymore

Location:
issm/trunk-jpl/src/c/analyses
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/analyses/AdjointHorizAnalysis.cpp

    r17585 r17609  
    923923
    924924        /*Add vx and vy as inputs to the tria element: */
    925         element->AddInput(AdjointxEnum,lambdax,P1Enum);
    926         element->AddInput(AdjointyEnum,lambday,P1Enum);
     925        element->AddInput(AdjointxEnum,lambdax,element->GetElementType());
     926        element->AddInput(AdjointyEnum,lambday,element->GetElementType());
    927927
    928928        /*Free ressources:*/
     
    981981
    982982        /*Add vx and vy as inputs to the tria element: */
    983         element->AddInput(AdjointxEnum,lambdax,P1Enum);
    984         element->AddInput(AdjointyEnum,lambday,P1Enum);
    985         element->AddInput(AdjointzEnum,lambdaz,P1Enum);
    986         element->AddInput(AdjointpEnum,lambdap,P1Enum);
     983        element->AddInput(AdjointxEnum,lambdax,element->VelocityInterpolation());
     984        element->AddInput(AdjointyEnum,lambday,element->VelocityInterpolation());
     985        element->AddInput(AdjointzEnum,lambdaz,element->VelocityInterpolation());
     986        element->AddInput(AdjointpEnum,lambdap,element->PressureInterpolation());
    987987
    988988        /*Free ressources:*/
  • issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp

    r17608 r17609  
    802802                        //if(waterfraction[i]>1.) _error_("Water fraction >1 found in solution vector");
    803803                }
    804                 element->AddInput(EnthalpyEnum,values,P1Enum);
    805                 element->AddInput(WaterfractionEnum,waterfraction,P1Enum);
    806                 element->AddInput(TemperatureEnum,temperature,P1Enum);
     804                element->AddInput(EnthalpyEnum,values,element->GetElementType());
     805                element->AddInput(WaterfractionEnum,waterfraction,element->GetElementType());
     806                element->AddInput(TemperatureEnum,temperature,element->GetElementType());
    807807
    808808                /*Update Rheology only if converged (we must make sure that the temperature is below melting point
     
    816816                        case CuffeyEnum:
    817817                                for(i=0;i<numnodes;i++) B[i]=Cuffey(temperature[i]);
    818                                 element->AddInput(MaterialsRheologyBEnum,&B[0],P1Enum);
     818                                element->AddInput(MaterialsRheologyBEnum,&B[0],element->GetElementType());
    819819                                break;
    820820                        case PatersonEnum:
    821821                                for(i=0;i<numnodes;i++) B[i]=Paterson(temperature[i]);
    822                                 element->AddInput(MaterialsRheologyBEnum,&B[0],P1Enum);
     822                                element->AddInput(MaterialsRheologyBEnum,&B[0],element->GetElementType());
    823823                                break;
    824824                        case ArrheniusEnum:
    825825                                element->GetVerticesCoordinates(&xyz_list);
    826826                                for(i=0;i<numnodes;i++) B[i]=Arrhenius(temperature[i],surface[i]-xyz_list[i*3+2],element->GetMaterialParameter(MaterialsRheologyNEnum));
    827                                 element->AddInput(MaterialsRheologyBEnum,&B[0],P1Enum);
     827                                element->AddInput(MaterialsRheologyBEnum,&B[0],element->GetElementType());
    828828                                break;
    829829                        case LliboutryDuvalEnum:
    830830                                for(i=0;i<numnodes;i++) B[i]=LliboutryDuval(values[i],pressure[i],element->GetMaterialParameter(MaterialsRheologyNEnum),element->GetMaterialParameter(MaterialsBetaEnum),element->GetMaterialParameter(ConstantsReferencetemperatureEnum),element->GetMaterialParameter(MaterialsHeatcapacityEnum),element->GetMaterialParameter(MaterialsLatentheatEnum));
    831                                 element->AddInput(MaterialsRheologyBEnum,&B[0],P1Enum);
     831                                element->AddInput(MaterialsRheologyBEnum,&B[0],element->GetElementType());
    832832                                break;
    833833                        default: _error_("Rheology law " << EnumToStringx(rheology_law) << " not supported yet");
     
    835835        }
    836836        else{
    837                 element->AddInput(EnthalpyPicardEnum,values,P1Enum);
     837                element->AddInput(EnthalpyPicardEnum,values,element->GetElementType());
    838838        }
    839839
  • issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp

    r17585 r17609  
    560560                        }
    561561                }
    562                 element->AddInput(HydrologydcEplThicknessEnum,thickness,P1Enum);
     562                element->AddInput(HydrologydcEplThicknessEnum,thickness,element->GetElementType());
    563563                xDelete<IssmDouble>(thickness);
    564564                xDelete<IssmDouble>(eplhead);
  • issm/trunk-jpl/src/c/analyses/HydrologyShreveAnalysis.cpp

    r17555 r17609  
    310310
    311311        /*Add input to the element: */
    312         element->AddInput(WatercolumnEnum,values,P1Enum);
     312        element->AddInput(WatercolumnEnum,values,element->GetElementType());
    313313
    314314        /*Free ressources:*/
  • issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp

    r17604 r17609  
    17431743
    17441744        /*Add vx and vy as inputs to the tria element: */
    1745         element->AddBasalInput(VxEnum,vx,P1Enum);
    1746         if(dim==2)element->AddBasalInput(VyEnum,vy,P1Enum);
    1747         element->AddBasalInput(VelEnum,vel,P1Enum);
     1745        element->AddBasalInput(VxEnum,vx,element->GetElementType());
     1746        if(dim==2)element->AddBasalInput(VyEnum,vy,element->GetElementType());
     1747        element->AddBasalInput(VelEnum,vel,element->GetElementType());
    17481748
    17491749        /*Free ressources:*/
     
    20632063
    20642064        /*Add vx and vy as inputs to the tria element: */
    2065         element->AddBasalInput(VxEnum,vx,P1Enum);
    2066         element->AddBasalInput(VyEnum,vy,P1Enum);
    2067         element->AddBasalInput(VelEnum,vel,P1Enum);
     2065        element->AddBasalInput(VxEnum,vx,element->GetElementType());
     2066        element->AddBasalInput(VyEnum,vy,element->GetElementType());
     2067        element->AddBasalInput(VelEnum,vel,element->GetElementType());
    20682068
    20692069        /*Free ressources:*/
     
    27402740        //element->AddInput(VyEnum,  vy,element->GetElementType());
    27412741        //element->AddInput(VelEnum,vel,element->GetElementType());
    2742         element->AddInput(VxEnum,vx,P1Enum);
    2743         if(dim==3)element->AddInput(VyEnum,vy,P1Enum);
    2744         element->AddInput(VelEnum,vel,P1Enum);
     2742        element->AddInput(VxEnum,vx,element->GetElementType());
     2743        if(dim==3)element->AddInput(VyEnum,vy,element->GetElementType());
     2744        element->AddInput(VelEnum,vel,element->GetElementType());
    27452745
    27462746        /*Free ressources:*/
  • issm/trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp

    r17600 r17609  
    443443        if(approximation!=HOFSApproximationEnum && approximation!=SSAFSApproximationEnum){
    444444                element->InputChangeName(PressureEnum,PressurePicardEnum);
    445                 element->AddInput(PressureEnum,pressure,P1Enum);
     445                element->AddInput(PressureEnum,pressure,element->GetElementType());
    446446        }
    447447        else if(approximation==HOFSApproximationEnum){
  • issm/trunk-jpl/src/c/analyses/ThermalAnalysis.cpp

    r17585 r17609  
    673673        element->GetInputValue(&converged,ConvergedEnum);
    674674        if(converged){
    675                 element->AddInput(TemperatureEnum,values,P1Enum);
     675                element->AddInput(TemperatureEnum,values,element->GetElementType());
    676676
    677677                /*Update Rheology only if converged (we must make sure that the temperature is below melting point
     
    685685                        case CuffeyEnum:
    686686                                for(i=0;i<numnodes;i++) B[i]=Cuffey(values[i]);
    687                                 element->AddInput(MaterialsRheologyBEnum,&B[0],P1Enum);
     687                                element->AddInput(MaterialsRheologyBEnum,&B[0],element->GetElementType());
    688688                                break;
    689689                        case PatersonEnum:
    690690                                for(i=0;i<numnodes;i++) B[i]=Paterson(values[i]);
    691                                 element->AddInput(MaterialsRheologyBEnum,&B[0],P1Enum);
     691                                element->AddInput(MaterialsRheologyBEnum,&B[0],element->GetElementType());
    692692                                break;
    693693                        case ArrheniusEnum:{
    694694                                element->GetVerticesCoordinates(&xyz_list);
    695695                                for(i=0;i<numnodes;i++) B[i]=Arrhenius(values[i],surface[i]-xyz_list[i*3+2],element->GetMaterialParameter(MaterialsRheologyNEnum));
    696                                 element->AddInput(MaterialsRheologyBEnum,&B[0],P1Enum);
     696                                element->AddInput(MaterialsRheologyBEnum,&B[0],element->GetElementType());
    697697                                break;
    698698                                }
     
    702702        }
    703703        else{
    704                 element->AddInput(TemperaturePicardEnum,values,P1Enum);
     704                element->AddInput(TemperaturePicardEnum,values,element->GetElementType());
    705705        }
    706706
Note: See TracChangeset for help on using the changeset viewer.