Main Content

evaluatePrincipalStress

Evaluate principal stress at nodal locations

Description

pStress = evaluatePrincipalStress(structuralresults) evaluates principal stress at nodal locations using stress values from structuralresults. For transient and frequency response structural problems, evaluatePrincipalStress evaluates principal stress for all time- and frequency-steps, respectively.

example

Examples

collapse all

Solve a static structural model representing a bimetallic cable under tension, and compute octahedral shear stress.

Create and plot a geometry representing a bimetallic cable.

gm = multicylinder([0.01,0.015],0.05);
pdegplot(gm,FaceLabels="on", ...
            CellLabels="on", ...
            FaceAlpha=0.5)

Figure contains an axes object. The axes object contains 6 objects of type quiver, text, patch, line.

Create an femodel object for static structural analysis and include the geometry into the model.

model = femodel(AnalysisType="structuralStatic", ...
                Geometry=gm);

Specify Young's modulus and Poisson's ratio for each metal.

model.MaterialProperties(1) = ...
    materialProperties(YoungsModulus=110E9, ...
                       PoissonsRatio=0.28);
model.MaterialProperties(2) = ...
    materialProperties(YoungsModulus=210E9, ...
                       PoissonsRatio=0.3);

Specify that faces 1 and 4 are fixed boundaries.

model.FaceBC([1 4]) = faceBC(Constraint="fixed");

Specify the surface traction for faces 2 and 5.

model.FaceLoad([2 5]) = faceLoad(SurfaceTraction=[0;0;100]);

Generate a mesh and solve the problem.

model = generateMesh(model);
R = solve(model);

Evaluate the principal stress at nodal locations.

pStress = evaluatePrincipalStress(R);

Use the principal stress to evaluate the first and second invariant of stress.

I1 = pStress.s1 + pStress.s2 + pStress.s3;
I2 = pStress.s1.*pStress.s2 + ...
     pStress.s2.*pStress.s3 + ...
     pStress.s3.*pStress.s1;
tauOct = sqrt(2*(I1.^2 -3*I2))/3;
pdeplot3D(R.Mesh,ColorMapData=tauOct)

Figure contains an axes object. The hidden axes object contains 5 objects of type patch, quiver, text.

Evaluate the principal stress and octahedral shear stress in a beam under a harmonic excitation.

Create and plot a beam geometry.

gm = multicuboid(0.06,0.005,0.01);
pdegplot(gm,FaceLabels="on",FaceAlpha=0.5)
view(50,20)

Figure contains an axes object. The axes object contains 6 objects of type quiver, text, patch, line.

Create an femodel object for transient structural analysis and include the geometry into the model.

model = femodel(AnalysisType="structuralTransient", ...
                Geometry=gm);

Specify Young's modulus, Poisson's ratio, and the mass density of the material.

model.MaterialProperties(1) = ...
    materialProperties(YoungsModulus=210E9, ...
                       PoissonsRatio=0.3, ...
                       MassDensity=7800);

Fix one end of the beam.

model.FaceBC(5) = faceBC(Constraint="fixed");

Apply a sinusoidal displacement along the y-direction on the end opposite the fixed end of the beam.

yDisplacementFunc = ...
@(location,state) ones(size(location.y))*1E-4*sin(50*state.time);
model.FaceBC(3) = faceBC(YDisplacement=yDisplacementFunc);

Generate a mesh.

model = generateMesh(model,Hmax=0.01);

Specify the zero initial displacement and velocity.

model.CellIC = cellIC(Displacement=[0;0;0],Velocity=[0;0;0]);

Solve the problem.

tlist = 0:0.002:0.2;
R = solve(model,tlist);

Evaluate the principal stress in the beam.

pStress = evaluatePrincipalStress(R);

Use the principal stress to evaluate the first and second invariants.

I1 = pStress.s1 + pStress.s2 + pStress.s3;
I2 = pStress.s1.*pStress.s2 + ...
     pStress.s2.*pStress.s3 + ...
     pStress.s3.*pStress.s1;

Use the stress invariants to compute the octahedral shear stress.

tauOct = sqrt(2*(I1.^2 -3*I2))/3;

Plot the results.

figure
pdeplot3D(R.Mesh,ColorMapData=tauOct(:,end))

Figure contains an axes object. The hidden axes object contains 5 objects of type patch, quiver, text.

Input Arguments

collapse all

Solution of the structural analysis problem, specified as a StaticStructuralResults, TransientStructuralResults, or FrequencyStructuralResults object. Create structuralresults by using the solve function.

Output Arguments

collapse all

Principal stress at the nodal locations, returned as a structure array.

Version History

Introduced in R2017b

expand all