function [exxb,eyyb,exyb,exxd,eyyd,exyd]=CalcNodalStrainRates(MUA,ub,vb,ud,vd)
Calculates horizontal strain rates given horizontal velocities.
[exxb,eyyb,exyb,exxd,eyyd,exyd]=CalcNodalStrainRates(MUA,ub,vb,ud,vd)
Returns nodal values.
Note: The strain rates are calculated at integration points and then projected onto nodes.
The projection does not conserve positivity and positve integration values can become negative at nodes. The effective strain rate , e, is for this reason calculated directly from nodal values, ensuring that e is always positive.
Example:
Read data, calculate nodal strain rates, and then plot over FE mesh at roughly equal spaced grid.
load ('GaussPeak_Example_Restartfile.mat','MUA','CtrlVarInRestartFile','F','GF','BCs'); % load data CtrlVar=CtrlVarInRestartFile; x=MUA.coordinates(:,1) ; y=MUA.coordinates(:,2); [exx,eyy,exy]=CalcNodalStrainRates(MUA,F.ub,F.vb); % calculate strain rates [X,Y]=ndgrid(linspace(min(x),max(x),10),linspace(min(y),max(y),10)); I=nearestNeighbor(MUA.TR,[X(:) Y(:)]); % find nodes within computational grid closest to the regularly scape X and Y grid points. figure CtrlVar.PlotNodes=0; PlotMuaMesh(CtrlVar,MUA,[],'color','k') ; % Plot FE mesh hold on scale=1e5; LineWidth=2 ; PlotTensor(x(I)/CtrlVar.PlotXYscale,y(I)/CtrlVar.PlotXYscale,exx(I),exy(I),eyy(I),scale,LineWidth); % plot strain rates axis equal
See also CalcNodalStrainRatesAndStresses
narginchk(3,5) if nargin==4 fprintf("The parameter list no longer contains CtrlVar \n") end if ~nargin==3 || ~nargin==5 error('Ua:CalcNodalStrainRates','Wrong number of input arguments') end if ~isempty(ub) [dubdx,dubdy]=calcFEderivativesMUA(ub,MUA); [dvbdx,dvbdy]=calcFEderivativesMUA(vb,MUA); exxb=dubdx; eyyb=dvbdy; exyb=0.5*(dubdy+dvbdx); [exxb,eyyb,exyb]=ProjectFintOntoNodes(MUA,exxb,eyyb,exyb); else exxb=[] ; eyyb=[] ; exyb=[]; end if nargin == 5 if ~isempty(ud) [duddx,duddy]=calcFEderivativesMUA(ud,MUA); [dvddx,dvddy]=calcFEderivativesMUA(vd,MUA); exxd=duddx; eyyd=dvddy; exyd=0.5*(duddy+dvddx); [exxd,eyyd,exyd]=ProjectFintOntoNodes(MUA,exxd,eyyd,exyd); end else exxd=[] ; eyyd=[] ; exyd=[]; end
end