qmat.qdelta.algebraic ===================== .. py:module:: qmat.qdelta.algebraic .. autoapi-nested-parse:: Submodule for QDelta coefficients based on algebraic approaches, in particular the `LU trick` from `[Weiser, 2014]`_. .. rubric:: Examples >>> from qmat.qcoeff.collocation import Collocation >>> coll = Collocation(nNodes=4, nodeType="LEGENDRE", quadType="RADAU-RIGHT") >>> >>> from qmat import genQDeltaCoeffs >>> QDelta = genQDeltaCoeffs("LU", Q=coll.Q) >>> >>> from qmat.qdelta.algebraic import LDU >>> gen = LDU(Q=coll.Q) >>> QDelta = gen.getQDelta() Classes ------- .. autoapisummary:: qmat.qdelta.algebraic.PIC qmat.qdelta.algebraic.Exact qmat.qdelta.algebraic.LU qmat.qdelta.algebraic.LU2 qmat.qdelta.algebraic.QPar qmat.qdelta.algebraic.GS qmat.qdelta.algebraic.LDU Module Contents --------------- .. py:class:: PIC(Q, **kwargs) .. autoapi-inheritance-diagram:: qmat.qdelta.algebraic.PIC :parts: 1 Picard approximation (zeros) .. py:attribute:: aliases :value: ['Picard'] .. py:method:: computeQDelta(k=None) Compute and returns the :math:`Q_\Delta` matrix, has to be implemented in the specialized class. :Parameters: **k** (*int, optional*) -- Iteration number of the approximation. The default is None. :returns: **QDelta** :rtype: np.ndarray .. py:class:: Exact(Q, **kwargs) .. autoapi-inheritance-diagram:: qmat.qdelta.algebraic.Exact :parts: 1 Takes Q (exact approximation) .. py:attribute:: aliases :value: ['EXACT'] .. py:method:: computeQDelta(k=None) Compute and returns the :math:`Q_\Delta` matrix, has to be implemented in the specialized class. :Parameters: **k** (*int, optional*) -- Iteration number of the approximation. The default is None. :returns: **QDelta** :rtype: np.ndarray .. py:class:: LU(Q, **kwargs) .. autoapi-inheritance-diagram:: qmat.qdelta.algebraic.LU :parts: 1 LU approximation from `[Weiser, 2014] `_ .. py:method:: computeQDelta(k=None) Compute and returns the :math:`Q_\Delta` matrix, has to be implemented in the specialized class. :Parameters: **k** (*int, optional*) -- Iteration number of the approximation. The default is None. :returns: **QDelta** :rtype: np.ndarray .. py:class:: LU2(Q, **kwargs) .. autoapi-inheritance-diagram:: qmat.qdelta.algebraic.LU2 :parts: 1 LU approximation from `[Weiser, 2014]`_ multiplied by 2 .. py:method:: computeQDelta(k=None) Compute and returns the :math:`Q_\Delta` matrix, has to be implemented in the specialized class. :Parameters: **k** (*int, optional*) -- Iteration number of the approximation. The default is None. :returns: **QDelta** :rtype: np.ndarray .. py:class:: QPar(Q, **kwargs) .. autoapi-inheritance-diagram:: qmat.qdelta.algebraic.QPar :parts: 1 Approximation using diagonal of Q .. py:attribute:: aliases :value: ['Qpar', 'Qdiag'] .. py:method:: computeQDelta(k=None) Compute and returns the :math:`Q_\Delta` matrix, has to be implemented in the specialized class. :Parameters: **k** (*int, optional*) -- Iteration number of the approximation. The default is None. :returns: **QDelta** :rtype: np.ndarray .. py:class:: GS(Q, **kwargs) .. autoapi-inheritance-diagram:: qmat.qdelta.algebraic.GS :parts: 1 Approximation using lower triangular part of Q .. py:attribute:: aliases :value: ['GaussSeidel'] .. py:method:: computeQDelta(k=None) Compute and returns the :math:`Q_\Delta` matrix, has to be implemented in the specialized class. :Parameters: **k** (*int, optional*) -- Iteration number of the approximation. The default is None. :returns: **QDelta** :rtype: np.ndarray .. py:class:: LDU(Q, **kwargs) .. autoapi-inheritance-diagram:: qmat.qdelta.algebraic.LDU :parts: 1 Diagonal approximation using LDU factorization .. py:method:: computeQDelta(k=None) Compute and returns the :math:`Q_\Delta` matrix, has to be implemented in the specialized class. :Parameters: **k** (*int, optional*) -- Iteration number of the approximation. The default is None. :returns: **QDelta** :rtype: np.ndarray