3.3. Geometry
The geometry module contains objects that help represent where structural elements are in space. Generally, a series of points are represented as nodes, with curves connecting them. Member objects are aggregates of this combination between curves and nodes. Also includes are classes that can represent structural support conditions.
3.3.1. Node
- class Node(p1: numpy.ndarray | list, units: str = 'm', label: ~typing.Optional[str] = None, support: ~limitstates.objects.support.Support = <factory>)[source]
Bases:
objectRepresents a node in 2D or 3D space. Nodes in 3D are currently not supported.
Nodes have degrees of freedom [dx, dy, rz], or [dx, dy, dz, rx, ry, rz] where di is a translation, and ri is a rotation.
- Parameters
p1 (list or numpy ndarray) – A list or array of coordinate values in the form [x,y] or [x,y,z].
units (str) – The units the node is stored in.
label (str) – A label for the node.
support (Support) – A support object, either one that is custom defined or defined using SupportTypes2D.
- label: str = None
- p1: numpy.ndarray | list
- units: str = 'm'
3.3.2. Support
- class Support(name: Optional[str] = None, fixity: Optional[list[int]] = None, reaction: Optional[dict] = None)[source]
Bases:
objectRepresents a support in 2D or 3D space. Currently only 2D supportes are supported. Nodes have degrees of freedom [dx, dy, rz], or [dx, dy, dz, rx, ry, rz] where di is a translation, and ri is a rotation.
- Parameters
name (str) – The name for the node.
fixity (list | tuple) – A list or tuple representing the fixity of the node. A one means that the degree of freedom is fixed, and 0 means it is free to translate.
reaction (dict) – XXX Currently currently unused. In the future will hold reaction force data.
- fixity: list[int] = None
- name: str = None
- reaction: dict = None
- class SupportTypes2D(value)[source]
Bases:
EnumA enumeration class that represents all possible support types in 2D. The support type is a list of one or zero for each degree of freedom the node has, where 1 means the degree of freedom is fixed and 0 means it is free.
- FIXED = Support(name='fixed', fixity=(1, 1, 1), reaction=None)
- FREE = Support(name='free', fixity=(0, 0, 0), reaction=None)
- PINNED = Support(name='pinned', fixity=(1, 1, 0), reaction=None)
- ROLLER = Support(name='roller', fixity=(0, 1, 0), reaction=None)
3.3.3. Line
3.3.4. Member
- class Member(nodes: Optional[list[limitstates.objects.geometry.Node]] = None, curves: Optional[list[limitstates.objects.geometry.Line]] = None, lUnit: str = 'm', label: Optional[str] = None, loadData: Optional[dict] = None, analysisData: Optional[dict] = None)[source]
Bases:
objectMembers represent a multi-portion curve, and fully define where a structural element goes in space. Members are made of curve segments, which are split by supports. Supports are assigned to nodes.
They also contain data about the analysis, such as bending moment diagrams.
- Parameters
nodes (list[Node]) – The nodes of the member.
curves (list[Line]) – The curves connecting each node.
units (str, optional) – The units used in the member. Should match the Node and Line units. The default is ‘m’.
label (str) – A label for the Member.
loadData (str) – A dictionary containing loading information about the Member. CURRENTLY UNUSED AND MAY BE REPLACED
analysisData (str) – A dictionary containing output information about analysis of the Member, e.g. the bending moment diagram, the shear force diagram, etc.
- analysisData: dict = None
- curves: list[limitstates.objects.geometry.Line] = None
- lConvert(outputUnit: str)[source]
Get the conversion factor from the current unit to the output unit for length units
- lUnit: str = 'm'
- label: str = None
- loadData: dict = None
- nodes: list[limitstates.objects.geometry.Node] = None
- setNodeSupprt(ind: int, support: Support)[source]
Updates the support conditon for a single node. The spans are clasiffied after results are set.
- Parameters
ind (int) – The node index to update.
support (Support) – The new support type for that node.
- Return type
None.
- setNodeSupprts(inds: list[int], supports: list[limitstates.objects.support.Support])[source]
Updates the support conditon for a multiple nodes. This is more efficeint than calling “setNodeSupprt” multiple times, as the the spans are classfied only once at the end.
- Parameters
ind (list[int]) – The node index to update.
support (list[Support]) – The new support type for that node.
- Return type
None.
3.3.5. Helper Functions
Represents netral geometry objects - these represent objects in space and are independant of any type of design
- getLineFromLength(L: float, units='m') Line[source]
Makes a new line of length L that starts at the origin. Two nodes will be defined, one at the origin, and one at poition L in the x axis.
- Parameters
L (float) – The length of the line to be defined.
units (TYPE, optional) – The units to use for the line. The default is ‘m’.
- Returns
The output line of length “L”.
- Return type