# StructuralModel

Structural model object

## Description

A `StructuralModel`

object contains
information about a structural analysis problem: the geometry, material properties,
damping parameters, body loads, boundary loads, boundary constraints, superelement
interfaces, initial displacement and velocity, and mesh.

## Creation

To create a `StructuralModel`

object, use `createpde`

and specify `'structural'`

as its first
argument.

## Properties

`AnalysisType`

— Type of structural analysis

`'static-solid'`

| `'static-planestress'`

| `'static-planestrain'`

| `'static-axisymmetric'`

| `'transient-solid'`

| `'transient-planestress'`

| `'transient-planestrain'`

| `'transient-axisymmetric'`

| `'modal-solid'`

| `'modal-planestress'`

| `'modal-planestrain'`

| `'modal-axisymmetric'`

| `'frequency-solid'`

| `'frequency-planestress'`

| `'frequency-planestrain'`

| `'frequency-axisymmetric'`

Type of structural analysis, specified as one of these values.

Static analysis:

`'static-solid'`

for static structural analysis of a solid (3-D) problem`'static-planestress'`

for static structural analysis of a plane-stress problem`'static-planestrain'`

for static structural analysis of a plane-strain problem`'static-axisymmetric'`

for static structural analysis of an axisymmetric (2-D) problem

Transient analysis:

`'transient-solid'`

for transient structural analysis of a solid (3-D) problem`'transient-planestress'`

for transient structural analysis of a plane-stress problem`'transient-planestrain'`

for transient structural analysis of a plane-strain problem`'transient-axisymmetric'`

for transient structural analysis of an axisymmetric (2-D) problem

Modal analysis:

`'modal-solid'`

for modal analysis of a solid (3-D) problem`'modal-planestress'`

for modal analysis of a plane-stress problem`'modal-planestrain'`

for modal analysis of a plane-strain problem`'modal-axisymmetric'`

for modal analysis of an axisymmetric (2-D) problem

Frequency response analysis:

`'frequency-solid'`

for frequency response analysis of a solid (3-D) problem`'frequency-planestress'`

for frequency response analysis of a plane-stress problem`'frequency-planestrain'`

for frequency response analysis of a plane-strain problem`'frequency-axisymmetric'`

for frequency response analysis of an axisymmetric (2-D) problem

To change a structural analysis type, assign a new type to
`model.AnalysisType`

. Ensure that all other properties
of the model are consistent with the new analysis type. Note that you cannot
change the spatial dimensionality. For example, you can change the analysis
type from `'static-solid'`

to
`'modal-solid'`

, but cannot change it to
`'static-planestress'`

.

**Example: **```
model =
createpde('structural','static-solid')
```

**Data Types: **`char`

`Geometry`

— Geometry description

`AnalyticGeometry`

| `DiscreteGeometry`

Geometry description, specified as `AnalyticGeometry`

for a 2-D geometry
or `DiscreteGeometry`

for a 2-D or 3-D
geometry.

`MaterialProperties`

— Material properties

`StructuralMaterialAssignment`

object containing
material property assignments

Material properties within the domain, specified as a
`StructuralMaterialAssignment`

object containing the
material property assignments. For details, see StructuralMaterialAssignment Properties.

To create the material properties assignments for your structural analysis
model, use the `structuralProperties`

function.

`BodyLoads`

— Loads acting on domain or subdomain

`BodyLoadAssignment`

object containing body load
assignments

Loads acting on the domain or subdomain, specified as a
`BodyLoadAssignment`

object containing body load
assignments. For details, see BodyLoadAssignment Properties.

To create body load assignments for your structural analysis model, use
the `structuralBodyLoad`

function.

`BoundaryConditions`

— Structural loads and boundary conditions

`StructuralBC`

object containing boundary condition
assignments

Structural loads and boundary conditions applied to the geometry,
specified as a `StructuralBC`

object containing the
boundary condition assignments. For details, see StructuralBC Properties.

To specify boundary conditions for your model, use the `structuralBC`

function. To specify boundary loads, use
`structuralBoundaryLoad`

.

`DampingModels`

— Damping model for transient or frequency response analysis

`StructuralDampingAssignment`

object containing damping
assignments

