Skip to content

Commit eb3419d

Browse files
TB: added ARK443 method (#12)
* Added ARK443 method * Fixed typo
1 parent 27a9956 commit eb3419d

1 file changed

Lines changed: 37 additions & 0 deletions

File tree

qmat/qcoeff/butcher.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -855,6 +855,7 @@ class ARK222EDIRK(RK):
855855
@property
856856
def order(self): return 2
857857

858+
858859
@registerRK
859860
class ARK222ERK(ARK222EDIRK):
860861
"""
@@ -865,3 +866,39 @@ class ARK222ERK(ARK222EDIRK):
865866
[ARK222EDIRK.gamma, 0 , 0],
866867
[ARK222EDIRK.delta, 1-ARK222EDIRK.delta, 0]])
867868
b = A[-1, :]
869+
870+
871+
@registerRK
872+
class ARK443ESDIRK(RK):
873+
"""
874+
3rd-order 4-stage ESDIRK scheme [Ascher 1997 sec 2.8]
875+
Use as implicit part for ARK scheme in combination with ARK443ERK.
876+
"""
877+
878+
c = np.array([0, 1/2, 2/3, 1/2, 1])
879+
880+
A = np.array([[0, 0 , 0 , 0 , 0 ],
881+
[0, 1/2, 0 , 0 , 0 ],
882+
[0, 1/6, 1/2, 0 , 0 ],
883+
[0, -1/2, 1/2, 1/2, 0 ],
884+
[0, 3/2, -3/2, 1/2, 1/2]])
885+
886+
887+
b = A[-1, :]
888+
889+
@property
890+
def order(self): return 3
891+
892+
893+
@registerRK
894+
class ARK443ERK(ARK443ESDIRK):
895+
"""
896+
3rd-order 4-stage ERK scheme [Ascher 1997 sec 2.8]
897+
Use as explicit part for ARK scheme in combination with ARK443ESDIRK.
898+
"""
899+
A = np.array([[ 0 , 0 , 0 , 0 , 0],
900+
[ 1/2 , 0 , 0 , 0 , 0],
901+
[11/18, 1/18, 0 , 0 , 0],
902+
[ 5/6 , -5/6 , 1/2, 0 , 0],
903+
[ 1/4 , 7/4 , 3/4, -7/4, 0]])
904+
b = A[-1, :]

0 commit comments

Comments
 (0)