Changeset 18076
- Timestamp:
- 05/31/14 04:47:48 (11 years ago)
- Location:
- issm/trunk-jpl/src/m
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/classes/flowequation.m
r17931 r18076 144 144 md = checkfield(md,'fieldname','flowequation.element_equation','size',[md.mesh.numberofelements 1],'values',[1:2]); 145 145 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]); 148 148 elseif strcmp(domaintype(md.mesh),'3D'), 149 149 md = checkfield(md,'fieldname','flowequation.vertex_equation','size',[md.mesh.numberofvertices 1],'values',[0:8]); … … 202 202 pos=find(data==1); data(pos,end)=SIAApproximationEnum(); 203 203 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(); 208 209 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(); 210 211 WriteData(fid,'data',data,'enum',FlowequationVertexEquationEnum(),'format','DoubleMat','mattype',1); 211 212 data=obj.element_equation; … … 213 214 pos=find(data==1); data(pos,end)=SIAApproximationEnum(); 214 215 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(); 221 223 WriteData(fid,'data',data,'enum',FlowequationElementEquationEnum(),'format','DoubleMat','mattype',2); 222 224 end % }}} -
issm/trunk-jpl/src/m/classes/flowequation.py
r17686 r18076 121 121 data[numpy.nonzero(data==1)]=SIAApproximationEnum() 122 122 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)]=SSA FSApproximationEnum()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() 127 127 data[numpy.nonzero(data==7)]=HOFSApproximationEnum() 128 data[numpy.nonzero(data==8)]= L1L2ApproximationEnum()128 data[numpy.nonzero(data==8)]=SSAFSApproximationEnum() 129 129 WriteData(fid,'data',data,'enum',FlowequationVertexEquationEnum(),'format','DoubleMat','mattype',1) 130 130 data=copy.deepcopy(self.element_equation) … … 132 132 data[numpy.nonzero(data==1)]=SIAApproximationEnum() 133 133 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)]=SSA FSApproximationEnum()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() 140 140 WriteData(fid,'data',data,'enum',FlowequationElementEquationEnum(),'format','DoubleMat','mattype',2) 141 141 # }}} -
issm/trunk-jpl/src/m/classes/inversionvalidation.m
r18008 r18076 53 53 md = checkfield(md,'fieldname','inversion.incomplete_adjoint','values',[0 1]); 54 54 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:50 6]);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]); 57 57 md = checkfield(md,'fieldname','inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices num_costfunc],'>=',0); 58 58 md = checkfield(md,'fieldname','inversion.min_parameters','size',[md.mesh.numberofvertices num_controls]); … … 108 108 WriteData(fid,'object',obj,'class','inversion','fieldname','vy_obs','format','DoubleMat','mattype',1,'scale',1./yts); 109 109 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); 111 116 112 117 %process control parameters … … 134 139 pos=find(obj.cost_functions==505); data(pos)=ThicknessAcrossGradientEnum(); 135 140 pos=find(obj.cost_functions==506); data(pos)=BalancethicknessMisfitEnum(); 141 pos=find(obj.cost_functions==507); data(pos)=Balancethickness2MisfitEnum(); 136 142 WriteData(fid,'data',data,'enum',InversionCostFunctionsEnum(),'format','DoubleMat','mattype',3); 137 143 WriteData(fid,'data',num_cost_functions,'enum',InversionNumCostFunctionsEnum(),'format','Integer'); -
issm/trunk-jpl/src/m/classes/m1qn3inversion.m
r17968 r18076 71 71 md = checkfield(md,'fieldname','inversion.incomplete_adjoint','values',[0 1]); 72 72 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'}); 74 74 md = checkfield(md,'fieldname','inversion.maxsteps','numel',1,'>=',0); 75 75 md = checkfield(md,'fieldname','inversion.maxiter','numel',1,'>=',0); 76 76 md = checkfield(md,'fieldname','inversion.dxmin','numel',1,'>',0); 77 77 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:50 6]);78 md = checkfield(md,'fieldname','inversion.cost_functions','size',[1 num_costfunc],'values',[101:105 201 501:507]); 79 79 md = checkfield(md,'fieldname','inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices num_costfunc],'>=',0); 80 80 md = checkfield(md,'fieldname','inversion.min_parameters','size',[md.mesh.numberofvertices num_controls]); … … 138 138 WriteData(fid,'object',obj,'class','inversion','fieldname','vy_obs','format','DoubleMat','mattype',1,'scale',1./yts); 139 139 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); 141 146 142 147 %process control parameters … … 164 169 pos=find(obj.cost_functions==505); data(pos)=ThicknessAcrossGradientEnum(); 165 170 pos=find(obj.cost_functions==506); data(pos)=BalancethicknessMisfitEnum(); 171 pos=find(obj.cost_functions==507); data(pos)=Balancethickness2MisfitEnum(); 166 172 WriteData(fid,'data',data,'enum',InversionCostFunctionsEnum(),'format','DoubleMat','mattype',3); 167 173 WriteData(fid,'data',num_cost_functions,'enum',InversionNumCostFunctionsEnum(),'format','Integer'); -
issm/trunk-jpl/src/m/parameterization/setflowequation.m
r17686 r18076 70 70 end 71 71 72 %Check that no L1L2 orHO or FS for 2d mesh72 %Check that no HO or FS for 2d mesh 73 73 if strcmp(domaintype(md.mesh),'2Dhorizontal') 74 if any( L1L2flag |FSflag | HOflag)74 if any(FSflag | HOflag) 75 75 error('FS and HO elements not allowed in 2d mesh, extrude it first') 76 76 end … … 239 239 end 240 240 241 %Create MacaAyealHOApproximation where needed241 %Create element equations 242 242 md.flowequation.element_equation=zeros(md.mesh.numberofelements,1); 243 243 md.flowequation.element_equation(find(noneflag))=0; 244 244 md.flowequation.element_equation(find(SIAflag))=1; 245 245 md.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;246 md.flowequation.element_equation(find(L1L2flag))=3; 247 md.flowequation.element_equation(find(HOflag))=4; 248 md.flowequation.element_equation(find(FSflag))=5; 249 md.flowequation.element_equation(find(SSAHOflag))=6; 250 md.flowequation.element_equation(find(SSAFSflag))=7; 251 md.flowequation.element_equation(find(HOFSflag))=8; 252 252 253 253 %border … … 258 258 %Create vertices_type 259 259 md.flowequation.vertex_equation=zeros(md.mesh.numberofvertices,1); 260 pos=find(nodeonSIA); 261 md.flowequation.vertex_equation(pos)=1; 260 262 pos=find(nodeonSSA); 261 263 md.flowequation.vertex_equation(pos)=2; 262 264 pos=find(nodeonL1L2); 263 md.flowequation.vertex_equation(pos)= 8;265 md.flowequation.vertex_equation(pos)=3; 264 266 pos=find(nodeonHO); 265 md.flowequation.vertex_equation(pos)=3; 266 pos=find(nodeonSIA); 267 md.flowequation.vertex_equation(pos)=1; 268 pos=find(nodeonSSAHO); 267 md.flowequation.vertex_equation(pos)=4; 268 pos=find(nodeonFS); 269 269 md.flowequation.vertex_equation(pos)=5; 270 pos=find(nodeonFS);271 md.flowequation.vertex_equation(pos)=4;272 270 if any(FSflag), 273 271 pos=find(~nodeonFS); … … 276 274 end 277 275 end 276 pos=find(nodeonSSAHO); 277 md.flowequation.vertex_equation(pos)=6; 278 278 pos=find(nodeonHOFS); 279 279 md.flowequation.vertex_equation(pos)=7; 280 280 pos=find(nodeonSSAFS); 281 md.flowequation.vertex_equation(pos)= 6;281 md.flowequation.vertex_equation(pos)=8; 282 282 283 283 %figure out solution types 284 284 md.flowequation.isSIA = double(any(md.flowequation.element_equation == 1)); 285 285 md.flowequation.isSSA = double(any(md.flowequation.element_equation == 2)); 286 md.flowequation.is HO= double(any(md.flowequation.element_equation == 3));287 md.flowequation.is L1L2 = double(any(md.flowequation.element_equation == 8));288 md.flowequation.isFS = double(any(md.flowequation.element_equation == 4));286 md.flowequation.isL1L2 = double(any(md.flowequation.element_equation == 3)); 287 md.flowequation.isHO = double(any(md.flowequation.element_equation == 4)); 288 md.flowequation.isFS = double(any(md.flowequation.element_equation == 5)); 289 289 290 290 return -
issm/trunk-jpl/src/m/parameterization/setflowequation.py
r17873 r18076 232 232 md.flowequation.element_equation[numpy.nonzero(SIAflag)]=1 233 233 md.flowequation.element_equation[numpy.nonzero(SSAflag)]=2 234 md.flowequation.element_equation[numpy.nonzero(L1L2flag)]= 8235 md.flowequation.element_equation[numpy.nonzero(HOflag)]= 3236 md.flowequation.element_equation[numpy.nonzero(FSflag)]= 4237 md.flowequation.element_equation[numpy.nonzero(SSAHOflag)]= 5238 md.flowequation.element_equation[numpy.nonzero(SSAFSflag)]= 6239 md.flowequation.element_equation[numpy.nonzero(HOFSflag)]= 7234 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 240 240 241 241 #border … … 246 246 #Create vertices_type 247 247 md.flowequation.vertex_equation=numpy.zeros(md.mesh.numberofvertices,int) 248 pos=numpy.nonzero(nodeonSIA) 249 md.flowequation.vertex_equation[pos]=1 248 250 pos=numpy.nonzero(nodeonSSA) 249 251 md.flowequation.vertex_equation[pos]=2 250 252 pos=numpy.nonzero(nodeonL1L2) 251 md.flowequation.vertex_equation[pos]= 8253 md.flowequation.vertex_equation[pos]=3 252 254 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) 257 257 md.flowequation.vertex_equation[pos]=5 258 pos=numpy.nonzero(nodeonFS)259 md.flowequation.vertex_equation[pos]=4260 258 if any(FSflag): 261 259 pos=numpy.nonzero(numpy.logical_not(nodeonFS)) 262 260 if not (any(HOflag) or any(SSAflag)): 263 261 md.flowequation.vertex_equation[pos]=0 262 pos=numpy.nonzero(nodeonSSAHO) 263 md.flowequation.vertex_equation[pos]=6 264 264 pos=numpy.nonzero(nodeonHOFS) 265 265 md.flowequation.vertex_equation[pos]=7 266 266 pos=numpy.nonzero(nodeonSSAFS) 267 md.flowequation.vertex_equation[pos]= 6267 md.flowequation.vertex_equation[pos]=8 268 268 269 269 #figure out solution types 270 270 md.flowequation.isSIA=any(md.flowequation.element_equation==1) 271 271 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) 275 275 276 276 return md -
issm/trunk-jpl/src/m/plot/plot_elementstype.m
r15567 r18076 18 18 19 19 if 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); 20 24 %SIA elements 21 25 posH=find(data==1); 22 26 A=elements(posH,1); B=elements(posH,2); C=elements(posH,3); 23 p 1=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); 24 28 %SSA element 25 29 posM=find(data==2); 26 30 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); 28 36 %HO element 29 posP=find(data== 3);37 posP=find(data==4); 30 38 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); 36 40 %FS elements 37 posS=find(data== 4);41 posS=find(data==5); 38 42 A=elements(posS,1); B=elements(posS,2); C=elements(posS,3); 39 43 p6=patch( 'Faces', [A B C], 'Vertices', [x y z],'CData',4,'FaceColor','flat','EdgeColor',edgecolor); 40 %SSA FS elements41 posM S=find(data==6);42 A=elements(posM S,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); 44 48 %HOFS elements 45 49 posPS=find(data==7); 46 50 A=elements(posPS,1); B=elements(posPS,2); C=elements(posPS,3); 47 51 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); 56 56 57 57 else 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); 58 66 %SIA elements 59 67 posH=find(data==1); 60 68 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 p 1=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); 62 70 patch( 'Faces', [D E F], 'Vertices', [x y z],'CData', 1,'FaceColor','flat','EdgeColor',edgecolor); 63 71 patch( 'Faces', [A B E D],'Vertices', [x y z],'CData', 1,'FaceColor','flat','EdgeColor',edgecolor); … … 67 75 posM=find(data==2); 68 76 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 p 2=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); 70 78 patch( 'Faces', [D E F], 'Vertices', [x y z],'CData', 2,'FaceColor','flat','EdgeColor',edgecolor); 71 79 patch( 'Faces', [A B E D],'Vertices', [x y z],'CData', 2,'FaceColor','flat','EdgeColor',edgecolor); 72 80 patch( 'Faces', [B E F C],'Vertices', [x y z],'CData', 2,'FaceColor','flat','EdgeColor',edgecolor); 73 81 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); 74 90 %HO elements 75 91 posP=find(data==3); 76 92 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 p 3=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); 78 94 patch( 'Faces', [D E F], 'Vertices', [x y z],'CData', 3,'FaceColor','flat','EdgeColor',edgecolor); 79 95 patch( 'Faces', [A B E D],'Vertices', [x y z],'CData', 3,'FaceColor','flat','EdgeColor',edgecolor); … … 83 99 posS=find(data==4); 84 100 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 p 4=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); 86 102 patch( 'Faces', [D E F], 'Vertices', [x y z],'CData', 4,'FaceColor','flat','EdgeColor',edgecolor); 87 103 patch( 'Faces', [A B E D],'Vertices', [x y z],'CData', 4,'FaceColor','flat','EdgeColor',edgecolor); … … 91 107 posP=find(data==5); 92 108 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 p 5=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); 94 110 patch( 'Faces', [D E F], 'Vertices', [x y z],'CData', 5,'FaceColor','flat','EdgeColor',edgecolor); 95 111 patch( 'Faces', [A B E D],'Vertices', [x y z],'CData', 5,'FaceColor','flat','EdgeColor',edgecolor); … … 99 115 PosPS=find(data==7); 100 116 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 p 6=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); 102 118 patch( 'Faces', [D E F], 'Vertices', [x y z],'CData', 7,'FaceColor','flat','EdgeColor',edgecolor); 103 119 patch( 'Faces', [A B E D],'Vertices', [x y z],'CData', 7,'FaceColor','flat','EdgeColor',edgecolor); … … 107 123 PosMS=find(data==6); 108 124 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 p 7=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); 110 126 patch( 'Faces', [D E F], 'Vertices', [x y z],'CData', 6,'FaceColor','flat','EdgeColor',edgecolor); 111 127 patch( 'Faces', [A B E D],'Vertices', [x y z],'CData', 6,'FaceColor','flat','EdgeColor',edgecolor); 112 128 patch( 'Faces', [B E F C],'Vertices', [x y z],'CData', 6,'FaceColor','flat','EdgeColor',edgecolor); 113 129 patch( 'Faces', [C A D F],'Vertices', [x y z],'CData', 6,'FaceColor','flat','EdgeColor',edgecolor); 114 %None elements115 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);122 130 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');126 131 end 132 legend([p1 p2 p3 p4 p5 p6 p7 p8 p9],... 133 'None','SIA','SSA','L1L2','HO',... 134 'SSAHO','FS','SSAFS','HOFS'); 127 135 128 136 %apply options
Note:
See TracChangeset
for help on using the changeset viewer.