Linear Elasticity: Boundary Condition JSON Keys

Fixed

Fixes the boundary at 0. Fixed boundary conditions can be applied to both thermal and displacement fields. Fixed displacement boundary conditions are often called restraints in other FEA systems.

{
  "boundary": "restraint_selector.ply",
  "type": "fixed"
}

For thermal scenarios, temperature fields can be fixed to non-zero values with the optional value field.

{
  "boundary": "restraint_selector.ply",
  "type": "fixed",
  "units": "FootPoundSecond",
  "value": 500.0
}

Fixed Vector

This boundary condition serves two purposes.

  • Fixing displacement at some non-zero value.

  • Partial restraints, also known as axis-aligned sliding restraints.

Displacement is a three dimensional field, and each displacement component can optionally be specified. Any axis not specified will not be restrained. The following example fixes the x component of displacement at 1, while the y and z axis are unrestrained.

{
  "boundary": "restraint_selector.ply",
  "type": "fixed_vector",
  "units": "MillimeterMegagramSecond",
  "x_value": 1.0
}

In the following example, the x axis is fixed at 1.0, while the y and z axis are fixed at 0.

{
  "boundary": "restraint_selector.ply",
  "type": "fixed_vector",
  "units": "MillimeterMegagramSecond",
  "x_value": 1.0,
  "y_value": 0.0,
  "z_value": 0.0
}

Sliding

Sliding boundary conditions prevent displacement in the direction normal to the specified surface, and permit displacement tangential to the surface. A sliding boundary condition can be used to represent a pin joint, for example.

To use a sliding boundary condition, specify the boundary where this boundary condition applies, and specify the type as sliding, as in the following example:

{
  "boundary": "restraint_selector.ply",
  "type": "sliding"
}

Vector Force

The vector force boundary conditions will apply a force of a given direction and magnitude evenly over the prescribed surface. Vector force must specify the direction and magnitude.

{
  "boundary": "surface.ply",
  "direction": [
    0.0,
    0.0,
    -1.0
  ],
  "magnitude": 100.0,
  "type": "vector_force",
  "units": "MillimeterMegagramSecond"
}

Pressure Force

A pressure force boundary condition applies a pressure of a given magnitude opposing the normal of the boundary.

{
  "boundary": "top_face.ply",
  "magnitude": 100.0,
  "type": "pressure_force",
  "units": "InchPoundSecond"
}

Torque Force

Applies a torque force to the boundary. Must specify the axis and origin of the rotation, as well as the magnitude of the torque.

{
  "axis": [
    0.0,
    0.0,
    1.0
  ],
  "boundary": "twist_load_selector.ply",
  "magnitude": 100.0,
  "origin": [
    0.0,
    0.0,
    20.0
  ],
  "type": "torque_force"
}

Hydrostatic Load

A hydrostatic load boundary condition simulates a body submerged in liquid, and requires defining the boundary that may be in the liquid, the density of the liquid, and the height the liquid rises above the z = 0 plane.

{
  "boundary": "surface.ply",
  "density": 300.0,
  "height": 30.0,
  "type": "hydrostatic_force",
  "units": "MeterKilogramSecond"
}

Bearing Load

A bearing load occurs at the contact between two curved surfaces. The contact pressure is not uniform. It is scaled by the angle of the contact relative to the angle of the force. The specified magnitude is the total force applied over the entire surface.

{
  "boundary": "bearing.ply",
  "direction": [
    0.0,
    -1.0,
    0.0
  ],
  "magnitude": 12.0,
  "type": "bearing_force"
}

Flexible Remote Load

A flexible remote load allows specifying the force and moment at a remote location that is then applied to a surface. The force is defined by the force and direction fields; the moment is defined by the moment and axis fields. The force and moment act at the remote_point. The direction and axis vectors should be unit vectors to describe the direction. If they are not unit vectors, a warning will be printed to the log and they will be normalized.

{
  "boundary": "cylindrical_hole.ply",
  "direction": [
    0.0,
    -1.0,
    0.0
  ],
  "force": 12.0,
  "axis": [
    0.7071,
    0.7071,
    0.0
  ],
  "moment": 27.0,
  "remote_point": [
    -1.2,
    -0.2,
    3.0
  ]
  "type": "flexible_remote_load"
}