Changeset 24889


Ignore:
Timestamp:
05/22/20 10:13:54 (5 years ago)
Author:
Eric.Larour
Message:

CHG: removed maskpsl, switched groundedice_levelset to ocean_levelset (thanks Mathieu!).
Adapted tests 2002 to 2010

Location:
issm/trunk-jpl
Files:
3 deleted
12 edited

Legend:

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

    r24861 r24889  
    3737        iomodel->FetchDataToInput(inputs2,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum);
    3838        iomodel->FetchDataToInput(inputs2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);
    39         //those only if we have requested geodetic computations:
    4039        iomodel->FetchData(&geodetic,"md.slr.geodetic");
    41         if (geodetic){
    42                 char* masktype=NULL;
    43                 iomodel->FetchData(&masktype,"md.mask.type");
    44                 if (strcmp(masktype,"maskpsl")==0){
    45                         iomodel->FetchDataToInput(inputs2,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum);
    46                         iomodel->FetchDataToInput(inputs2,elements,"md.mask.land_levelset",MaskLandLevelsetEnum);
    47                 }
    48                 xDelete<char>(masktype);
    49         }
    5040        iomodel->FetchDataToInput(inputs2,elements,"md.slr.deltathickness",SealevelriseDeltathicknessEnum);
    5141        iomodel->FetchDataToInput(inputs2,elements,"md.slr.spcthickness",SealevelriseSpcthicknessEnum);
  • issm/trunk-jpl/src/c/classes/Elements/Element.cpp

    r24861 r24889  
    20252025/*}}}*/
    20262026bool       Element::IsLandInElement(){/*{{{*/
    2027         Input2* input=this->GetInput2(MaskLandLevelsetEnum); _assert_(input);
     2027        Input2* input=this->GetInput2(MaskOceanLevelsetEnum); _assert_(input);
    20282028        return (input->GetInputMax()>0.);
    20292029}
     
    20312031bool       Element::IsOceanInElement(){/*{{{*/
    20322032        Input2* input=this->GetInput2(MaskOceanLevelsetEnum); _assert_(input);
    2033         return (input->GetInputMax()>0.);
     2033        return (input->GetInputMin()<0.);
    20342034}
    20352035/*}}}*/
     
    20992099
    21002100}/*}}}*/
    2101 bool       Element::IsWaterInElement(){/*{{{*/
    2102         Input2* input=this->GetInput2(MaskOceanLevelsetEnum); _assert_(input);
    2103         return (input->GetInputMax()>0.);
    2104 }
    2105 /*}}}*/
    21062101void       Element::LinearFloatingiceMeltingRate(){/*{{{*/
    21072102
  • issm/trunk-jpl/src/c/classes/Elements/Element.h

    r24790 r24889  
    141141                bool               IsIceInElement();
    142142                bool               IsIceOnlyInElement();
     143                bool               IsOceanInElement();
    143144                bool               IsLandInElement();
    144                 bool               IsOceanInElement();
    145145                void               Ismip6FloatingiceMeltingRate();
    146                 bool               IsWaterInElement();
    147146                void               LinearFloatingiceMeltingRate();
    148147                void               SpatialLinearFloatingiceMeltingRate();
  • issm/trunk-jpl/src/c/classes/Elements/Tria.cpp

    r24861 r24889  
    54495449IssmDouble    Tria::OceanArea(void){ /*{{{*/
    54505450
    5451         if(IsWaterInElement()) return GetAreaSpherical();
     5451        if(IsOceanInElement()) return GetAreaSpherical();
    54525452        else return 0;
    54535453
     
    54565456IssmDouble Tria::OceanAverage(IssmDouble* Sg){ /*{{{*/
    54575457
    5458         if(IsWaterInElement()){
     5458        if(IsOceanInElement()){
    54595459
    54605460                IssmDouble area;
     
    54755475void    Tria::SealevelriseMomentOfInertia(IssmDouble* dI_list,IssmDouble* Sg_old,IssmDouble eartharea){/*{{{*/
    54765476        /*early return if we are not on an ice cap OR ocean:*/
    5477         if(!IsIceOnlyInElement() && !IsWaterInElement()){
     5477        if(!IsIceOnlyInElement() && !IsOceanInElement()){
    54785478                dI_list[0] = 0.0; // this is important!!!
    54795479                dI_list[1] = 0.0; // this is important!!!
     
    55285528        re=(llr_list[0][2]+llr_list[1][2]+llr_list[2][2])/3.0;
    55295529
    5530         if(IsWaterInElement()){
     5530        if(IsOceanInElement()){
    55315531                IssmDouble rho_water, S;
    55325532
     
    59735973
    59745974        /*early return if we are not on the ocean:*/
    5975         if (!IsWaterInElement()){
     5975        if (!IsOceanInElement()){
    59765976                constant=0; this->AddInput2(SealevelEustaticOceanMaskEnum,&constant,P0Enum);
    59775977                return;
     
    61266126
    61276127        /*early return if we are not on the ocean or on an ice cap:*/
    6128         if(!IsIceOnlyInElement() && !IsWaterInElement()) return;
     6128        if(!IsIceOnlyInElement() && !IsOceanInElement()) return;
    61296129
    61306130        /*early return if we are fully floating: */
     
    62686268                        }
    62696269                }
    6270                 else if(IsWaterInElement()) {
     6270                else if(IsOceanInElement()) {
    62716271                        U_values[i]+=3*rho_water/rho_earth*area/eartharea*S*U_elastic[i];
    62726272                        if(horiz){
  • issm/trunk-jpl/src/c/shared/Enum/Enum.vim

    r24861 r24889  
    627627syn keyword cConstant MaskOceanLevelsetEnum
    628628syn keyword cConstant MaskIceLevelsetEnum
    629 syn keyword cConstant MaskLandLevelsetEnum
    630629syn keyword cConstant MasstransportSpcthicknessEnum
    631630syn keyword cConstant MaterialsRheologyBEnum
     
    13421341syn keyword cType Cfsurfacesquare
    13431342syn keyword cType Channel
    1344 syn keyword cType classes
    13451343syn keyword cType Constraint
    13461344syn keyword cType Constraints
     
    13491347syn keyword cType ControlInput2
    13501348syn keyword cType Covertree
     1349syn keyword cType DataSetParam
    13511350syn keyword cType DatasetInput2
    1352 syn keyword cType DataSetParam
    13531351syn keyword cType Definition
    13541352syn keyword cType DependentObject
     
    13621360syn keyword cType ElementInput2
    13631361syn keyword cType ElementMatrix
     1362syn keyword cType ElementVector
    13641363syn keyword cType Elements
    1365 syn keyword cType ElementVector
    13661364syn keyword cType ExponentialVariogram
    13671365syn keyword cType ExternalResult
     
    13701368syn keyword cType Friction
    13711369syn keyword cType Gauss
    1372 syn keyword cType GaussianVariogram
    1373 syn keyword cType gaussobjects
    13741370syn keyword cType GaussPenta
    13751371syn keyword cType GaussSeg
    13761372syn keyword cType GaussTetra
    13771373syn keyword cType GaussTria
     1374syn keyword cType GaussianVariogram
    13781375syn keyword cType GenericExternalResult
    13791376syn keyword cType GenericOption
     
    13901387syn keyword cType IssmDirectApplicInterface
    13911388syn keyword cType IssmParallelDirectApplicInterface
    1392 syn keyword cType krigingobjects
    13931389syn keyword cType Load
    13941390syn keyword cType Loads
     
    14011397syn keyword cType Matice
    14021398syn keyword cType Matlitho
    1403 syn keyword cType matrixobjects
    14041399syn keyword cType MatrixParam
    14051400syn keyword cType Misfit
     
    14141409syn keyword cType Observations
    14151410syn keyword cType Option
     1411syn keyword cType OptionUtilities
    14161412syn keyword cType Options
    1417 syn keyword cType OptionUtilities
    14181413syn keyword cType Param
    14191414syn keyword cType Parameters
     
    14291424syn keyword cType Regionaloutput
    14301425syn keyword cType Results
     1426syn keyword cType RiftStruct
    14311427syn keyword cType Riftfront
    1432 syn keyword cType RiftStruct
    14331428syn keyword cType Seg
    14341429syn keyword cType SegInput2
     1430syn keyword cType SegRef
    14351431syn keyword cType Segment
    1436 syn keyword cType SegRef
    14371432syn keyword cType SpcDynamic
    14381433syn keyword cType SpcStatic
     
    14531448syn keyword cType Vertex
    14541449syn keyword cType Vertices
     1450syn keyword cType classes
     1451syn keyword cType gaussobjects
     1452syn keyword cType krigingobjects
     1453syn keyword cType matrixobjects
    14551454syn keyword cType AdjointBalancethickness2Analysis
    14561455syn keyword cType AdjointBalancethicknessAnalysis
     
    14711470syn keyword cType FreeSurfaceBaseAnalysis
    14721471syn keyword cType FreeSurfaceTopAnalysis
     1472syn keyword cType GLheightadvectionAnalysis
    14731473syn keyword cType GiaIvinsAnalysis
    1474 syn keyword cType GLheightadvectionAnalysis
    14751474syn keyword cType HydrologyDCEfficientAnalysis
    14761475syn keyword cType HydrologyDCInefficientAnalysis
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r24861 r24889  
    624624        MaskOceanLevelsetEnum,
    625625        MaskIceLevelsetEnum,
    626         MaskLandLevelsetEnum,
    627626        MasstransportSpcthicknessEnum,
    628627        MaterialsRheologyBEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r24861 r24889  
    629629                case MaskOceanLevelsetEnum : return "MaskOceanLevelset";
    630630                case MaskIceLevelsetEnum : return "MaskIceLevelset";
    631                 case MaskLandLevelsetEnum : return "MaskLandLevelset";
    632631                case MasstransportSpcthicknessEnum : return "MasstransportSpcthickness";
    633632                case MaterialsRheologyBEnum : return "MaterialsRheologyB";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r24861 r24889  
    644644              else if (strcmp(name,"MaskOceanLevelset")==0) return MaskOceanLevelsetEnum;
    645645              else if (strcmp(name,"MaskIceLevelset")==0) return MaskIceLevelsetEnum;
    646               else if (strcmp(name,"MaskLandLevelset")==0) return MaskLandLevelsetEnum;
    647646              else if (strcmp(name,"MasstransportSpcthickness")==0) return MasstransportSpcthicknessEnum;
    648647              else if (strcmp(name,"MaterialsRheologyB")==0) return MaterialsRheologyBEnum;
     
    752751              else if (strcmp(name,"SmbMassBalance")==0) return SmbMassBalanceEnum;
    753752              else if (strcmp(name,"SmbMassBalanceSubstep")==0) return SmbMassBalanceSubstepEnum;
     753              else if (strcmp(name,"SmbMassBalanceTransient")==0) return SmbMassBalanceTransientEnum;
    754754         else stage=7;
    755755   }
    756756   if(stage==7){
    757               if (strcmp(name,"SmbMassBalanceTransient")==0) return SmbMassBalanceTransientEnum;
    758               else if (strcmp(name,"SmbMeanLHF")==0) return SmbMeanLHFEnum;
     757              if (strcmp(name,"SmbMeanLHF")==0) return SmbMeanLHFEnum;
    759758              else if (strcmp(name,"SmbMeanSHF")==0) return SmbMeanSHFEnum;
    760759              else if (strcmp(name,"SmbMeanULW")==0) return SmbMeanULWEnum;
     
    875874              else if (strcmp(name,"Outputdefinition14")==0) return Outputdefinition14Enum;
    876875              else if (strcmp(name,"Outputdefinition15")==0) return Outputdefinition15Enum;
     876              else if (strcmp(name,"Outputdefinition16")==0) return Outputdefinition16Enum;
    877877         else stage=8;
    878878   }
    879879   if(stage==8){
    880               if (strcmp(name,"Outputdefinition16")==0) return Outputdefinition16Enum;
    881               else if (strcmp(name,"Outputdefinition17")==0) return Outputdefinition17Enum;
     880              if (strcmp(name,"Outputdefinition17")==0) return Outputdefinition17Enum;
    882881              else if (strcmp(name,"Outputdefinition18")==0) return Outputdefinition18Enum;
    883882              else if (strcmp(name,"Outputdefinition19")==0) return Outputdefinition19Enum;
     
    998997              else if (strcmp(name,"BedSlopeSolution")==0) return BedSlopeSolutionEnum;
    999998              else if (strcmp(name,"BoolExternalResult")==0) return BoolExternalResultEnum;
     999              else if (strcmp(name,"BoolInput")==0) return BoolInputEnum;
    10001000         else stage=9;
    10011001   }
    10021002   if(stage==9){
    1003               if (strcmp(name,"BoolInput")==0) return BoolInputEnum;
    1004               else if (strcmp(name,"BoolInput2")==0) return BoolInput2Enum;
     1003              if (strcmp(name,"BoolInput2")==0) return BoolInput2Enum;
    10051004              else if (strcmp(name,"IntInput2")==0) return IntInput2Enum;
    10061005              else if (strcmp(name,"BoolParam")==0) return BoolParamEnum;
     
    11211120              else if (strcmp(name,"IceVolumeAboveFloatationScaled")==0) return IceVolumeAboveFloatationScaledEnum;
    11221121              else if (strcmp(name,"IceVolume")==0) return IceVolumeEnum;
     1122              else if (strcmp(name,"IceVolumeScaled")==0) return IceVolumeScaledEnum;
    11231123         else stage=10;
    11241124   }
    11251125   if(stage==10){
    1126               if (strcmp(name,"IceVolumeScaled")==0) return IceVolumeScaledEnum;
    1127               else if (strcmp(name,"IcefrontMassFlux")==0) return IcefrontMassFluxEnum;
     1126              if (strcmp(name,"IcefrontMassFlux")==0) return IcefrontMassFluxEnum;
    11281127              else if (strcmp(name,"IcefrontMassFluxLevelset")==0) return IcefrontMassFluxLevelsetEnum;
    11291128              else if (strcmp(name,"Incremental")==0) return IncrementalEnum;
     
    12441243              else if (strcmp(name,"Profiler")==0) return ProfilerEnum;
    12451244              else if (strcmp(name,"ProfilingCurrentFlops")==0) return ProfilingCurrentFlopsEnum;
     1245              else if (strcmp(name,"ProfilingCurrentMem")==0) return ProfilingCurrentMemEnum;
    12461246         else stage=11;
    12471247   }
    12481248   if(stage==11){
    1249               if (strcmp(name,"ProfilingCurrentMem")==0) return ProfilingCurrentMemEnum;
    1250               else if (strcmp(name,"ProfilingSolutionTime")==0) return ProfilingSolutionTimeEnum;
     1249              if (strcmp(name,"ProfilingSolutionTime")==0) return ProfilingSolutionTimeEnum;
    12511250              else if (strcmp(name,"Regionaloutput")==0) return RegionaloutputEnum;
    12521251              else if (strcmp(name,"Regular")==0) return RegularEnum;
  • issm/trunk-jpl/src/m/classes/slr.m

    r24729 r24889  
    100100                        if ~ismember('SealevelriseAnalysis',analyses) | (strcmp(solution,'TransientSolution') & md.transient.isslr==0),
    101101                                return;
    102                         end
    103 
    104                         %check that the mask is a maskpsl class type, otherwise, we won't be able to run very far
    105                         %with the slr solution:
    106                         if ~strcmpi(class(md.mask),'maskpsl'),
    107                                 error('slr error message: model mask should be of the ''maskpsl'' class');
    108102                        end
    109103
  • issm/trunk-jpl/test/NightlyRun/test2002.m

    r24862 r24889  
    2929%}}}
    3030%mask:  {{{
    31 md.mask=maskpsl(); % use maskpsl class (instead of mask) to store the ocean function as a ocean_levelset
    3231mask=gmtmask(md.mesh.lat,md.mesh.long);
    33 
    3432icemask=ones(md.mesh.numberofvertices,1);
    3533pos=find(mask==0);  icemask(pos)=-1;
    3634pos=find(sum(mask(md.mesh.elements),2)<3);   icemask(md.mesh.elements(pos,:))=-1;
    3735md.mask.ice_levelset=icemask;
    38 md.mask.ocean_levelset=zeros(md.mesh.numberofvertices,1);
    39 pos=find(md.mask.ice_levelset==1); md.mask.ocean_levelset(pos)=1;
    40 
    41 %make sure that the ice level set is all inclusive:
    42 md.mask.land_levelset=zeros(md.mesh.numberofvertices,1);
    43 md.mask.ocean_levelset=-ones(md.mesh.numberofvertices,1);
     36md.mask.ocean_levelset=-icemask;
    4437
    4538%make sure that the elements that have loads are fully grounded:
  • issm/trunk-jpl/test/NightlyRun/test2003.m

    r24862 r24889  
    2727%}}}
    2828%mask:  {{{
    29 md.mask=maskpsl(); % use maskpsl class (instead of mask) to store the ocean function as a ocean_levelset
    3029mask=gmtmask(md.mesh.lat,md.mesh.long);
    31 
    3230icemask=ones(md.mesh.numberofvertices,1);
    3331pos=find(mask==0);  icemask(pos)=-1;
    3432pos=find(sum(mask(md.mesh.elements),2)<3);   icemask(md.mesh.elements(pos,:))=-1;
    3533md.mask.ice_levelset=icemask;
    36 md.mask.ocean_levelset=zeros(md.mesh.numberofvertices,1);
    37 pos=find(md.mask.ice_levelset==1); md.mask.ocean_levelset(pos)=1;
    38 
    39 %make sure that the ice level set is all inclusive:
    40 md.mask.land_levelset=zeros(md.mesh.numberofvertices,1);
    41 md.mask.ocean_levelset=-ones(md.mesh.numberofvertices,1);
     34md.mask.ocean_levelset=-icemask;
    4235
    4336%make sure that the elements that have loads are fully grounded:
     
    4639
    4740%make sure wherever there is an ice load, that the mask is set to ice:
    48 pos=find(md.slr.deltathickness); md.mask.ice_levelset(md.mesh.elements(pos,:))=-1;
     41pos=find(md.slr.deltathickness);
     42md.mask.ice_levelset(md.mesh.elements(pos,:))=-1;
    4943% }}}
    5044
  • issm/trunk-jpl/test/NightlyRun/test2010.m

    r24862 r24889  
    3030%}}}
    3131%mask:  {{{
    32 md.mask=maskpsl(); % use maskpsl class (instead of mask) to store the ocean function as a ocean_levelset
    3332mask=gmtmask(md.mesh.lat,md.mesh.long);
    34 
    3533icemask=ones(md.mesh.numberofvertices,1);
    3634pos=find(mask==0);  icemask(pos)=-1;
    3735pos=find(sum(mask(md.mesh.elements),2)<3);   icemask(md.mesh.elements(pos,:))=-1;
    3836md.mask.ice_levelset=icemask;
    39 md.mask.ocean_levelset=zeros(md.mesh.numberofvertices,1);
    40 pos=find(md.mask.ice_levelset==1); md.mask.ocean_levelset(pos)=1;
    41 
    42 %make sure that the ice level set is all inclusive:
    43 md.mask.land_levelset=zeros(md.mesh.numberofvertices,1);
    44 md.mask.ocean_levelset=-ones(md.mesh.numberofvertices,1);
     37md.mask.ocean_levelset=-icemask;
    4538
    4639%make sure that the elements that have loads are fully grounded:
     
    5346md.mask.ice_levelset(md.mesh.elements(pos,:))=-1;
    5447% }}}
     48
    5549%geometry {{{
    5650di=md.materials.rho_ice/md.materials.rho_water;
Note: See TracChangeset for help on using the changeset viewer.