0001 function plot_tensor_components(md,options_structure,width,i,tensor,type,plot_options);
0002
0003
0004
0005
0006
0007
0008
0009
0010 upperplots=fix((i-1)/width);
0011 if upperplots==0, leftplots=i-1; else leftplots=i-width*upperplots-1; end
0012 if strcmpi(md.type,'2d')
0013 index1=4*width*upperplots+2*leftplots+1;
0014 index2=index1+1;
0015 index3=index1+width*2;
0016 elseif strcmpi(md.type,'3d')
0017 index1=3*3*width*upperplots+3*leftplots+1;
0018 index2=index1+1;
0019 index3=index1+2;
0020 index4=index1+width*3;
0021 index5=index4+1;
0022 index6=index4+2;
0023 end
0024
0025
0026 if strcmpi(options_structure.smooth,'yes') & length(tensor.xx)==md.numberofelements
0027 tensor.xx=elementstogrids(md,tensor.xx);
0028 tensor.yy=elementstogrids(md,tensor.yy);
0029 tensor.xy=elementstogrids(md,tensor.xy);
0030 if strcmpi(md.type,'3d')
0031 tensor.zz=elementstogrids(md,tensor.zz);
0032 tensor.yz=elementstogrids(md,tensor.yz);
0033 tensor.xz=elementstogrids(md,tensor.xz);
0034 end
0035 end
0036
0037
0038
0039 if ~isnan(options_structure.layer) & options_structure.layer>=1,
0040 tensor.xx=project2d(md,tensor.xx,options_structure.layer);
0041 tensor.yy=project2d(md,tensor.yy,options_structure.layer);
0042 tensor.zz=project2d(md,tensor.zz,options_structure.layer);
0043 tensor.xy=project2d(md,tensor.xy,options_structure.layer);
0044 tensor.xz=project2d(md,tensor.xz,options_structure.layer);
0045 tensor.yz=project2d(md,tensor.yz,options_structure.layer);
0046
0047 md.x=md.x2d;
0048 md.y=md.y2d;
0049 md.z=md.z2d;
0050 md.elements=md.elements2d;
0051 md.elements_type=md.elements_type2d;
0052 end
0053
0054
0055 if ~isnan(options_structure.unitmultiplier),
0056 md.x=md.x*options_structure.unitmultiplier;
0057 md.y=md.y*options_structure.unitmultiplier;
0058 md.z=md.z*options_structure.unitmultiplier;
0059 end
0060
0061 if length(tensor.xx)==length(md.elements),
0062
0063 if ~isnan(options_structure.noiceshelf) & options_structure.noiceshelf,
0064 tensor.xx(find(md.elementoniceshelf))=NaN;
0065 tensor.yy(find(md.elementoniceshelf))=NaN;
0066 tensor.xy(find(md.elementoniceshelf))=NaN;
0067 if strcmpi(md.type,'3d')
0068 tensor.zz(find(md.elementoniceshelf))=NaN;
0069 tensor.yz(find(md.elementoniceshelf))=NaN;
0070 tensor.xz(find(md.elementoniceshelf))=NaN;
0071 end
0072 end
0073 if ~isnan(options_structure.noicesheet) & options_structure.noicesheet,
0074 tensor.xx(find(~md.elementoniceshelf))=NaN;
0075 tensor.yy(find(~md.elementoniceshelf))=NaN;
0076 tensor.xy(find(~md.elementoniceshelf))=NaN;
0077 if strcmpi(md.type,'3d')
0078 tensor.zz(find(~md.elementoniceshelf))=NaN;
0079 tensor.yz(find(~md.elementoniceshelf))=NaN;
0080 tensor.xz(find(~md.elementoniceshelf))=NaN;
0081 end
0082 end
0083
0084 if (strcmpi(md.type,'2d')),
0085 A=md.elements(:,1); B=md.elements(:,2); C=md.elements(:,3);
0086
0087 subplot(2*width,2*width,index1)
0088 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'CData', tensor.xx,'FaceColor','flat','EdgeColor','black');
0089 Apply_options_tensor(options_structure,type,'xx')
0090
0091 subplot(2*width,2*width,index2)
0092 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'CData', tensor.yy,'FaceColor','flat','EdgeColor','black');
0093 Apply_options_tensor(options_structure,type,'yy')
0094
0095 subplot(2*width,2*width,index3)
0096 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'CData', tensor.xy,'FaceColor','flat','EdgeColor','black');
0097 Apply_options_tensor(options_structure,type,'xy')
0098 else
0099 if options_structure.layer>=1,
0100 A=md.elements(:,1); B=md.elements(:,2); C=md.elements(:,3);
0101
0102 subplot(3*width,3*width,index1)
0103 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'CData',tensor.xx ,'FaceColor','flat','EdgeColor','black');
0104 Apply_options_tensor(options_structure,type,'xx')
0105
0106 subplot(3*width,3*width,index2)
0107 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'CData',tensor.yy ,'FaceColor','flat','EdgeColor','black');
0108 Apply_options_tensor(options_structure,type,'yy')
0109
0110 subplot(3*width,3*width,index3)
0111 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'CData',tensor.zz ,'FaceColor','flat','EdgeColor','black');
0112 Apply_options_tensor(options_structure,type,'zz')
0113
0114 subplot(3*width,3*width,index4)
0115 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'CData',tensor.xy ,'FaceColor','flat','EdgeColor','black');
0116 Apply_options_tensor(options_structure,type,'xy')
0117
0118 subplot(3*width,3*width,index5)
0119 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'CData',tensor.xz ,'FaceColor','flat','EdgeColor','black');
0120 Apply_options_tensor(options_structure,type,'xz')
0121
0122 subplot(3*width,3*width,index6)
0123 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'CData',tensor.yz ,'FaceColor','flat','EdgeColor','black');
0124 Apply_options_tensor(options_structure,type,'yz')
0125
0126 else
0127 A=md.elements(:,1); B=md.elements(:,2); C=md.elements(:,3); D=md.elements(:,4); E=md.elements(:,5); F=md.elements(:,6);
0128
0129 subplot(3*width,3*width,index1)
0130 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'CData', tensor.xx,'FaceColor','flat','EdgeColor','black');
0131 patch( 'Faces', [D E F], 'Vertices', [md.x md.y md.z],'CData', tensor.xx,'FaceColor','flat','EdgeColor','black');
0132 patch( 'Faces', [A B E D], 'Vertices', [md.x md.y md.z],'CData', tensor.xx,'FaceColor','flat','EdgeColor','black');
0133 patch( 'Faces', [B E F C ], 'Vertices', [md.x md.y md.z],'CData', tensor.xx,'FaceColor','flat','EdgeColor','black');
0134 patch( 'Faces', [C A D F ], 'Vertices', [md.x md.y md.z],'CData', tensor.xx,'FaceColor','flat','EdgeColor','black');
0135 Apply_options_tensor(options_structure,type,'xx')
0136
0137 subplot(3*width,3*width,index2)
0138 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'CData', tensor.yy,'FaceColor','flat','EdgeColor','black');
0139 patch( 'Faces', [D E F], 'Vertices', [md.x md.y md.z],'CData', tensor.yy,'FaceColor','flat','EdgeColor','black');
0140 patch( 'Faces', [A B E D], 'Vertices', [md.x md.y md.z],'CData', tensor.yy,'FaceColor','flat','EdgeColor','black');
0141 patch( 'Faces', [B E F C ], 'Vertices', [md.x md.y md.z],'CData', tensor.yy,'FaceColor','flat','EdgeColor','black');
0142 patch( 'Faces', [C A D F ], 'Vertices', [md.x md.y md.z],'CData', tensor.yy,'FaceColor','flat','EdgeColor','black');
0143 Apply_options_tensor(options_structure,type,'yy')
0144
0145 subplot(3*width,3*width,index3)
0146 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'CData', tensor.zz,'FaceColor','flat','EdgeColor','black');
0147 patch( 'Faces', [D E F], 'Vertices', [md.x md.y md.z],'CData', tensor.zz,'FaceColor','flat','EdgeColor','black');
0148 patch( 'Faces', [A B E D], 'Vertices', [md.x md.y md.z],'CData', tensor.zz,'FaceColor','flat','EdgeColor','black');
0149 patch( 'Faces', [B E F C ], 'Vertices', [md.x md.y md.z],'CData', tensor.zz,'FaceColor','flat','EdgeColor','black');
0150 patch( 'Faces', [C A D F ], 'Vertices', [md.x md.y md.z],'CData', tensor.zz,'FaceColor','flat','EdgeColor','black');
0151 Apply_options_tensor(options_structure,type,'zz')
0152
0153 subplot(3*width,3*width,index4)
0154 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'CData', tensor.xy,'FaceColor','flat','EdgeColor','black');
0155 patch( 'Faces', [D E F], 'Vertices', [md.x md.y md.z],'CData', tensor.xy,'FaceColor','flat','EdgeColor','black');
0156 patch( 'Faces', [A B E D], 'Vertices', [md.x md.y md.z],'CData', tensor.xy,'FaceColor','flat','EdgeColor','black');
0157 patch( 'Faces', [B E F C ], 'Vertices', [md.x md.y md.z],'CData', tensor.xy,'FaceColor','flat','EdgeColor','black');
0158 patch( 'Faces', [C A D F ], 'Vertices', [md.x md.y md.z],'CData', tensor.xy,'FaceColor','flat','EdgeColor','black');
0159 Apply_options_tensor(options_structure,type,'xy')
0160
0161 subplot(3*width,3*width,index5)
0162 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'CData', tensor.xz,'FaceColor','flat','EdgeColor','black');
0163 patch( 'Faces', [D E F], 'Vertices', [md.x md.y md.z],'CData', tensor.xz,'FaceColor','flat','EdgeColor','black');
0164 patch( 'Faces', [A B E D], 'Vertices', [md.x md.y md.z],'CData', tensor.xz,'FaceColor','flat','EdgeColor','black');
0165 patch( 'Faces', [B E F C ], 'Vertices', [md.x md.y md.z],'CData', tensor.xz,'FaceColor','flat','EdgeColor','black');
0166 patch( 'Faces', [C A D F ], 'Vertices', [md.x md.y md.z],'CData', tensor.xz,'FaceColor','flat','EdgeColor','black');
0167 Apply_options_tensor(options_structure,type,'xz')
0168
0169 subplot(3*width,3*width,index6)
0170 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'CData', tensor.yz,'FaceColor','flat','EdgeColor','black');
0171 patch( 'Faces', [D E F], 'Vertices', [md.x md.y md.z],'CData', tensor.yz,'FaceColor','flat','EdgeColor','black');
0172 patch( 'Faces', [A B E D], 'Vertices', [md.x md.y md.z],'CData', tensor.yz,'FaceColor','flat','EdgeColor','black');
0173 patch( 'Faces', [B E F C ], 'Vertices', [md.x md.y md.z],'CData', tensor.yz,'FaceColor','flat','EdgeColor','black');
0174 patch( 'Faces', [C A D F ], 'Vertices', [md.x md.y md.z],'CData', tensor.yz,'FaceColor','flat','EdgeColor','black');
0175 Apply_options_tensor(options_structure,type,'yz')
0176 end
0177 end
0178 elseif length(tensor.xx)==md.numberofgrids | length(tensor.xx)==md.numberofgrids2d,
0179 if ~isnan(options_structure.noiceshelf) & options_structure.noiceshelf,
0180 pos=find(md.gridoniceshelf);
0181 tensor.xx(pos)=NaN;
0182 tensor.yy(pos)=NaN;
0183 tensor.xy(pos)=NaN;
0184 if strcmpi(md.type,'3d')
0185 tensor.zz(pos)=NaN;
0186 tensor.xz(pos)=NaN;
0187 tensor.yz(pos)=NaN;
0188 end
0189 end
0190 if ~isnan(options_structure.noiceshelf) & options_structure.noicesheet,
0191 pos=find(md.gridonicesheet);
0192 tensor.xx(pos)=NaN;
0193 tensor.yy(pos)=NaN;
0194 tensor.xy(pos)=NaN;
0195 if strcmpi(md.type,'3d')
0196 tensor.zz(pos)=NaN;
0197 tensor.xz(pos)=NaN;
0198 tensor.yz(pos)=NaN;
0199 end
0200 end
0201
0202 if strcmpi(md.type,'2d'),
0203 A=md.elements(:,1); B=md.elements(:,2); C=md.elements(:,3);
0204
0205 subplot(2*width,2*width,index1)
0206 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'FaceVertexCData',tensor.xx ,'FaceColor','flat','EdgeColor','none');
0207 Apply_options_tensor(options_structure,type,'xx')
0208
0209 subplot(2*width,2*width,index2)
0210 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'FaceVertexCData',tensor.yy ,'FaceColor','flat','EdgeColor','none');
0211 Apply_options_tensor(options_structure,type,'yy')
0212
0213 subplot(2*width,2*width,index3)
0214 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'FaceVertexCData',tensor.xy ,'FaceColor','flat','EdgeColor','none');
0215 Apply_options_tensor(options_structure,type,'xy')
0216
0217 else
0218 if options_structure.layer>=1,
0219 A=md.elements(:,1); B=md.elements(:,2); C=md.elements(:,3);
0220 subplot(3*width,3*width,index1)
0221 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'FaceVertexCData',tensor.xx ,'FaceColor','flat','EdgeColor','none');
0222 Apply_options_tensor(options_structure,type,'xx')
0223
0224 subplot(3*width,3*width,index2)
0225 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'FaceVertexCData',tensor.yy ,'FaceColor','flat','EdgeColor','none');
0226 Apply_options_tensor(options_structure,type,'yy')
0227
0228 subplot(3*width,3*width,index3)
0229 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'FaceVertexCData',tensor.zz ,'FaceColor','flat','EdgeColor','none');
0230 Apply_options_tensor(options_structure,type,'zz')
0231
0232 subplot(3*width,3*width,index4)
0233 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'FaceVertexCData',tensor.xy ,'FaceColor','flat','EdgeColor','none');
0234 Apply_options_tensor(options_structure,type,'xy')
0235
0236 subplot(3*width,3*width,index5)
0237 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'FaceVertexCData',tensor.xz ,'FaceColor','flat','EdgeColor','none');
0238 Apply_options_tensor(options_structure,type,'xz')
0239
0240 subplot(3*width,3*width,index6)
0241 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'FaceVertexCData',tensor.yz ,'FaceColor','flat','EdgeColor','none');
0242 Apply_options_tensor(options_structure,type,'yz')
0243
0244 else
0245 A=md.elements(:,1); B=md.elements(:,2); C=md.elements(:,3); D=md.elements(:,4); E=md.elements(:,5); F=md.elements(:,6);
0246
0247 subplot(3*width,3*width,index1)
0248 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.xx,'FaceColor','flat','EdgeColor','none');
0249 patch( 'Faces', [D E F], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.xx,'FaceColor','flat','EdgeColor','none');
0250 patch( 'Faces', [A B E D], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.xx,'FaceColor','flat','EdgeColor','none');
0251 patch( 'Faces', [B E F C ], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.xx,'FaceColor','flat','EdgeColor','none');
0252 patch( 'Faces', [C A D F ], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.xx,'FaceColor','flat','EdgeColor','none');
0253 Apply_options_tensor(options_structure,type,'xx')
0254
0255 subplot(3*width,3*width,index2)
0256 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.yy,'FaceColor','flat','EdgeColor','none');
0257 patch( 'Faces', [D E F], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.yy,'FaceColor','flat','EdgeColor','none');
0258 patch( 'Faces', [A B E D], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.yy,'FaceColor','flat','EdgeColor','none');
0259 patch( 'Faces', [B E F C ], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.yy,'FaceColor','flat','EdgeColor','none');
0260 patch( 'Faces', [C A D F ], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.yy,'FaceColor','flat','EdgeColor','none');
0261 Apply_options_tensor(options_structure,type,'yy')
0262
0263 subplot(3*width,3*width,index3)
0264 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.zz,'FaceColor','flat','EdgeColor','none');
0265 patch( 'Faces', [D E F], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.zz,'FaceColor','flat','EdgeColor','none');
0266 patch( 'Faces', [A B E D], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.zz,'FaceColor','flat','EdgeColor','none');
0267 patch( 'Faces', [B E F C ], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.zz,'FaceColor','flat','EdgeColor','none');
0268 patch( 'Faces', [C A D F ], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.zz,'FaceColor','flat','EdgeColor','none');
0269 Apply_options_tensor(options_structure,type,'zz')
0270
0271 subplot(3*width,3*width,index4)
0272 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.xy,'FaceColor','flat','EdgeColor','none');
0273 patch( 'Faces', [D E F], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.xy,'FaceColor','flat','EdgeColor','none');
0274 patch( 'Faces', [A B E D], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.xy,'FaceColor','flat','EdgeColor','none');
0275 patch( 'Faces', [B E F C ], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.xy,'FaceColor','flat','EdgeColor','none');
0276 patch( 'Faces', [C A D F ], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.xy,'FaceColor','flat','EdgeColor','none');
0277 Apply_options_tensor(options_structure,type,'xy')
0278
0279 subplot(3*width,3*width,index5)
0280 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.xz,'FaceColor','flat','EdgeColor','none');
0281 patch( 'Faces', [D E F], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.xz,'FaceColor','flat','EdgeColor','none');
0282 patch( 'Faces', [A B E D], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.xz,'FaceColor','flat','EdgeColor','none');
0283 patch( 'Faces', [B E F C ], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.xz,'FaceColor','flat','EdgeColor','none');
0284 patch( 'Faces', [C A D F ], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.xz,'FaceColor','flat','EdgeColor','none');
0285 Apply_options_tensor(options_structure,type,'xz')
0286
0287 subplot(3*width,3*width,index6)
0288 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.yz,'FaceColor','flat','EdgeColor','none');
0289 patch( 'Faces', [D E F], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.yz,'FaceColor','flat','EdgeColor','none');
0290 patch( 'Faces', [A B E D], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.yz,'FaceColor','flat','EdgeColor','none');
0291 patch( 'Faces', [B E F C ], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.yz,'FaceColor','flat','EdgeColor','none');
0292 patch( 'Faces', [C A D F ], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.yz,'FaceColor','flat','EdgeColor','none');
0293 Apply_options_tensor(options_structure,type,'yz')
0294 end
0295 end
0296 end
0297 end
0298
0299 function Apply_options_tensor(options_structure,type,component)
0300
0301 if isnan(options_structure.title)
0302 if ismember('_',type)
0303 strings=strsplit(type,'_');
0304 string=strings{1};
0305 else
0306 string=type;
0307 end
0308 options_structure.title=[upper(string(1)) string(2:end) ' ' component];
0309 end
0310 applyoptions(md,[],options_structure);
0311 end