Source code for o3seespy.command.element.cable

from o3seespy.command.element.base_element import ElementBase


[docs]class CatenaryCable(ElementBase): """ The CatenaryCable Element Class This command is used to construct a catenary cable element object. """ op_type = 'CatenaryCable' def __init__(self, osi, i_node, j_node, weight, big_e, big_a, l0, alpha, temperature_change, rho, error_tol, nsubsteps, mass_type): """ Initial method for CatenaryCable Parameters ---------- osi: o3seespy.OpenSeesInstance i_node: obj End nodes (3 dof per node) j_node: obj End nodes (3 dof per node) weight: float Undefined big_e: float Elastic modulus of the cable material big_a: float Cross-sectional area of element l0: float Unstretched length of the cable alpha: float Coefficient of thermal expansion temperature_change: float Temperature change for the element rho: float Mass per unit length error_tol: float Allowed tolerance for within-element equilbrium (newton-rhapson iterations) nsubsteps: int Number of within-element substeps into which equilibrium iterations are subdivided (not number of steps to convergence) mass_type: int Mass matrix model to use (``masstype`` = 0 lumped mass matrix, ``masstype`` = 1 rigid-body mass matrix (in development)) Examples -------- >>> import o3seespy as o3 >>> osi = o3.OpenSeesInstance(ndm=2) >>> i_node = o3.node.Node(osi, 0.0, 0.0) >>> j_node = o3.node.Node(osi, 0.0, 1.0) >>> o3.element.CatenaryCable(osi, i_node=i_node, j_node=j_node, weight=1.0, big_e=1.0, big_a=1.0, l0=1.0, alpha=1.0, temperature_change=1.0, rho=1.0, error_tol=1.0, nsubsteps=1, mass_type=1) """ self.osi = osi self.i_node = i_node self.j_node = j_node self.weight = float(weight) self.big_e = float(big_e) self.big_a = float(big_a) self.l0 = float(l0) self.alpha = float(alpha) self.temperature_change = float(temperature_change) self.rho = float(rho) self.error_tol = float(error_tol) self.nsubsteps = int(nsubsteps) self.mass_type = int(mass_type) osi.n_ele += 1 self._tag = osi.n_ele self._parameters = [self.op_type, self._tag, self.i_node.tag, self.j_node.tag, self.weight, self.big_e, self.big_a, self.l0, self.alpha, self.temperature_change, self.rho, self.error_tol, self.nsubsteps, self.mass_type] self.to_process(osi)