qmat.qcoeff.butcher =================== .. py:module:: qmat.qcoeff.butcher .. autoapi-nested-parse:: :math:`Q`-coefficients based on Butcher tables of Runge-Kutta in the literature. .. rubric:: Examples >>> from qmat.qcoeff.butcher import RK_SCHEMES >>> c, b, A = RK_SCHEMES["RK4"]().genCoeffs() >>> c, (b1, b2), A = RK_SCHEMES["ESDIRK53"]().genCoeffs(embedded=True) >>> from qmat.qcoeff.butcher import CashKarp >>> gen = CashKarp() >>> c, b, A = gen.c, gen.b, gen.A Attributes ---------- .. autoapisummary:: qmat.qcoeff.butcher.RK_SCHEMES Classes ------- .. autoapisummary:: qmat.qcoeff.butcher.RK qmat.qcoeff.butcher.FE qmat.qcoeff.butcher.RK21 qmat.qcoeff.butcher.RK2 qmat.qcoeff.butcher.HEUN2 qmat.qcoeff.butcher.RK32 qmat.qcoeff.butcher.RK33 qmat.qcoeff.butcher.RK53 qmat.qcoeff.butcher.RK4 qmat.qcoeff.butcher.RK4_38 qmat.qcoeff.butcher.RK65 qmat.qcoeff.butcher.CashKarp qmat.qcoeff.butcher.BE qmat.qcoeff.butcher.MidPoint qmat.qcoeff.butcher.TRAP qmat.qcoeff.butcher.SDIRK2 qmat.qcoeff.butcher.SDIRK2_2 qmat.qcoeff.butcher.SDIRK3 qmat.qcoeff.butcher.DIRK43 qmat.qcoeff.butcher.GAUSS_LG qmat.qcoeff.butcher.SDIRK54 qmat.qcoeff.butcher.EDIRK43 qmat.qcoeff.butcher.EDIRK4 qmat.qcoeff.butcher.ESDIRK43 qmat.qcoeff.butcher.ESDIRK53 qmat.qcoeff.butcher.ARK548L2SAERK qmat.qcoeff.butcher.ARK548L2SAESDIRK qmat.qcoeff.butcher.ARK548L2SAESDIRK2 qmat.qcoeff.butcher.ARK548L2SAERK2 qmat.qcoeff.butcher.ARK324L2SAERK qmat.qcoeff.butcher.ARK324L2SAESDIRK qmat.qcoeff.butcher.ARK222EDIRK qmat.qcoeff.butcher.ARK222ERK qmat.qcoeff.butcher.ARK443ESDIRK qmat.qcoeff.butcher.ARK443ERK qmat.qcoeff.butcher.ARK343ESDIRK qmat.qcoeff.butcher.ARK343ERK qmat.qcoeff.butcher.ARK4EDIRK qmat.qcoeff.butcher.ARK4ERK Functions --------- .. autoapisummary:: qmat.qcoeff.butcher.checkAndStore qmat.qcoeff.butcher.registerRK Module Contents --------------- .. py:class:: RK(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.RK :parts: 1 Base class for Runge-Kutta generators :Parameters: **padding** (*str, optional*) -- Eventually add padding to the Butcher table. Can be - LEFT : add padding corresponding to an additional node at t=0 - RIGHT : add padding corresponding to an additional node at t=1 - BOTH : add both LEFT and RIGHT padding The default is None. .. py:attribute:: A :value: None :math:`A` matrix of the Butcher table .. py:attribute:: b :value: None :math:`b` coefficients of the Butcher table .. py:attribute:: c :value: None :math:`c` coefficients of the Butcher table .. py:attribute:: b2 :value: None :math:`b_2` coefficients for the embedded methods .. py:property:: nodes :type: numpy.ndarray Nodes :math:`\tau` (:math:`c` coefficients in Butcher table) .. py:property:: weights :type: numpy.ndarray Weights :math:`\omega` (:math:`b` coefficients in Butcher table) .. py:property:: weightsEmbedded :type: numpy.ndarray Weights for a secondary lower order method from the same stages. .. py:property:: Q :type: numpy.ndarray :math:`Q` coefficients (:math:`A` Butcher table) .. py:property:: hCoeffs :type: numpy.ndarray :math:`h` interpolation coefficients for the right boundary .. py:data:: RK_SCHEMES Dictionary storing all the implemented RK methods .. py:function:: checkAndStore(cls: RK) -> RK Check that a `RK`-inherited class is correctly implemented (and store it into the :class:`RK_SCHEMES` dict) .. py:function:: registerRK(cls: RK) -> RK Class decorator registering a RK method in `qmat` .. py:class:: FE(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.FE :parts: 1 Forward Euler method (cf `Wikipedia`_) .. py:attribute:: aliases :value: ['EE'] .. py:attribute:: A :value: [[0]] :math:`A` matrix of the Butcher table .. py:attribute:: b :value: [1] :math:`b` coefficients of the Butcher table .. py:attribute:: c :value: [0] :math:`c` coefficients of the Butcher table .. py:property:: order :type: int Global convergence order of the method .. py:class:: RK21(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.RK21 :parts: 1 Explicit Runge-Kutta in 2 steps of order 1 from `[Wang & Spiteri, 2007] `_ .. py:attribute:: aliases :value: ['ERK21'] .. py:attribute:: A :math:`A` matrix of the Butcher table .. py:attribute:: b :math:`b` coefficients of the Butcher table .. py:attribute:: c :math:`c` coefficients of the Butcher table .. py:property:: order :type: int Global convergence order of the method .. py:class:: RK2(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.RK2 :parts: 1 Classical Runge-Kutta method of order 2 (cf `Wikipedia`_) .. py:attribute:: aliases :value: ['ERK2', 'ExplicitMidPoint', 'EMP'] .. py:attribute:: A :math:`A` matrix of the Butcher table .. py:attribute:: b :value: [0, 1] :math:`b` coefficients of the Butcher table .. py:attribute:: c :math:`c` coefficients of the Butcher table .. py:property:: order :type: int Global convergence order of the method .. py:class:: HEUN2(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.HEUN2 :parts: 1 Heun method of order 2 (cf `Wikipedia`_) .. py:attribute:: aliases :value: ['HEUN', 'HeunEuler'] .. py:attribute:: A :value: [[0, 0], [1, 0]] :math:`A` matrix of the Butcher table .. py:attribute:: b :math:`b` coefficients of the Butcher table .. py:attribute:: c :value: [0, 1.0] :math:`c` coefficients of the Butcher table .. py:attribute:: b2 :value: [1, 0] :math:`b_2` coefficients for the embedded methods .. py:property:: order :type: int Global convergence order of the method .. py:class:: RK32(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.RK32 :parts: 1 Explicit Runge-Kutta in 3 steps of order 2 from `[Wang & Spiteri, 2007]`_ .. py:attribute:: aliases :value: ['ERK32', 'RK32-SSP'] .. py:attribute:: A :math:`A` matrix of the Butcher table .. py:attribute:: b :math:`b` coefficients of the Butcher table .. py:attribute:: c :math:`c` coefficients of the Butcher table .. py:property:: order :type: int Global convergence order of the method .. py:class:: RK33(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.RK33 :parts: 1 Explicit Runge-Kutta in 3 steps of order 3 from `[Wang & Spiteri, 2007]`_ .. py:attribute:: aliases :value: ['ERK33', 'RK33-SSP'] .. py:attribute:: A :math:`A` matrix of the Butcher table .. py:attribute:: b :math:`b` coefficients of the Butcher table .. py:attribute:: c :math:`c` coefficients of the Butcher table .. py:property:: order :type: int Global convergence order of the method .. py:class:: RK53(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.RK53 :parts: 1 Explicit Runge-Kutta in 5 steps of order 3 from `[Wang & Spiteri, 2007]`_ .. py:attribute:: aliases :value: ['ERK53'] .. py:attribute:: A :math:`A` matrix of the Butcher table .. py:attribute:: b :math:`b` coefficients of the Butcher table .. py:attribute:: c :math:`c` coefficients of the Butcher table .. py:property:: order :type: int Global convergence order of the method .. py:class:: RK4(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.RK4 :parts: 1 Classical Runge Kutta method of order 4 (cf `Wikipedia`_) .. py:attribute:: aliases :value: ['ERK4'] .. py:attribute:: A :value: [[0, 0, 0, 0], [0.5, 0, 0, 0], [0, 0.5, 0, 0], [0, 0, 1, 0]] :math:`A` matrix of the Butcher table .. py:attribute:: b :math:`b` coefficients of the Butcher table .. py:attribute:: c :math:`c` coefficients of the Butcher table .. py:property:: order :type: int Global convergence order of the method .. py:class:: RK4_38(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.RK4_38 :parts: 1 The 3/8-rule due to Kutta, order 4 (cf `Wikipedia`_) .. py:attribute:: aliases :value: ['ERK4_38'] .. py:attribute:: A :math:`A` matrix of the Butcher table .. py:attribute:: b :math:`b` coefficients of the Butcher table .. py:attribute:: c :math:`c` coefficients of the Butcher table .. py:property:: order :type: int Global convergence order of the method .. py:class:: RK65(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.RK65 :parts: 1 Explicit Runge-Kutta in 6 steps of order 5, (236a) from `[Butcher, 2016] `_ .. py:attribute:: aliases :value: ['ERK65'] .. py:attribute:: A :math:`A` matrix of the Butcher table .. py:attribute:: b :math:`b` coefficients of the Butcher table .. py:attribute:: c :value: [0, 0.25, 0.25, 0.5, 0.75, 1] :math:`c` coefficients of the Butcher table .. py:property:: order :type: int Global convergence order of the method .. py:class:: CashKarp(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.CashKarp :parts: 1 Fifth order explicit embedded Runge-Kutta from `[Cash & Karp, 1990] `_. .. py:attribute:: aliases :value: ['Cash_Karp'] .. py:attribute:: c :math:`c` coefficients of the Butcher table .. py:attribute:: b :math:`b` coefficients of the Butcher table .. py:attribute:: b2 :math:`b_2` coefficients for the embedded methods .. py:attribute:: A :math:`A` matrix of the Butcher table .. py:property:: order :type: int Global convergence order of the method .. py:attribute:: CONV_TEST_NSTEPS :value: [32, 64, 128] .. py:class:: BE(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.BE :parts: 1 Backward Euler method (also SDIRK1, see `[Alexander, 1977] `_) .. py:attribute:: aliases :value: ['IE', 'SDIRK1'] .. py:attribute:: A :value: [[1]] :math:`A` matrix of the Butcher table .. py:attribute:: b :value: [1] :math:`b` coefficients of the Butcher table .. py:attribute:: c :value: [1] :math:`c` coefficients of the Butcher table .. py:property:: order :type: int Global convergence order of the method .. py:class:: MidPoint(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.MidPoint :parts: 1 Implicit Mid-Point Rule, see `Wikipedia`_. .. py:attribute:: aliases :value: ['IMP', 'ImplicitMidPoint'] .. py:attribute:: A :math:`A` matrix of the Butcher table .. py:attribute:: b :value: [1] :math:`b` coefficients of the Butcher table .. py:attribute:: c :math:`c` coefficients of the Butcher table .. py:property:: order :type: int Global convergence order of the method .. py:class:: TRAP(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.TRAP :parts: 1 Trapeze method, see `Wikipedia`_. .. py:attribute:: aliases :value: ['TRAPZ', 'CN', 'CrankNicolson'] .. py:attribute:: A :math:`A` matrix of the Butcher table .. py:attribute:: b :math:`b` coefficients of the Butcher table .. py:attribute:: c :value: [0, 1] :math:`c` coefficients of the Butcher table .. py:property:: order :type: int Global convergence order of the method .. py:class:: SDIRK2(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.SDIRK2 :parts: 1 First S-stable Diagonally Implicit Runge Kutta method of order 2 in two stages from `[Alexander, 1977]`_. .. py:attribute:: A :math:`A` matrix of the Butcher table .. py:attribute:: b :math:`b` coefficients of the Butcher table .. py:attribute:: c :math:`c` coefficients of the Butcher table .. py:property:: order :type: int Global convergence order of the method .. py:class:: SDIRK2_2(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.SDIRK2_2 :parts: 1 Second S-stable Diagonally Implicit Runge Kutta method of order 2 in two stages from `[Alexander, 1977]`_. .. py:attribute:: aliases :value: ['SDIRK2-2'] .. py:attribute:: A :math:`A` matrix of the Butcher table .. py:attribute:: b :math:`b` coefficients of the Butcher table .. py:attribute:: c :math:`c` coefficients of the Butcher table .. py:property:: order :type: int Global convergence order of the method .. py:attribute:: CONV_TEST_NSTEPS :value: [64, 128, 256] .. py:class:: SDIRK3(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.SDIRK3 :parts: 1 S-stable Diagonally Implicit Runge Kutta method of order 3 in three stages from `[Alexander, 1977]`_. .. py:attribute:: A :math:`A` matrix of the Butcher table .. py:attribute:: b :math:`b` coefficients of the Butcher table .. py:attribute:: c :value: [0.43586652150845967, 0.7179332607542298, 1.0] :math:`c` coefficients of the Butcher table .. py:property:: order :type: int Global convergence order of the method .. py:class:: DIRK43(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.DIRK43 :parts: 1 L-stable Diagonally Implicit RK method with four stages of order 3 from `Wikipedia `_. .. py:attribute:: A :math:`A` matrix of the Butcher table .. py:attribute:: b :math:`b` coefficients of the Butcher table .. py:attribute:: c :math:`c` coefficients of the Butcher table .. py:property:: order :type: int Global convergence order of the method .. py:class:: GAUSS_LG(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.GAUSS_LG :parts: 1 Gauss-Legendre method of order 4 (cf `Wikipedia`_). .. py:attribute:: aliases :value: ['GAUSS-LG'] .. py:attribute:: A :math:`A` matrix of the Butcher table .. py:attribute:: b :value: [0.5, 0.5] :math:`b` coefficients of the Butcher table .. py:attribute:: c :math:`c` coefficients of the Butcher table .. py:property:: order :type: int Global convergence order of the method .. py:class:: SDIRK54(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.SDIRK54 :parts: 1 S-stable Diagonally Implicit Runge Kutta method of order 4 in five stages from `[Hairer & Wanner, 1996] `_. .. py:attribute:: A :math:`A` matrix of the Butcher table .. py:attribute:: b :math:`b` coefficients of the Butcher table .. py:attribute:: c :math:`c` coefficients of the Butcher table .. py:property:: order :type: int Global convergence order of the method .. py:class:: EDIRK43(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.EDIRK43 :parts: 1 Embedded A-stable diagonally implicit RK pair of order 3 and 4 from `[Norsett & Thomsen, 1984] `_. .. py:attribute:: A :math:`A` matrix of the Butcher table .. py:attribute:: b :math:`b` coefficients of the Butcher table .. py:attribute:: c :math:`c` coefficients of the Butcher table .. py:attribute:: b2 :math:`b_2` coefficients for the embedded methods .. py:property:: order :type: int Global convergence order of the method .. py:attribute:: CONV_TEST_NSTEPS :value: [32, 64, 128] .. py:class:: EDIRK4(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.EDIRK4 :parts: 1 Stiffly accurate, fourth-order EDIRK with four stages, taken from `[Kennedy & Carpenter, 2016] `_, second one in eq. (216). .. py:attribute:: A :math:`A` matrix of the Butcher table .. py:attribute:: b :math:`b` coefficients of the Butcher table .. py:attribute:: c :math:`c` coefficients of the Butcher table .. py:property:: order :type: int Global convergence order of the method .. py:attribute:: CONV_TEST_NSTEPS :value: [32, 64, 128] .. py:class:: ESDIRK43(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.ESDIRK43 :parts: 1 A-stable embedded RK pair of orders 4 and 3, ESDIRK4(3)6L[2]SA, from `[Kennedy & Carpenter, 2016]`_. .. py:attribute:: s2 :value: 1.4142135623730951 .. py:attribute:: c :math:`c` coefficients of the Butcher table .. py:attribute:: A :math:`A` matrix of the Butcher table .. py:attribute:: b :math:`b` coefficients of the Butcher table .. py:attribute:: b2 :math:`b_2` coefficients for the embedded methods .. py:property:: order :type: int Global convergence order of the method .. py:attribute:: CONV_TEST_NSTEPS :value: [64, 128, 256] .. py:class:: ESDIRK53(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.ESDIRK53 :parts: 1 A-stable embedded RK pair of orders 5 and 3, ESDIRK5(3)6L[2]SA, from `[Kennedy & Carpenter, 2016]`_. .. py:attribute:: c :math:`c` coefficients of the Butcher table .. py:attribute:: A :math:`A` matrix of the Butcher table .. py:attribute:: b :math:`b` coefficients of the Butcher table .. py:attribute:: b2 :math:`b_2` coefficients for the embedded methods .. py:property:: orderEmbedded :type: int Global convergence order of the associated embedded method .. py:property:: order :type: int Global convergence order of the method .. py:class:: ARK548L2SAERK(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.ARK548L2SAERK :parts: 1 Explicit part of the ARK54 scheme. .. py:attribute:: A :math:`A` matrix of the Butcher table .. py:attribute:: b :math:`b` coefficients of the Butcher table .. py:attribute:: c :math:`c` coefficients of the Butcher table .. py:attribute:: b2 :math:`b_2` coefficients for the embedded methods .. py:property:: order :type: int Global convergence order of the method .. py:attribute:: CONV_TEST_NSTEPS :value: [32, 64, 128] .. py:class:: ARK548L2SAESDIRK(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.ARK548L2SAESDIRK :parts: 1 Implicit part of the ARK54 scheme. Be careful with the embedded scheme : it seems that both schemes are order 5 as opposed to 5 and 4 as claimed. This may cause issues when doing adaptive time-stepping. .. py:attribute:: A :math:`A` matrix of the Butcher table .. py:property:: orderEmbedded :type: int Global convergence order of the associated embedded method .. py:class:: ARK548L2SAESDIRK2(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.ARK548L2SAESDIRK2 :parts: 1 Stiffly accurate singly diagonally L-stable implicit embedded Runge-Kutta pair of orders 5 and 4 with explicit first stage from `[Kennedy & Carpenter, 2019] `_. This method is part of the IMEX method ARK548L2SA. .. py:attribute:: gamma :value: 0.2222222222222222 .. py:attribute:: c :math:`c` coefficients of the Butcher table .. py:attribute:: b :math:`b` coefficients of the Butcher table .. py:attribute:: A :math:`A` matrix of the Butcher table .. py:attribute:: b2 :math:`b_2` coefficients for the embedded methods .. py:property:: order :type: int Global convergence order of the method .. py:attribute:: CONV_TEST_NSTEPS :value: [16, 32, 64] .. py:class:: ARK548L2SAERK2(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.ARK548L2SAERK2 :parts: 1 Explicit embedded pair of Runge-Kutta methods of orders 5 and 4 from `[Kennedy & Carpenter, 2019]`_. This method is part of the IMEX method ARK548L2SA. .. py:attribute:: A :math:`A` matrix of the Butcher table .. py:class:: ARK324L2SAERK(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.ARK324L2SAERK :parts: 1 Explicit part of embedded additive Runge-Kutta pair of orders 3 and 2 from `[Kennedy & Carpenter, 2003] `_. .. py:attribute:: A :math:`A` matrix of the Butcher table .. py:attribute:: b :math:`b` coefficients of the Butcher table .. py:attribute:: b2 :math:`b_2` coefficients for the embedded methods .. py:attribute:: c :math:`c` coefficients of the Butcher table .. py:property:: order :type: int Global convergence order of the method .. py:class:: ARK324L2SAESDIRK(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.ARK324L2SAESDIRK :parts: 1 Implicit part of embedded additive Runge-Kutta pair of orders 3 and 2 from `[Kennedy & Carpenter, 2003]`_. .. py:attribute:: A :math:`A` matrix of the Butcher table .. py:attribute:: CONV_TEST_NSTEPS :value: [120, 100, 80] .. py:class:: ARK222EDIRK(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.ARK222EDIRK :parts: 1 2nd-order 2-stages EDIRK scheme from `[Ascher, Ruuth & Spiteri, 1997 - sec 2.6] `_. Use as implicit part for ARK scheme in combination with ARK222ERK. .. py:attribute:: gamma .. py:attribute:: delta .. py:attribute:: c :math:`c` coefficients of the Butcher table .. py:attribute:: A :math:`A` matrix of the Butcher table .. py:attribute:: b :math:`b` coefficients of the Butcher table .. py:property:: order :type: int Global convergence order of the method .. py:class:: ARK222ERK(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.ARK222ERK :parts: 1 2nd-order 2-stages ERK scheme from `[Ascher, Ruuth & Spiteri, 1997 - sec 2.6]`_. Use as explicit part for ARK scheme in combination with ARK222EDIRK. .. py:attribute:: A :math:`A` matrix of the Butcher table .. py:attribute:: b :math:`b` coefficients of the Butcher table .. py:class:: ARK443ESDIRK(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.ARK443ESDIRK :parts: 1 3rd-order 4-stages ESDIRK scheme from `[Ascher, Ruuth & Spiteri, 1997 - sec 2.8] `_. Use as implicit part for ARK scheme in combination with ARK443ERK. .. py:attribute:: c :math:`c` coefficients of the Butcher table .. py:attribute:: A :math:`A` matrix of the Butcher table .. py:attribute:: b :math:`b` coefficients of the Butcher table .. py:property:: order :type: int Global convergence order of the method .. py:class:: ARK443ERK(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.ARK443ERK :parts: 1 3rd-order 4-stages ERK scheme `[Ascher, Ruuth & Spiteri, 1997 - sec 2.8]`_. Use as explicit part for ARK scheme in combination with ARK443ESDIRK. .. py:attribute:: A :math:`A` matrix of the Butcher table .. py:attribute:: b :math:`b` coefficients of the Butcher table .. py:class:: ARK343ESDIRK(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.ARK343ESDIRK :parts: 1 3rd-order 3-stages ESDIRK scheme from `[Ascher, Ruuth & Spiteri, 1997 - sec 2.7] `_. Use as implicit part for ARK scheme in combination with ARK443ERK. .. py:attribute:: c :math:`c` coefficients of the Butcher table .. py:attribute:: A :math:`A` matrix of the Butcher table .. py:attribute:: b :math:`b` coefficients of the Butcher table .. py:property:: order :type: int Global convergence order of the method .. py:class:: ARK343ERK(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.ARK343ERK :parts: 1 4rd-order 4-stages ERK scheme `[Ascher, Ruuth & Spiteri, 1997 - sec 2.7]`_. Use as explicit part for ARK scheme in combination with ARK343ESDIRK. .. py:attribute:: A :math:`A` matrix of the Butcher table .. py:property:: order :type: int Global convergence order of the method .. py:class:: ARK4EDIRK(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.ARK4EDIRK :parts: 1 A stable 7-stages fourth order diagonally implicit stiffly accurate Runge-Kutta method with explicit first stage. Implicit part of Additive RK.4.A.2 from `[Liu & Zou, 2006] `_. Use with ARK4ERK to get fourth order stiffly accurate IMEX method. .. py:attribute:: c :math:`c` coefficients of the Butcher table .. py:attribute:: A :math:`A` matrix of the Butcher table .. py:attribute:: b :math:`b` coefficients of the Butcher table .. py:property:: order :type: int Global convergence order of the method .. py:attribute:: CONV_TEST_NSTEPS :value: [60, 40, 20, 10] .. py:class:: ARK4ERK(padding=None) .. autoapi-inheritance-diagram:: qmat.qcoeff.butcher.ARK4ERK :parts: 1 7-stages fourth order explicit stiffly accurate Runge-Kutta method. Explicit part of Additive RK.4.A.2 from `[Liu & Zou, 2006] `_. Use with ARK4EDIRK to get fourth order stiffly accurate IMEX method. .. py:attribute:: A :math:`A` matrix of the Butcher table .. py:attribute:: b :math:`b` coefficients of the Butcher table