Solid mechanics
This page describes the available loads, constraints, and couplings for structural deformation and stress analysis in Allsolve. The weak formulation is stated up front; the full derivation is at the end of this page.
Weak formulation
Section titled βWeak formulationβThe weak form solved by Allsolve is
where is the displacement field, the stress tensor, the strain tensor, the traction vector, the body force, and the mass density.
See Formulation derivation for the full strong-to-weak derivation.
Interactions
Section titled βInteractionsβApplies an external mechanical load to a selected region by prescribing a force vector , resulting in deformation and stress.
Constraint
Section titled βConstraintβFixes all components of the displacement field . Use this interaction to fix displacements at a node, boundary, or within a region of the solid. Use Clamp interaction to fix displacement values to zero.
| How to use | You can use either the matrix editor or the expression editor. Matrix editor is the default, just enable a dimension/dimensions to constrain and enter the displacement value. With the expression editor, provide a 3Γ2 matrix with the first column containing 1 or 0 (whether a constraint is applied in that dimension or not), and the second column containing the displacement values. |
| Example | expression editor: [0, 0; 1, 42; 0, 0] applies a 3D displacement constraint of in the y-direction, while the other dimensions remain unconstrained. |
| Unit | Displacement values in meters (m) |
Clamp is a special case of a Constraint where the displacement is fixed to zero. This boundary condition will constrain all components of the displacement vector in the targeted region to zero displacement:
Lump U/F
Section titled βLump U/FβApplies a lumped displacement or force through a boundary of some surface, replacing detailed field distribution with an equivalent lumped value.
| How to use | Specify the target curve (must be a connected loop). From Actuation mode, select either displacement, force or circuit coupling. Use the matrix editor or the expression editor to define values: provide a 3Γ2 matrix for a 3D problem (2Γ2 for 2D, etc.), where the first column contains 1 or 0 (whether a constraint is applied or not) and the second column contains the values. |
| Example | [0, 0; 1, 0.01; 0, 0] applies a 3D lumped displacement constraint of in the y-direction, while the other dimensions remain unconstrained. |
| Unit | Displacement values in meters (m) or force in Newtons (N) |
Pressure
Section titled βPressureβApplies a scalar pressure load normal to a boundary surface. Positive pressure acts inward (compression), negative pressure acts outward (tension). Unlike a general Load which requires specifying a force vector, Pressure only needs a scalar value β the direction is determined automatically from the surface normal.
| How to use | Select the target boundary (surface for 3D, curve for 2D). Provide a scalar pressure value. Positive values push into the solid, negative values pull outward. |
| Example | 1e6 applies 1 MPa of compressive pressure to the selected surface. |
| Unit | Pressure in Pascals (Pa) |
Prestress
Section titled βPrestressβApplies an initial stress state to a region before the primary analysis begins. Use this to model residual stresses from manufacturing, thermal history, or prior loading stages. Prestress modifies structural stiffness β tensile prestress increases stiffness while compressive prestress reduces it, affecting eigenfrequencies and buckling behavior.
| How to use | Provide the initial stress tensor components using the matrix editor or the expression editor. For a 3D problem, specify 6 Voigt components (, , , , , ). |
| Example | [1e6; 0; 0; 0; 0; 0] applies a uniaxial prestress of 1 MPa in the xx-direction to the target region. |
| Unit | Stress in Pascals (Pa) |
Periodicity
Section titled βPeriodicityβImposes periodic boundary conditions for the vector field . Reduces computational domain size for symmetric problems.
| Example | Periodicity follows the same principles, regardless of which physics module it belongs to. See how periodicity is used in magnetism as a reference: Periodicity in electric motors |
Symmetry
Section titled βSymmetryβImposes a symmetry boundary condition on a plane, constraining the normal displacement component to zero () while leaving tangential displacements free. Use this to model only a fraction of a symmetric structure (where both geometry and loads are symmetric about the cut plane), reducing computational cost.
| How to use | Select the boundary that represents the symmetry plane. |
| Example | Cutting a beam with a centered load along its midplane and applying Symmetry to the cut face halves the number of degrees of freedom while producing the same result as the full model. |
Proportional damping
Section titled βProportional dampingβApplies Rayleigh damping to the structure, where the damping matrix is a linear combination of the mass and stiffness matrices: . The mass-proportional coefficient damps low-frequency modes, while the stiffness-proportional coefficient damps high-frequency modes.
| How to use | Provide the mass damping coefficient and the stiffness damping coefficient . These can be determined from known damping ratios at two reference frequencies. |
| Example | and applies Rayleigh damping tuned to a target damping ratio across the frequency range of interest. |
| Unit | in 1/s, in s |
Geometric nonlinearity
Section titled βGeometric nonlinearityβEnables large-deformation analysis by accounting for changes in geometry during loading. With Geometric nonlinearity applied, the Solid mechanics formulation uses the Green-Lagrange strain tensor instead of the Linear strain tensor.
| How to use | Enable this interaction from the options. Geometric nonlinearity is applied on the same region as Solid Mechanics, so no target region needs to be specified. |
Contact
Section titled βContactβDefines a contact interaction between two surfaces that may come into contact during deformation. Prevents interpenetration of bodies and computes contact pressures when surfaces touch.
The spacing parameter is your error margin for contact: the surfaces are said to be touching if the gap becomes less than or equal to the spacing parameter.
Stiction (static friction) is the tendency for smooth surfaces to stick together. As surfaces come into contact, a threshold force has to be overcome to break them apart and induce relative motion.
| How to use | Select the two boundary surfaces that may come into contact as Gamma 1/2. Select the volumes with the boundary surfaces as Gamma side 1/2. Set the spacing parameter as your error margin (m) for contact. Set stiction as the threshold force (N) that is needed to break the contacting surfaces apart. |
| Unit | Spacing in meters (m) and Stiction in Newtons (N) |
Couplings to Other Physics
Section titled βCouplings to Other PhysicsβThis formulation supports the following couplings:
- Thermal expansion
- Heat solid
- Heat fluid
- Piezoelectricity
- Electrostatics
- Electric force
- Current flow
- Electromagnetic waves
- Electrostatics
- Magnetism H
- Magnetic force
- Magnetism A
- Magnetism π
- Magnetism H
- Large displacement
- Mesh deformation
Compatibilities with analysis types
Section titled βCompatibilities with analysis typesβSolid mechanics supports all analysis types: Static, Harmonic, Multiharmonic, Transient, and Eigenmode.
See the full compatibility table in Simulations overview.
Use cases
Section titled βUse casesβ- Solid mechanics: Cantilever beam
- Solid mechanics: Backbone curve of a clamped-clamped beam
- Solid mechanics: Combdrive eigenmodes
- Solid mechanics: Combdrive static deflection
- Solid mechanics: Electrostatics coupling in microspeaker
Formulation derivation
Section titled βFormulation derivationβStrong formulation
Section titled βStrong formulationβThe strong form of deformable solids is given by the Cauchy momentum equation
where
- is the stress tensor
- is the volumetric body force vector
- is the mass density
- is the displacement field vector
- is the acceleration vector
Constitutive equation
Section titled βConstitutive equationβGeneralized Hookeβs law defines the relation between the stress and strain components
where is a fourth-order elasticity tensor and is the strain tensor.
Strain tensor
Section titled βStrain tensorβ- Small displacement theory:
- Large displacement theory:
Voigt notation
Section titled βVoigt notationβIn Voigt notation, the stress and strain tensors are represented as vectors. Consequently, the constitutive relation takes the form
where is the elasticity matrix which is a symmetric matrix.
Deriving the weak form
Section titled βDeriving the weak formβTo obtain the weak form, multiply by the test function and integrate over the domain :
Applying Leibniz rule on the divergence term, we get
Applying Divergence theorem on the divergence term, we get
Since the stress tensor is symmetric, the following relation holds.
Substituting in the above relation and following the definition of traction vector , we get the final weak formulation stated at the top of this page.