Changeset 27960


Ignore:
Timestamp:
10/11/23 11:28:27 (18 months ago)
Author:
Mathieu Morlighem
Message:

NEW: added FrictionAlpha2 as a new requested output

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

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/classes/Elements/Element.cpp

    r27940 r27960  
    12511251        /*Return: */
    12521252        return this->FloatingArea(scaled);
     1253}
     1254/*}}}*/
     1255void       Element::FrictionAlpha2CreateInput(void){/*{{{*/
     1256
     1257        /*Return if element is inactive*/
     1258        if(this->IsAllFloating() || !this->IsIceInElement()) return;
     1259
     1260        /*Intermediaries*/
     1261        int      domaintype, dim;
     1262        Element* basalelement = NULL;
     1263
     1264        /*Get basal element*/
     1265        this->FindParam(&domaintype,DomainTypeEnum);
     1266        switch(domaintype){
     1267                case Domain2DhorizontalEnum:
     1268                        basalelement = this;
     1269                        dim = 2;
     1270                        break;
     1271                case Domain3DEnum: case Domain2DverticalEnum:
     1272                        if(!this->IsOnBase()) return;
     1273                        basalelement = this->SpawnBasalElement(true);
     1274                        dim = 2;
     1275                        break;
     1276                default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
     1277        }
     1278
     1279        int numvertices = basalelement->GetNumberOfVertices();
     1280
     1281        /*build friction object, used later on: */
     1282        Friction* friction=new Friction(basalelement,dim);
     1283        IssmDouble alpha2_list[MAXVERTICES];
     1284        IssmDouble alpha2;
     1285
     1286        Gauss* gauss=this->NewGauss();
     1287        for(int i=0;i<numvertices;i++){
     1288                gauss->GaussVertex(i);
     1289
     1290                friction->GetAlpha2(&alpha2,gauss);
     1291                alpha2_list[i] = alpha2;
     1292        }
     1293
     1294        /*Clean up and return*/
     1295        delete gauss;
     1296        delete friction;
     1297        if(basalelement->IsSpawnedElement()){basalelement->DeleteMaterials(); delete basalelement;};
     1298        this->AddBasalInput(FrictionAlpha2Enum,&alpha2_list[0],P1Enum);
    12531299}
    12541300/*}}}*/
     
    40774123}
    40784124/*}}}*/
    4079 
    4080 
    4081 
    40824125void       Element::ResultInterpolation(int* pinterpolation,int* pnodesperelement,int* parray_size, int output_enum){/*{{{*/
    40834126
     
    40854128        switch(output_enum){
    40864129                case ViscousHeatingEnum: this->ViscousHeatingCreateInput(); break;
     4130                case FrictionAlpha2Enum: this->FrictionAlpha2CreateInput(); break;
    40874131                case StressMaxPrincipalEnum: this->StressMaxPrincipalCreateInput(); break;
    40884132                case StressTensorxxEnum:
  • issm/trunk-jpl/src/c/classes/Elements/Element.h

    r27856 r27960  
    225225                void               TransformStiffnessMatrixCoord(ElementMatrix* Ke,Node** nodes,int numnodes,int* cs_array);
    226226                void               TransformStiffnessMatrixCoord(ElementMatrix* Ke,int numnodes,int* transformenum_list){_error_("not implemented yet");};/*Tiling only*/
     227                void               FrictionAlpha2CreateInput(void);
    227228                void               ViscousHeatingCreateInput(void);
    228229                void               ThermalToEnthalpy(IssmDouble * penthalpy,IssmDouble temperature,IssmDouble waterfraction,IssmDouble pressure);
  • issm/trunk-jpl/src/c/shared/Enum/Enum.vim

    r27936 r27960  
    846846syn keyword cConstant EtaDiffEnum
    847847syn keyword cConstant FlowequationBorderFSEnum
     848syn keyword cConstant FrictionAlpha2Enum
    848849syn keyword cConstant FrictionAsEnum
    849850syn keyword cConstant FrictionCEnum
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r27936 r27960  
    842842        EtaDiffEnum,
    843843        FlowequationBorderFSEnum,
     844        FrictionAlpha2Enum,
    844845        FrictionAsEnum,
    845846        FrictionCEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r27936 r27960  
    848848                case EtaDiffEnum : return "EtaDiff";
    849849                case FlowequationBorderFSEnum : return "FlowequationBorderFS";
     850                case FrictionAlpha2Enum : return "FrictionAlpha2";
    850851                case FrictionAsEnum : return "FrictionAs";
    851852                case FrictionCEnum : return "FrictionC";
  • issm/trunk-jpl/src/c/shared/Enum/Enumjl.vim

    r27936 r27960  
    839839syn keyword juliaConstC EtaDiffEnum
    840840syn keyword juliaConstC FlowequationBorderFSEnum
     841syn keyword juliaConstC FrictionAlpha2Enum
    841842syn keyword juliaConstC FrictionAsEnum
    842843syn keyword juliaConstC FrictionCEnum
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r27936 r27960  
    866866              else if (strcmp(name,"EtaDiff")==0) return EtaDiffEnum;
    867867              else if (strcmp(name,"FlowequationBorderFS")==0) return FlowequationBorderFSEnum;
     868              else if (strcmp(name,"FrictionAlpha2")==0) return FrictionAlpha2Enum;
    868869              else if (strcmp(name,"FrictionAs")==0) return FrictionAsEnum;
    869870              else if (strcmp(name,"FrictionC")==0) return FrictionCEnum;
     
    874875              else if (strcmp(name,"FrictionK")==0) return FrictionKEnum;
    875876              else if (strcmp(name,"FrictionM")==0) return FrictionMEnum;
    876               else if (strcmp(name,"FrictionP")==0) return FrictionPEnum;
    877877         else stage=8;
    878878   }
    879879   if(stage==8){
    880               if (strcmp(name,"FrictionPressureAdjustedTemperature")==0) return FrictionPressureAdjustedTemperatureEnum;
     880              if (strcmp(name,"FrictionP")==0) return FrictionPEnum;
     881              else if (strcmp(name,"FrictionPressureAdjustedTemperature")==0) return FrictionPressureAdjustedTemperatureEnum;
    881882              else if (strcmp(name,"FrictionQ")==0) return FrictionQEnum;
    882883              else if (strcmp(name,"FrictionSedimentCompressibilityCoefficient")==0) return FrictionSedimentCompressibilityCoefficientEnum;
     
    997998              else if (strcmp(name,"SamplingBeta")==0) return SamplingBetaEnum;
    998999              else if (strcmp(name,"SamplingKappa")==0) return SamplingKappaEnum;
    999               else if (strcmp(name,"SamplingPhi")==0) return SamplingPhiEnum;
    10001000         else stage=9;
    10011001   }
    10021002   if(stage==9){
    1003               if (strcmp(name,"SamplingTau")==0) return SamplingTauEnum;
     1003              if (strcmp(name,"SamplingPhi")==0) return SamplingPhiEnum;
     1004              else if (strcmp(name,"SamplingTau")==0) return SamplingTauEnum;
    10041005              else if (strcmp(name,"Sealevel")==0) return SealevelEnum;
    10051006              else if (strcmp(name,"SealevelGRD")==0) return SealevelGRDEnum;
     
    11201121              else if (strcmp(name,"SmbDzini")==0) return SmbDziniEnum;
    11211122              else if (strcmp(name,"SmbEAir")==0) return SmbEAirEnum;
    1122               else if (strcmp(name,"SmbEC")==0) return SmbECEnum;
    11231123         else stage=10;
    11241124   }
    11251125   if(stage==10){
    1126               if (strcmp(name,"SmbECDt")==0) return SmbECDtEnum;
     1126              if (strcmp(name,"SmbEC")==0) return SmbECEnum;
     1127              else if (strcmp(name,"SmbECDt")==0) return SmbECDtEnum;
    11271128              else if (strcmp(name,"SmbECini")==0) return SmbECiniEnum;
    11281129              else if (strcmp(name,"SmbEla")==0) return SmbElaEnum;
     
    12431244              else if (strcmp(name,"SealevelArea")==0) return SealevelAreaEnum;
    12441245              else if (strcmp(name,"SurfaceArea")==0) return SurfaceAreaEnum;
    1245               else if (strcmp(name,"SurfaceAverageVelMisfit")==0) return SurfaceAverageVelMisfitEnum;
    12461246         else stage=11;
    12471247   }
    12481248   if(stage==11){
    1249               if (strcmp(name,"SurfaceCrevasse")==0) return SurfaceCrevasseEnum;
     1249              if (strcmp(name,"SurfaceAverageVelMisfit")==0) return SurfaceAverageVelMisfitEnum;
     1250              else if (strcmp(name,"SurfaceCrevasse")==0) return SurfaceCrevasseEnum;
    12501251              else if (strcmp(name,"Surface")==0) return SurfaceEnum;
    12511252              else if (strcmp(name,"SurfaceOld")==0) return SurfaceOldEnum;
     
    13661367              else if (strcmp(name,"Outputdefinition57")==0) return Outputdefinition57Enum;
    13671368              else if (strcmp(name,"Outputdefinition58")==0) return Outputdefinition58Enum;
    1368               else if (strcmp(name,"Outputdefinition59")==0) return Outputdefinition59Enum;
    13691369         else stage=12;
    13701370   }
    13711371   if(stage==12){
    1372               if (strcmp(name,"Outputdefinition5")==0) return Outputdefinition5Enum;
     1372              if (strcmp(name,"Outputdefinition59")==0) return Outputdefinition59Enum;
     1373              else if (strcmp(name,"Outputdefinition5")==0) return Outputdefinition5Enum;
    13731374              else if (strcmp(name,"Outputdefinition60")==0) return Outputdefinition60Enum;
    13741375              else if (strcmp(name,"Outputdefinition61")==0) return Outputdefinition61Enum;
     
    14891490              else if (strcmp(name,"DataSet")==0) return DataSetEnum;
    14901491              else if (strcmp(name,"DataSetParam")==0) return DataSetParamEnum;
    1491               else if (strcmp(name,"DatasetInput")==0) return DatasetInputEnum;
    14921492         else stage=13;
    14931493   }
    14941494   if(stage==13){
    1495               if (strcmp(name,"DebrisAnalysis")==0) return DebrisAnalysisEnum;
     1495              if (strcmp(name,"DatasetInput")==0) return DatasetInputEnum;
     1496              else if (strcmp(name,"DebrisAnalysis")==0) return DebrisAnalysisEnum;
    14961497              else if (strcmp(name,"DebrisSolution")==0) return DebrisSolutionEnum;
    14971498              else if (strcmp(name,"DefaultAnalysis")==0) return DefaultAnalysisEnum;
     
    16121613              else if (strcmp(name,"LliboutryDuval")==0) return LliboutryDuvalEnum;
    16131614              else if (strcmp(name,"Loads")==0) return LoadsEnum;
    1614               else if (strcmp(name,"LoveAnalysis")==0) return LoveAnalysisEnum;
    16151615         else stage=14;
    16161616   }
    16171617   if(stage==14){
    1618               if (strcmp(name,"LoveHf")==0) return LoveHfEnum;
     1618              if (strcmp(name,"LoveAnalysis")==0) return LoveAnalysisEnum;
     1619              else if (strcmp(name,"LoveHf")==0) return LoveHfEnum;
    16191620              else if (strcmp(name,"LoveHt")==0) return LoveHtEnum;
    16201621              else if (strcmp(name,"LoveKernelsImag")==0) return LoveKernelsImagEnum;
     
    17351736              else if (strcmp(name,"SMBmeltcomponents")==0) return SMBmeltcomponentsEnum;
    17361737              else if (strcmp(name,"SMBpdd")==0) return SMBpddEnum;
    1737               else if (strcmp(name,"SMBpddSicopolis")==0) return SMBpddSicopolisEnum;
    17381738         else stage=15;
    17391739   }
    17401740   if(stage==15){
    1741               if (strcmp(name,"SMBsemic")==0) return SMBsemicEnum;
     1741              if (strcmp(name,"SMBpddSicopolis")==0) return SMBpddSicopolisEnum;
     1742              else if (strcmp(name,"SMBsemic")==0) return SMBsemicEnum;
    17421743              else if (strcmp(name,"SSAApproximation")==0) return SSAApproximationEnum;
    17431744              else if (strcmp(name,"SSAFSApproximation")==0) return SSAFSApproximationEnum;
Note: See TracChangeset for help on using the changeset viewer.