anastruct.fem.util.load

Classes

LoadCase

Group different loads in a load case

LoadCombination

Module Contents

class anastruct.fem.util.load.LoadCase(name: str)[source]

Group different loads in a load case

name: str[source]
spec: dict[source]
c: int = 0[source]
q_load(q: float | Sequence[float], element_id: int | Sequence[int], direction: str | Sequence[str] = 'element', rotation: float | Sequence[float] | None = None, q_perp: float | Sequence[float] | None = None) None[source]

Apply a q-load to an element.

Parameters:
  • element_id – (int/ list) representing the element ID

  • q – (flt) value of the q-load

  • direction – (str) “element”, “x”, “y”, “parallel”

point_load(node_id: int | Sequence[int], Fx: float | Sequence[float] = 0, Fy: float | Sequence[float] = 0, rotation: float | Sequence[float] = 0) None[source]

Apply a point load to a node.

Parameters:
  • node_id – (int/ list) Nodes ID.

  • Fx – (flt/ list) Force in global x direction.

  • Fy – (flt/ list) Force in global x direction.

  • rotation – (flt/ list) Rotate the force clockwise. Rotation is in degrees.

moment_load(node_id: int | Sequence[int], Tz: float | Sequence[float]) None[source]

Apply a moment on a node.

Parameters:
  • node_id – (int/ list) Nodes ID.

  • Tz – (flt/ list) Moments acting on the node.

dead_load(element_id: int | Sequence[int], g: float | Sequence[float]) None[source]

Apply a dead load in kN/m on elements.

Parameters:
  • element_id – (int/ list) representing the element ID

  • g – (flt/ list) Weight per meter. [kN/m] / [N/m]

__str__() str[source]
class anastruct.fem.util.load.LoadCombination(name: str)[source]
name: str[source]
spec: dict[source]
add_load_case(lc: LoadCase | Sequence[LoadCase], factor: float | Sequence[float]) None[source]

Add a load case to the load combination.

Parameters:
  • lc – (anastruct.fem.util.LoadCase)

  • factor – (flt) Multiply all the loads in this LoadCase with this factor.

solve(system: anastruct.fem.system.SystemElements, force_linear: bool = False, verbosity: int = 0, max_iter: int = 200, geometrical_non_linear: bool = False, **kwargs: Any) Dict[str, anastruct.fem.system.SystemElements][source]

Evaluate the Load Combination.

Parameters:
  • system – (anastruct.fem.system.SystemElements) Structure to apply loads on.

  • force_linear – (bool) Force a linear calculation. Even when the system has non linear nodes.

  • verbosity – (int) 0: Log calculation outputs. 1: silence.

  • max_iter – (int) Maximum allowed iterations.

  • geometrical_non_linear – (bool) Calculate second order effects and determine the buckling factor.

Returns:

(ResultObject)

Development **kwargs:
param naked:

(bool) Whether or not to run the solve function without doing post processing.

param discretize_kwargs:

When doing a geometric non linear analysis you can reduce or increase the number of elements created that are used for determining the buckling_factor