Changeset 18528


Ignore:
Timestamp:
09/16/14 15:55:57 (10 years ago)
Author:
seroussi
Message:

NEW: added output for maximum local divergence

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

Legend:

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

    r18521 r18528  
    489489
    490490                case DivergenceEnum:               this->Divergencex(responses); break;
     491                case MaxDivergenceEnum:            this->MaxDivergencex(responses); break;
    491492                case IceVolumeEnum:                this->IceVolumex(responses); break;
    492493                case IceVolumeAboveFloatationEnum: this->IceVolumeAboveFloatationx(responses); break;
     
    563564                                /*Scalar output*/
    564565                                case DivergenceEnum:               this->Divergencex(&double_result);               break;
     566                                case MaxDivergenceEnum:            this->MaxDivergencex(&double_result);            break;
    565567                                case IceVolumeEnum:                this->IceVolumex(&double_result);                break;
    566568                                case IceVolumeAboveFloatationEnum: this->IceVolumeAboveFloatationx(&double_result); break;
     
    11251127
    11261128}/*}}}*/
     1129void FemModel::MaxDivergencex(IssmDouble* pdiv){/*{{{*/
     1130
     1131        IssmDouble local_divergence;
     1132        IssmDouble node_max_divergence;
     1133        IssmDouble max_divergence = -INFINITY;
     1134
     1135        for(int i=0;i<this->elements->Size();i++){
     1136                Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i));
     1137                local_divergence=element->Divergence();
     1138                if(fabs(local_divergence)>max_divergence) max_divergence=fabs(local_divergence);
     1139        }
     1140        ISSM_MPI_Reduce(&max_divergence,&node_max_divergence,1,ISSM_MPI_DOUBLE,ISSM_MPI_MAX,0,IssmComm::GetComm() );
     1141        ISSM_MPI_Bcast(&node_max_divergence,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm());
     1142        max_divergence=node_max_divergence;
     1143
     1144        /*Assign output pointers: */
     1145        *pdiv=max_divergence;
     1146
     1147}/*}}}*/
    11271148void FemModel::GetInputLocalMinMaxOnNodesx(IssmDouble** pmin,IssmDouble** pmax,IssmDouble* ug){/*{{{*/
    11281149
  • issm/trunk-jpl/src/c/classes/FemModel.h

    r18476 r18528  
    7676                void TotalSmbx(IssmDouble* pSmb);
    7777                void Divergencex(IssmDouble* pdiv);
     78                void MaxDivergencex(IssmDouble* pdiv);
    7879                void IceVolumex(IssmDouble* pV);
    7980                void IceVolumeAboveFloatationx(IssmDouble* pV);
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r18511 r18528  
    580580        StrainRatezzEnum,
    581581        DivergenceEnum,
     582        MaxDivergenceEnum,
    582583        GiaCrossSectionShapeEnum,
    583584        GiadWdtEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r18511 r18528  
    571571                case StrainRatezzEnum : return "StrainRatezz";
    572572                case DivergenceEnum : return "Divergence";
     573                case MaxDivergenceEnum : return "MaxDivergence";
    573574                case GiaCrossSectionShapeEnum : return "GiaCrossSectionShape";
    574575                case GiadWdtEnum : return "GiadWdt";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r18511 r18528  
    583583              else if (strcmp(name,"StrainRatezz")==0) return StrainRatezzEnum;
    584584              else if (strcmp(name,"Divergence")==0) return DivergenceEnum;
     585              else if (strcmp(name,"MaxDivergence")==0) return MaxDivergenceEnum;
    585586              else if (strcmp(name,"GiaCrossSectionShape")==0) return GiaCrossSectionShapeEnum;
    586587              else if (strcmp(name,"GiadWdt")==0) return GiadWdtEnum;
     
    628629              else if (strcmp(name,"MisfitObservationEnum")==0) return MisfitObservationEnumEnum;
    629630              else if (strcmp(name,"MisfitTimeinterpolation")==0) return MisfitTimeinterpolationEnum;
    630               else if (strcmp(name,"MisfitWeights")==0) return MisfitWeightsEnum;
    631631         else stage=6;
    632632   }
    633633   if(stage==6){
    634               if (strcmp(name,"MisfitWeightsEnum")==0) return MisfitWeightsEnumEnum;
     634              if (strcmp(name,"MisfitWeights")==0) return MisfitWeightsEnum;
     635              else if (strcmp(name,"MisfitWeightsEnum")==0) return MisfitWeightsEnumEnum;
    635636              else if (strcmp(name,"SurfaceObservation")==0) return SurfaceObservationEnum;
    636637              else if (strcmp(name,"WeightsSurfaceObservation")==0) return WeightsSurfaceObservationEnum;
     
    751752              else if (strcmp(name,"MaterialsTimeRelaxationStress")==0) return MaterialsTimeRelaxationStressEnum;
    752753              else if (strcmp(name,"MaterialsTimeRelaxationDamage")==0) return MaterialsTimeRelaxationDamageEnum;
    753               else if (strcmp(name,"MaterialsRidgingExponent")==0) return MaterialsRidgingExponentEnum;
    754754         else stage=7;
    755755   }
    756756   if(stage==7){
    757               if (strcmp(name,"MaterialsCohesion")==0) return MaterialsCohesionEnum;
     757              if (strcmp(name,"MaterialsRidgingExponent")==0) return MaterialsRidgingExponentEnum;
     758              else if (strcmp(name,"MaterialsCohesion")==0) return MaterialsCohesionEnum;
    758759              else if (strcmp(name,"MaterialsInternalFrictionCoef")==0) return MaterialsInternalFrictionCoefEnum;
    759760              else if (strcmp(name,"MaterialsCompressionCoef")==0) return MaterialsCompressionCoefEnum;
  • issm/trunk-jpl/src/m/enum/EnumDefinitions.py

    r18512 r18528  
    563563def StrainRatezzEnum(): return StringToEnum("StrainRatezz")[0]
    564564def DivergenceEnum(): return StringToEnum("Divergence")[0]
     565def MaxDivergenceEnum(): return StringToEnum("MaxDivergence")[0]
    565566def GiaCrossSectionShapeEnum(): return StringToEnum("GiaCrossSectionShape")[0]
    566567def GiadWdtEnum(): return StringToEnum("GiadWdt")[0]
Note: See TracChangeset for help on using the changeset viewer.