Changeset 9728


Ignore:
Timestamp:
09/09/11 13:40:05 (14 years ago)
Author:
seroussi
Message:

working on mesh class

Location:
issm/trunk
Files:
3 added
3 deleted
29 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h

    r9725 r9728  
    155155        MeshNumberoflayersEnum,
    156156        MeshNumberofvertices2dEnum,
     157        MeshElementconnectivityEnum,
     158        MeshLowerelementsEnum,
     159        MeshUpperelementsEnum,
    157160        /*}}}*/
    158161        /*Datasets {{{1*/
     
    470473        YEnum,
    471474        ZEnum,
    472         UpperelementsEnum,
    473475        EdgesEnum,
    474476        Elements2dEnum,
    475477        XEnum,
    476         ElementconnectivityEnum,
    477         LowerelementsEnum,
    478478        OutputfilenameEnum,
    479479        WaterfractionEnum,
  • issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp

    r9725 r9728  
    159159                case MeshNumberoflayersEnum : return "MeshNumberoflayers";
    160160                case MeshNumberofvertices2dEnum : return "MeshNumberofvertices2d";
     161                case MeshElementconnectivityEnum : return "MeshElementconnectivity";
     162                case MeshLowerelementsEnum : return "MeshLowerelements";
     163                case MeshUpperelementsEnum : return "MeshUpperelements";
    161164                case ConstraintsEnum : return "Constraints";
    162165                case ElementsEnum : return "Elements";
     
    413416                case YEnum : return "Y";
    414417                case ZEnum : return "Z";
    415                 case UpperelementsEnum : return "Upperelements";
    416418                case EdgesEnum : return "Edges";
    417419                case Elements2dEnum : return "Elements2d";
    418420                case XEnum : return "X";
    419                 case ElementconnectivityEnum : return "Elementconnectivity";
    420                 case LowerelementsEnum : return "Lowerelements";
    421421                case OutputfilenameEnum : return "Outputfilename";
    422422                case WaterfractionEnum : return "Waterfraction";
  • issm/trunk/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp

    r9725 r9728  
    4545       
    4646        /*Fetch data needed: */
    47         iomodel->FetchData(4,ElementsEnum,ElementconnectivityEnum,MaterialsRheologyBEnum,MaterialsRheologyNEnum);
    48         if(dim==3)          iomodel->FetchData(2,UpperelementsEnum,LowerelementsEnum);
     47        iomodel->FetchData(4,ElementsEnum,MeshElementconnectivityEnum,MaterialsRheologyBEnum,MaterialsRheologyNEnum);
     48        if(dim==3)          iomodel->FetchData(2,MeshUpperelementsEnum,MeshLowerelementsEnum);
    4949        if(control_analysis)iomodel->FetchData(3,InversionControlParametersEnum,InversionMinParametersEnum,InversionMaxParametersEnum);
    5050       
     
    6363       
    6464        /*Free data: */
    65         iomodel->DeleteData(9,ElementsEnum,ElementconnectivityEnum,UpperelementsEnum,LowerelementsEnum,
     65        iomodel->DeleteData(9,ElementsEnum,MeshElementconnectivityEnum,MeshUpperelementsEnum,MeshLowerelementsEnum,
    6666                                MaterialsRheologyBEnum,MaterialsRheologyNEnum,InversionControlParametersEnum,InversionMinParametersEnum,InversionMaxParametersEnum);
    6767
  • issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp

    r9725 r9728  
    157157        else if (strcmp(name,"MeshNumberoflayers")==0) return MeshNumberoflayersEnum;
    158158        else if (strcmp(name,"MeshNumberofvertices2d")==0) return MeshNumberofvertices2dEnum;
     159        else if (strcmp(name,"MeshElementconnectivity")==0) return MeshElementconnectivityEnum;
     160        else if (strcmp(name,"MeshLowerelements")==0) return MeshLowerelementsEnum;
     161        else if (strcmp(name,"MeshUpperelements")==0) return MeshUpperelementsEnum;
    159162        else if (strcmp(name,"Constraints")==0) return ConstraintsEnum;
    160163        else if (strcmp(name,"Elements")==0) return ElementsEnum;
     
    411414        else if (strcmp(name,"Y")==0) return YEnum;
    412415        else if (strcmp(name,"Z")==0) return ZEnum;
    413         else if (strcmp(name,"Upperelements")==0) return UpperelementsEnum;
    414416        else if (strcmp(name,"Edges")==0) return EdgesEnum;
    415417        else if (strcmp(name,"Elements2d")==0) return Elements2dEnum;
    416418        else if (strcmp(name,"X")==0) return XEnum;
    417         else if (strcmp(name,"Elementconnectivity")==0) return ElementconnectivityEnum;
    418         else if (strcmp(name,"Lowerelements")==0) return LowerelementsEnum;
    419419        else if (strcmp(name,"Outputfilename")==0) return OutputfilenameEnum;
    420420        else if (strcmp(name,"Waterfraction")==0) return WaterfractionEnum;
  • issm/trunk/src/c/objects/Elements/Penta.cpp

    r9725 r9728  
    5757        /*Checks in debugging mode*/
    5858        /*{{{2*/
    59         _assert_(iomodel->Data(UpperelementsEnum));
    60         _assert_(iomodel->Data(LowerelementsEnum));
     59        _assert_(iomodel->Data(MeshUpperelementsEnum));
     60        _assert_(iomodel->Data(MeshLowerelementsEnum));
    6161        /*}}}*/
    6262
     
    6666
    6767        /*Build neighbors list*/
    68         if (isnan(iomodel->Data(UpperelementsEnum)[index])) penta_elements_ids[1]=this->id; //upper penta is the same penta
    69         else                                    penta_elements_ids[1]=(int)(iomodel->Data(UpperelementsEnum)[index]);
    70         if (isnan(iomodel->Data(LowerelementsEnum)[index])) penta_elements_ids[0]=this->id; //lower penta is the same penta
    71         else                                    penta_elements_ids[0]=(int)(iomodel->Data(LowerelementsEnum)[index]);
     68        if (isnan(iomodel->Data(MeshUpperelementsEnum)[index])) penta_elements_ids[1]=this->id; //upper penta is the same penta
     69        else                                    penta_elements_ids[1]=(int)(iomodel->Data(MeshUpperelementsEnum)[index]);
     70        if (isnan(iomodel->Data(MeshLowerelementsEnum)[index])) penta_elements_ids[0]=this->id; //lower penta is the same penta
     71        else                                    penta_elements_ids[0]=(int)(iomodel->Data(MeshLowerelementsEnum)[index]);
    7272        this->InitHookNeighbors(penta_elements_ids);
    7373
    7474        /*Build horizontalneighborsids list: */
    75         _assert_(iomodel->Data(ElementconnectivityEnum));
    76         for(i=0;i<3;i++) this->horizontalneighborsids[i]=(int)iomodel->Data(ElementconnectivityEnum)[3*index+i]-1;
     75        _assert_(iomodel->Data(MeshElementconnectivityEnum));
     76        for(i=0;i<3;i++) this->horizontalneighborsids[i]=(int)iomodel->Data(MeshElementconnectivityEnum)[3*index+i]-1;
    7777
    7878        //this->parameters: we still can't point to it, it may not even exist. Configure will handle this.
  • issm/trunk/src/c/objects/Elements/Tria.cpp

    r9725 r9728  
    5252
    5353                /*Build horizontalneighborsids list: */
    54                 _assert_(iomodel->Data(ElementconnectivityEnum));
     54                _assert_(iomodel->Data(MeshElementconnectivityEnum));
    5555                //for (i=0;i<3;i++) this->horizontalneighborsids[i]=(int)iomodel->elementconnectivity[3*index+i]-1;
    5656
  • issm/trunk/src/m/classes/mesh.m

    r9725 r9728  
    2222                numberofvertices2d    = modelfield('default',0,'marshall',true,'format','Integer');
    2323                numberofelements2d = modelfield('default',0,'marshall',true,'format','Integer');
     24                nodeconnectivity    = modelfield('default',NaN,'marshall',false);
     25                elementconnectivity = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',3);
     26                uppernodes           = modelfield('default',NaN,'marshall',false);
     27                upperelements        = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',2);
     28                lowerelements        = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',2);
     29                lowernodes           = modelfield('default',NaN,'marshall',false);
    2430        end
    2531        methods
  • issm/trunk/src/m/classes/model/model.m

    r9725 r9728  
    4747                 y                   = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
    4848                 z                   = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);
    49                  nodeconnectivity    = modelfield('default',NaN,'marshall',false);
    50                  elementconnectivity = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',3);
    5149                 edges               = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',3);
    5250                 elements2d         = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',3);
    5351                 x2d                = modelfield('default',NaN,'marshall',false);
    5452                 y2d                = modelfield('default',NaN,'marshall',false);
    55 
    56                  uppernodes           = modelfield('default',NaN,'marshall',false);
    57                  upperelements        = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',2);
    58                  lowerelements        = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',2);
    59                  lowernodes           = modelfield('default',NaN,'marshall',false);
    6053
    6154                 elementonbed      = modelfield('default',NaN,'marshall',true,'format','BooleanMat','mattype',2);
     
    318311                         if isfield(structmd,'numberofelements2d'), md.mesh.numberofelements2d=structmd.numberofelements2d; end
    319312                         if isfield(structmd,'numberofnodes2d'), md.mesh.numberofvertices2d=structmd.numberofnodes2d; end
     313                         if isfield(structmd,'nodeconnectivity'), md.mesh.nodeconnectivityension=structmd.nodeconnectivity; end
     314                         if isfield(structmd,'elementconnectivity'), md.mesh.elementconnectivityension=structmd.elementconnectivity; end
     315                         if isfield(structmd,'uppernodes'), md.mesh.uppernodesension=structmd.uppernodes; end
     316                         if isfield(structmd,'lowernodes'), md.mesh.lowernodesension=structmd.lowernodes; end
     317                         if isfield(structmd,'upperelements'), md.mesh.upperelementsension=structmd.upperelements; end
     318                         if isfield(structmd,'lowerelements'), md.mesh.lowerelementsension=structmd.lowerelements; end
    320319
    321320                         %Field changes
  • issm/trunk/src/m/model/PropagateFlagsUntilDistance.m

    r9719 r9728  
    2020%find elements that are at the border of flags:
    2121flag_elements=find(flags);
    22 conn=md.elementconnectivity(flag_elements,:);
     22conn=md.mesh.elementconnectivity(flag_elements,:);
    2323pos=find(conn);conn(pos)=~flags(conn(pos));
    2424sum_conn=sum(conn,2);
     
    3838        pos=find(new_flags);
    3939
    40         connected_elements=md.elementconnectivity(pos,:);
     40        connected_elements=md.mesh.elementconnectivity(pos,:);
    4141        connected_elements=connected_elements(find(connected_elements));
    4242        new_flags(connected_elements)=1;
     
    5656                        %none of the border elements are within distance, this element is outside out area of interest.
    5757                        %ensure this element never gets found again in the connectivity.
    58                         pos=find(md.elementconnectivity==new_elements(i));
    59                         md.elementconnectivity(pos)=0;
     58                        pos=find(md.mesh.elementconnectivity==new_elements(i));
     59                        md.mesh.elementconnectivity(pos)=0;
    6060                        %exclude this new element from the new_flags!
    6161                        new_flags(new_elements(i))=0;
  • issm/trunk/src/m/model/bamg.m

    r9725 r9728  
    335335md.elementonsurface=ones(md.mesh.numberofelements,1);
    336336md.mesh.vertexonboundary=zeros(md.mesh.numberofvertices,1); md.mesh.vertexonboundary(md.mesh.segments(:,1:2))=1;
    337 md.elementconnectivity=md.private.bamg.mesh.ElementConnectivity;
    338 md.elementconnectivity(find(isnan(md.elementconnectivity)))=0;
     337md.mesh.elementconnectivity=md.private.bamg.mesh.ElementConnectivity;
     338md.mesh.elementconnectivity(find(isnan(md.mesh.elementconnectivity)))=0;
    339339
    340340%Check for orphan
  • issm/trunk/src/m/model/collapse.m

    r9725 r9728  
    9898
    9999%Keep a trace of lower and upper nodes
    100 md.lowernodes=NaN;
    101 md.uppernodes=NaN;
     100md.mesh.lowernodes=NaN;
     101md.mesh.uppernodes=NaN;
    102102
    103103%Remove old mesh
  • issm/trunk/src/m/model/contourenvelope.m

    r9725 r9728  
    3535%Now, build the connectivity tables for this mesh.
    3636%Computing connectivity
    37 if size(md.nodeconnectivity,1)~=md.mesh.numberofvertices,
    38         md.nodeconnectivity=NodeConnectivity(md.elements,md.mesh.numberofvertices);
     37if size(md.mesh.nodeconnectivity,1)~=md.mesh.numberofvertices,
     38        md.mesh.nodeconnectivity=NodeConnectivity(md.elements,md.mesh.numberofvertices);
    3939end
    40 if size(md.elementconnectivity,1)~=md.mesh.numberofelements,
    41         md.elementconnectivity=ElementConnectivity(md.elements,md.nodeconnectivity);
     40if size(md.mesh.elementconnectivity,1)~=md.mesh.numberofelements,
     41        md.mesh.elementconnectivity=ElementConnectivity(md.elements,md.mesh.nodeconnectivity);
    4242end
    4343
    4444%get nodes inside profile
    45 elementconnectivity=md.elementconnectivity;
     45mesh.elementconnectivity=md.mesh.elementconnectivity;
    4646if nargin==2,
    4747        if isfile,
     
    5151                %modify element connectivity
    5252                elemout=find(~elemin);
    53                 elementconnectivity(elemout,:)=0;
    54                 elementconnectivity(find(ismember(elementconnectivity,elemout)))=0;
     53                mesh.elementconnectivity(elemout,:)=0;
     54                mesh.elementconnectivity(find(ismember(mesh.elementconnectivity,elemout)))=0;
    5555        else
    5656                %get flag list of elements and nodes inside the contour
     
    6464                %modify element connectivity
    6565                elemout=find(~elemin);
    66                 elementconnectivity(elemout,:)=0;
    67                 elementconnectivity(find(ismember(elementconnectivity,elemout)))=0;
     66                mesh.elementconnectivity(elemout,:)=0;
     67                mesh.elementconnectivity(find(ismember(mesh.elementconnectivity,elemout)))=0;
    6868        end
    6969end
     
    7171%Find element on boundary
    7272%First: find elements on the boundary of the domain
    73 flag=elementconnectivity;
     73flag=mesh.elementconnectivity;
    7474if nargin==2,
    7575        flag(find(flag))=elemin(flag(find(flag)));
     
    8585for i=1:num_segments,
    8686        el1=pos(i);
    87         els2=elementconnectivity(el1,find(elementconnectivity(el1,:)));
     87        els2=mesh.elementconnectivity(el1,find(mesh.elementconnectivity(el1,:)));
    8888        if length(els2)>1,
    8989                flag=intersect(md.elements(els2(1),:),md.elements(els2(2),:));
  • issm/trunk/src/m/model/extrude.m

    r9725 r9728  
    8787
    8888%Keep a trace of lower and upper nodes
    89 lowernodes=NaN*ones(number_nodes3d,1);
    90 uppernodes=NaN*ones(number_nodes3d,1);
    91 lowernodes(md.mesh.numberofvertices+1:end)=1:(numlayers-1)*md.mesh.numberofvertices;
    92 uppernodes(1:(numlayers-1)*md.mesh.numberofvertices)=md.mesh.numberofvertices+1:number_nodes3d;
    93 md.lowernodes=lowernodes;
    94 md.uppernodes=uppernodes;
     89mesh.lowernodes=NaN*ones(number_nodes3d,1);
     90mesh.uppernodes=NaN*ones(number_nodes3d,1);
     91mesh.lowernodes(md.mesh.numberofvertices+1:end)=1:(numlayers-1)*md.mesh.numberofvertices;
     92mesh.uppernodes(1:(numlayers-1)*md.mesh.numberofvertices)=md.mesh.numberofvertices+1:number_nodes3d;
     93md.mesh.lowernodes=mesh.lowernodes;
     94md.mesh.uppernodes=mesh.uppernodes;
    9595
    9696%same for lower and upper elements
    97 lowerelements=NaN*ones(number_el3d,1);
    98 upperelements=NaN*ones(number_el3d,1);
    99 lowerelements(md.mesh.numberofelements+1:end)=1:(numlayers-2)*md.mesh.numberofelements;
    100 upperelements(1:(numlayers-2)*md.mesh.numberofelements)=md.mesh.numberofelements+1:(numlayers-1)*md.mesh.numberofelements;
    101 md.lowerelements=lowerelements;
    102 md.upperelements=upperelements;
     97mesh.lowerelements=NaN*ones(number_el3d,1);
     98mesh.upperelements=NaN*ones(number_el3d,1);
     99mesh.lowerelements(md.mesh.numberofelements+1:end)=1:(numlayers-2)*md.mesh.numberofelements;
     100mesh.upperelements(1:(numlayers-2)*md.mesh.numberofelements)=md.mesh.numberofelements+1:(numlayers-1)*md.mesh.numberofelements;
     101md.mesh.lowerelements=mesh.lowerelements;
     102md.mesh.upperelements=mesh.upperelements;
    103103
    104104%Save old mesh
     
    184184
    185185%connectivity
    186 md.elementconnectivity=repmat(md.elementconnectivity,numlayers-1,1);
    187 md.elementconnectivity(find(md.elementconnectivity==0))=NaN;
     186md.mesh.elementconnectivity=repmat(md.mesh.elementconnectivity,numlayers-1,1);
     187md.mesh.elementconnectivity(find(md.mesh.elementconnectivity==0))=NaN;
    188188for i=2:numlayers-1,
    189         md.elementconnectivity((i-1)*md.mesh.numberofelements2d+1:(i)*md.mesh.numberofelements2d,:)...
    190         =md.elementconnectivity((i-1)*md.mesh.numberofelements2d+1:(i)*md.mesh.numberofelements2d,:)+md.mesh.numberofelements2d;
    191 end
    192 md.elementconnectivity(find(isnan(md.elementconnectivity)))=0;
     189        md.mesh.elementconnectivity((i-1)*md.mesh.numberofelements2d+1:(i)*md.mesh.numberofelements2d,:)...
     190        =md.mesh.elementconnectivity((i-1)*md.mesh.numberofelements2d+1:(i)*md.mesh.numberofelements2d,:)+md.mesh.numberofelements2d;
     191end
     192md.mesh.elementconnectivity(find(isnan(md.mesh.elementconnectivity)))=0;
    193193
    194194%materials
  • issm/trunk/src/m/model/mesh/findsegments.m

    r9725 r9728  
    33%
    44%   Optional inputs:
    5 %      'elementconnectivity'
     5%      'mesh.elementconnectivity'
    66%
    77%   Usage:
     
    1212
    1313%Get connectivity
    14 elementconnectivity=getfieldvalue(options,'elementconnectivity',md.elementconnectivity);
     14mesh.elementconnectivity=getfieldvalue(options,'mesh.elementconnectivity',md.mesh.elementconnectivity);
    1515
    1616%Now, build the connectivity tables for this mesh if not correclty done
    17 if size(md.elementconnectivity,1)~=md.mesh.numberofelements,
    18         if exist(options,'elementconnectivity'),
    19                 error(' ''elementconnectivity'' option does not have thge right size.');
     17if size(md.mesh.elementconnectivity,1)~=md.mesh.numberofelements,
     18        if exist(options,'mesh.elementconnectivity'),
     19                error(' ''mesh.elementconnectivity'' option does not have thge right size.');
    2020        else
    21                 elementconnectivity=ElementConnectivity(md.elements,md.nodeconnectivity);
     21                mesh.elementconnectivity=ElementConnectivity(md.elements,md.mesh.nodeconnectivity);
    2222        end
    2323end
    2424
    2525%Recreate the segments
    26 elementonboundary=double(elementconnectivity(:,3)==0);
     26elementonboundary=double(mesh.elementconnectivity(:,3)==0);
    2727pos=find(elementonboundary);
    2828num_segments=length(pos);
     
    3737
    3838        %get elements connected to el1
    39         els2=elementconnectivity(el1,find(elementconnectivity(el1,:)));
     39        els2=mesh.elementconnectivity(el1,find(mesh.elementconnectivity(el1,:)));
    4040
    4141        %el1 is connected to 2 other elements
  • issm/trunk/src/m/model/mesh/meshnodensity.m

    r9725 r9728  
    6565
    6666%Now, build the connectivity tables for this mesh.
    67 md.nodeconnectivity=NodeConnectivity(md.elements,md.mesh.numberofvertices);
    68 md.elementconnectivity=ElementConnectivity(md.elements,md.nodeconnectivity);
     67md.mesh.nodeconnectivity=NodeConnectivity(md.elements,md.mesh.numberofvertices);
     68md.mesh.elementconnectivity=ElementConnectivity(md.elements,md.mesh.nodeconnectivity);
    6969
    7070%type of model
  • issm/trunk/src/m/model/mesh/meshrefine.m

    r9725 r9728  
    2929
    3030%Now, build the connectivity tables for this mesh.
    31 md.nodeconnectivity=NodeConnectivity(md.elements,md.mesh.numberofvertices);
    32 md.elementconnectivity=ElementConnectivity(md.elements,md.nodeconnectivity);
     31md.mesh.nodeconnectivity=NodeConnectivity(md.elements,md.mesh.numberofvertices);
     32md.mesh.elementconnectivity=ElementConnectivity(md.elements,md.mesh.nodeconnectivity);
    3333
    3434%type of model
  • issm/trunk/src/m/model/mesh/meshyams.m

    r9725 r9728  
    9595        %rifts, because the segments are used in YamsCall to freeze the rifts elements during refinement.
    9696        if md.rifts.numrifts,
    97                 md.nodeconnectivity=NodeConnectivity(md.elements,md.mesh.numberofvertices);
    98                 md.elementconnectivity=ElementConnectivity(md.elements,md.nodeconnectivity);
     97                md.mesh.nodeconnectivity=NodeConnectivity(md.elements,md.mesh.numberofvertices);
     98                md.mesh.elementconnectivity=ElementConnectivity(md.elements,md.mesh.nodeconnectivity);
    9999                md.mesh.segments=findsegments(md);
    100100                md=meshyamsrecreateriftsegments(md);
     
    106106
    107107%Now, build the connectivity tables for this mesh.
    108 md.nodeconnectivity=NodeConnectivity(md.elements,md.mesh.numberofvertices);
    109 md.elementconnectivity=ElementConnectivity(md.elements,md.nodeconnectivity);
     108md.mesh.nodeconnectivity=NodeConnectivity(md.elements,md.mesh.numberofvertices);
     109md.mesh.elementconnectivity=ElementConnectivity(md.elements,md.mesh.nodeconnectivity);
    110110
    111111%recreate segments
  • issm/trunk/src/m/model/mesh/rifts/meshaddrifts.m

    r9725 r9728  
    8787
    8888%Now, build the connectivity tables for this mesh.
    89 md.nodeconnectivity=NodeConnectivity(md.elements,md.mesh.numberofvertices);
    90 md.elementconnectivity=ElementConnectivity(md.elements,md.nodeconnectivity);
     89md.mesh.nodeconnectivity=NodeConnectivity(md.elements,md.mesh.numberofvertices);
     90md.mesh.elementconnectivity=ElementConnectivity(md.elements,md.mesh.nodeconnectivity);
    9191
    9292%type of model
  • issm/trunk/src/m/model/mesh/rifts/meshprocessrifts.m

    r9725 r9728  
    2626%Call MEX file
    2727[md.elements,md.x,md.y,md.mesh.segments,md.mesh.segmentmarkers,md.rifts.riftstruct]=TriMeshProcessRifts(md.elements,md.x,md.y,md.mesh.segments,md.mesh.segmentmarkers);
     28md.rifts
     29md.rifts.riftstruct
    2830if ~isstruct(md.rifts.riftstruct),
    2931        error('TriMeshProcessRifts did not find any rift');
  • issm/trunk/src/m/model/mesh/setmesh.m

    r9725 r9728  
    7979
    8080%Now, build the connectivity tables for this mesh.
    81 md.nodeconnectivity=NodeConnectivity(md.elements,md.mesh.numberofvertices);
    82 md.elementconnectivity=ElementConnectivity(md.elements,md.nodeconnectivity);
     81md.mesh.nodeconnectivity=NodeConnectivity(md.elements,md.mesh.numberofvertices);
     82md.mesh.elementconnectivity=ElementConnectivity(md.elements,md.mesh.nodeconnectivity);
    8383
    8484%type of model
  • issm/trunk/src/m/model/modelextract.m

    r9714 r9728  
    123123        md2.elements=elements_2;
    124124
    125         %uppernodes lowernodes
     125        %mesh.uppernodes mesh.lowernodes
    126126        if md1.dim==3
    127                 md2.uppernodes=md1.uppernodes(pos_node);
    128                 pos=find(~isnan(md2.uppernodes));
    129                 md2.uppernodes(pos)=Pnode(md2.uppernodes(pos));
    130 
    131                 md2.lowernodes=md1.lowernodes(pos_node);
    132                 pos=find(~isnan(md2.lowernodes));
    133                 md2.lowernodes(pos)=Pnode(md2.lowernodes(pos));
    134 
    135                 md2.upperelements=md1.upperelements(pos_elem);
    136                 pos=find(~isnan(md2.upperelements));
    137                 md2.upperelements(pos)=Pelem(md2.upperelements(pos));
    138 
    139                 md2.lowerelements=md1.lowerelements(pos_elem);
    140                 pos=find(~isnan(md2.lowerelements));
    141                 md2.lowerelements(pos)=Pelem(md2.lowerelements(pos));
     127                md2.mesh.uppernodes=md1.mesh.uppernodes(pos_node);
     128                pos=find(~isnan(md2.mesh.uppernodes));
     129                md2.mesh.uppernodes(pos)=Pnode(md2.mesh.uppernodes(pos));
     130
     131                md2.mesh.lowernodes=md1.mesh.lowernodes(pos_node);
     132                pos=find(~isnan(md2.mesh.lowernodes));
     133                md2.mesh.lowernodes(pos)=Pnode(md2.mesh.lowernodes(pos));
     134
     135                md2.mesh.upperelements=md1.mesh.upperelements(pos_elem);
     136                pos=find(~isnan(md2.mesh.upperelements));
     137                md2.mesh.upperelements(pos)=Pelem(md2.mesh.upperelements(pos));
     138
     139                md2.mesh.lowerelements=md1.mesh.lowerelements(pos_elem);
     140                pos=find(~isnan(md2.mesh.lowerelements));
     141                md2.mesh.lowerelements(pos)=Pelem(md2.mesh.lowerelements(pos));
    142142        end
    143143
     
    203203        %recreate segments
    204204        if md1.dim==2
    205                 md2.nodeconnectivity=NodeConnectivity(md2.elements,md2.numberofnodes);
    206                 md2.elementconnectivity=ElementConnectivity(md2.elements,md2.nodeconnectivity);
     205                md2.mesh.nodeconnectivity=NodeConnectivity(md2.elements,md2.numberofnodes);
     206                md2.mesh.elementconnectivity=ElementConnectivity(md2.elements,md2.mesh.nodeconnectivity);
    207207                md2.segments=contourenvelope(md2);
    208208                md2.mesh.vertexonboundary=zeros(numberofnodes2,1); md2.nodeonboundary(md2.segments(:,1:2))=1;
  • issm/trunk/src/m/model/modelsextract.m

    r9725 r9728  
    4242                %ok, we are sure element i is part of a new pool.
    4343                pool=zeros(numberofelements,1);
    44                 pool=PropagateFlagsFromConnectivity(md.elementconnectivity,pool,i,flags);
     44                pool=PropagateFlagsFromConnectivity(md.mesh.elementconnectivity,pool,i,flags);
    4545                flag_list{end+1,1}=pool;
    4646               
  • issm/trunk/src/m/model/partition/AreaAverageOntoPartition.m

    r9725 r9728  
    2222        md.mesh.numberofelements=md.mesh.numberofelements2d;
    2323        md.vertex_weight=[];
    24         md.nodeconnectivity=[];
     24        md.mesh.nodeconnectivity=[];
    2525
    2626        %run connectivity routine
  • issm/trunk/src/m/model/partition/adjacency.m

    r9725 r9728  
    1919
    2020%get node connectivity
    21 md.nodeconnectivity=NodeConnectivity(md.elements,md.mesh.numberofvertices);
     21md.mesh.nodeconnectivity=NodeConnectivity(md.elements,md.mesh.numberofvertices);
    2222
    23 connectivity=md.nodeconnectivity(:,1:end-1);
     23connectivity=md.mesh.nodeconnectivity(:,1:end-1);
    2424pos=find(connectivity);
    2525connectivity(pos)=areas(connectivity(pos))/3;
  • issm/trunk/src/m/model/partition/partitioner.m

    r9725 r9728  
    4040        md.mesh.numberofelements=md.mesh.numberofelements2d;
    4141        md.qmu.vertex_weight=[];
    42         md.nodeconnectivity=[];
     42        md.mesh.nodeconnectivity=[];
    4343end
    4444
  • issm/trunk/src/m/model/setmask2.m

    r9725 r9728  
    2828
    2929%Now, build the connectivity tables for this mesh.
    30 if size(md.nodeconnectivity,1)~=md.mesh.numberofvertices,
    31         md.nodeconnectivity=NodeConnectivity(md.elements,md.mesh.numberofvertices);
     30if size(md.mesh.nodeconnectivity,1)~=md.mesh.numberofvertices,
     31        md.mesh.nodeconnectivity=NodeConnectivity(md.elements,md.mesh.numberofvertices);
    3232end
    33 if size(md.elementconnectivity,1)~=md.mesh.numberofelements,
    34         md.elementconnectivity=ElementConnectivity(md.elements,md.nodeconnectivity);
     33if size(md.mesh.elementconnectivity,1)~=md.mesh.numberofelements,
     34        md.mesh.elementconnectivity=ElementConnectivity(md.elements,md.mesh.nodeconnectivity);
    3535end
    3636
     
    5555%figure out which elements on land are actually in the middle of the ocean!
    5656pos1=find(elementonland);
    57 connectedtoland=md.elementconnectivity(pos1,:);
     57connectedtoland=md.mesh.elementconnectivity(pos1,:);
    5858pos=find(connectedtoland); connectedtoland(pos)=1-elementonland(connectedtoland(pos));
    5959connectedtolandsum=sum(connectedtoland,2);
     
    6363%figure out which elements on water  are actually in the middle of the land!
    6464pos1=find(~elementonland);
    65 connectedtowater=md.elementconnectivity(pos1,:);
     65connectedtowater=md.mesh.elementconnectivity(pos1,:);
    6666pos=find(connectedtowater); connectedtowater(pos)=elementonland(connectedtowater(pos));
    6767connectedtowatersum=sum(connectedtowater,2);
     
    106106
    107107%Get current connectivity
    108 elementconnectivity=md.elementconnectivity;
     108mesh.elementconnectivity=md.mesh.elementconnectivity;
    109109
    110110%put 0 for elements on water
    111 pos=find(elementconnectivity);
    112 elementconnectivity(pos)=elementconnectivity(pos).*(~elementonwater(elementconnectivity(pos)));
     111pos=find(mesh.elementconnectivity);
     112mesh.elementconnectivity(pos)=mesh.elementconnectivity(pos).*(~elementonwater(mesh.elementconnectivity(pos)));
    113113
    114114%put line of ones for elements on water
    115115pos=find(elementonwater);
    116 elementconnectivity(pos,:)=1;% line of ones for elements on water so they won't be considered
     116mesh.elementconnectivity(pos,:)=1;% line of ones for elements on water so they won't be considered
    117117
    118118%resort lines (zeros must be at the last column for findsegments)
    119 elementconnectivity=sort(elementconnectivity,2,'descend');
     119mesh.elementconnectivity=sort(mesh.elementconnectivity,2,'descend');
    120120
    121121%call findsegments to build segment using THIS conectivity
    122 md.mesh.segments=findsegments(md,'elementconnectivity',elementconnectivity);
     122md.mesh.segments=findsegments(md,'mesh.elementconnectivity',mesh.elementconnectivity);
    123123
    124124%some final checks:
    125125%check that no node thinks it's on an ice shelf or ice sheet, and lies actually in the middle of the water.
    126126nodesgrounded=find(~vertexonwater);
    127 lengthconnectivity=size(md.nodeconnectivity,2);
    128 groundedcounters=md.nodeconnectivity(nodesgrounded,lengthconnectivity);
    129 groundedconnectivity=md.nodeconnectivity(nodesgrounded,1:lengthconnectivity-1);
     127lengthconnectivity=size(md.mesh.nodeconnectivity,2);
     128groundedcounters=md.mesh.nodeconnectivity(nodesgrounded,lengthconnectivity);
     129groundedconnectivity=md.mesh.nodeconnectivity(nodesgrounded,1:lengthconnectivity-1);
    130130pos=find(groundedconnectivity);
    131131groundedconnectivity(pos)=elementonwater(groundedconnectivity(pos));
  • issm/trunk/src/m/utils/Mesh/ProfileProjectOntoMesh.m

    r4773 r9728  
    4848
    4949%now, for each node, figure out which element it belongs to.
    50 node_in_element=NodeInElement(newx,newy,md.elements,md.x,md.y,md.nodeconnectivity);
     50node_in_element=NodeInElement(newx,newy,md.elements,md.x,md.y,md.mesh.nodeconnectivity);
    5151
    5252% eliminate nodes that don't fall in any element
  • issm/trunk/src/m/utils/Mesh/squaremesh.m

    r9725 r9728  
    7272
    7373%Now, build the connectivity tables for this mesh.
    74 md.nodeconnectivity=NodeConnectivity(md.elements,md.mesh.numberofvertices);
    75 md.elementconnectivity=ElementConnectivity(md.elements,md.nodeconnectivity);
     74md.mesh.nodeconnectivity=NodeConnectivity(md.elements,md.mesh.numberofvertices);
     75md.mesh.elementconnectivity=ElementConnectivity(md.elements,md.mesh.nodeconnectivity);
    7676
    7777%plug other field
  • issm/trunk/template

    r9725 r9728  
    88          edges
    99
    10           uppernodes
    11           upperelements
    12           lowerelements
    13           lowernodes
    14 
    1510          elements2d
    1611          x2d
     
    2116          nodeonbed
    2217          nodeonsurface
    23 
    24           nodeconnectivity
    25           elementconnectivity
    2618}}}
    2719
Note: See TracChangeset for help on using the changeset viewer.