plot_tensor_principal

PURPOSE ^

PLOT_TENSOR_PRINCIPAL - plot principal values

SYNOPSIS ^

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

DESCRIPTION ^

PLOT_TENSOR_PRINCIPAL - plot principal values

   Usage:
      plot_tensor_principal(md,options_structure,width,i,tensor,type,plot_options);

   See also: PLOTMODEL

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SUBFUNCTIONS ^

SOURCE CODE ^

0001 function plot_tensor_principal(md,options_structure,width,i,tensor,type,plot_options);
0002 %PLOT_TENSOR_PRINCIPAL - plot principal values
0003 %
0004 %   Usage:
0005 %      plot_tensor_principal(md,options_structure,width,i,tensor,type,plot_options);
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         index4=index3+1;
0017         newwidth=2*width;
0018     elseif strcmpi(md.type,'3d')%6 components -> 6 indexes
0019         index1=3*3*width*upperplots+3*leftplots+1;
0020         index2=index1+1;
0021         index3=index1+2;
0022         index4=index1+width*3;
0023         index5=index4+1;
0024         index6=index4+2;
0025         newwidth=3*width;
0026     end
0027 
0028     %plot principal axis
0029     type1=[type 'axis1'];
0030     plot_tensor_principalaxis(md,options_structure,newwidth,index1,tensor,type1,plot_options);
0031     type2=[type 'axis2'];
0032     plot_tensor_principalaxis(md,options_structure,newwidth,index2,tensor,type2,plot_options);
0033     if  strcmpi(md.type,'3d')
0034         type3=[type 'axis3'];
0035         plot_tensor_principalaxis(md,options_structure,newwidth,index3,tensor,type3,plot_options);
0036     end
0037 
0038     %smoothing?
0039     if strcmpi(options_structure.smooth,'yes') & length(tensor.principalvalue1)==md.numberofelements
0040         tensor.principalvalue1=elementstogrids(md,tensor.principalvalue1);
0041         tensor.principalvalue2=elementstogrids(md,tensor.principalvalue2);
0042         if  strcmpi(md.type,'3d'), tensor.principalvalue3=elementstogrids(md,tensor.principalvalue3); end
0043     end
0044 
0045             
0046     %layer projection?
0047     if ~isnan(options_structure.layer) & options_structure.layer>=1,
0048         tensor.principalvalue1=project2d(md,tensor.principalvalue1,options_structure.layer); %project onto 2d mesh
0049         tensor.principalvalue2=project2d(md,tensor.principalvalue2,options_structure.layer);
0050         tensor.principalvalue3=project2d(md,tensor.principalvalue3,options_structure.layer);
0051 
0052         %we modify the mesh temporarily to a 2d mesh from which the 3d mesh was extruded.
0053         md.x=md.x2d;
0054         md.y=md.y2d;
0055         md.z=md.z2d;
0056         md.elements=md.elements2d;
0057         md.elements_type=md.elements_type2d;
0058     end
0059 
0060     %units
0061     if ~isnan(options_structure.unitmultiplier),
0062         md.x=md.x*options_structure.unitmultiplier;
0063         md.y=md.y*options_structure.unitmultiplier;
0064         md.z=md.z*options_structure.unitmultiplier;
0065     end
0066 
0067     if length(tensor.principalvalue1)==length(md.elements),
0068         if ~isnan(options_structure.noiceshelf) & options_structure.noiceshelf,
0069             tensor.principalvalue1(find(md.elementoniceshelf))=NaN;
0070             tensor.principalvalue2(find(md.elementoniceshelf))=NaN;
0071             if  strcmpi(md.type,'3d')
0072                 tensor.principalvalue3(find(md.elementoniceshelf))=NaN;
0073             end
0074         end
0075         if ~isnan(options_structure.noicesheet) & options_structure.noicesheet,
0076             tensor.principalvalue1(find(~md.elementoniceshelf))=NaN;
0077             tensor.principalvalue2(find(~md.elementoniceshelf))=NaN;
0078             if  strcmpi(md.type,'3d')
0079                 tensor.principalvalue3(find(~md.elementoniceshelf))=NaN;
0080             end
0081         end
0082 
0083         if (strcmpi(md.type,'2d')),
0084             A=md.elements(:,1); B=md.elements(:,2); C=md.elements(:,3); 
0085 
0086             subplot(2*width,2*width,index3)
0087             patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'CData', tensor.principalvalue1,'FaceColor','flat','EdgeColor','black');
0088             Apply_options_tensor(options_structure,type,'principal value 1')
0089 
0090             subplot(2*width,2*width,index4)
0091             patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'CData', tensor.principalvalue2,'FaceColor','flat','EdgeColor','black');
0092             Apply_options_tensor(options_structure,type,'principal value 2')
0093         else
0094             if options_structure.layer>=1,
0095                 A=md.elements(:,1); B=md.elements(:,2); C=md.elements(:,3); 
0096 
0097                 subplot(3*width,3*width,index4)
0098                 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'CData', tensor.principalvalue1,'FaceColor','flat','EdgeColor','black');
0099                 Apply_options_tensor(options_structure,type,'principal value 1')
0100 
0101                 subplot(3*width,3*width,index5)
0102                 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'CData', tensor.principalvalue2,'FaceColor','flat','EdgeColor','black');
0103                 Apply_options_tensor(options_structure,type,'principal value 2')
0104 
0105                 subplot(3*width,3*width,index6)
0106                 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'CData', tensor.principalvalue3,'FaceColor','flat','EdgeColor','black');
0107                 Apply_options_tensor(options_structure,type,'principal value 3')
0108 
0109             else
0110     
0111                 A=md.elements(:,1); B=md.elements(:,2); C=md.elements(:,3); D=md.elements(:,4); E=md.elements(:,5); F=md.elements(:,6);
0112 
0113                 subplot(3*width,3*width,index4)
0114                 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'CData', tensor.principalvalue1,'FaceColor','flat','EdgeColor','black');
0115                 patch( 'Faces', [D E F], 'Vertices', [md.x md.y md.z],'CData', tensor.principalvalue1,'FaceColor','flat','EdgeColor','black');
0116                 patch( 'Faces', [A B E D], 'Vertices', [md.x md.y md.z],'CData', tensor.principalvalue1,'FaceColor','flat','EdgeColor','black');
0117                 patch( 'Faces', [B E F C ], 'Vertices', [md.x md.y md.z],'CData', tensor.principalvalue1,'FaceColor','flat','EdgeColor','black');
0118                 patch( 'Faces', [C A D F ], 'Vertices', [md.x md.y md.z],'CData', tensor.principalvalue1,'FaceColor','flat','EdgeColor','black');
0119                 Apply_options_tensor(options_structure,type,'principal value 1')
0120 
0121                 subplot(3*width,3*width,index5)
0122                 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'CData', tensor.principalvalue2,'FaceColor','flat','EdgeColor','black');
0123                 patch( 'Faces', [D E F], 'Vertices', [md.x md.y md.z],'CData', tensor.principalvalue2,'FaceColor','flat','EdgeColor','black');
0124                 patch( 'Faces', [A B E D], 'Vertices', [md.x md.y md.z],'CData', tensor.principalvalue2,'FaceColor','flat','EdgeColor','black');
0125                 patch( 'Faces', [B E F C ], 'Vertices', [md.x md.y md.z],'CData', tensor.principalvalue2,'FaceColor','flat','EdgeColor','black');
0126                 patch( 'Faces', [C A D F ], 'Vertices', [md.x md.y md.z],'CData', tensor.principalvalue2,'FaceColor','flat','EdgeColor','black');
0127                 Apply_options_tensor(options_structure,type,'principal value 2')
0128 
0129                 subplot(3*width,3*width,index6)
0130                 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'CData', tensor.principalvalue3,'FaceColor','flat','EdgeColor','black');
0131                 patch( 'Faces', [D E F], 'Vertices', [md.x md.y md.z],'CData', tensor.principalvalue3,'FaceColor','flat','EdgeColor','black');
0132                 patch( 'Faces', [A B E D], 'Vertices', [md.x md.y md.z],'CData', tensor.principalvalue3,'FaceColor','flat','EdgeColor','black');
0133                 patch( 'Faces', [B E F C ], 'Vertices', [md.x md.y md.z],'CData', tensor.principalvalue3,'FaceColor','flat','EdgeColor','black');
0134                 patch( 'Faces', [C A D F ], 'Vertices', [md.x md.y md.z],'CData', tensor.principalvalue3,'FaceColor','flat','EdgeColor','black');
0135                 Apply_options_tensor(options_structure,type,'principal value 3')
0136             end
0137         end
0138 
0139     elseif length(tensor.principalvalue1)==md.numberofgrids |  length(tensor.principalvalue1)==md.numberofgrids2d,
0140         if ~isnan(options_structure.noiceshelf) & options_structure.noiceshelf,
0141             pos=find(md.gridoniceshelf);
0142             tensor.principalvalue1(pos)=NaN;
0143             tensor.principalvalue2(pos)=NaN;
0144             if strcmpi(md.type,'3d')
0145                 tensor.principalvalue3(pos)=NaN;
0146             end
0147         end
0148         if ~isnan(options_structure.noiceshelf) & options_structure.noicesheet,
0149             pos=find(md.gridonicesheet);
0150             tensor.principalvalue1(pos)=NaN;
0151             tensor.principalvalue2(pos)=NaN;
0152             if strcmpi(md.type,'3d')
0153                 tensor.principalvalue3(pos)=NaN;
0154             end
0155         end
0156 
0157         if strcmpi(md.type,'2d'),
0158             A=md.elements(:,1); B=md.elements(:,2); C=md.elements(:,3); 
0159 
0160             subplot(2*width,2*width,index3)
0161             patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'FaceVertexCData',tensor.principalvalue1 ,'FaceColor','flat','EdgeColor','none');
0162             Apply_options_tensor(options_structure,type,'principal value 1')
0163 
0164             subplot(2*width,2*width,index4)
0165             patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'FaceVertexCData',tensor.principalvalue2 ,'FaceColor','flat','EdgeColor','none');
0166             Apply_options_tensor(options_structure,type,'principal value 2')
0167         else
0168             if options_structure.layer>=1,
0169                 A=md.elements(:,1); B=md.elements(:,2); C=md.elements(:,3); 
0170 
0171                 subplot(3*width,3*width,index4)
0172                 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'FaceVertexCData',tensor.principalvalue1 ,'FaceColor','flat','EdgeColor','none');
0173                 Apply_options_tensor(options_structure,type,'principal value 1')
0174 
0175                 subplot(3*width,3*width,index5)
0176                 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'FaceVertexCData',tensor.principalvalue2 ,'FaceColor','flat','EdgeColor','none');
0177                 Apply_options_tensor(options_structure,type,'principal value 2')
0178 
0179                 subplot(3*width,3*width,index6)
0180                 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'FaceVertexCData',tensor.principalvalue3 ,'FaceColor','flat','EdgeColor','none');
0181                 Apply_options_tensor(options_structure,type,'principal value 3')
0182             else
0183                 A=md.elements(:,1); B=md.elements(:,2); C=md.elements(:,3); D=md.elements(:,4); E=md.elements(:,5); F=md.elements(:,6);
0184 
0185                 subplot(3*width,3*width,index4)
0186                 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.principalvalue1,'FaceColor','flat','EdgeColor','none');
0187                 patch( 'Faces', [D E F], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.principalvalue1,'FaceColor','flat','EdgeColor','none');
0188                 patch( 'Faces', [A B E D], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.principalvalue1,'FaceColor','flat','EdgeColor','none');
0189                 patch( 'Faces', [B E F C ], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.principalvalue1,'FaceColor','flat','EdgeColor','none');
0190                 patch( 'Faces', [C A D F ], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.principalvalue1,'FaceColor','flat','EdgeColor','none');
0191                 Apply_options_tensor(options_structure,type,'principal value 1')
0192 
0193                 subplot(3*width,3*width,index5)
0194                 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.principalvalue2,'FaceColor','flat','EdgeColor','none');
0195                 patch( 'Faces', [D E F], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.principalvalue2,'FaceColor','flat','EdgeColor','none');
0196                 patch( 'Faces', [A B E D], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.principalvalue2,'FaceColor','flat','EdgeColor','none');
0197                 patch( 'Faces', [B E F C ], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.principalvalue2,'FaceColor','flat','EdgeColor','none');
0198                 patch( 'Faces', [C A D F ], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.principalvalue2,'FaceColor','flat','EdgeColor','none');
0199                 Apply_options_tensor(options_structure,type,'principal value 2')
0200 
0201                 subplot(3*width,3*width,index6)
0202                 patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.principalvalue3,'FaceColor','flat','EdgeColor','none');
0203                 patch( 'Faces', [D E F], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.principalvalue3,'FaceColor','flat','EdgeColor','none');
0204                 patch( 'Faces', [A B E D], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.principalvalue3,'FaceColor','flat','EdgeColor','none');
0205                 patch( 'Faces', [B E F C ], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.principalvalue3,'FaceColor','flat','EdgeColor','none');
0206                 patch( 'Faces', [C A D F ], 'Vertices', [md.x md.y md.z],'FaceVertexCData', tensor.principalvalue3,'FaceColor','flat','EdgeColor','none');
0207                 Apply_options_tensor(options_structure,type,'principal value 3')
0208             end
0209         end
0210     end
0211 end
0212 
0213 function Apply_options_tensor(options_structure,type,component)
0214 %apply options
0215     if isnan(options_structure.title)
0216         if ismember('_',type) %user plotet stress_tensor
0217             strings=strsplit(type,'_');
0218             string=strings{1};
0219         else %default plot: user requested stress
0220             string=type;
0221         end
0222         options_structure.title=[upper(string(1)) string(2:end) ' ' component];
0223     end
0224     applyoptions(md,[],options_structure);
0225 end

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