Damping model for transient or frequency response analysis, specified as a
`StructuralDampingAssignment`

object containing damping
assignments. For details, see StructuralDampingAssignment Properties.

To set damping parameters for your structural model, use the `structuralDamping`

function.

`ReferenceTemperature`

— Reference temperature for thermal load

0 (default) | number

Reference temperature for a thermal load, specified as a number. The reference temperature corresponds to state of zero thermal stress of the model. The default value 0 implies that the thermal load is specified in terms of the temperature change and its derivatives.

To specify the reference temperature for a thermal load in your static
structural model, assign the property value directly, for example,
`structuralmodel.ReferenceTemperature = 10`

. To specify
the thermal load itself, use the `structuralBodyLoad`

function.

**Data Types: **`double`

`InitialConditions`

— Initial displacement and velocity

`GeometricStructuralICs`

object | `NodalStructuralICs`

object

Initial displacement and velocity, specified as a
`GeometricStructuralICs`

or
`NodalStructuralICs`

object. For details, see GeometricStructuralICs Properties and NodalStructuralICs Properties.

To set initial conditions for your transient structural model, use the
`structuralIC`

function.

`SuperelementInterfaces`

— Superelement interfaces for component mode synthesis

`StructuralSEIAssignment`

object containing superelement
interfaces assignments

Superelement interfaces for the component mode synthesis, specified as a
`StructuralSEIAssignment`

object containing
superelement interface assignments. For details, see StructuralSEIAssignment Properties.

To specify superelement interfaces for your frequency response structural
model, use the `structuralSEInterface`

function.

`Mesh`

— Mesh for solution

`FEMesh`

object

Mesh for solution, specified as a `FEMesh`

object. For
property details, see FEMesh Properties.

To create the mesh, use the `generateMesh`

function.

`SolverOptions`

— Algorithm options for PDE solvers

`PDESolverOptions`

object

Algorithm options for the PDE solvers, specified as a PDESolverOptions Properties object. The
properties of `PDESolverOptions`

include absolute and
relative tolerances for internal ODE solvers, maximum solver iterations, and
so on.

## Object Functions

`geometryFromEdges` | Create 2-D geometry from decomposed geometry matrix |

`geometryFromMesh` | Create 2-D or 3-D geometry from mesh |

`importGeometry` | Import geometry from STL or STEP file |

`structuralBC` | Specify boundary conditions for structural model |

`structuralSEInterface` | Specify structural superelement interface for component mode synthesis |

`structuralBodyLoad` | Specify body load for structural model |

`structuralBoundaryLoad` | Specify boundary loads for structural model |

`structuralIC` | Set initial conditions for a transient structural model |

`structuralProperties` | Assign structural properties of material for structural model |

`solve` | Solve structural analysis, heat transfer, or electromagnetic analysis problem |

`reduce` | Reduce structural or thermal model |

## Examples

### Create and Populate Structural Analysis Model

Create a static structural model for solving a solid (3-D) problem.

structuralModel = createpde("structural","static-solid")

structuralModel = StructuralModel with properties: AnalysisType: "static-solid" Geometry: [] MaterialProperties: [] BodyLoads: [] BoundaryConditions: [] ReferenceTemperature: [] SuperelementInterfaces: [] Mesh: [] SolverOptions: [1x1 pde.PDESolverOptions]

Create and plot the geometry.

```
gm = multicuboid(0.5,0.1,0.1);
structuralModel.Geometry = gm;
pdegplot(structuralModel,"FaceAlpha",0.5)
```

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

structuralProperties(structuralModel,"Cell",1,"YoungsModulus",210E3, ... "PoissonsRatio",0.3, ... "MassDensity",2.7E-6)

ans = StructuralMaterialAssignment with properties: RegionType: 'Cell' RegionID: 1 YoungsModulus: 210000 PoissonsRatio: 0.3000 MassDensity: 2.7000e-06 CTE: [] HystereticDamping: []

Specify the gravity load on the rod.

structuralBodyLoad(structuralModel, ... "GravitationalAcceleration",[0;0;-9.8])

ans = BodyLoadAssignment with properties: RegionType: 'Cell' RegionID: 1 GravitationalAcceleration: [3x1 double] AngularVelocity: [] Temperature: [] TimeStep: [] Label: []

