plot_tensor_components

PURPOSE ^

PLOT_TENSOR_COMPONENT - plot component of a tensor

SYNOPSIS ^

function plot_tensor_components(md,options_structure,width,i,tensor,type,plot_options);

DESCRIPTION ^

PLOT_TENSOR_COMPONENT - plot component of a tensor

   Usage:
      plot_tensor_components(md,options_structure,width,i,tensor,type,plot_option);

   See also: PLOTMODEL

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SUBFUNCTIONS ^

SOURCE CODE ^

0001 function plot_tensor_components(md,options_structure,width,i,tensor,type,plot_options);
0002 %PLOT_TENSOR_COMPONENT - plot component of a tensor
0003 %
0004 %   Usage:
0005 %      plot_tensor_components(md,options_structure,width,i,tensor,type,plot_option);
0006 %
0007 %   See also: PLOTMODEL
0008 
0009     %Compute the indexes of the components plots
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')%3 components -> 3 indexes
0013         index1=4*width*upperplots+2*leftplots+1;
0014         index2=index1+1;
0015         index3=index1+width*2;
0016     elseif strcmpi(md.type,'3d')%6 components -> 6 indexes
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     %smoothing?
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     %layer projection?
0039     if ~isnan(options_structure.layer) & options_structure.layer>=1,
0040         tensor.xx=project2d(md,tensor.xx,options_structure.layer); %project onto 2d mesh
0041         tensor.yy=project2d(md,tensor.yy,options_structure.layer); %project onto 2d mesh
0042         tensor.zz=project2d(md,tensor.zz,options_structure.layer); %project onto 2d mesh
0043         tensor.xy=project2d(md,tensor.xy,options_structure.layer); %project onto 2d mesh
0044         tensor.xz=project2d(md,tensor.xz,options_structure.layer); %project onto 2d mesh
0045         tensor.yz=project2d(md,tensor.yz,options_structure.layer); %project onto 2d mesh
0046         %we modify the mesh temporarily to a 2d mesh from which the 3d mesh was extruded.
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     %units
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 %apply options
0301     if isnan(options_structure.title)
0302         if ismember('_',type) %user plotet stress_tensor
0303             strings=strsplit(type,'_');
0304             string=strings{1};
0305         else %default plot: user requested stress
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

Generated on Sun 29-Mar-2009 20:22:55 by m2html © 2003