itasca.structure.linkarray

Array interface for structural element links.

Functions

itasca.structure.linkarray.attach() tuple of int.

Get the attached condition used by the link in each degree-of-freedom. The return value will be an integer with one of three values: 1 = free; 2 = rigid; and 3 = deformable. If the condition is deformable, see the \(model\) method (and associated methods) for details.

itasca.structure.linkarray.component_id() int.

Get the link component id.

itasca.structure.linkarray.extra(slot: int) array float{link} or float{link,3}.

Get the link extra data in the given slot as an array. Extra variables accessed by array must be of type float or vec.

itasca.structure.linkarray.id() int.

Get the link structural element id.

itasca.structure.linkarray.in_group(group_name: str, slot=1) array bool{link}.

Return link group membership as a Boolean array.

itasca.structure.linkarray.model(comp: int) tuple of str.

Get the name of the 1-D force-displacement model used in each degree-of-freedom. If the link attached condition is free or rigid, then this function will return None (see the \(attach\) method). The currently available models are \(linear\), \(normal-yield\), \(shear-yield\), and \(pile-yield\).

itasca.structure.linkarray.model_area(comp: int) array of float.

Get the area associated with all degrees-of-freedom in the force-displacement model.

itasca.structure.linkarray.model_compression(comp: int) array of float.

Get the compressive yield force associated with the force-displacement model for all degrees-of-freedom.

itasca.structure.linkarray.model_disp(comp: int) array of float.

Get the relative displacement between the node and the target used by each 1-D force-displacement model. Note that displacements are with respect to the node-local coordinate system. The relative displacement is defined as the displacement of the link target minus the the displacement of the link host node in the node local coordinate system.

itasca.structure.linkarray.model_force(comp: int) array of float.

Get the current force in each 1-D force-displacement model. The force is calculated by the 1-D force-displacement model in an incremental fashion from the incremental relative displacement of the link target and the host node (target minus node). See the \(model_disp\) method.

itasca.structure.linkarray.model_gap(comp: int) array of bool.

Get the flag indicating whether gap calculations are active in the 1-D force-displacement model for all degrees-of-freedom. See the \(gap_neg\) and \(gap_pos\) methods.

itasca.structure.linkarray.model_gap_neg(comp: int) array of float.

Get the negative (compressive) gap component of each 1-D force-displacement model for each degree-of-freedom.

itasca.structure.linkarray.model_gap_pos(comp: int) array of float.

Get the positive (tensile) gap component of each 1-D force-displacement model for each degree-of-freedom. This value will only affect force calculations if the gap-use flag is on; see the \(model_gap\) method. The relative displacement is defined as the displacement of the link target minus the displacement of the link host node in the node local coordinate system. See the \(model_disp\) method.

itasca.structure.linkarray.model_stiffness(comp: int) array of float.

Get the stiffness used by each 1-D force-displacement model for each degree-of-freedom.

itasca.structure.linkarray.model_tension(comp: int) array of float.

Get the tensile yield force associated with the force-displacement model for each degree-of-freedom. The tensile yield force is a limit to how positive the force in the link can be. Note that tension is defined relative to the node-local coordinate system, and, thus, depending on the coordinate systems involved, the definition of compression and tension may not match those used by the element connected to the host node. See the \(model_force\) method.

itasca.structure.linkarray.model_yield(comp: int) array of int.

Get the yield state indicator in the 1-D force displacement model each degree-of-freedom. This is returned as an integer where 0 = never yielded, 1 = yielding now, and 2 = yielded in past.

itasca.structure.linkarray.node() array of node ID.

Get the ID of nodes hosting the structural link.

itasca.structure.linkarray.set_extra(slot: int, data: array float{link} or float{link, 3}) None.

Set the link extra data in the given slot with an array. Extra variables set by array must be of type float or vec.

itasca.structure.linkarray.set_group(membership: array bool{link}, group_name: str, slot=1) None.

Set link group from an array. Where membership True set the corresponding link to be a member of group group_name in the given slot.

itasca.structure.linkarray.set_model_area(comp: int, area: array of float) None.

Set the area associated with one component of the degrees-of-freedom. The integer component starts at zero and the translational components are first.

itasca.structure.linkarray.set_model_compression(comp: int, force: array of float) None.

Set the compressive yield force associated with the force-displacement model for a single degree-of-freedom. The integer component starts at zero and the translational components are first.

itasca.structure.linkarray.set_model_gap(comp: int, flag: array of bool) None.

Set the flag indicating whether gap calculations are active in the 1-D force-displacement model for a single degrees-of-freedom. See the \(gap_neg\) and \(gap_pos\) methods.

itasca.structure.linkarray.set_model_stiffness(comp: int, force: array of float) None.

Set the stiffness used by each 1-D force-displacement model for each degree-of-freedom.

itasca.structure.linkarray.set_model_tension(comp: int, force: array of float) None.

Set the tensile yield force associated with the force-displacement model for a singe degree-of-freedom. The tensile yield force is a limit to how positive the force in the link can be. Note that tension is defined relative to the node-local coordinate system, and, thus, depending on the coordinate systems involved, the definition of compression and tension may not match those used by the element connected to the host node. See the \(model_force\) method. The integer component starts at zero and the translational components are first.

itasca.structure.linkarray.set_slide(flag:array of bool) None.

Set the large-strain sliding flag for the link. This function only applies to node-to-zone links; it has no meaning for node-to-node links.

itasca.structure.linkarray.set_slide_tol(flag: array of bool) None.

Get the large-strain sliding tolerance for the link. This function only applies to node-to-zone links; it has no meaning for node-to-node links.

itasca.structure.linkarray.side() array of int.

Get the side number of the link. Unless the host node of the link is attached to an embedded liner, this will always return 1. If the host node is part of an embedded liner, it may be 2, indicating the link is being used on side 2 of the liner.

itasca.structure.linkarray.slide() array of bool.

Get the large-strain sliding flag for the link. This function only applies to node-to-zone links; it has no meaning for node-to-node links.

itasca.structure.linkarray.slide_tol() array of bool.

Get the large-strain sliding tolerance for the link. This function only applies to node-to-zone links; it has no meaning for node-to-node links.

itasca.structure.linkarray.type() array of str.

Get the name of the link target type. A node-to-node link will return an \(itasca.structure.node.Node\) object. A node-to-zone link will return an \(itasca.zone.Zone\) object.

itasca.structure.linkarray.used_by() array of str.

Get the name of the type of structural element with which this link is associated. This only applies to node-to-zone links, otherwise the return is a null string. The type string will be one of \(beam\), \(cable\), \(pile\), \(shell\), \(geogrid\), or \(liner\). If the attach conditions and models assigned to the link are not compatible with those elements (generally because they have been changed), then an empty string is returned.