Changeset 15595


Ignore:
Timestamp:
07/24/13 15:28:57 (12 years ago)
Author:
seroussi
Message:

NEW: models only rely on mask.icelevelset now (diagnostic.icefront not used)

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

Legend:

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

    r15567 r15595  
    23572357                                name==FrictionCoefficientEnum ||
    23582358                                name==GLlevelsetEnum ||
    2359                                 name==IcelevelsetEnum ||
     2359                                name==MaskIcelevelsetEnum ||
    23602360                                name==GradientEnum ||
    23612361                                name==OldGradientEnum  ||
     
    79747974
    79757975        /*Retrieve all inputs and parameters*/
    7976         GetInputListOnVertices(&ls[0],IcelevelsetEnum);
     7976        GetInputListOnVertices(&ls[0],MaskIcelevelsetEnum);
    79777977
    79787978        /*If the level set is awlays <=0, there is no ice front here*/
     
    80058005        rho_ice  =matpar->GetRhoIce();
    80068006        gravity  =matpar->GetG();
    8007         GetZeroLevelsetCoordinates(&xyz_list_front[0][0],xyz_list,IcelevelsetEnum);
     8007        GetZeroLevelsetCoordinates(&xyz_list_front[0][0],xyz_list,MaskIcelevelsetEnum);
    80088008        GetAreaCoordinates(&area_coordinates[0][0],xyz_list_front,xyz_list,4);
    80098009        GetQuadNormal(&normal[0],xyz_list_front);
     
    81798179
    81808180        /*Retrieve all inputs and parameters*/
    8181         GetInputListOnVertices(&ls[0],IcelevelsetEnum);
     8181        GetInputListOnVertices(&ls[0],MaskIcelevelsetEnum);
    81828182
    81838183        /*If the level set is awlays <=0, there is no ice front here*/
     
    82098209        rho_ice  =matpar->GetRhoIce();
    82108210        gravity  =matpar->GetG();
    8211         GetZeroLevelsetCoordinates(&xyz_list_front[0][0],xyz_list,IcelevelsetEnum);
     8211        GetZeroLevelsetCoordinates(&xyz_list_front[0][0],xyz_list,MaskIcelevelsetEnum);
    82128212        GetAreaCoordinates(&area_coordinates[0][0],xyz_list_front,xyz_list,4);
    82138213        GetQuadNormal(&normal[0],xyz_list_front);
  • issm/trunk-jpl/src/c/classes/Elements/Tria.cpp

    r15567 r15595  
    18481848                                name==BedEnum ||
    18491849                                name==GLlevelsetEnum ||
    1850                                 name==IcelevelsetEnum ||
     1850                                name==MaskIcelevelsetEnum ||
    18511851                                name==SurfaceSlopeXEnum ||
    18521852                                name==SurfaceSlopeYEnum ||
     
    31553155
    31563156        /*Retrieve all inputs and parameters*/
    3157         GetInputListOnVertices(&ls[0],IcelevelsetEnum);
     3157        GetInputListOnVertices(&ls[0],MaskIcelevelsetEnum);
    31583158
    31593159        /*If the level set is awlays <0, there is no ice front here*/
     
    31873187        rho_ice  =matpar->GetRhoIce();
    31883188        gravity  =matpar->GetG();
    3189         GetZeroLevelsetCoordinates(&xyz_list_front[0][0],xyz_list,IcelevelsetEnum);
     3189        GetZeroLevelsetCoordinates(&xyz_list_front[0][0],xyz_list,MaskIcelevelsetEnum);
    31903190        GetAreaCoordinates(&area_coordinates[0][0],xyz_list_front,xyz_list,2);
    31913191        GetSegmentNormal(&normal[0],xyz_list_front);
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp

    r15433 r15595  
    8282
    8383        /*Fetch data:*/
    84         iomodel->FetchData(6,MeshXEnum,MeshYEnum,MeshZEnum,BedEnum,ThicknessEnum,IcelevelsetEnum);
     84        iomodel->FetchData(6,MeshXEnum,MeshYEnum,MeshZEnum,BedEnum,ThicknessEnum,MaskIcelevelsetEnum);
    8585        CreateNumberNodeToElementConnectivity(iomodel);
    8686
     
    9696
    9797        /*Free data: */
    98         iomodel->DeleteData(6,MeshXEnum,MeshYEnum,MeshZEnum,BedEnum,ThicknessEnum,IcelevelsetEnum);
     98        iomodel->DeleteData(6,MeshXEnum,MeshYEnum,MeshZEnum,BedEnum,ThicknessEnum,MaskIcelevelsetEnum);
    9999
    100100        /*Assign output pointer: */
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp

    r15564 r15595  
    5656        iomodel->FetchDataToInput(elements,MaskElementonfloatingiceEnum);
    5757        iomodel->FetchDataToInput(elements,MaskElementonwaterEnum);
    58         iomodel->FetchDataToInput(elements,IcelevelsetEnum);
     58        iomodel->FetchDataToInput(elements,MaskIcelevelsetEnum);
    5959        iomodel->FetchDataToInput(elements,MaterialsRheologyBEnum);
    6060        iomodel->FetchDataToInput(elements,MaterialsRheologyNEnum);
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r15567 r15595  
    147147        MaskVertexongroundediceEnum,
    148148        MaskVertexonwaterEnum,
    149         IcelevelsetEnum,
     149        MaskIcelevelsetEnum,
    150150        MaterialsBetaEnum,
    151151        MaterialsHeatcapacityEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r15567 r15595  
    155155                case MaskVertexongroundediceEnum : return "MaskVertexongroundedice";
    156156                case MaskVertexonwaterEnum : return "MaskVertexonwater";
    157                 case IcelevelsetEnum : return "Icelevelset";
     157                case MaskIcelevelsetEnum : return "MaskIcelevelset";
    158158                case MaterialsBetaEnum : return "MaterialsBeta";
    159159                case MaterialsHeatcapacityEnum : return "MaterialsHeatcapacity";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r15567 r15595  
    158158              else if (strcmp(name,"MaskVertexongroundedice")==0) return MaskVertexongroundediceEnum;
    159159              else if (strcmp(name,"MaskVertexonwater")==0) return MaskVertexonwaterEnum;
    160               else if (strcmp(name,"Icelevelset")==0) return IcelevelsetEnum;
     160              else if (strcmp(name,"MaskIcelevelset")==0) return MaskIcelevelsetEnum;
    161161              else if (strcmp(name,"MaterialsBeta")==0) return MaterialsBetaEnum;
    162162              else if (strcmp(name,"MaterialsHeatcapacity")==0) return MaterialsHeatcapacityEnum;
  • issm/trunk-jpl/src/m/boundaryconditions/SetIceShelfBC.m

    r14529 r15595  
    6464%plug onto model
    6565md.diagnostic.icefront=pressureload;
     66md.mask.icelevelset(find(nodeonicefront))=0;
    6667
    6768%Create zeros basalforcings and surfaceforcings
  • issm/trunk-jpl/src/m/boundaryconditions/SetIceShelfBC.py

    r15521 r15595  
    7474        #plug onto model
    7575        md.diagnostic.icefront=pressureload
     76        pos=numpy.nonzero(nodeonicefront)[0]
     77        md.mask.icelevelset[pos]=0
    7678
    7779        #Create zeros basalforcings and surfaceforcings
  • issm/trunk-jpl/src/m/boundaryconditions/SetMarineIceSheetBC.m

    r14529 r15595  
    7474%plug onto model
    7575md.diagnostic.icefront=pressureload;
     76md.mask.icelevelset(find(vertexonicefront))=0;
    7677
    7778%Create zeros basalforcings and surfaceforcings
  • issm/trunk-jpl/src/m/boundaryconditions/SetMarineIceSheetBC.py

    r14529 r15595  
    8080        #plug onto model
    8181        md.diagnostic.icefront=pressureload
     82        pos=numpy.nonzero(vertexonicefront)[0]
     83        md.mask.icelevelset[pos]=0
    8284
    8385        #Create zeros basalforcings and surfaceforcings
  • issm/trunk-jpl/src/m/classes/mask.m

    r15413 r15595  
    1212                vertexongroundedice  = NaN;
    1313                vertexonwater        = NaN;
    14                 vertexonrock        = NaN;
     14                vertexonrock         = NaN;
     15                icelevelset          = NaN;
    1516        end
    1617        methods
     
    3435                        md = checkfield(md,'mask.vertexongroundedice','size',[md.mesh.numberofvertices 1],'values',[0 1]);
    3536                        md = checkfield(md,'mask.vertexonwater'      ,'size',[md.mesh.numberofvertices 1],'values',[0 1]);
     37                        md = checkfield(md,'mask.icelevelset'         ,'size',[md.mesh.numberofvertices 1]);
     38                        isice=(md.mask.icelevelset>0);
     39                        if any(sum(isice(md.mesh.elements),2)==0),
     40                                error('elements with no ice not implemented yet, each element should have at least one vertex with md.mask.icelevelset > 0');
     41                        end
    3642                        %md = checkfield(md,'mask.vertexonrock'      ,'size',[md.mesh.numberofvertices 1],'values',[0 1]);
    3743                end % }}}
     
    4652                        fielddisplay(obj,'vertexonwater','vertex on water flags list');
    4753                        fielddisplay(obj,'vertexonrock','vertex on rock flags list');
     54                        fielddisplay(obj,'icelevelset','presence of ice if > 0, icefront position if = 0, no ice if < 0');
    4855                end % }}}
    4956                function marshall(obj,md,fid) % {{{
     
    5764                        pos=md.diagnostic.icefront(:,1:end-2);
    5865                        icelevelset(pos(:))=0;
    59                         WriteData(fid,'data',icelevelset,'format','DoubleMat','mattype',1,'enum',IcelevelsetEnum());
     66                        WriteData(fid,'object',obj,'fieldname','icelevelset','format','DoubleMat','mattype',1);
    6067                end % }}}
    6168        end
  • issm/trunk-jpl/src/m/classes/mask.py

    r15434 r15595  
    1919                self.vertexongroundedice  = float('NaN')
    2020                self.vertexonwater        = float('NaN')
     21                self.icelevelset          = float('NaN')
    2122
    2223                #set defaults
     
    3334                string="%s\n%s"%(string,fielddisplay(self,"elementonwater","element on water flags list"))
    3435                string="%s\n%s"%(string,fielddisplay(self,"vertexonwater","vertex on water flags list"))
     36                string="%s\n%s"%(string,fielddisplay(self,"icelevelset","presence of ice if > 0, icefront position if = 0, no ice if < 0"))
    3537                return string
    3638                #}}}
     
    4648                md = checkfield(md,'mask.vertexongroundedice' ,'size',[md.mesh.numberofvertices],'values',[0,1])
    4749                md = checkfield(md,'mask.vertexonwater'       ,'size',[md.mesh.numberofvertices],'values',[0,1])
     50                md = checkfield(md,'mask.icelevelset'         ,'size',[md.mesh.numberofvertices])
    4851
    4952                return md
     
    6063                        pos=md.diagnostic.icefront[:,:-2]
    6164                        icelevelset[pos[:].astype(int)-1]=0;
    62                 WriteData(fid,'data',icelevelset,'format','DoubleMat','mattype',1,'enum',IcelevelsetEnum())
     65                WriteData(fid,'object',self,'fieldname','icelevelset','format','DoubleMat','mattype',1)
    6366        # }}}
  • issm/trunk-jpl/src/m/classes/model/model.m

    r15564 r15595  
    225225                                md.mask.vertexonrock=project2d(md,md.mask.vertexonrock,1);
    226226                        end
     227                        md.mask.icelevelset=project2d(md,md.mask.icelevelset,1);
    227228
    228229                        %lat long
     
    772773                        md.mask.vertexonwater=project3d(md,'vector',md.mask.vertexonwater,'type','node');
    773774                        md.mask.vertexonrock=project3d(md,'vector',md.mask.vertexonrock,'type','node');
     775                        md.mask.icelevelset=project3d(md,'vector',md.mask.icelevelset,'type','node');
    774776                        if ~isnan(md.inversion.cost_functions_coefficients),md.inversion.cost_functions_coefficients=project3d(md,'vector',md.inversion.cost_functions_coefficients,'type','node');end;
    775777                        if ~isnan(md.inversion.min_parameters),md.inversion.min_parameters=project3d(md,'vector',md.inversion.min_parameters,'type','node');end;
  • issm/trunk-jpl/src/m/classes/model/model.py

    r15564 r15595  
    661661                md.mask.elementonwater=project3d(md,'vector',md.mask.elementonwater,'type','element')
    662662                md.mask.vertexonwater=project3d(md,'vector',md.mask.vertexonwater,'type','node')
     663                md.mask.iceleveset=project3d(md,'vector',md.mask.icelevelset,'type','node')
    663664                if not numpy.any(numpy.isnan(md.inversion.cost_functions_coefficients)):
    664665                        md.inversion.cost_functions_coefficients=project3d(md,'vector',md.inversion.cost_functions_coefficients,'type','node');end;
  • issm/trunk-jpl/src/m/enum/EnumDefinitions.py

    r15567 r15595  
    19411941        return StringToEnum('MaskVertexonwater')[0]
    19421942
    1943 def IcelevelsetEnum():
    1944         """
    1945         ICELEVELSETENUM - Enum of Icelevelset
    1946 
    1947         WARNING: DO NOT MODIFY THIS FILE
    1948                                 this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
    1949                                 Please read src/c/shared/Enum/README for more information
    1950 
    1951            Usage:
    1952               macro=IcelevelsetEnum()
    1953         """
    1954 
    1955         return StringToEnum('Icelevelset')[0]
     1943def MaskIcelevelsetEnum():
     1944        """
     1945        MASKICELEVELSETENUM - Enum of MaskIcelevelset
     1946
     1947        WARNING: DO NOT MODIFY THIS FILE
     1948                                this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
     1949                                Please read src/c/shared/Enum/README for more information
     1950
     1951           Usage:
     1952              macro=MaskIcelevelsetEnum()
     1953        """
     1954
     1955        return StringToEnum('MaskIcelevelset')[0]
    19561956
    19571957def MaterialsBetaEnum():
  • issm/trunk-jpl/src/m/parameterization/setmask.m

    r13006 r15595  
    4848md.mask.vertexonwater=zeros(md.mesh.numberofvertices,1);
    4949md.mask.elementonwater=zeros(md.mesh.numberofelements,1);
     50md.mask.icelevelset=ones(md.mesh.numberofvertices,1);
  • issm/trunk-jpl/src/m/parameterization/setmask.py

    r13984 r15595  
    4848        md.mask.vertexonwater = numpy.zeros(md.mesh.numberofvertices,bool)
    4949        md.mask.elementonwater = numpy.zeros(md.mesh.numberofelements,bool)
     50        md.mask.iceleveset = numpy.ones(md.mesh.numberofvertices,bool)
    5051
    5152        return md
Note: See TracChangeset for help on using the changeset viewer.