Main Content

TransientStructuralResults

Transient structural solution and derived quantities

Description

A TransientStructuralResults object contains the displacement, velocity, and acceleration in a form convenient for plotting and postprocessing.

Displacement, velocity, and acceleration are reported for the nodes of the triangular or tetrahedral mesh generated by generateMesh. The displacement, velocity, and acceleration values at the nodes appear as FEStruct objects in the Displacement, Velocity, and Acceleration properties. The properties of these objects contain the components of the displacement, velocity, and acceleration at the nodal locations.

To evaluate the stress, strain, von Mises stress, principal stress, and principal strain at the nodal locations, use evaluateStress, evaluateStrain, evaluateVonMisesStress, evaluatePrincipalStress, and evaluatePrincipalStrain, respectively.

To evaluate the reaction forces on a specified boundary, use evaluateReaction.

To interpolate the displacement, velocity, acceleration, stress, strain, and von Mises stress to a custom grid, such as the one specified by meshgrid, use interpolateDisplacement, interpolateVelocity, interpolateAcceleration, interpolateStress, interpolateStrain, and interpolateVonMisesStress, respectively.

Creation

Solve a dynamic linear elasticity problem by using the solve function. This function returns a transient structural solution as a TransientStructuralResults object.

Properties

expand all

This property is read-only.

Displacement values at the nodes, returned as an FEStruct object. The properties of this object contain components of displacement at nodal locations.

This property is read-only.

Velocity values at the nodes, returned as an FEStruct object. The properties of this object contain components of velocity at nodal locations.

This property is read-only.

Acceleration values at the nodes, returned as an FEStruct object. The properties of this object contain components of acceleration at nodal locations.

This property is read-only.

Solution times, returned as a real vector. SolutionTimes is the same as the tlist input to solve.

Data Types: double

This property is read-only.

Finite element mesh, returned as a FEMesh object. For details, see FEMesh Properties.

Object Functions

evaluateStressEvaluate stress for dynamic structural analysis problem
evaluateStrainEvaluate strain for dynamic structural analysis problem
evaluateVonMisesStressEvaluate von Mises stress for dynamic structural analysis problem
evaluateReactionEvaluate reaction forces on boundary
evaluatePrincipalStressEvaluate principal stress at nodal locations
evaluatePrincipalStrainEvaluate principal strain at nodal locations
filterByIndexAccess transient results for specified time steps
interpolateDisplacementInterpolate displacement at arbitrary spatial locations
interpolateVelocityInterpolate velocity at arbitrary spatial locations for all time or frequency steps for dynamic structural model
interpolateAccelerationInterpolate acceleration at arbitrary spatial locations for all time or frequency steps for dynamic structural model
interpolateStressInterpolate stress at arbitrary spatial locations
interpolateStrainInterpolate strain at arbitrary spatial locations
interpolateVonMisesStressInterpolate von Mises stress at arbitrary spatial locations

Examples

collapse all

Solve for the transient response of a thin 3-D plate under a harmonic load at the center.

Create a transient dynamic model for a 3-D problem.

structuralmodel = createpde("structural","transient-solid");

Create the geometry and include it in the model. Plot the geometry.

gm = multicuboid([5,0.05],[5,0.05],0.01);
structuralmodel.Geometry = gm;
pdegplot(structuralmodel,"FaceLabels","on","FaceAlpha",0.5)

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

Zoom in to see the face labels on the small plate at the center.

figure
pdegplot(structuralmodel,"FaceLabels","on","FaceAlpha",0.25)
axis([-0.2 0.2 -0.2 0.2 -0.1 0.1])

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

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

structuralProperties(structuralmodel,"YoungsModulus",210E9, ...
                                     "PoissonsRatio",0.3, ...
                                     "MassDensity",7800);

Specify that all faces on the periphery of the thin 3-D plate are fixed boundaries.

structuralBC(structuralmodel,"Constraint","fixed","Face",5:8);

Apply a sinusoidal pressure load on the small face at the center of the plate.

structuralBoundaryLoad(structuralmodel,"Face",12, ...
                                       "Pressure",5E7, ...
                                       "Frequency",25);

Generate a mesh with linear elements.

generateMesh(structuralmodel,"GeometricOrder","linear","Hmax",0.2);

Specify zero initial displacement and velocity.

structuralIC(structuralmodel,"Displacement",[0;0;0],"Velocity",[0;0;0]);

Solve the model.

tlist = linspace(0,1,300);
structuralresults = solve(structuralmodel,tlist);

The solver finds the values of the displacement, velocity, and acceleration at the nodal locations. To access these values, use structuralresults.Displacement, structuralresults.Velocity, and so on. The displacement, velocity, and acceleration values are returned as FEStruct objects with the properties representing their components. Note that properties of an FEStruct object are read-only.

structuralresults.Displacement
ans = 
  FEStruct with properties:

           ux: [2155x300 double]
           uy: [2155x300 double]
           uz: [2155x300 double]
    Magnitude: [2155x300 double]

structuralresults.Velocity
ans = 
  FEStruct with properties:

           vx: [2155x300 double]
           vy: [2155x300 double]
           vz: [2155x300 double]
    Magnitude: [2155x300 double]

structuralresults.Acceleration
ans = 
  FEStruct with properties:

           ax: [2155x300 double]
           ay: [2155x300 double]
           az: [2155x300 double]
    Magnitude: [2155x300 double]

Version History

Introduced in R2018a