pyHarm.Elements.SubstructureMatrixElements.Substructure ======================================================= .. py:module:: pyHarm.Elements.SubstructureMatrixElements.Substructure Classes ------- .. autoapisummary:: pyHarm.Elements.SubstructureMatrixElements.Substructure.Substructure Functions --------- .. autoapisummary:: pyHarm.Elements.SubstructureMatrixElements.Substructure.SubstructureResidual pyHarm.Elements.SubstructureMatrixElements.Substructure.SubstructureJacobian Module Contents --------------- .. py:function:: SubstructureResidual(x, om, kronM, kronC, kronG, kronK) .. py:function:: SubstructureJacobian(x, om, kronM, kronC, kronG, kronK) .. py:class:: Substructure(nh: int | list[int], nti: int, name: str, data: dict, CS: pyHarm.CoordinateSystem.CoordinateSystem, dynop: Optional[dict[str, numpy.ndarray]] = None) Bases: :py:obj:`pyHarm.Elements.SubstructureMatrixElements.MatrixElement.MatrixElement` This is the abstract class ruling the element class. An element consists in an elementary contribution to the residual equations. :param nh: number of harmonics. :type nh: int :param nti: number of time steps. :type nti: int :param name: name given to the kinematic condition. :type name: str :param data: dictionary containing all the definition information of the kinematic condition. :type data: dict :param CS: local or global coordinate system the kinematic condition is defined on. :type CS: CoordinateSystem .. attribute:: flag_nonlinear if True, the element is nonlinear. :type: bool .. attribute:: flag_AFT if True, the element requires an alternating frequency/time domain procedure for computing residuals. :type: bool .. attribute:: flag_extforcing if True, the element is an external forcing. :type: bool .. attribute:: flag_DLFT if True, the element uses the dynamic Lagrangian method for computing the residuals. :type: bool .. attribute:: flag_adim if True, the element is adimentioned. :type: bool .. attribute:: nh number of harmonics. :type: int .. attribute:: nti number of time steps. :type: int .. attribute:: D Dynamic operators containing inverse discrete Fourier transform and discrete Fourier transform. :type: dict[np.ndarray,np.ndarray] .. attribute:: nabla Derivation operator. :type: np.ndarray .. py:attribute:: factory_keyword :value: 'substructure' .. py:method:: _generateMatrices(data) .. py:method:: _fill_with_zeros_mat_if_not_spec(data) .. py:method:: get_Mass() Extracts Mass matrix from the harmonic domain Mass matrix Returns : np.ndarray: Mass matrix .. py:method:: get_Rigidity() Extracts Rigidity matrix from the harmonic domain Rigidity matrix Returns : np.ndarray: Rigidity matrix .. py:method:: adim(lc, wc) Modifies the element properties according to the characteristic length and angular frequency. .. attribute:: kronM modified mass matrix according to the characteristic parameters. :type: float .. attribute:: kronC modified damping matrix according to the characteristic parameters. :type: float .. attribute:: kronG modified gyroscopic matrix according to the characteristic parameters. :type: float .. attribute:: kronK modified rigidity matrix according to the characteristic parameters. :type: float .. attribute:: flag_adim True if equations are to be adimensionalized. :type: bool .. py:method:: evalResidual(xg, om) Computes the residual. :param xg: full displacement vector. :type xg: np.ndarray :param om: angular frequency value. :type om: float :returns: residual vector. :rtype: np.ndarray .. py:method:: evalJacobian(xg, om) Computes the jacobians. :param xg: full displacement vector. :type xg: np.ndarray :param om: angular frequency value. :type om: float :returns: Jacobian with respect to displacement. np.ndarray: Jacobian with respect to angular frequency. :rtype: np.ndarray