0001 function strainrate=StrainRateCompute(m,inputs,type);
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 global cluster gridset
0012
0013
0014 elements=m.elements;
0015 grids=m.grids;
0016 materials=m.materials;
0017 loads=m.loads;
0018 gridset=m.gridset;
0019
0020
0021 [n1,n2]=GetNumberOfActiveElements(elements);
0022
0023 if strcmpi(type,'2d')
0024
0025 strainrate=struct('xx',[],'yy',[],'xy',[],'principalvalue1',[],'principalaxis1',[],'principalvalue2',[],'principalaxis2',[]);
0026 strainrate1=zeros((n2-n1)+1,3);
0027 A1=zeros((n2-n1)+1,1); Vx1=zeros((n2-n1)+1,1); Vy1=zeros((n2-n1)+1,1);
0028 A2=zeros((n2-n1)+1,1); Vx2=zeros((n2-n1)+1,1); Vy2=zeros((n2-n1)+1,1);
0029
0030
0031 for n=n1:n2,
0032 if ~isempty(elements(n).element),
0033 strainratevector=StrainRate(elements(n).element,grids,materials,inputs)';
0034
0035 strainratematrix=[strainratevector(1) strainratevector(3)
0036 strainratevector(3) strainratevector(2)];
0037
0038
0039 [directions,value]=eig(strainratematrix);
0040
0041
0042 strainrate1(n,:)=strainratevector;
0043 A1(n,1)=value(1,1); A2(n,1)=value(2,2);
0044 Vx1(n,1)=directions(1,1); Vx2(n,1)=directions(1,2);
0045 Vy1(n,1)=directions(2,1); Vy2(n,1)=directions(2,2);
0046 end
0047 end
0048
0049
0050
0051
0052 strainrate.xx=strainrate1(:,1)*(365.25*24*3600);
0053 strainrate.yy=strainrate1(:,2)*(365.25*24*3600);
0054 strainrate.xy=strainrate1(:,3)*(365.25*24*3600);
0055
0056 strainrate.principalvalue2=A1;
0057 strainrate.principalaxis2=[Vx1 Vy1];
0058 strainrate.principalvalue1=A2;
0059 strainrate.principalaxis1=[Vx2 Vy2];
0060
0061 straintare.effectivevalue=1/sqrt(2)*sqrt(strainrate.xx.^2+strainrate.yy.^2+2*strainrate.xy.^2);
0062 else
0063
0064 strainrate=struct('xx',[],'yy',[],'zz',[],'xy',[],'xz',[],'yz',[],'principalvalue1',[],'principalaxis1',[],'principalvalue2',[],'principalaxis2',[],'principalvalue3',[],'principalaxis3',[]);
0065 strainrate1=zeros((n2-n1)+1,6);
0066 A1=zeros((n2-n1)+1,1); Vx1=zeros((n2-n1)+1,1); Vy1=zeros((n2-n1)+1,1); Vz1=zeros((n2-n1)+1,1);
0067 A2=zeros((n2-n1)+1,1); Vx2=zeros((n2-n1)+1,1); Vy2=zeros((n2-n1)+1,1); Vz2=zeros((n2-n1)+1,1);
0068 A3=zeros((n2-n1)+1,1); Vx3=zeros((n2-n1)+1,1); Vy3=zeros((n2-n1)+1,1); Vz3=zeros((n2-n1)+1,1);
0069
0070
0071 for n=n1:n2,
0072 if ~isempty(elements(n).element),
0073 strainratevector=StrainRate(elements(n).element,grids,materials,inputs)';
0074
0075 strainratematrix=[strainratevector(1) strainratevector(4) strainratevector(5)
0076 strainratevector(4) strainratevector(2) strainratevector(6)
0077 strainratevector(5) strainratevector(6) strainratevector(3)];
0078
0079
0080 [directions,value]=eig(strainratematrix);
0081
0082
0083 strainrate1(n,:)=strainratevector;
0084 A1(n,1)=value(1,1); A2(n,1)=value(2,2); A3(n,1)=value(3,3);
0085 Vx1(n,1)=directions(1,1); Vx2(n,1)=directions(1,2); Vx3(n,1)=directions(1,3);
0086 Vy1(n,1)=directions(2,1); Vy2(n,1)=directions(2,2); Vy3(n,1)=directions(2,3);
0087 Vz1(n,1)=directions(3,1); Vz2(n,1)=directions(3,2); Vz3(n,1)=directions(3,3);
0088 end
0089 end
0090
0091
0092
0093
0094 strainrate.xx=strainrate1(:,1)*(365.25*24*3600);
0095 strainrate.yy=strainrate1(:,2)*(365.25*24*3600);
0096 strainrate.zz=strainrate1(:,3)*(365.25*24*3600);
0097 strainrate.xy=strainrate1(:,4)*(365.25*24*3600);
0098 strainrate.xz=strainrate1(:,5)*(365.25*24*3600);
0099 strainrate.yz=strainrate1(:,6)*(365.25*24*3600);
0100
0101 strainrate.principalvalue3=A1;
0102 strainrate.principalaxis3=[Vx1 Vy1 Vz1];
0103 strainrate.principalvalue2=A2;
0104 strainrate.principalaxis2=[Vx2 Vy2 Vz2];
0105 strainrate.principalvalue1=A3;
0106 strainrate.principalaxis1=[Vx3 Vy3 Vz3];
0107
0108 straintare.effectivevalue=1/sqrt(2)*sqrt(strainrate.xx.^2+strainrate.yy.^2+strainrate.zz.^2+2*strainrate.xy.^2+2*strainrate.xz.^2+2*strainrate.yz.^2);
0109 end