bluemira.structural.loads

Load objects

Classes

Load

Load container

LoadCase

A simple container object for a collection of loads

Functions

_check_load_type(→ bluemira.structural.constants.LoadType)

node_load(→ numpy.ndarray)

Calculates the reaction force vector due to a point load Q, applied at a

point_load(→ numpy.ndarray)

Calculates the reaction force vector due to a point load Q, applied at x

distributed_load(→ numpy.ndarray)

Calculates the reactor force vector due to a distributed load w, applied

Module Contents

class bluemira.structural.loads.Load

Load container

kind: str | bluemira.structural.constants.LoadKind
subtype: str | bluemira.structural.constants.LoadType
Q: float | None = None
w: float | None = None
x: float | None = None
node_id: int | None = None
element_id: int | None = None
__post_init__()

Enforce enums

Raises:

ValueError – Required arguments not provided

bluemira.structural.loads._check_load_type(load_type: str | bluemira.structural.constants.LoadType, sub_type: str | bluemira.structural.constants.SubLoadType = 'all') bluemira.structural.constants.LoadType
Parameters:
Return type:

bluemira.structural.constants.LoadType

bluemira.structural.loads.node_load(load: float, load_type: str | bluemira.structural.constants.LoadType) numpy.ndarray

Calculates the reaction force vector due to a point load Q, applied at a Node.

Parameters:
  • load (float) – The value of the point load (which may be a force or a moment)

  • load_type (str | bluemira.structural.constants.LoadType) –

    The type of load to apply (from ‘Fx’, ‘Fy’, ‘Fz’, ‘Mx’, ‘My’, ‘Mz’])

    ’Fi’: force in the ‘i’ direction ‘Mi’: moment about the ‘i’ direction

Return type:

The fixed-ends reaction force vector (6)

bluemira.structural.loads.point_load(load: float, x: float, length: float, load_type: str | bluemira.structural.constants.LoadType) numpy.ndarray

Calculates the reaction force vector due to a point load Q, applied at x along the element of length L, going from node_1 to node_2.

Parameters:
  • load (float) – The value of the point load (which may be a force or a moment)

  • x (float) – The parameterised distance along the element from node_1 to node_2, from 0 to 1.

  • length (float) – The element length

  • load_type (str | bluemira.structural.constants.LoadType) –

    The type of load to apply (from[‘Fx’, ‘Fy’, ‘Fz’, ‘Mx’, ‘My’, ‘Mz’])

    ’Fi’: force in the ‘i’ direction ‘Mi’: moment about the ‘i’ direction

Return type:

The fixed-ends reaction force vector (12)

bluemira.structural.loads.distributed_load(w: float, length: float, load_type: str | bluemira.structural.constants.LoadType) numpy.ndarray

Calculates the reactor force vector due to a distributed load w, applied over the length of the element.

Parameters:
  • w (float) – The value of the distributed load

  • length (float) – Length of the element along which the load is applied

  • load_type (str | bluemira.structural.constants.LoadType) –

    The type of load to apply (from [‘Fx’, ‘Fy’, ‘Fz’]):

    ’Fi’: force in the ‘i’ direction

Return type:

numpy.ndarray

class bluemira.structural.loads.LoadCase(*data: Load)

A simple container object for a collection of loads

Parameters:

data (Load)

_data = []
__iter__() collections.abc.Iterator[Load]

Iterate over loads

Yields:

Each Load

Return type:

collections.abc.Iterator[Load]

add_node_load(node_id: int, load: float, load_type: str)

Adds a node load to the LoadCase

Parameters:
  • node_id (int) – The id_number of the Node to apply the load at

  • load (float) – The value of the load

  • load_type (str) – The type and axis of the load from [‘Fx’, ‘Fy’, ‘Fz’, ‘Mx’, ‘My’, ‘Mz’]

add_element_load(element_id: int, load: float, x: float, load_type: str)

Adds an element point load to the LoadCase

Parameters:
  • element_id (int) – The id_number of the Element to apply the load at

  • load (float) – The value of the load

  • x (float) – The parameterised and normalised distance along the element x-axis

  • load_type (str) – The type and axis of the load (from [‘Fx’, ‘Fy’, ‘Fz’, ‘Mx’, ‘My’, ‘Mz’])

add_distributed_load(element_id: int, w: float, load_type: str)

Adds a distributed load to the LoadCase

Parameters:
  • element_id (int) – The id_number of the Element to apply the load at

  • w (float) – The value of the distributed load

  • load_type (str) – The type and axis of the load (from [‘Fx’, ‘Fy’, ‘Fz’])