pyHarm.KinematicConditions.BaseProjection ========================================= .. py:module:: pyHarm.KinematicConditions.BaseProjection Classes ------- .. autoapisummary:: pyHarm.KinematicConditions.BaseProjection.BaseProjection Module Contents --------------- .. py:class:: BaseProjection(nh: int, nti: int, name: str, data: dict, CS: pyHarm.CoordinateSystem.CoordinateSystem, dynop: Optional[dict[str, numpy.ndarray]] = None) Bases: :py:obj:`pyHarm.KinematicConditions.ABCKinematic.ABCKinematic` Kinematic condition that imposes base projection between two substructures. A linear transformation is imposed through base projection matrix in between a master substructure and the slave substructure. Residual contribution computed on the slave substructure is projected back onto the master substructure. .. attribute:: factory_keyword keyword that is used to call the creation of this class in the system factory. :type: str .. attribute:: default dictionary containing the default parameters for the kinematic condition. :type: dict .. attribute:: phi transformation matrix that goes from master base to slave base. :type: np.ndarray .. attribute:: phi_inv transpose of phi :type: np.ndarray .. py:attribute:: factory_keyword :type: str :value: 'BaseProjection' .. py:attribute:: default .. py:method:: __post_init__() .. py:method:: generateIndices(expl_dofs: pandas.DataFrame) From the explicit dof DataFrame, generates the index of dofs concerned by the connector. :param expl_dofs: explicit dof DataFrame from the studied system. :type expl_dofs: pd.DataFrame .. attribute:: indices index of the dofs that the connector needs. :type: np.ndarray .. attribute:: Pdir a slice of first dimension is a transformation matrix to a direction in local coordinate system. :type: np.ndarray .. attribute:: Pslave selection array that selects the slave dofs of the connector. :type: np.ndarray .. attribute:: Pmaster selection array that selects the master dofs of the connector. :type: np.ndarray .. py:method:: complete_x(x) Returns a vector x_add of same size of x that completes the vector of displacement x = x + x_add such that the kinematic condition is verified. :param x: displacement vector. :type x: np.ndarray :param om: angular frequency. :type om: float :returns: vector of displacement to add to the displacement vector in order to impose the kinematic condition. :rtype: (np.ndarray) .. py:method:: complete_R(R, x) Computes the transfer of residual of the kinematicaly constrained dofs with respect to the displacement. :param R: residual vector. :type R: np.ndarray :param x: displacement vector. :type x: np.ndarray :returns: vector of residual contributions to add to the residual vetor in order to impose the kinematic condition. :rtype: (np.ndarray) .. py:method:: complete_J(Jx, Jom, x) Computes the transfer of jacobian of the kinematicaly constrained dofs with respect to the displacement. :param Jx: jacobian matrix with respect to displacement. :type Jx: np.ndarray :param Jom: jacobian matrix with respect to angular frequency. :type Jom: np.ndarray :param x: displacement vector. :type x: np.ndarray :returns: tuple containing the jacobians contributions to add to the jacobians in order to impose the kinematic condition. :rtype: (tuple[np.ndarray,np.ndarray]) .. py:method:: adim(lc, wc) Using adim parameters, modifies the kinematic conditions accordingly. :param lc: characteristic length. :type lc: float :param wc: characteristic angular frequency. :type wc: float