Changeset 18076


Ignore:
Timestamp:
05/31/14 04:47:48 (11 years ago)
Author:
Mathieu Morlighem
Message:

CHG: renumbering L1L2

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

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/classes/flowequation.m

    r17931 r18076  
    144144                                        md = checkfield(md,'fieldname','flowequation.element_equation','size',[md.mesh.numberofelements 1],'values',[1:2]);
    145145                                elseif strcmp(domaintype(md.mesh),'2Dvertical')
    146                                         md = checkfield(md,'fieldname','flowequation.vertex_equation','size',[md.mesh.numberofvertices 1],'values',[2:4]);
    147                                         md = checkfield(md,'fieldname','flowequation.element_equation','size',[md.mesh.numberofelements 1],'values',[2:4]);
     146                                        md = checkfield(md,'fieldname','flowequation.vertex_equation','size',[md.mesh.numberofvertices 1],'values',[2,4,5]);
     147                                        md = checkfield(md,'fieldname','flowequation.element_equation','size',[md.mesh.numberofelements 1],'values',[2,4,5]);
    148148                                elseif strcmp(domaintype(md.mesh),'3D'),
    149149                                        md = checkfield(md,'fieldname','flowequation.vertex_equation','size',[md.mesh.numberofvertices 1],'values',[0:8]);
     
    202202                        pos=find(data==1); data(pos,end)=SIAApproximationEnum();
    203203                        pos=find(data==2); data(pos,end)=SSAApproximationEnum();
    204                         pos=find(data==3); data(pos,end)=HOApproximationEnum();
    205                         pos=find(data==4); data(pos,end)=FSApproximationEnum();
    206                         pos=find(data==5); data(pos,end)=SSAHOApproximationEnum();
    207                         pos=find(data==6); data(pos,end)=SSAFSApproximationEnum();
     204                        pos=find(data==3); data(pos,end)=L1L2ApproximationEnum();
     205                        pos=find(data==4); data(pos,end)=HOApproximationEnum();
     206                        pos=find(data==5); data(pos,end)=FSApproximationEnum();
     207
     208                        pos=find(data==6); data(pos,end)=SSAHOApproximationEnum();
    208209                        pos=find(data==7); data(pos,end)=HOFSApproximationEnum();
    209                         pos=find(data==8); data(pos,end)=L1L2ApproximationEnum();
     210                        pos=find(data==8); data(pos,end)=SSAFSApproximationEnum();
    210211                        WriteData(fid,'data',data,'enum',FlowequationVertexEquationEnum(),'format','DoubleMat','mattype',1);
    211212                        data=obj.element_equation;
     
    213214                        pos=find(data==1); data(pos,end)=SIAApproximationEnum();
    214215                        pos=find(data==2); data(pos,end)=SSAApproximationEnum();
    215                         pos=find(data==3); data(pos,end)=HOApproximationEnum();
    216                         pos=find(data==4); data(pos,end)=FSApproximationEnum();
    217                         pos=find(data==5); data(pos,end)=SSAHOApproximationEnum();
    218                         pos=find(data==6); data(pos,end)=SSAFSApproximationEnum();
    219                         pos=find(data==7); data(pos,end)=HOFSApproximationEnum();
    220                         pos=find(data==8); data(pos,end)=L1L2ApproximationEnum();
     216                        pos=find(data==3); data(pos,end)=L1L2ApproximationEnum();
     217                        pos=find(data==4); data(pos,end)=HOApproximationEnum();
     218                        pos=find(data==5); data(pos,end)=FSApproximationEnum();
     219
     220                        pos=find(data==6); data(pos,end)=SSAHOApproximationEnum();
     221                        pos=find(data==7); data(pos,end)=SSAFSApproximationEnum();
     222                        pos=find(data==8); data(pos,end)=HOFSApproximationEnum();
    221223                        WriteData(fid,'data',data,'enum',FlowequationElementEquationEnum(),'format','DoubleMat','mattype',2);
    222224                end % }}}
  • issm/trunk-jpl/src/m/classes/flowequation.py

    r17686 r18076  
    121121                data[numpy.nonzero(data==1)]=SIAApproximationEnum()
    122122                data[numpy.nonzero(data==2)]=SSAApproximationEnum()
    123                 data[numpy.nonzero(data==3)]=HOApproximationEnum()
    124                 data[numpy.nonzero(data==4)]=FSApproximationEnum()
    125                 data[numpy.nonzero(data==5)]=SSAHOApproximationEnum()
    126                 data[numpy.nonzero(data==6)]=SSAFSApproximationEnum()
     123                data[numpy.nonzero(data==3)]=L1L2ApproximationEnum()
     124                data[numpy.nonzero(data==4)]=HOApproximationEnum()
     125                data[numpy.nonzero(data==5)]=FSApproximationEnum()
     126                data[numpy.nonzero(data==6)]=SSAHOApproximationEnum()
    127127                data[numpy.nonzero(data==7)]=HOFSApproximationEnum()
    128                 data[numpy.nonzero(data==8)]=L1L2ApproximationEnum()
     128                data[numpy.nonzero(data==8)]=SSAFSApproximationEnum()
    129129                WriteData(fid,'data',data,'enum',FlowequationVertexEquationEnum(),'format','DoubleMat','mattype',1)
    130130                data=copy.deepcopy(self.element_equation)
     
    132132                data[numpy.nonzero(data==1)]=SIAApproximationEnum()
    133133                data[numpy.nonzero(data==2)]=SSAApproximationEnum()
    134                 data[numpy.nonzero(data==3)]=HOApproximationEnum()
    135                 data[numpy.nonzero(data==4)]=FSApproximationEnum()
    136                 data[numpy.nonzero(data==5)]=SSAHOApproximationEnum()
    137                 data[numpy.nonzero(data==6)]=SSAFSApproximationEnum()
    138                 data[numpy.nonzero(data==7)]=HOFSApproximationEnum()
    139                 data[numpy.nonzero(data==8)]=L1L2ApproximationEnum()
     134                data[numpy.nonzero(data==3)]=L1L2ApproximationEnum()
     135                data[numpy.nonzero(data==4)]=HOApproximationEnum()
     136                data[numpy.nonzero(data==5)]=FSApproximationEnum()
     137                data[numpy.nonzero(data==6)]=SSAHOApproximationEnum()
     138                data[numpy.nonzero(data==7)]=SSAFSApproximationEnum()
     139                data[numpy.nonzero(data==8)]=HOFSApproximationEnum()
    140140                WriteData(fid,'data',data,'enum',FlowequationElementEquationEnum(),'format','DoubleMat','mattype',2)
    141141        # }}}
  • issm/trunk-jpl/src/m/classes/inversionvalidation.m

    r18008 r18076  
    5353                        md = checkfield(md,'fieldname','inversion.incomplete_adjoint','values',[0 1]);
    5454                        md = checkfield(md,'fieldname','inversion.control_parameters','cell',1,'values',...
    55                                 {'BalancethicknessThickeningRate' 'FrictionCoefficient' 'MaterialsRheologyBbar' 'MaterialsRheologyZbar' 'Vx' 'Vy' 'Thickness'});
    56                         md = checkfield(md,'fieldname','inversion.cost_functions','size',[1 num_costfunc],'values',[101:105 201 501:506]);
     55                                {'BalancethicknessThickeningRate' 'FrictionCoefficient' 'MaterialsRheologyBbar' 'MaterialsRheologyZbar' 'Vx' 'Vy' 'Thickness' 'BalancethicknessApparentMassbalance'});
     56                        md = checkfield(md,'fieldname','inversion.cost_functions','size',[1 num_costfunc],'values',[101:105 201 501:507]);
    5757                        md = checkfield(md,'fieldname','inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices num_costfunc],'>=',0);
    5858                        md = checkfield(md,'fieldname','inversion.min_parameters','size',[md.mesh.numberofvertices num_controls]);
     
    108108                        WriteData(fid,'object',obj,'class','inversion','fieldname','vy_obs','format','DoubleMat','mattype',1,'scale',1./yts);
    109109                        WriteData(fid,'object',obj,'class','inversion','fieldname','vz_obs','format','DoubleMat','mattype',1,'scale',1./yts);
    110                         WriteData(fid,'object',obj,'class','inversion','fieldname','thickness_obs','format','DoubleMat','mattype',1);
     110                        if(numel(obj.thickness_obs)==md.mesh.numberofelements),
     111                                mattype=2;
     112                        else
     113                                mattype=1;
     114                        end
     115                        WriteData(fid,'object',obj,'class','inversion','fieldname','thickness_obs','format','DoubleMat','mattype',mattype);
    111116
    112117                        %process control parameters
     
    134139                        pos=find(obj.cost_functions==505); data(pos)=ThicknessAcrossGradientEnum();
    135140                        pos=find(obj.cost_functions==506); data(pos)=BalancethicknessMisfitEnum();
     141                        pos=find(obj.cost_functions==507); data(pos)=Balancethickness2MisfitEnum();
    136142                        WriteData(fid,'data',data,'enum',InversionCostFunctionsEnum(),'format','DoubleMat','mattype',3);
    137143                        WriteData(fid,'data',num_cost_functions,'enum',InversionNumCostFunctionsEnum(),'format','Integer');
  • issm/trunk-jpl/src/m/classes/m1qn3inversion.m

    r17968 r18076  
    7171                        md = checkfield(md,'fieldname','inversion.incomplete_adjoint','values',[0 1]);
    7272                        md = checkfield(md,'fieldname','inversion.control_parameters','cell',1,'values',...
    73                                 {'BalancethicknessThickeningRate' 'FrictionCoefficient' 'MaterialsRheologyBbar' 'MaterialsRheologyZbar' 'Vx' 'Vy' 'Thickness'});
     73                                {'BalancethicknessThickeningRate' 'FrictionCoefficient' 'MaterialsRheologyBbar' 'MaterialsRheologyZbar' 'Vx' 'Vy' 'Thickness' 'BalancethicknessApparentMassbalance'});
    7474                        md = checkfield(md,'fieldname','inversion.maxsteps','numel',1,'>=',0);
    7575                        md = checkfield(md,'fieldname','inversion.maxiter','numel',1,'>=',0);
    7676                        md = checkfield(md,'fieldname','inversion.dxmin','numel',1,'>',0);
    7777                        md = checkfield(md,'fieldname','inversion.gttol','numel',1,'>',0);
    78                         md = checkfield(md,'fieldname','inversion.cost_functions','size',[1 num_costfunc],'values',[101:105 201 501:506]);
     78                        md = checkfield(md,'fieldname','inversion.cost_functions','size',[1 num_costfunc],'values',[101:105 201 501:507]);
    7979                        md = checkfield(md,'fieldname','inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices num_costfunc],'>=',0);
    8080                        md = checkfield(md,'fieldname','inversion.min_parameters','size',[md.mesh.numberofvertices num_controls]);
     
    138138                        WriteData(fid,'object',obj,'class','inversion','fieldname','vy_obs','format','DoubleMat','mattype',1,'scale',1./yts);
    139139                        WriteData(fid,'object',obj,'class','inversion','fieldname','vz_obs','format','DoubleMat','mattype',1,'scale',1./yts);
    140                         WriteData(fid,'object',obj,'class','inversion','fieldname','thickness_obs','format','DoubleMat','mattype',1);
     140                        if(numel(obj.thickness_obs)==md.mesh.numberofelements),
     141                                mattype=2;
     142                        else
     143                                mattype=1;
     144                        end
     145                        WriteData(fid,'object',obj,'class','inversion','fieldname','thickness_obs','format','DoubleMat','mattype',mattype);
    141146
    142147                        %process control parameters
     
    164169                        pos=find(obj.cost_functions==505); data(pos)=ThicknessAcrossGradientEnum();
    165170                        pos=find(obj.cost_functions==506); data(pos)=BalancethicknessMisfitEnum();
     171                        pos=find(obj.cost_functions==507); data(pos)=Balancethickness2MisfitEnum();
    166172                        WriteData(fid,'data',data,'enum',InversionCostFunctionsEnum(),'format','DoubleMat','mattype',3);
    167173                        WriteData(fid,'data',num_cost_functions,'enum',InversionNumCostFunctionsEnum(),'format','Integer');
  • issm/trunk-jpl/src/m/parameterization/setflowequation.m

    r17686 r18076  
    7070end
    7171
    72 %Check that no L1L2 or HO or FS for 2d mesh
     72%Check that no HO or FS for 2d mesh
    7373if strcmp(domaintype(md.mesh),'2Dhorizontal')
    74         if any(L1L2flag | FSflag | HOflag)
     74        if any(FSflag | HOflag)
    7575                error('FS and HO elements not allowed in 2d mesh, extrude it first')
    7676        end
     
    239239end
    240240
    241 %Create MacaAyealHOApproximation where needed
     241%Create element equations
    242242md.flowequation.element_equation=zeros(md.mesh.numberofelements,1);
    243243md.flowequation.element_equation(find(noneflag))=0;
    244244md.flowequation.element_equation(find(SIAflag))=1;
    245245md.flowequation.element_equation(find(SSAflag))=2;
    246 md.flowequation.element_equation(find(L1L2flag))=8;
    247 md.flowequation.element_equation(find(HOflag))=3;
    248 md.flowequation.element_equation(find(FSflag))=4;
    249 md.flowequation.element_equation(find(SSAHOflag))=5;
    250 md.flowequation.element_equation(find(SSAFSflag))=6;
    251 md.flowequation.element_equation(find(HOFSflag))=7;
     246md.flowequation.element_equation(find(L1L2flag))=3;
     247md.flowequation.element_equation(find(HOflag))=4;
     248md.flowequation.element_equation(find(FSflag))=5;
     249md.flowequation.element_equation(find(SSAHOflag))=6;
     250md.flowequation.element_equation(find(SSAFSflag))=7;
     251md.flowequation.element_equation(find(HOFSflag))=8;
    252252
    253253%border
     
    258258%Create vertices_type
    259259md.flowequation.vertex_equation=zeros(md.mesh.numberofvertices,1);
     260pos=find(nodeonSIA);
     261md.flowequation.vertex_equation(pos)=1;
    260262pos=find(nodeonSSA);
    261263md.flowequation.vertex_equation(pos)=2;
    262264pos=find(nodeonL1L2);
    263 md.flowequation.vertex_equation(pos)=8;
     265md.flowequation.vertex_equation(pos)=3;
    264266pos=find(nodeonHO);
    265 md.flowequation.vertex_equation(pos)=3;
    266 pos=find(nodeonSIA);
    267 md.flowequation.vertex_equation(pos)=1;
    268 pos=find(nodeonSSAHO);
     267md.flowequation.vertex_equation(pos)=4;
     268pos=find(nodeonFS);
    269269md.flowequation.vertex_equation(pos)=5;
    270 pos=find(nodeonFS);
    271 md.flowequation.vertex_equation(pos)=4;
    272270if any(FSflag),
    273271        pos=find(~nodeonFS);
     
    276274        end
    277275end
     276pos=find(nodeonSSAHO);
     277md.flowequation.vertex_equation(pos)=6;
    278278pos=find(nodeonHOFS);
    279279md.flowequation.vertex_equation(pos)=7;
    280280pos=find(nodeonSSAFS);
    281 md.flowequation.vertex_equation(pos)=6;
     281md.flowequation.vertex_equation(pos)=8;
    282282
    283283%figure out solution types
    284284md.flowequation.isSIA  = double(any(md.flowequation.element_equation == 1));
    285285md.flowequation.isSSA  = double(any(md.flowequation.element_equation == 2));
    286 md.flowequation.isHO  = double(any(md.flowequation.element_equation == 3));
    287 md.flowequation.isL1L2 = double(any(md.flowequation.element_equation == 8));
    288 md.flowequation.isFS   = double(any(md.flowequation.element_equation == 4));
     286md.flowequation.isL1L2 = double(any(md.flowequation.element_equation == 3));
     287md.flowequation.isHO   = double(any(md.flowequation.element_equation == 4));
     288md.flowequation.isFS   = double(any(md.flowequation.element_equation == 5));
    289289
    290290return
  • issm/trunk-jpl/src/m/parameterization/setflowequation.py

    r17873 r18076  
    232232        md.flowequation.element_equation[numpy.nonzero(SIAflag)]=1
    233233        md.flowequation.element_equation[numpy.nonzero(SSAflag)]=2
    234         md.flowequation.element_equation[numpy.nonzero(L1L2flag)]=8
    235         md.flowequation.element_equation[numpy.nonzero(HOflag)]=3
    236         md.flowequation.element_equation[numpy.nonzero(FSflag)]=4
    237         md.flowequation.element_equation[numpy.nonzero(SSAHOflag)]=5
    238         md.flowequation.element_equation[numpy.nonzero(SSAFSflag)]=6
    239         md.flowequation.element_equation[numpy.nonzero(HOFSflag)]=7
     234        md.flowequation.element_equation[numpy.nonzero(L1L2flag)]=3
     235        md.flowequation.element_equation[numpy.nonzero(HOflag)]=4
     236        md.flowequation.element_equation[numpy.nonzero(FSflag)]=5
     237        md.flowequation.element_equation[numpy.nonzero(SSAHOflag)]=6
     238        md.flowequation.element_equation[numpy.nonzero(SSAFSflag)]=7
     239        md.flowequation.element_equation[numpy.nonzero(HOFSflag)]=8
    240240
    241241        #border
     
    246246        #Create vertices_type
    247247        md.flowequation.vertex_equation=numpy.zeros(md.mesh.numberofvertices,int)
     248        pos=numpy.nonzero(nodeonSIA)
     249        md.flowequation.vertex_equation[pos]=1
    248250        pos=numpy.nonzero(nodeonSSA)
    249251        md.flowequation.vertex_equation[pos]=2
    250252        pos=numpy.nonzero(nodeonL1L2)
    251         md.flowequation.vertex_equation[pos]=8
     253        md.flowequation.vertex_equation[pos]=3
    252254        pos=numpy.nonzero(nodeonHO)
    253         md.flowequation.vertex_equation[pos]=3
    254         pos=numpy.nonzero(nodeonSIA)
    255         md.flowequation.vertex_equation[pos]=1
    256         pos=numpy.nonzero(nodeonSSAHO)
     255        md.flowequation.vertex_equation[pos]=4
     256        pos=numpy.nonzero(nodeonFS)
    257257        md.flowequation.vertex_equation[pos]=5
    258         pos=numpy.nonzero(nodeonFS)
    259         md.flowequation.vertex_equation[pos]=4
    260258        if any(FSflag):
    261259                pos=numpy.nonzero(numpy.logical_not(nodeonFS))
    262260                if not (any(HOflag) or any(SSAflag)):
    263261                        md.flowequation.vertex_equation[pos]=0
     262        pos=numpy.nonzero(nodeonSSAHO)
     263        md.flowequation.vertex_equation[pos]=6
    264264        pos=numpy.nonzero(nodeonHOFS)
    265265        md.flowequation.vertex_equation[pos]=7
    266266        pos=numpy.nonzero(nodeonSSAFS)
    267         md.flowequation.vertex_equation[pos]=6
     267        md.flowequation.vertex_equation[pos]=8
    268268
    269269        #figure out solution types
    270270        md.flowequation.isSIA=any(md.flowequation.element_equation==1)
    271271        md.flowequation.isSSA=any(md.flowequation.element_equation==2)
    272         md.flowequation.isL1L2=any(md.flowequation.element_equation==8)
    273         md.flowequation.isHO=any(md.flowequation.element_equation==3)
    274         md.flowequation.isFS=any(md.flowequation.element_equation==4)
     272        md.flowequation.isL1L2=any(md.flowequation.element_equation==3)
     273        md.flowequation.isHO=any(md.flowequation.element_equation==4)
     274        md.flowequation.isFS=any(md.flowequation.element_equation==5)
    275275
    276276        return md
  • issm/trunk-jpl/src/m/plot/plot_elementstype.m

    r15567 r18076  
    1818
    1919if is2d
     20        %None elements
     21        posNONE=find(data==0);
     22        A=elements(posNONE,1); B=elements(posNONE,2); C=elements(posNONE,3);
     23        p1=patch( 'Faces', [A B C], 'Vertices', [x y z],'CData',0,'FaceColor','flat','EdgeColor',edgecolor);
    2024        %SIA elements
    2125        posH=find(data==1);
    2226        A=elements(posH,1); B=elements(posH,2); C=elements(posH,3);
    23         p1=patch( 'Faces', [A B C], 'Vertices', [x y z],'CData',1,'FaceColor','flat','EdgeColor',edgecolor);
     27        p2=patch( 'Faces', [A B C], 'Vertices', [x y z],'CData',1,'FaceColor','flat','EdgeColor',edgecolor);
    2428        %SSA element
    2529        posM=find(data==2);
    2630        A=elements(posM,1); B=elements(posM,2); C=elements(posM,3);
    27         p2=patch( 'Faces', [A B C], 'Vertices', [x y z],'CData',2,'FaceColor','flat','EdgeColor',edgecolor);
     31        p3=patch( 'Faces', [A B C], 'Vertices', [x y z],'CData',2,'FaceColor','flat','EdgeColor',edgecolor);
     32        %L1L2 element
     33        posM=find(data==3);
     34        A=elements(posM,1); B=elements(posM,2); C=elements(posM,3);
     35        p4=patch( 'Faces', [A B C], 'Vertices', [x y z],'CData',2,'FaceColor','flat','EdgeColor',edgecolor);
    2836        %HO element
    29         posP=find(data==3);
     37        posP=find(data==4);
    3038        A=elements(posP,1); B=elements(posP,2); C=elements(posP,3);
    31         p3=patch( 'Faces', [A B C], 'Vertices', [x y z],'CData',3,'FaceColor','flat','EdgeColor',edgecolor);
    32         %SSAHO element
    33         posMP=find(data==5);
    34         A=elements(posMP,1); B=elements(posMP,2); C=elements(posMP,3);
    35         p5=patch( 'Faces', [A B C], 'Vertices', [x y z],'CData',5,'FaceColor','flat','EdgeColor',edgecolor);
     39        p5=patch( 'Faces', [A B C], 'Vertices', [x y z],'CData',3,'FaceColor','flat','EdgeColor',edgecolor);
    3640        %FS elements
    37         posS=find(data==4);
     41        posS=find(data==5);
    3842        A=elements(posS,1); B=elements(posS,2); C=elements(posS,3);
    3943        p6=patch( 'Faces', [A B C], 'Vertices', [x y z],'CData',4,'FaceColor','flat','EdgeColor',edgecolor);
    40         %SSAFS elements
    41         posMS=find(data==6);
    42         A=elements(posMS,1); B=elements(posMS,2); C=elements(posMS,3);
    43         p7=patch( 'Faces', [A B C], 'Vertices', [x y z],'CData',6,'FaceColor','flat','EdgeColor',edgecolor);
     44        %SSAHO element
     45        posMP=find(data==6);
     46        A=elements(posMP,1); B=elements(posMP,2); C=elements(posMP,3);
     47        p7=patch( 'Faces', [A B C], 'Vertices', [x y z],'CData',5,'FaceColor','flat','EdgeColor',edgecolor);
    4448        %HOFS elements
    4549        posPS=find(data==7);
    4650        A=elements(posPS,1); B=elements(posPS,2); C=elements(posPS,3);
    4751        p8=patch( 'Faces', [A B C], 'Vertices', [x y z],'CData',7,'FaceColor','flat','EdgeColor',edgecolor);
    48         %None elements
    49         posNONE=find(data==0);
    50         A=elements(posNONE,1); B=elements(posNONE,2); C=elements(posNONE,3);
    51         p9=patch( 'Faces', [A B C], 'Vertices', [x y z],'CData',0,'FaceColor','flat','EdgeColor',edgecolor);
    52 
    53         legend([p1 p2 p3 p5 p6 p7 p8 p9],...
    54                 'SIA''s elements','SSA''s elements','HO''s elements',...
    55                 'SSAHO''s elements','FS''s elements','SSAFS''s elements','HOFS''s elements','None element');
     52        %SSAFS elements
     53        posMS=find(data==8);
     54        A=elements(posMS,1); B=elements(posMS,2); C=elements(posMS,3);
     55        p9=patch( 'Faces', [A B C], 'Vertices', [x y z],'CData',6,'FaceColor','flat','EdgeColor',edgecolor);
    5656
    5757else
     58        %None elements
     59        PosNONE=find(data==0);
     60        A=elements(PosNONE,1); B=elements(PosNONE,2); C=elements(PosNONE,3); D=elements(PosNONE,4); E=elements(PosNONE,5); F=elements(PosNONE,6);
     61        p1=patch( 'Faces', [A B C],'Vertices', [x y z],'CData', 0,'FaceColor','flat','EdgeColor',edgecolor);
     62        patch( 'Faces', [D E F],  'Vertices', [x y z],'CData', 0,'FaceColor','flat','EdgeColor',edgecolor);
     63        patch( 'Faces', [A B E D],'Vertices', [x y z],'CData', 0,'FaceColor','flat','EdgeColor',edgecolor);
     64        patch( 'Faces', [B E F C],'Vertices', [x y z],'CData', 0,'FaceColor','flat','EdgeColor',edgecolor);
     65        patch( 'Faces', [C A D F],'Vertices', [x y z],'CData', 0,'FaceColor','flat','EdgeColor',edgecolor);
    5866        %SIA elements
    5967        posH=find(data==1);
    6068        A=elements(posH,1); B=elements(posH,2); C=elements(posH,3); D=elements(posH,4); E=elements(posH,5); F=elements(posH,6);
    61         p1=patch( 'Faces', [A B C],'Vertices', [x y z],'CData', 1,'FaceColor','flat','EdgeColor',edgecolor);
     69        p2=patch( 'Faces', [A B C],'Vertices', [x y z],'CData', 1,'FaceColor','flat','EdgeColor',edgecolor);
    6270        patch( 'Faces', [D E F],  'Vertices', [x y z],'CData', 1,'FaceColor','flat','EdgeColor',edgecolor);
    6371        patch( 'Faces', [A B E D],'Vertices', [x y z],'CData', 1,'FaceColor','flat','EdgeColor',edgecolor);
     
    6775        posM=find(data==2);
    6876        A=elements(posM,1); B=elements(posM,2); C=elements(posM,3); D=elements(posM,4); E=elements(posM,5); F=elements(posM,6);
    69         p2=patch( 'Faces', [A B C],'Vertices', [x y z],'CData', 2,'FaceColor','flat','EdgeColor',edgecolor);
     77        p3=patch( 'Faces', [A B C],'Vertices', [x y z],'CData', 2,'FaceColor','flat','EdgeColor',edgecolor);
    7078        patch( 'Faces', [D E F],  'Vertices', [x y z],'CData', 2,'FaceColor','flat','EdgeColor',edgecolor);
    7179        patch( 'Faces', [A B E D],'Vertices', [x y z],'CData', 2,'FaceColor','flat','EdgeColor',edgecolor);
    7280        patch( 'Faces', [B E F C],'Vertices', [x y z],'CData', 2,'FaceColor','flat','EdgeColor',edgecolor);
    7381        patch( 'Faces', [C A D F],'Vertices', [x y z],'CData', 2,'FaceColor','flat','EdgeColor',edgecolor);
     82        %L1L2 elements
     83        posP=find(data==3);
     84        A=elements(posP,1); B=elements(posP,2); C=elements(posP,3); D=elements(posP,4); E=elements(posP,5); F=elements(posP,6);
     85        p4=patch( 'Faces', [A B C],'Vertices', [x y z],'CData', 3,'FaceColor','flat','EdgeColor',edgecolor);
     86        patch( 'Faces', [D E F],  'Vertices', [x y z],'CData', 3,'FaceColor','flat','EdgeColor',edgecolor);
     87        patch( 'Faces', [A B E D],'Vertices', [x y z],'CData', 3,'FaceColor','flat','EdgeColor',edgecolor);
     88        patch( 'Faces', [B E F C],'Vertices', [x y z],'CData', 3,'FaceColor','flat','EdgeColor',edgecolor);
     89        patch( 'Faces', [C A D F],'Vertices', [x y z],'CData', 3,'FaceColor','flat','EdgeColor',edgecolor);
    7490        %HO elements
    7591        posP=find(data==3);
    7692        A=elements(posP,1); B=elements(posP,2); C=elements(posP,3); D=elements(posP,4); E=elements(posP,5); F=elements(posP,6);
    77         p3=patch( 'Faces', [A B C],'Vertices', [x y z],'CData', 3,'FaceColor','flat','EdgeColor',edgecolor);
     93        p5=patch( 'Faces', [A B C],'Vertices', [x y z],'CData', 3,'FaceColor','flat','EdgeColor',edgecolor);
    7894        patch( 'Faces', [D E F],  'Vertices', [x y z],'CData', 3,'FaceColor','flat','EdgeColor',edgecolor);
    7995        patch( 'Faces', [A B E D],'Vertices', [x y z],'CData', 3,'FaceColor','flat','EdgeColor',edgecolor);
     
    8399        posS=find(data==4);
    84100        A=elements(posS,1); B=elements(posS,2); C=elements(posS,3); D=elements(posS,4); E=elements(posS,5); F=elements(posS,6);
    85         p4=patch( 'Faces', [A B C],'Vertices', [x y z],'CData', 4,'FaceColor','flat','EdgeColor',edgecolor);
     101        p6=patch( 'Faces', [A B C],'Vertices', [x y z],'CData', 4,'FaceColor','flat','EdgeColor',edgecolor);
    86102        patch( 'Faces', [D E F],  'Vertices', [x y z],'CData', 4,'FaceColor','flat','EdgeColor',edgecolor);
    87103        patch( 'Faces', [A B E D],'Vertices', [x y z],'CData', 4,'FaceColor','flat','EdgeColor',edgecolor);
     
    91107        posP=find(data==5);
    92108        A=elements(posP,1); B=elements(posP,2); C=elements(posP,3); D=elements(posP,4); E=elements(posP,5); F=elements(posP,6);
    93         p5=patch( 'Faces', [A B C],'Vertices', [x y z],'CData', 5,'FaceColor','flat','EdgeColor',edgecolor);
     109        p7=patch( 'Faces', [A B C],'Vertices', [x y z],'CData', 5,'FaceColor','flat','EdgeColor',edgecolor);
    94110        patch( 'Faces', [D E F],  'Vertices', [x y z],'CData', 5,'FaceColor','flat','EdgeColor',edgecolor);
    95111        patch( 'Faces', [A B E D],'Vertices', [x y z],'CData', 5,'FaceColor','flat','EdgeColor',edgecolor);
     
    99115        PosPS=find(data==7);
    100116        A=elements(PosPS,1); B=elements(PosPS,2); C=elements(PosPS,3); D=elements(PosPS,4); E=elements(PosPS,5); F=elements(PosPS,6);
    101         p6=patch( 'Faces', [A B C],'Vertices', [x y z],'CData', 7,'FaceColor','flat','EdgeColor',edgecolor);
     117        p8=patch( 'Faces', [A B C],'Vertices', [x y z],'CData', 7,'FaceColor','flat','EdgeColor',edgecolor);
    102118        patch( 'Faces', [D E F],  'Vertices', [x y z],'CData', 7,'FaceColor','flat','EdgeColor',edgecolor);
    103119        patch( 'Faces', [A B E D],'Vertices', [x y z],'CData', 7,'FaceColor','flat','EdgeColor',edgecolor);
     
    107123        PosMS=find(data==6);
    108124        A=elements(PosMS,1); B=elements(PosMS,2); C=elements(PosMS,3); D=elements(PosMS,4); E=elements(PosMS,5); F=elements(PosMS,6);
    109         p7=patch( 'Faces', [A B C],'Vertices', [x y z],'CData', 6,'FaceColor','flat','EdgeColor',edgecolor);
     125        p9=patch( 'Faces', [A B C],'Vertices', [x y z],'CData', 6,'FaceColor','flat','EdgeColor',edgecolor);
    110126        patch( 'Faces', [D E F],  'Vertices', [x y z],'CData', 6,'FaceColor','flat','EdgeColor',edgecolor);
    111127        patch( 'Faces', [A B E D],'Vertices', [x y z],'CData', 6,'FaceColor','flat','EdgeColor',edgecolor);
    112128        patch( 'Faces', [B E F C],'Vertices', [x y z],'CData', 6,'FaceColor','flat','EdgeColor',edgecolor);
    113129        patch( 'Faces', [C A D F],'Vertices', [x y z],'CData', 6,'FaceColor','flat','EdgeColor',edgecolor);
    114         %None elements
    115         PosNONE=find(data==0);
    116         A=elements(PosNONE,1); B=elements(PosNONE,2); C=elements(PosNONE,3); D=elements(PosNONE,4); E=elements(PosNONE,5); F=elements(PosNONE,6);
    117         p8=patch( 'Faces', [A B C],'Vertices', [x y z],'CData', 0,'FaceColor','flat','EdgeColor',edgecolor);
    118         patch( 'Faces', [D E F],  'Vertices', [x y z],'CData', 0,'FaceColor','flat','EdgeColor',edgecolor);
    119         patch( 'Faces', [A B E D],'Vertices', [x y z],'CData', 0,'FaceColor','flat','EdgeColor',edgecolor);
    120         patch( 'Faces', [B E F C],'Vertices', [x y z],'CData', 0,'FaceColor','flat','EdgeColor',edgecolor);
    121         patch( 'Faces', [C A D F],'Vertices', [x y z],'CData', 0,'FaceColor','flat','EdgeColor',edgecolor);
    122130
    123         legend([p1 p2 p3 p4 p5 p6 p7 p8],...
    124                 'SIA''s elements','SSA''s elements','HO''s elements','FS''s elements',...
    125                 'SSAHO''s elements','HOFS''s elements','SSAFS''s elements','None elements');
    126131end
     132legend([p1 p2 p3 p4 p5 p6 p7 p8 p9],...
     133                'None','SIA','SSA','L1L2','HO',...
     134                'SSAHO','FS','SSAFS','HOFS');
    127135
    128136%apply options
Note: See TracChangeset for help on using the changeset viewer.