Changeset 20016


Ignore:
Timestamp:
01/29/16 13:49:06 (9 years ago)
Author:
girardc
Message:

NEW: added cost function that forces H to be positive for MC

Location:
issm/trunk-jpl/src
Files:
1 added
11 edited

Legend:

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

    r18930 r20016  
    132132                                        for(i=0;i<numnodes;i++) pe->values[i]+= - weight*(dH[0]*(-vy)+dH[1]*vx)*(dbasis[0*numnodes+i]*(-vy)+dbasis[1*numnodes+i]*vx)*Jdet*gauss->weight;
    133133                                        break;
     134                                case ThicknessPositiveEnum:
     135                                        if(thickness<0){
     136                                                for(i=0;i<numnodes;i++) pe->values[i]+= - weight*2*thickness*Jdet*gauss->weight*basis[i];
     137                                        }
     138                                        break;
    134139                                default:
    135140                                        _error_("response " << EnumToStringx(responses[resp]) << " not supported yet");
     
    181186                case ThicknessAlongGradientEnum:  /*Nothing, \partial J/\partial k = 0*/ break;
    182187                case ThicknessAcrossGradientEnum: /*Nothing, \partial J/\partial k = 0*/ break;
     188                case ThicknessPositiveEnum:       /*Nothing, \partial J/\partial k = 0*/ break;
    183189                default: _error_("response " << EnumToStringx(responses[resp]) << " not supported yet");
    184190        }
  • issm/trunk-jpl/src/c/classes/FemModel.cpp

    r20011 r20016  
    10401040                                case ThicknessAlongGradientEnum:    ThicknessAlongGradientx(&double_result,elements,nodes,vertices,loads,materials,parameters);     break;
    10411041                                case ThicknessAcrossGradientEnum:   ThicknessAcrossGradientx(&double_result,elements,nodes,vertices,loads,materials,parameters);    break;
     1042                                case ThicknessPositiveEnum:         this->ThicknessPositivex(&double_result);                                                       break;
    10421043                                case RheologyBbarAbsGradientEnum:   RheologyBbarAbsGradientx(&double_result,elements,nodes,vertices,loads,materials,parameters);    break;
    1043                                 case RheologyBAbsGradientEnum:      RheologyBAbsGradientx(&double_result,elements,nodes,vertices,loads,materials,parameters);  break;
     1044                                case RheologyBAbsGradientEnum:      RheologyBAbsGradientx(&double_result,elements,nodes,vertices,loads,materials,parameters);       break;
    10441045                                case DragCoefficientAbsGradientEnum:DragCoefficientAbsGradientx(&double_result,elements,nodes,vertices,loads,materials,parameters); break;
    10451046                                case BalancethicknessMisfitEnum:    BalancethicknessMisfitx(&double_result);                                                        break;
     
    19541955}
    19551956/*}}}*/
     1957void FemModel::ThicknessPositivex(IssmDouble* pJ){/*{{{*/
     1958
     1959        /*output: */
     1960        IssmDouble J=0.;
     1961        IssmDouble J_sum;
     1962
     1963        IssmDouble  thickness,weight;
     1964        IssmDouble  Jdet;
     1965        IssmDouble* xyz_list = NULL;
     1966        IssmDouble  H;
     1967
     1968        /*Compute Misfit: */
     1969        for(int i=0;i<elements->Size();i++){
     1970                Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
     1971
     1972                /*If on water, return 0: */
     1973                if(!element->IsIceInElement()) continue;
     1974
     1975                /* Get node coordinates*/
     1976                element->GetVerticesCoordinates(&xyz_list);
     1977
     1978                /*Retrieve all inputs we will be needing: */
     1979                Input* weights_input   =element->GetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);
     1980                Input* thickness_input =element->GetInput(ThicknessEnum);                          _assert_(thickness_input);
     1981
     1982                /* Start  looping on the number of gaussian points: */
     1983                Gauss* gauss=element->NewGauss(2);
     1984                for(int ig=gauss->begin();ig<gauss->end();ig++){
     1985
     1986                        gauss->GaussPoint(ig);
     1987
     1988                        /* Get Jacobian determinant: */
     1989                        element->JacobianDeterminant(&Jdet,xyz_list,gauss);
     1990
     1991                        /*Get all parameters at gaussian point*/
     1992                        weights_input->GetInputValue(&weight,gauss,ThicknessPositiveEnum);
     1993                        thickness_input->GetInputValue(&H,gauss);
     1994
     1995                        /*int min(H,0)^2 */
     1996                        if(H<=0){
     1997                                J+=weight*H*H*Jdet*gauss->weight;
     1998                        }
     1999                }
     2000
     2001                /*clean up and Return: */
     2002                xDelete<IssmDouble>(xyz_list);
     2003                delete gauss;
     2004        }
     2005
     2006        /*Sum all J from all cpus of the cluster:*/
     2007        ISSM_MPI_Reduce (&J,&J_sum,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() );
     2008        ISSM_MPI_Bcast(&J_sum,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm());
     2009        J=J_sum;
     2010
     2011        /*Assign output pointers: */
     2012        *pJ=J;
     2013}
     2014/*}}}*/
    19562015void FemModel::CostFunctionx(IssmDouble* pJ,IssmDouble** pJlist,int* pn){/*{{{*/
    19572016
  • issm/trunk-jpl/src/c/classes/FemModel.h

    r20007 r20016  
    108108                void CostFunctionx(IssmDouble* pJ,IssmDouble** pJlist,int* pn);
    109109                void ThicknessAbsGradientx( IssmDouble* pJ);
     110                void ThicknessPositivex(IssmDouble* pJ);
    110111                void SurfaceAbsMisfitx( IssmDouble* pJ);
    111112                #ifdef _HAVE_GIA_
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp

    r19002 r20016  
    3232        for(int i=0;i<num_cost_functions;i++){
    3333                cost_function= reCast<int,IssmDouble>(iomodel->Data(InversionCostFunctionsEnum)[i]);
     34                iomodel->FetchDataToInput(elements,InversionThicknessObsEnum);
    3435                if(     cost_function==ThicknessAbsMisfitEnum) iomodel->FetchDataToInput(elements,InversionThicknessObsEnum);
    3536                else if(cost_function==SurfaceAbsMisfitEnum)   iomodel->FetchDataToInput(elements,InversionSurfaceObsEnum);
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r20014 r20016  
    695695        ThicknessAlongGradientEnum,
    696696        ThicknessAcrossGradientEnum,
     697        ThicknessPositiveEnum,
    697698        IntMatParamEnum,
    698699        RheologyBbarAbsGradientEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r20014 r20016  
    681681                case ThicknessAlongGradientEnum : return "ThicknessAlongGradient";
    682682                case ThicknessAcrossGradientEnum : return "ThicknessAcrossGradient";
     683                case ThicknessPositiveEnum : return "ThicknessPositive";
    683684                case IntMatParamEnum : return "IntMatParam";
    684685                case RheologyBbarAbsGradientEnum : return "RheologyBbarAbsGradient";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r20014 r20016  
    696696              else if (strcmp(name,"ThicknessAlongGradient")==0) return ThicknessAlongGradientEnum;
    697697              else if (strcmp(name,"ThicknessAcrossGradient")==0) return ThicknessAcrossGradientEnum;
     698              else if (strcmp(name,"ThicknessPositive")==0) return ThicknessPositiveEnum;
    698699              else if (strcmp(name,"IntMatParam")==0) return IntMatParamEnum;
    699700              else if (strcmp(name,"RheologyBbarAbsGradient")==0) return RheologyBbarAbsGradientEnum;
     
    751752              else if (strcmp(name,"P1xP3")==0) return P1xP3Enum;
    752753              else if (strcmp(name,"P2xP4")==0) return P2xP4Enum;
    753               else if (strcmp(name,"P1P1")==0) return P1P1Enum;
    754754         else stage=7;
    755755   }
    756756   if(stage==7){
    757               if (strcmp(name,"P1P1GLS")==0) return P1P1GLSEnum;
     757              if (strcmp(name,"P1P1")==0) return P1P1Enum;
     758              else if (strcmp(name,"P1P1GLS")==0) return P1P1GLSEnum;
    758759              else if (strcmp(name,"MINI")==0) return MINIEnum;
    759760              else if (strcmp(name,"MINIcondensed")==0) return MINIcondensedEnum;
     
    874875              else if (strcmp(name,"Outputdefinition98")==0) return Outputdefinition98Enum;
    875876              else if (strcmp(name,"Outputdefinition99")==0) return Outputdefinition99Enum;
    876               else if (strcmp(name,"Outputdefinition100")==0) return Outputdefinition100Enum;
    877877         else stage=8;
    878878   }
    879879   if(stage==8){
    880               if (strcmp(name,"OutputdefinitionList")==0) return OutputdefinitionListEnum;
     880              if (strcmp(name,"Outputdefinition100")==0) return Outputdefinition100Enum;
     881              else if (strcmp(name,"OutputdefinitionList")==0) return OutputdefinitionListEnum;
    881882              else if (strcmp(name,"Massfluxatgate")==0) return MassfluxatgateEnum;
    882883              else if (strcmp(name,"MassfluxatgateName")==0) return MassfluxatgateNameEnum;
     
    997998              else if (strcmp(name,"LevelsetfunctionPicard")==0) return LevelsetfunctionPicardEnum;
    998999              else if (strcmp(name,"SealevelriseSolution")==0) return SealevelriseSolutionEnum;
    999               else if (strcmp(name,"SealevelriseAnalysis")==0) return SealevelriseAnalysisEnum;
    10001000         else stage=9;
    10011001   }
    10021002   if(stage==9){
    1003               if (strcmp(name,"SealevelriseS")==0) return SealevelriseSEnum;
     1003              if (strcmp(name,"SealevelriseAnalysis")==0) return SealevelriseAnalysisEnum;
     1004              else if (strcmp(name,"SealevelriseS")==0) return SealevelriseSEnum;
    10041005              else if (strcmp(name,"SealevelriseDeltathickness")==0) return SealevelriseDeltathicknessEnum;
    10051006              else if (strcmp(name,"SealevelriseMaxiter")==0) return SealevelriseMaxiterEnum;
  • issm/trunk-jpl/src/m/enum/EnumDefinitions.js

    r20014 r20016  
    666666function ThicknessAlongGradientEnum(){ return 662;}
    667667function ThicknessAcrossGradientEnum(){ return 663;}
    668 function IntMatParamEnum(){ return 664;}
    669 function RheologyBbarAbsGradientEnum(){ return 665;}
    670 function RheologyBAbsGradientEnum(){ return 666;}
    671 function DragCoefficientAbsGradientEnum(){ return 667;}
    672 function TransientInputEnum(){ return 668;}
    673 function WaterfractionEnum(){ return 669;}
    674 function WatercolumnEnum(){ return 670;}
    675 function BasalFrictionEnum(){ return 671;}
    676 function ViscousHeatingEnum(){ return 672;}
    677 function HydrologyWaterVxEnum(){ return 673;}
    678 function HydrologyWaterVyEnum(){ return 674;}
    679 function DrivingStressXEnum(){ return 675;}
    680 function DrivingStressYEnum(){ return 676;}
    681 function SigmaNNEnum(){ return 677;}
    682 function StressTensorEnum(){ return 678;}
    683 function StressTensorxxEnum(){ return 679;}
    684 function StressTensorxyEnum(){ return 680;}
    685 function StressTensorxzEnum(){ return 681;}
    686 function StressTensoryyEnum(){ return 682;}
    687 function StressTensoryzEnum(){ return 683;}
    688 function StressTensorzzEnum(){ return 684;}
    689 function StressMaxPrincipalEnum(){ return 685;}
    690 function DeviatoricStressEnum(){ return 686;}
    691 function DeviatoricStressxxEnum(){ return 687;}
    692 function DeviatoricStressxyEnum(){ return 688;}
    693 function DeviatoricStressxzEnum(){ return 689;}
    694 function DeviatoricStressyyEnum(){ return 690;}
    695 function DeviatoricStressyzEnum(){ return 691;}
    696 function DeviatoricStresszzEnum(){ return 692;}
    697 function DeviatoricStresseffectiveEnum(){ return 693;}
    698 function StrainRateEnum(){ return 694;}
    699 function StrainRatexxEnum(){ return 695;}
    700 function StrainRatexyEnum(){ return 696;}
    701 function StrainRatexzEnum(){ return 697;}
    702 function StrainRateyyEnum(){ return 698;}
    703 function StrainRateyzEnum(){ return 699;}
    704 function StrainRatezzEnum(){ return 700;}
    705 function DivergenceEnum(){ return 701;}
    706 function MaxDivergenceEnum(){ return 702;}
    707 function GiaCrossSectionShapeEnum(){ return 703;}
    708 function GiadWdtEnum(){ return 704;}
    709 function GiaWEnum(){ return 705;}
    710 function P0Enum(){ return 706;}
    711 function P0ArrayEnum(){ return 707;}
    712 function P1Enum(){ return 708;}
    713 function P1DGEnum(){ return 709;}
    714 function P1bubbleEnum(){ return 710;}
    715 function P1bubblecondensedEnum(){ return 711;}
    716 function P2Enum(){ return 712;}
    717 function P2bubbleEnum(){ return 713;}
    718 function P2bubblecondensedEnum(){ return 714;}
    719 function P2xP1Enum(){ return 715;}
    720 function P1xP2Enum(){ return 716;}
    721 function P1xP3Enum(){ return 717;}
    722 function P2xP4Enum(){ return 718;}
    723 function P1P1Enum(){ return 719;}
    724 function P1P1GLSEnum(){ return 720;}
    725 function MINIEnum(){ return 721;}
    726 function MINIcondensedEnum(){ return 722;}
    727 function TaylorHoodEnum(){ return 723;}
    728 function LATaylorHoodEnum(){ return 724;}
    729 function XTaylorHoodEnum(){ return 725;}
    730 function OneLayerP4zEnum(){ return 726;}
    731 function CrouzeixRaviartEnum(){ return 727;}
    732 function LACrouzeixRaviartEnum(){ return 728;}
    733 function SaveResultsEnum(){ return 729;}
    734 function BoolExternalResultEnum(){ return 730;}
    735 function DoubleExternalResultEnum(){ return 731;}
    736 function DoubleMatExternalResultEnum(){ return 732;}
    737 function IntExternalResultEnum(){ return 733;}
    738 function JEnum(){ return 734;}
    739 function StringExternalResultEnum(){ return 735;}
    740 function StepEnum(){ return 736;}
    741 function TimeEnum(){ return 737;}
    742 function WaterColumnOldEnum(){ return 738;}
    743 function OutputdefinitionEnum(){ return 739;}
    744 function Outputdefinition1Enum(){ return 740;}
    745 function Outputdefinition2Enum(){ return 741;}
    746 function Outputdefinition3Enum(){ return 742;}
    747 function Outputdefinition4Enum(){ return 743;}
    748 function Outputdefinition5Enum(){ return 744;}
    749 function Outputdefinition6Enum(){ return 745;}
    750 function Outputdefinition7Enum(){ return 746;}
    751 function Outputdefinition8Enum(){ return 747;}
    752 function Outputdefinition9Enum(){ return 748;}
    753 function Outputdefinition10Enum(){ return 749;}
    754 function Outputdefinition11Enum(){ return 750;}
    755 function Outputdefinition12Enum(){ return 751;}
    756 function Outputdefinition13Enum(){ return 752;}
    757 function Outputdefinition14Enum(){ return 753;}
    758 function Outputdefinition15Enum(){ return 754;}
    759 function Outputdefinition16Enum(){ return 755;}
    760 function Outputdefinition17Enum(){ return 756;}
    761 function Outputdefinition18Enum(){ return 757;}
    762 function Outputdefinition19Enum(){ return 758;}
    763 function Outputdefinition20Enum(){ return 759;}
    764 function Outputdefinition21Enum(){ return 760;}
    765 function Outputdefinition22Enum(){ return 761;}
    766 function Outputdefinition23Enum(){ return 762;}
    767 function Outputdefinition24Enum(){ return 763;}
    768 function Outputdefinition25Enum(){ return 764;}
    769 function Outputdefinition26Enum(){ return 765;}
    770 function Outputdefinition27Enum(){ return 766;}
    771 function Outputdefinition28Enum(){ return 767;}
    772 function Outputdefinition29Enum(){ return 768;}
    773 function Outputdefinition30Enum(){ return 769;}
    774 function Outputdefinition31Enum(){ return 770;}
    775 function Outputdefinition32Enum(){ return 771;}
    776 function Outputdefinition33Enum(){ return 772;}
    777 function Outputdefinition34Enum(){ return 773;}
    778 function Outputdefinition35Enum(){ return 774;}
    779 function Outputdefinition36Enum(){ return 775;}
    780 function Outputdefinition37Enum(){ return 776;}
    781 function Outputdefinition38Enum(){ return 777;}
    782 function Outputdefinition39Enum(){ return 778;}
    783 function Outputdefinition40Enum(){ return 779;}
    784 function Outputdefinition41Enum(){ return 780;}
    785 function Outputdefinition42Enum(){ return 781;}
    786 function Outputdefinition43Enum(){ return 782;}
    787 function Outputdefinition44Enum(){ return 783;}
    788 function Outputdefinition45Enum(){ return 784;}
    789 function Outputdefinition46Enum(){ return 785;}
    790 function Outputdefinition47Enum(){ return 786;}
    791 function Outputdefinition48Enum(){ return 787;}
    792 function Outputdefinition49Enum(){ return 788;}
    793 function Outputdefinition50Enum(){ return 789;}
    794 function Outputdefinition51Enum(){ return 790;}
    795 function Outputdefinition52Enum(){ return 791;}
    796 function Outputdefinition53Enum(){ return 792;}
    797 function Outputdefinition54Enum(){ return 793;}
    798 function Outputdefinition55Enum(){ return 794;}
    799 function Outputdefinition56Enum(){ return 795;}
    800 function Outputdefinition57Enum(){ return 796;}
    801 function Outputdefinition58Enum(){ return 797;}
    802 function Outputdefinition59Enum(){ return 798;}
    803 function Outputdefinition60Enum(){ return 799;}
    804 function Outputdefinition61Enum(){ return 800;}
    805 function Outputdefinition62Enum(){ return 801;}
    806 function Outputdefinition63Enum(){ return 802;}
    807 function Outputdefinition64Enum(){ return 803;}
    808 function Outputdefinition65Enum(){ return 804;}
    809 function Outputdefinition66Enum(){ return 805;}
    810 function Outputdefinition67Enum(){ return 806;}
    811 function Outputdefinition68Enum(){ return 807;}
    812 function Outputdefinition69Enum(){ return 808;}
    813 function Outputdefinition70Enum(){ return 809;}
    814 function Outputdefinition71Enum(){ return 810;}
    815 function Outputdefinition72Enum(){ return 811;}
    816 function Outputdefinition73Enum(){ return 812;}
    817 function Outputdefinition74Enum(){ return 813;}
    818 function Outputdefinition75Enum(){ return 814;}
    819 function Outputdefinition76Enum(){ return 815;}
    820 function Outputdefinition77Enum(){ return 816;}
    821 function Outputdefinition78Enum(){ return 817;}
    822 function Outputdefinition79Enum(){ return 818;}
    823 function Outputdefinition80Enum(){ return 819;}
    824 function Outputdefinition81Enum(){ return 820;}
    825 function Outputdefinition82Enum(){ return 821;}
    826 function Outputdefinition83Enum(){ return 822;}
    827 function Outputdefinition84Enum(){ return 823;}
    828 function Outputdefinition85Enum(){ return 824;}
    829 function Outputdefinition86Enum(){ return 825;}
    830 function Outputdefinition87Enum(){ return 826;}
    831 function Outputdefinition88Enum(){ return 827;}
    832 function Outputdefinition89Enum(){ return 828;}
    833 function Outputdefinition90Enum(){ return 829;}
    834 function Outputdefinition91Enum(){ return 830;}
    835 function Outputdefinition92Enum(){ return 831;}
    836 function Outputdefinition93Enum(){ return 832;}
    837 function Outputdefinition94Enum(){ return 833;}
    838 function Outputdefinition95Enum(){ return 834;}
    839 function Outputdefinition96Enum(){ return 835;}
    840 function Outputdefinition97Enum(){ return 836;}
    841 function Outputdefinition98Enum(){ return 837;}
    842 function Outputdefinition99Enum(){ return 838;}
    843 function Outputdefinition100Enum(){ return 839;}
    844 function OutputdefinitionListEnum(){ return 840;}
    845 function MassfluxatgateEnum(){ return 841;}
    846 function MassfluxatgateNameEnum(){ return 842;}
    847 function MassfluxatgateDefinitionenumEnum(){ return 843;}
    848 function MassfluxatgateSegmentsEnum(){ return 844;}
    849 function MisfitNameEnum(){ return 845;}
    850 function MisfitDefinitionenumEnum(){ return 846;}
    851 function MisfitModelEnum(){ return 847;}
    852 function MisfitObservationEnum(){ return 848;}
     668function ThicknessPositiveEnum(){ return 664;}
     669function IntMatParamEnum(){ return 665;}
     670function RheologyBbarAbsGradientEnum(){ return 666;}
     671function RheologyBAbsGradientEnum(){ return 667;}
     672function DragCoefficientAbsGradientEnum(){ return 668;}
     673function TransientInputEnum(){ return 669;}
     674function WaterfractionEnum(){ return 670;}
     675function WatercolumnEnum(){ return 671;}
     676function BasalFrictionEnum(){ return 672;}
     677function ViscousHeatingEnum(){ return 673;}
     678function HydrologyWaterVxEnum(){ return 674;}
     679function HydrologyWaterVyEnum(){ return 675;}
     680function DrivingStressXEnum(){ return 676;}
     681function DrivingStressYEnum(){ return 677;}
     682function SigmaNNEnum(){ return 678;}
     683function StressTensorEnum(){ return 679;}
     684function StressTensorxxEnum(){ return 680;}
     685function StressTensorxyEnum(){ return 681;}
     686function StressTensorxzEnum(){ return 682;}
     687function StressTensoryyEnum(){ return 683;}
     688function StressTensoryzEnum(){ return 684;}
     689function StressTensorzzEnum(){ return 685;}
     690function StressMaxPrincipalEnum(){ return 686;}
     691function DeviatoricStressEnum(){ return 687;}
     692function DeviatoricStressxxEnum(){ return 688;}
     693function DeviatoricStressxyEnum(){ return 689;}
     694function DeviatoricStressxzEnum(){ return 690;}
     695function DeviatoricStressyyEnum(){ return 691;}
     696function DeviatoricStressyzEnum(){ return 692;}
     697function DeviatoricStresszzEnum(){ return 693;}
     698function DeviatoricStresseffectiveEnum(){ return 694;}
     699function StrainRateEnum(){ return 695;}
     700function StrainRatexxEnum(){ return 696;}
     701function StrainRatexyEnum(){ return 697;}
     702function StrainRatexzEnum(){ return 698;}
     703function StrainRateyyEnum(){ return 699;}
     704function StrainRateyzEnum(){ return 700;}
     705function StrainRatezzEnum(){ return 701;}
     706function DivergenceEnum(){ return 702;}
     707function MaxDivergenceEnum(){ return 703;}
     708function GiaCrossSectionShapeEnum(){ return 704;}
     709function GiadWdtEnum(){ return 705;}
     710function GiaWEnum(){ return 706;}
     711function P0Enum(){ return 707;}
     712function P0ArrayEnum(){ return 708;}
     713function P1Enum(){ return 709;}
     714function P1DGEnum(){ return 710;}
     715function P1bubbleEnum(){ return 711;}
     716function P1bubblecondensedEnum(){ return 712;}
     717function P2Enum(){ return 713;}
     718function P2bubbleEnum(){ return 714;}
     719function P2bubblecondensedEnum(){ return 715;}
     720function P2xP1Enum(){ return 716;}
     721function P1xP2Enum(){ return 717;}
     722function P1xP3Enum(){ return 718;}
     723function P2xP4Enum(){ return 719;}
     724function P1P1Enum(){ return 720;}
     725function P1P1GLSEnum(){ return 721;}
     726function MINIEnum(){ return 722;}
     727function MINIcondensedEnum(){ return 723;}
     728function TaylorHoodEnum(){ return 724;}
     729function LATaylorHoodEnum(){ return 725;}
     730function XTaylorHoodEnum(){ return 726;}
     731function OneLayerP4zEnum(){ return 727;}
     732function CrouzeixRaviartEnum(){ return 728;}
     733function LACrouzeixRaviartEnum(){ return 729;}
     734function SaveResultsEnum(){ return 730;}
     735function BoolExternalResultEnum(){ return 731;}
     736function DoubleExternalResultEnum(){ return 732;}
     737function DoubleMatExternalResultEnum(){ return 733;}
     738function IntExternalResultEnum(){ return 734;}
     739function JEnum(){ return 735;}
     740function StringExternalResultEnum(){ return 736;}
     741function StepEnum(){ return 737;}
     742function TimeEnum(){ return 738;}
     743function WaterColumnOldEnum(){ return 739;}
     744function OutputdefinitionEnum(){ return 740;}
     745function Outputdefinition1Enum(){ return 741;}
     746function Outputdefinition2Enum(){ return 742;}
     747function Outputdefinition3Enum(){ return 743;}
     748function Outputdefinition4Enum(){ return 744;}
     749function Outputdefinition5Enum(){ return 745;}
     750function Outputdefinition6Enum(){ return 746;}
     751function Outputdefinition7Enum(){ return 747;}
     752function Outputdefinition8Enum(){ return 748;}
     753function Outputdefinition9Enum(){ return 749;}
     754function Outputdefinition10Enum(){ return 750;}
     755function Outputdefinition11Enum(){ return 751;}
     756function Outputdefinition12Enum(){ return 752;}
     757function Outputdefinition13Enum(){ return 753;}
     758function Outputdefinition14Enum(){ return 754;}
     759function Outputdefinition15Enum(){ return 755;}
     760function Outputdefinition16Enum(){ return 756;}
     761function Outputdefinition17Enum(){ return 757;}
     762function Outputdefinition18Enum(){ return 758;}
     763function Outputdefinition19Enum(){ return 759;}
     764function Outputdefinition20Enum(){ return 760;}
     765function Outputdefinition21Enum(){ return 761;}
     766function Outputdefinition22Enum(){ return 762;}
     767function Outputdefinition23Enum(){ return 763;}
     768function Outputdefinition24Enum(){ return 764;}
     769function Outputdefinition25Enum(){ return 765;}
     770function Outputdefinition26Enum(){ return 766;}
     771function Outputdefinition27Enum(){ return 767;}
     772function Outputdefinition28Enum(){ return 768;}
     773function Outputdefinition29Enum(){ return 769;}
     774function Outputdefinition30Enum(){ return 770;}
     775function Outputdefinition31Enum(){ return 771;}
     776function Outputdefinition32Enum(){ return 772;}
     777function Outputdefinition33Enum(){ return 773;}
     778function Outputdefinition34Enum(){ return 774;}
     779function Outputdefinition35Enum(){ return 775;}
     780function Outputdefinition36Enum(){ return 776;}
     781function Outputdefinition37Enum(){ return 777;}
     782function Outputdefinition38Enum(){ return 778;}
     783function Outputdefinition39Enum(){ return 779;}
     784function Outputdefinition40Enum(){ return 780;}
     785function Outputdefinition41Enum(){ return 781;}
     786function Outputdefinition42Enum(){ return 782;}
     787function Outputdefinition43Enum(){ return 783;}
     788function Outputdefinition44Enum(){ return 784;}
     789function Outputdefinition45Enum(){ return 785;}
     790function Outputdefinition46Enum(){ return 786;}
     791function Outputdefinition47Enum(){ return 787;}
     792function Outputdefinition48Enum(){ return 788;}
     793function Outputdefinition49Enum(){ return 789;}
     794function Outputdefinition50Enum(){ return 790;}
     795function Outputdefinition51Enum(){ return 791;}
     796function Outputdefinition52Enum(){ return 792;}
     797function Outputdefinition53Enum(){ return 793;}
     798function Outputdefinition54Enum(){ return 794;}
     799function Outputdefinition55Enum(){ return 795;}
     800function Outputdefinition56Enum(){ return 796;}
     801function Outputdefinition57Enum(){ return 797;}
     802function Outputdefinition58Enum(){ return 798;}
     803function Outputdefinition59Enum(){ return 799;}
     804function Outputdefinition60Enum(){ return 800;}
     805function Outputdefinition61Enum(){ return 801;}
     806function Outputdefinition62Enum(){ return 802;}
     807function Outputdefinition63Enum(){ return 803;}
     808function Outputdefinition64Enum(){ return 804;}
     809function Outputdefinition65Enum(){ return 805;}
     810function Outputdefinition66Enum(){ return 806;}
     811function Outputdefinition67Enum(){ return 807;}
     812function Outputdefinition68Enum(){ return 808;}
     813function Outputdefinition69Enum(){ return 809;}
     814function Outputdefinition70Enum(){ return 810;}
     815function Outputdefinition71Enum(){ return 811;}
     816function Outputdefinition72Enum(){ return 812;}
     817function Outputdefinition73Enum(){ return 813;}
     818function Outputdefinition74Enum(){ return 814;}
     819function Outputdefinition75Enum(){ return 815;}
     820function Outputdefinition76Enum(){ return 816;}
     821function Outputdefinition77Enum(){ return 817;}
     822function Outputdefinition78Enum(){ return 818;}
     823function Outputdefinition79Enum(){ return 819;}
     824function Outputdefinition80Enum(){ return 820;}
     825function Outputdefinition81Enum(){ return 821;}
     826function Outputdefinition82Enum(){ return 822;}
     827function Outputdefinition83Enum(){ return 823;}
     828function Outputdefinition84Enum(){ return 824;}
     829function Outputdefinition85Enum(){ return 825;}
     830function Outputdefinition86Enum(){ return 826;}
     831function Outputdefinition87Enum(){ return 827;}
     832function Outputdefinition88Enum(){ return 828;}
     833function Outputdefinition89Enum(){ return 829;}
     834function Outputdefinition90Enum(){ return 830;}
     835function Outputdefinition91Enum(){ return 831;}
     836function Outputdefinition92Enum(){ return 832;}
     837function Outputdefinition93Enum(){ return 833;}
     838function Outputdefinition94Enum(){ return 834;}
     839function Outputdefinition95Enum(){ return 835;}
     840function Outputdefinition96Enum(){ return 836;}
     841function Outputdefinition97Enum(){ return 837;}
     842function Outputdefinition98Enum(){ return 838;}
     843function Outputdefinition99Enum(){ return 839;}
     844function Outputdefinition100Enum(){ return 840;}
     845function OutputdefinitionListEnum(){ return 841;}
     846function MassfluxatgateEnum(){ return 842;}
     847function MassfluxatgateNameEnum(){ return 843;}
     848function MassfluxatgateDefinitionenumEnum(){ return 844;}
     849function MassfluxatgateSegmentsEnum(){ return 845;}
     850function MisfitNameEnum(){ return 846;}
     851function MisfitDefinitionenumEnum(){ return 847;}
     852function MisfitModelEnum(){ return 848;}
    853853function MisfitObservationEnum(){ return 849;}
    854 function MisfitLocalEnum(){ return 850;}
    855 function MisfitTimeinterpolationEnum(){ return 851;}
    856 function MisfitWeightsEnum(){ return 852;}
     854function MisfitObservationEnum(){ return 850;}
     855function MisfitLocalEnum(){ return 851;}
     856function MisfitTimeinterpolationEnum(){ return 852;}
    857857function MisfitWeightsEnum(){ return 853;}
    858 function SurfaceObservationEnum(){ return 854;}
    859 function WeightsSurfaceObservationEnum(){ return 855;}
    860 function VxObsEnum(){ return 856;}
    861 function WeightsVxObsEnum(){ return 857;}
    862 function VyObsEnum(){ return 858;}
    863 function WeightsVyObsEnum(){ return 859;}
    864 function MinVelEnum(){ return 860;}
    865 function MaxVelEnum(){ return 861;}
    866 function MinVxEnum(){ return 862;}
    867 function MaxVxEnum(){ return 863;}
    868 function MaxAbsVxEnum(){ return 864;}
    869 function MinVyEnum(){ return 865;}
    870 function MaxVyEnum(){ return 866;}
    871 function MaxAbsVyEnum(){ return 867;}
    872 function MinVzEnum(){ return 868;}
    873 function MaxVzEnum(){ return 869;}
    874 function MaxAbsVzEnum(){ return 870;}
    875 function FloatingAreaEnum(){ return 871;}
    876 function GroundedAreaEnum(){ return 872;}
    877 function IceMassEnum(){ return 873;}
    878 function IceVolumeEnum(){ return 874;}
    879 function IceVolumeAboveFloatationEnum(){ return 875;}
    880 function TotalSmbEnum(){ return 876;}
    881 function AbsoluteEnum(){ return 877;}
    882 function IncrementalEnum(){ return 878;}
    883 function AugmentedLagrangianREnum(){ return 879;}
    884 function AugmentedLagrangianRhopEnum(){ return 880;}
    885 function AugmentedLagrangianRlambdaEnum(){ return 881;}
    886 function AugmentedLagrangianRholambdaEnum(){ return 882;}
    887 function AugmentedLagrangianThetaEnum(){ return 883;}
    888 function NoneEnum(){ return 884;}
    889 function AggressiveMigrationEnum(){ return 885;}
    890 function SoftMigrationEnum(){ return 886;}
    891 function SubelementMigrationEnum(){ return 887;}
    892 function SubelementMigration2Enum(){ return 888;}
    893 function ContactEnum(){ return 889;}
    894 function GroundingOnlyEnum(){ return 890;}
    895 function MaskGroundediceLevelsetEnum(){ return 891;}
    896 function GaussSegEnum(){ return 892;}
    897 function GaussTriaEnum(){ return 893;}
    898 function GaussTetraEnum(){ return 894;}
    899 function GaussPentaEnum(){ return 895;}
    900 function FSSolverEnum(){ return 896;}
    901 function AdjointEnum(){ return 897;}
    902 function ColinearEnum(){ return 898;}
    903 function ControlSteadyEnum(){ return 899;}
    904 function FsetEnum(){ return 900;}
    905 function Gradient1Enum(){ return 901;}
    906 function Gradient2Enum(){ return 902;}
    907 function Gradient3Enum(){ return 903;}
    908 function GradientEnum(){ return 904;}
    909 function GroundinglineMigrationEnum(){ return 905;}
    910 function GsetEnum(){ return 906;}
    911 function IndexEnum(){ return 907;}
    912 function IndexedEnum(){ return 908;}
    913 function IntersectEnum(){ return 909;}
    914 function NodalEnum(){ return 910;}
    915 function OldGradientEnum(){ return 911;}
    916 function OutputBufferPointerEnum(){ return 912;}
    917 function OutputBufferSizePointerEnum(){ return 913;}
    918 function OutputFilePointerEnum(){ return 914;}
    919 function ToolkitsFileNameEnum(){ return 915;}
    920 function RootPathEnum(){ return 916;}
    921 function OutputFileNameEnum(){ return 917;}
    922 function InputFileNameEnum(){ return 918;}
    923 function LockFileNameEnum(){ return 919;}
    924 function RestartFileNameEnum(){ return 920;}
    925 function ToolkitsOptionsAnalysesEnum(){ return 921;}
    926 function ToolkitsOptionsStringsEnum(){ return 922;}
    927 function QmuErrNameEnum(){ return 923;}
    928 function QmuInNameEnum(){ return 924;}
    929 function QmuOutNameEnum(){ return 925;}
    930 function RegularEnum(){ return 926;}
    931 function ScaledEnum(){ return 927;}
    932 function SeparateEnum(){ return 928;}
    933 function SsetEnum(){ return 929;}
    934 function VerboseEnum(){ return 930;}
    935 function TriangleInterpEnum(){ return 931;}
    936 function BilinearInterpEnum(){ return 932;}
    937 function NearestInterpEnum(){ return 933;}
    938 function XYEnum(){ return 934;}
    939 function XYZEnum(){ return 935;}
    940 function DenseEnum(){ return 936;}
    941 function MpiDenseEnum(){ return 937;}
    942 function MpiSparseEnum(){ return 938;}
    943 function SeqEnum(){ return 939;}
    944 function MpiEnum(){ return 940;}
    945 function MumpsEnum(){ return 941;}
    946 function GslEnum(){ return 942;}
    947 function OptionEnum(){ return 943;}
    948 function GenericOptionEnum(){ return 944;}
    949 function OptionCellEnum(){ return 945;}
    950 function OptionStructEnum(){ return 946;}
    951 function CuffeyEnum(){ return 947;}
    952 function PatersonEnum(){ return 948;}
    953 function ArrheniusEnum(){ return 949;}
    954 function LliboutryDuvalEnum(){ return 950;}
    955 function TransientIslevelsetEnum(){ return 951;}
    956 function SpcLevelsetEnum(){ return 952;}
    957 function ExtrapolationVariableEnum(){ return 953;}
    958 function IceMaskNodeActivationEnum(){ return 954;}
    959 function LevelsetfunctionSlopeXEnum(){ return 955;}
    960 function LevelsetfunctionSlopeYEnum(){ return 956;}
    961 function LevelsetfunctionPicardEnum(){ return 957;}
    962 function SealevelriseSolutionEnum(){ return 958;}
    963 function SealevelriseAnalysisEnum(){ return 959;}
    964 function SealevelriseSEnum(){ return 960;}
    965 function SealevelriseDeltathicknessEnum(){ return 961;}
    966 function SealevelriseMaxiterEnum(){ return 962;}
    967 function SealevelriseReltolEnum(){ return 963;}
    968 function SealevelriseAbstolEnum(){ return 964;}
    969 function SealevelriseLoveHEnum(){ return 965;}
    970 function SealevelriseLoveKEnum(){ return 966;}
    971 function SealevelriseRigidEnum(){ return 967;}
    972 function SealevelriseElasticEnum(){ return 968;}
    973 function SealevelriseEustaticEnum(){ return 969;}
    974 function SealevelriseLegendrePrecomputeEnum(){ return 970;}
    975 function SealevelriseLegendreCoefficientsEnum(){ return 971;}
    976 function SealevelriseGRigidEnum(){ return 972;}
    977 function SealevelriseGElasticEnum(){ return 973;}
    978 function SealevelriseStoreGreenFunctionsEnum(){ return 974;}
    979 function MaximumNumberOfDefinitionsEnum(){ return 975;}
     858function MisfitWeightsEnum(){ return 854;}
     859function SurfaceObservationEnum(){ return 855;}
     860function WeightsSurfaceObservationEnum(){ return 856;}
     861function VxObsEnum(){ return 857;}
     862function WeightsVxObsEnum(){ return 858;}
     863function VyObsEnum(){ return 859;}
     864function WeightsVyObsEnum(){ return 860;}
     865function MinVelEnum(){ return 861;}
     866function MaxVelEnum(){ return 862;}
     867function MinVxEnum(){ return 863;}
     868function MaxVxEnum(){ return 864;}
     869function MaxAbsVxEnum(){ return 865;}
     870function MinVyEnum(){ return 866;}
     871function MaxVyEnum(){ return 867;}
     872function MaxAbsVyEnum(){ return 868;}
     873function MinVzEnum(){ return 869;}
     874function MaxVzEnum(){ return 870;}
     875function MaxAbsVzEnum(){ return 871;}
     876function FloatingAreaEnum(){ return 872;}
     877function GroundedAreaEnum(){ return 873;}
     878function IceMassEnum(){ return 874;}
     879function IceVolumeEnum(){ return 875;}
     880function IceVolumeAboveFloatationEnum(){ return 876;}
     881function TotalSmbEnum(){ return 877;}
     882function AbsoluteEnum(){ return 878;}
     883function IncrementalEnum(){ return 879;}
     884function AugmentedLagrangianREnum(){ return 880;}
     885function AugmentedLagrangianRhopEnum(){ return 881;}
     886function AugmentedLagrangianRlambdaEnum(){ return 882;}
     887function AugmentedLagrangianRholambdaEnum(){ return 883;}
     888function AugmentedLagrangianThetaEnum(){ return 884;}
     889function NoneEnum(){ return 885;}
     890function AggressiveMigrationEnum(){ return 886;}
     891function SoftMigrationEnum(){ return 887;}
     892function SubelementMigrationEnum(){ return 888;}
     893function SubelementMigration2Enum(){ return 889;}
     894function ContactEnum(){ return 890;}
     895function GroundingOnlyEnum(){ return 891;}
     896function MaskGroundediceLevelsetEnum(){ return 892;}
     897function GaussSegEnum(){ return 893;}
     898function GaussTriaEnum(){ return 894;}
     899function GaussTetraEnum(){ return 895;}
     900function GaussPentaEnum(){ return 896;}
     901function FSSolverEnum(){ return 897;}
     902function AdjointEnum(){ return 898;}
     903function ColinearEnum(){ return 899;}
     904function ControlSteadyEnum(){ return 900;}
     905function FsetEnum(){ return 901;}
     906function Gradient1Enum(){ return 902;}
     907function Gradient2Enum(){ return 903;}
     908function Gradient3Enum(){ return 904;}
     909function GradientEnum(){ return 905;}
     910function GroundinglineMigrationEnum(){ return 906;}
     911function GsetEnum(){ return 907;}
     912function IndexEnum(){ return 908;}
     913function IndexedEnum(){ return 909;}
     914function IntersectEnum(){ return 910;}
     915function NodalEnum(){ return 911;}
     916function OldGradientEnum(){ return 912;}
     917function OutputBufferPointerEnum(){ return 913;}
     918function OutputBufferSizePointerEnum(){ return 914;}
     919function OutputFilePointerEnum(){ return 915;}
     920function ToolkitsFileNameEnum(){ return 916;}
     921function RootPathEnum(){ return 917;}
     922function OutputFileNameEnum(){ return 918;}
     923function InputFileNameEnum(){ return 919;}
     924function LockFileNameEnum(){ return 920;}
     925function RestartFileNameEnum(){ return 921;}
     926function ToolkitsOptionsAnalysesEnum(){ return 922;}
     927function ToolkitsOptionsStringsEnum(){ return 923;}
     928function QmuErrNameEnum(){ return 924;}
     929function QmuInNameEnum(){ return 925;}
     930function QmuOutNameEnum(){ return 926;}
     931function RegularEnum(){ return 927;}
     932function ScaledEnum(){ return 928;}
     933function SeparateEnum(){ return 929;}
     934function SsetEnum(){ return 930;}
     935function VerboseEnum(){ return 931;}
     936function TriangleInterpEnum(){ return 932;}
     937function BilinearInterpEnum(){ return 933;}
     938function NearestInterpEnum(){ return 934;}
     939function XYEnum(){ return 935;}
     940function XYZEnum(){ return 936;}
     941function DenseEnum(){ return 937;}
     942function MpiDenseEnum(){ return 938;}
     943function MpiSparseEnum(){ return 939;}
     944function SeqEnum(){ return 940;}
     945function MpiEnum(){ return 941;}
     946function MumpsEnum(){ return 942;}
     947function GslEnum(){ return 943;}
     948function OptionEnum(){ return 944;}
     949function GenericOptionEnum(){ return 945;}
     950function OptionCellEnum(){ return 946;}
     951function OptionStructEnum(){ return 947;}
     952function CuffeyEnum(){ return 948;}
     953function PatersonEnum(){ return 949;}
     954function ArrheniusEnum(){ return 950;}
     955function LliboutryDuvalEnum(){ return 951;}
     956function TransientIslevelsetEnum(){ return 952;}
     957function SpcLevelsetEnum(){ return 953;}
     958function ExtrapolationVariableEnum(){ return 954;}
     959function IceMaskNodeActivationEnum(){ return 955;}
     960function LevelsetfunctionSlopeXEnum(){ return 956;}
     961function LevelsetfunctionSlopeYEnum(){ return 957;}
     962function LevelsetfunctionPicardEnum(){ return 958;}
     963function SealevelriseSolutionEnum(){ return 959;}
     964function SealevelriseAnalysisEnum(){ return 960;}
     965function SealevelriseSEnum(){ return 961;}
     966function SealevelriseDeltathicknessEnum(){ return 962;}
     967function SealevelriseMaxiterEnum(){ return 963;}
     968function SealevelriseReltolEnum(){ return 964;}
     969function SealevelriseAbstolEnum(){ return 965;}
     970function SealevelriseLoveHEnum(){ return 966;}
     971function SealevelriseLoveKEnum(){ return 967;}
     972function SealevelriseRigidEnum(){ return 968;}
     973function SealevelriseElasticEnum(){ return 969;}
     974function SealevelriseEustaticEnum(){ return 970;}
     975function SealevelriseLegendrePrecomputeEnum(){ return 971;}
     976function SealevelriseLegendreCoefficientsEnum(){ return 972;}
     977function SealevelriseGRigidEnum(){ return 973;}
     978function SealevelriseGElasticEnum(){ return 974;}
     979function SealevelriseStoreGreenFunctionsEnum(){ return 975;}
     980function MaximumNumberOfDefinitionsEnum(){ return 976;}
  • issm/trunk-jpl/src/m/enum/EnumDefinitions.py

    r20014 r20016  
    673673def ThicknessAlongGradientEnum(): return StringToEnum("ThicknessAlongGradient")[0]
    674674def ThicknessAcrossGradientEnum(): return StringToEnum("ThicknessAcrossGradient")[0]
     675def ThicknessPositiveEnum(): return StringToEnum("ThicknessPositive")[0]
    675676def IntMatParamEnum(): return StringToEnum("IntMatParam")[0]
    676677def RheologyBbarAbsGradientEnum(): return StringToEnum("RheologyBbarAbsGradient")[0]
  • issm/trunk-jpl/src/m/inversions/marshallcostfunctions.m

    r18994 r20016  
    1313        pos=find(cost_functions==506); data(pos)=BalancethicknessMisfitEnum();
    1414        pos=find(cost_functions==507); data(pos)=RheologyBAbsGradientEnum();
     15        pos=find(cost_functions==510); data(pos)=ThicknessPositiveEnum();
    1516        pos=find(cost_functions==601); data(pos)=SurfaceAbsMisfitEnum();
  • issm/trunk-jpl/src/m/inversions/supportedcostfunctions.m

    r18994 r20016  
    11function list = supportedcostfunctions(),
    22
    3         list = [101:105 201 501:507 601:604];
     3        list = [101:105 201 501:507 510 601:604];
Note: See TracChangeset for help on using the changeset viewer.