bluemira.structural.transformation ================================== .. py:module:: bluemira.structural.transformation .. autoapi-nested-parse:: FE transformation matrices and methods Functions --------- .. autoapisummary:: bluemira.structural.transformation._direction_cosine_matrix bluemira.structural.transformation._direction_cosine_matrix_debugging bluemira.structural.transformation.lambda_matrix bluemira.structural.transformation.cyclic_pattern Module Contents --------------- .. py:function:: _direction_cosine_matrix(dx: float, dy: float, dz: float) -> numpy.ndarray Calculates the direction cosine (transformation) matrix for an arbitrary vector in space. A number of painful edge cases are handled... Works such that the output dcm satisfies the following properties: local = dcm @ global global = dcm.T @ local :param dx: The absolute length of the vector in the x global coordinate :param dy: The absolute length of the vector in the y global coordinate :param dz: The absolute length of the vector in the z global coordinate :returns: * *The direction cosine matrix with reference to the global coordinate* * *system (3, 3)* .. py:function:: _direction_cosine_matrix_debugging(dx, dy, dz, *, debug=False) Slow, ugly, safe .. py:function:: lambda_matrix(dx: float, dy: float, dz: float) -> numpy.ndarray 3-D transformation matrix, generalised to a 2-node beam. Effectively only handles the tiling of the direction cosine matrix transform. :param dx: The absolute length of the vector in the x global coordinate :param dy: The absolute length of the vector in the y global coordinate :param dz: The absolute length of the vector in the z global coordinate :rtype: The transformation matrix (12, 12) .. py:function:: cyclic_pattern(geometry: bluemira.structural.geometry.Geometry, axis: numpy.ndarray, angle: float, n: int, *, include_first: bool = True) -> list[bluemira.structural.geometry.Geometry | bluemira.structural.geometry.DeformedGeometry] Build a cyclic pattern of a Geometry. :param geometry: The geometry to pattern :param axis: The axis vector about which to pattern :param angle: The pattern angle [degrees] :param n: The number of sectors to pattern :param include_first: Whether or not to include the first sector in the result :rtype: The patterned and merged geometry