Specify that face 6 is a fixed boundary.

structuralBC(structuralModel,"Face",6,"Constraint","fixed")

ans = StructuralBC with properties: RegionType: 'Face' RegionID: 6 Vectorized: 'off' Boundary Constraints and Enforced Displacements Displacement: [] XDisplacement: [] YDisplacement: [] ZDisplacement: [] Constraint: "fixed" Radius: [] Reference: [] Label: [] Boundary Loads Force: [] SurfaceTraction: [] Pressure: [] TranslationalStiffness: [] Label: []

Specify the surface traction for face 5.

structuralBoundaryLoad(structuralModel, ... "Face",5, ... "SurfaceTraction",[0;0;100])

ans = StructuralBC with properties: RegionType: 'Face' RegionID: 5 Vectorized: 'off' Boundary Constraints and Enforced Displacements Displacement: [] XDisplacement: [] YDisplacement: [] ZDisplacement: [] Constraint: [] Radius: [] Reference: [] Label: [] Boundary Loads Force: [] SurfaceTraction: [3x1 double] Pressure: [] TranslationalStiffness: [] Label: []

Generate a mesh.

generateMesh(structuralModel)

ans = FEMesh with properties: Nodes: [3x7888 double] Elements: [10x4918 double] MaxElementSize: 0.0208 MinElementSize: 0.0104 MeshGradation: 1.5000 GeometricOrder: 'quadratic'

View the properties of `structuralModel`

.

structuralModel

structuralModel = StructuralModel with properties: AnalysisType: "static-solid" Geometry: [1x1 DiscreteGeometry] MaterialProperties: [1x1 StructuralMaterialAssignmentRecords] BodyLoads: [1x1 BodyLoadAssignmentRecords] BoundaryConditions: [1x1 StructuralBCRecords] ReferenceTemperature: [] SuperelementInterfaces: [] Mesh: [1x1 FEMesh] SolverOptions: [1x1 pde.PDESolverOptions]

## Version History

**Introduced in R2017b**

### R2022a: Hysteretic damping

You can now specify hysteretic damping of a material for direct and modal frequency response models.

### R2021b: Sparse linear models for use with Control System Toolbox

### R2020a: Axisymmetric analysis

You can now specify `AnalysisType`

for axisymmetric models.
Axisymmetric analysis simplifies 3-D structural problems to 2-D using their symmetry
around the axis of rotation.

### R2019b: Reduced-order modeling for structural analysis

The toolbox now supports the frequency response analysis for structural models.

### R2019b: Frequency response analysis

You can now specify `AnalysisType`

for frequency response
analysis, including `'frequency-solid'`

,
`'frequency-planestress'`

,
`'frequency-planestrain'`

, and
`'frequency-axisymmetric'`

.

### R2018b: Reference temperature for thermal stress

The programmatic workflow for static structural analysis problems now enables you
to account for thermal loading. When setting up a static structural problem, you can
specify a reference temperature as a property of `StructuralModel`

.
This temperature corresponds to the state of the model at which both thermal stress
and strain are zeros.

### R2018a: Modal analysis

The programmatic workflow for modal analysis problems now enables you to find
natural frequencies and mode shapes of a structure. When solving a modal analysis
model, the solver requires a frequency range parameter and returns the modal
solution in that frequency range. The `AnalysisType`

values for
modal analysis are `'modal-solid'`

,
`'modal-planestress'`

, `'modal-planestrain'`

,
and `'modal-axisymmetric'`

.

### R2018a: Transient analysis

The programmatic workflow for structural analysis problems now enables you to set
up, solve, and analyze dynamic linear elasticity problems. The
`AnalysisType`

values for transient analysis are
`'transient-solid'`

,
`'transient-planestress'`

,
`'transient-planestrain'`

, and
`'transient-axisymmetric'`

.

## Open Example

You have a modified version of this example. Do you want to open this example with your edits?

## MATLAB Command

You clicked a link that corresponds to this MATLAB command:

Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.

Select a Web Site

Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .

You can also select a web site from the following list:

## How to Get Best Site Performance

Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.

### Americas

- América Latina (Español)
- Canada (English)
- United States (English)

### Europe

- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)

- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)