How To: Boundary Conditions

Boundary Condition Surfaces

Boundary conditions in Intact.Simulation are specified as triangle mesh surfaces (*.ply or *.stl files) rather than directly on finite element meshes. This is due to Intact’s non-conforming mesh technology.

Important notes:

  • Multiple disconnected components in one mesh may not yield high quality results. Create separate boundary condition instances for each fully connected component.

  • Boundary conditions disconnected from the geometry will result in a runtime warning but are not errors. Forces distributed over disconnected surfaces may not be fully accounted for.

  • Point and edge constraints/forces/moments are not supported.

Defining Boundary Conditions

Boundary conditions are defined in the boundary_conditions array:

{
  "boundary_conditions": [ ]
}

Each boundary condition must specify a type and a boundary surface (path to *.ply or *.stl file). Additional fields depend on the boundary condition type.

Restraints

Fixed Boundary

Fixed Boundary

A “Fixed Boundary” restraint fixes the selected geometry in all directions.

..

The fixed boundary only has one input:

  • the boundary surface to be fixed

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

Fixed Vector

Fixed Vector

A “Fixed Vector” restraint allows for each direction to be optionally set to a specified displacement value, 0 being fixed and ‘None’ being un-restrained. Note that a structural problem must have all three directions restrained somewhere to be valid.

..

A fixed vector has inputs for:

  • the boundary surface to be fixed

  • x_value, y_value, z_value - displacement in each direction (optional)

  • units - unit system for the displacement values

{
  "boundary": "restraint.stl",
  "type": "fixed_vector",
  "x_value": 0.2,
  "z_value": 0.0,
  "units": "FootPoundSecond"
}

In this example, the X-direction has a displacement of 0.2 ft, the Y-direction is un-restrained, and the Z-direction is fixed.

Sliding Restraint

Sliding Restraint

A “Sliding Restraint” allows for motion tangential to a specified surface, but fixes motion normal to the specified surface.

..

A sliding restraint only has one input:

  • the boundary surface for the sliding restraint condition

{
  "boundary": "restraint.stl",
  "type": "sliding"
}

Structural Loads

Vector Force

Vector Force

“Vector Force” load is a surface load applied to a face in a specified direction. An example of this load is pressing on the top of a book to push it across a table.

..

A vector load requires inputs:

  • the boundary surfaces where the load is applied

  • direction - vector of the force direction

  • magnitude - magnitude of the force

  • units - unit system for the magnitude

{
  "boundary": "load.stl",
  "direction": [0, 0, -1],
  "magnitude": 100,
  "type": "vector_force",
  "units": "InchPoundSecond"
}

Torque

Torque

“Torque” load is a surface load that applies a twisting force around an axis. The direction of the torque is determined using the right-hand rule: using your right hand, point your thumb in the direction of the axis. A positive torque value applies a torque acting in the direction the fingers of your right hand would wrap around the axis. The torque load is applied among the load faces with a distribution that varies linearly from zero at the axis.

..

A Torque load requires inputs:

  • the boundary surfaces where the load is applied

  • origin - point for the axis of rotation

  • axis - vector defining the axis of rotation

  • magnitude - magnitude of the torque

  • units - unit system for the magnitude

{
  "boundary": "load.stl",
  "origin": [10, 1, 1],
  "axis": [1, 0, 0],
  "magnitude": 10,
  "type": "torque_force",
  "units": "MeterKilogramSecond"
}

Pressure

Pressure

A “Pressure” load is a surface load specified in terms of force per unit area. Positive pressures ‘push’ into the surface, and negative pressures ‘pull’.

..

A Pressure Load requires inputs:

  • the boundary surfaces where the load is applied

  • magnitude - magnitude of the pressure

  • units - unit system for the magnitude

{
  "boundary": "load.stl",
  "magnitude": 10,
  "type": "pressure_force",
  "units": "MeterKilogramSecond"
}

Bearing Force

Bearing Force

A “Bearing Force” is a surface load applied to a (typically) cylindrical face to approximate the effects of a shaft pressing against the side of a hole. The applied force gets converted to a varying pressure distribution on the portion of the face experiencing compressive pressure. The pressure distribution is computed automatically to achieve the specified overall bearing force.

..

A Bearing Force requires inputs:

  • the boundary surfaces where the load is applied

  • direction - vector of the loading direction

  • magnitude - magnitude of the load

  • units - unit system for the magnitude

{
  "boundary": "load.stl",
  "direction": [0, 0, -1],
  "magnitude": 100,
  "type": "bearing_force",
  "units": "MeterKilogramSecond"
}

Hydrostatic Load

Hydrostatic Load

A “Hydrostatic” load is a spatially varying pressure on the surfaces submerged in a fluid due to the weight of that fluid. The pressure at any point depends on the height and density of the fluid, increasing from zero at the fluid surface to a maximum at the deepest point.

..

A Hydrostatic load requires inputs:

  • the boundary surfaces where the load is applied

  • the height of the fluid surface

  • the density of the fluid

  • the units that apply to the fluid height and density

{
  "boundary": "load.stl",
  "height": 78,
  "density": 1.0,
  "type": "hydrostatic_force",
  "units": "CentimeterGramSecond"
}

Flexible Remote Load

Flexible Remote Load

A “Flexible Remote Load” allows specifying the force and moment at a remote location that is then applied to a surface. It can be used in a similar manner to NASTRAN’s RBE3 load or Abaqus coupling elements.

..

A Flexible Remote Load requires inputs:

  • the boundary surfaces where the load is applied

  • the direction vector of the remote force

  • the force of the remote force

  • the axis of rotation about which the moment acts

  • the moment magnitude of the remote moment

  • the remote_point where the force and moment are applied

  • the units that apply to the magnitude and moment

The direction and axis vectors should be unit vectors to describe the direction. They will be normalized if they are not unit vectors.

{
  "boundary": "load.stl",
  "direction": [0, -1, 0],
  "force": 100,
  "axis": [1, 0, 0],
  "moment": 200,
  "remote_point": [1, 1, 1],
  "type": "flexible_remote_load",
  "units": "MeterKilogramSecond"
}

Thermal Loads

Fixed Boundary (Fixed Temperature)

Fixed Boundary (Fixed Temperature)

A “Fixed Boundary” load fixes the selected geometry to a specified temperature when the value is specified and non-zero.

..

The fixed boundary has inputs:

  • the boundary surface to be fixed

  • value - the fixed temperature value

  • units - unit system (optional)

{
  "boundary": "fixed_temp.ply",
  "type": "fixed",
  "value": 320
}

Convection

Convection

A “Convection” load specifies the transfer of heat from a surrounding medium.

..

A thermal convection boundary condition requires inputs:

  • the boundary surface(s) where the convection is applied

  • coefficient - heat transfer coefficient

  • environment_temperature - temperature of the surrounding environment

  • units - unit system (optional)

{
  "boundary": "face.ply",
  "coefficient": 25,
  "environment_temperature": 300,
  "type": "convection",
  "units": "MeterKilogramSecond"
}

Surface Flux

Surface Flux

Surface “Thermal or Heat Flux” specifies the heat flow per unit of surface area.

..

A surface thermal flux requires inputs:

  • the boundary surface(s) where the flux is applied

  • magnitude - magnitude of the flux

  • units - unit system (optional)

{
  "boundary": "face.ply",
  "magnitude": 500,
  "type": "constant_flux",
  "units": "MeterKilogramSecond"
}