# structuralBC

Specify boundary conditions for structural model

**Domain-specific structural workflow is not recommended. New features might not be
compatible with this workflow. For help migrating your existing code to the unified
finite element workflow, see Migration from Domain-Specific to Unified Workflow.**

## Syntax

## Description

### Standard Boundary Constraints and Displacements

`structuralBC(`

specifies one of the standard structural boundary constraints. Here,
`structuralmodel`

,`RegionType`

,`RegionID`

,"Constraint",`Cval`

)`Cval`

can be `"fixed"`

,
`"free"`

, `"roller"`

, or
`"symmetric"`

. The default value is
`"free"`

.

Avoid using `"symmetric"`

for transient and modal analysis,
since the symmetric constraint can prevent the participation of some structural
modes.

`structuralBC(`

enforces displacement on the boundary of type `structuralmodel`

,`RegionType`

,`RegionID`

,"Displacement",`Dval`

)`RegionType`

with `RegionID`

ID numbers.

`structuralBC(`

specifies the x-, y-, and z-components of the enforced displacement.`structuralmodel`

,`RegionType`

,`RegionID`

,"XDisplacement",`XDval`

,"YDisplacement",`YDval`

,"ZDisplacement",`ZDval`

)

`structuralBC`

does not require you to specify all three
components. Depending on your structural analysis problem, you can specify one
or more components by picking the corresponding arguments and omitting
others.

`structuralBC(`

specifies the r- and z-components of the enforced displacement for an
axisymmetric model. The radial component (r-component) must be zero on the axis
of rotation.`structuralmodel`

,`RegionType`

,`RegionID`

,"RDisplacement",`RDval`

,"ZDisplacement",`ZDval`

)

`structuralBC`

does not require you to specify both
components.

### Harmonic, Rectangular, Triangular, and Trapezoidal Displacement Pulses

`structuralBC(`

specifies
the form and duration of the time-varying value of the x-component of the
enforced displacement. You can also specify the form and duration of the other
components of the displacement as follows:`structuralmodel`

,`RegionType`

,`RegionID`

,"XDisplacement",`XDval`

,`Name,Value`

)

`structuralBC(...,"YDisplacement",`

for the y-component.`YDval`

,`Name,Value`

)`structuralBC(...,"ZDisplacement",`

for the z-component. Use this syntax for a 3-D or axisymmetric model.`ZDval`

,`Name,Value`

)`structuralBC(...,"RDisplacement",`

for the radial component in an axisymmetric model.`RDval`

,`Name,Value`

)

### Multipoint Constraint

`structuralBC(`

sets the multipoint constraint using all degrees of freedom on the combination
of geometric regions specified by `structuralmodel`

,`RegionType`

,`RegionID`

,"Constraint",`"multipoint"`

)`RegionType`

and
`RegionID`

. The reference location for the constraint is
the geometric center of all nodes on the combination of all specified geometric
regions.

This syntax is required if you intend to use results obtained with the model
order reduction technique in the Simscape™
Multibody™
`Reduced Order Flexible Solid`

block. Simscape models expect the connections at all joints to have six degrees of
freedom, while Partial Differential Equation Toolbox™ uses two or three degrees of freedom at each node. Setting a
multipoint constraint ensures that all nodes and all degrees of freedom for the
specified geometric regions have a rigid constraint with the geometric center of
all specified geometric regions altogether as the reference point. The reference
location has six degrees of freedom.

For better performance, specify geometric regions with a minimal number of nodes. For example, use a set of edges instead of using a face, and a set of vertices instead of using an edge.

`structuralBC(___,"Reference",`

specifies the reference point for the multipoint constraint instead of using the
geometric center of all specified regions as a reference point. `Coords`

)

Use this syntax with the input arguments from the previous syntax.

### Sparse Linear Models for Use with Control System Toolbox

`structuralBC(___,"Label",`

adds a label for the structural boundary condition to be used by the `labeltext`

)`linearizeInput`

function. This function lets you pass boundary
conditions to the `linearize`

function that extracts sparse linear models for use
with Control System Toolbox™.

### Vectorized Evaluation for Function Handles

`structuralBC(___,"Vectorized","on")`

uses
vectorized function evaluation when you pass a function handle as an argument.
If your function handle computes in a vectorized fashion, then using this
argument saves time. See Vectorization. For details on this
evaluation, see Nonconstant Boundary Conditions.

Use this syntax with any of the input arguments from previous syntaxes.

### Structural Boundary Condition Object

returns the structural boundary condition object using any of the input
arguments from previous syntaxes.`bc`

= structuralBC(___)

## Examples

## Input Arguments

## Output Arguments

## More About

## Tips

Restrain all rigid body motions by specifying as many boundary conditions as needed. If you do not restrain all rigid body motions, the entire geometry can freely rotate or move. The resulting linear system of equations is singular. The system can take a long time to converge, or it might not converge at all. If the system converges, the solution includes a large rigid body motion in addition to deformation.

## Version History

**Introduced in R2017b**