StrainRate

PURPOSE ^

STRAINRATE - compute the strain rate on each element

SYNOPSIS ^

function strainrate=StrainRate(triaelem,grids,materials,inputs)

DESCRIPTION ^

STRAINRATE - compute the strain rate on each element

  Usage:
      strainrate=StrainRate(triaelem,grids,materials,inputs)

   See also GETSTRAINRATE, GETVISCOSITY2D

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function strainrate=StrainRate(triaelem,grids,materials,inputs)
0002 %STRAINRATE - compute the strain rate on each element
0003 %
0004 %  Usage:
0005 %      strainrate=StrainRate(triaelem,grids,materials,inputs)
0006 %
0007 %   See also GETSTRAINRATE, GETVISCOSITY2D
0008 
0009     %initialize
0010     strainrate=zeros(3,1);
0011     volume=0;
0012 
0013     %some variables
0014     NDOF1=1;
0015     numgrids=3;
0016 
0017     %Get all element grid data:
0018     xyz_list=getgriddata(triaelem,grids);
0019 
0020     %recover extra inputs
0021     [velocity_param velocity_is_present]=recover_input(inputs,'velocity');
0022 
0023     %we need velocities to compute thermal profiles (even if it is a zero
0024     %vector).
0025     if ~velocity_is_present,
0026         error('StrainRate error message: input velocity not present!');
0027     end
0028 
0029     %initialize vxvyvz_list
0030     vxvy_list=zeros(numgrids,2);
0031 
0032     %Build row indices for elementary vector.
0033     for i=1:numgrids,
0034         doflist=grids(triaelem.g(i)).grid.doflist;
0035         for j=1:2,
0036             dof=doflist(j);
0037             vxvy_list(i,j)=velocity_param(dof);
0038         end    
0039         dof=doflist(1);
0040     end
0041     
0042     % Get gaussian points and weights
0043     [num_area_gauss,first_area_gauss_coord,second_area_gauss_coord,third_area_gauss_coord,area_gauss_weights]=GaussTria(2);
0044 
0045     %Start  looping on the number of gaussian points:
0046     for igarea=1:num_area_gauss,
0047         %Pick up the gaussian point and its weight:
0048         gauss_weight=area_gauss_weights(igarea);
0049         gauss_coord=[first_area_gauss_coord(igarea) second_area_gauss_coord(igarea) third_area_gauss_coord(igarea)];
0050         
0051         %Build Deformational heating
0052         epsilon=GetStrainRate(triaelem,vxvy_list,xyz_list,gauss_coord);
0053         viscosity=GetViscosity2d(matice,epsilon); 
0054 
0055         %Get Jacobian determinant:
0056         Jdet=GetJacobianDeterminant(triaelem,xyz_list,gauss_coord);
0057 
0058         strainrate=strainrate+epsilon*Jdet*gauss_weight;
0059 
0060         volume=volume+Jdet*gauss_weight;
0061     end %for ig=1:num_area_gauss,
0062 
0063 %Divide strainrate, integrated over volume, by volume.
0064 strainrate=strainrate/volume;

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