@@ -617,3 +617,248 @@ function alg_cache(alg::RKO65,u,rate_prototype,uEltypeNoUnits,uBottomEltypeNoUni
617617 tab = RKO65ConstantCache (constvalue (uBottomEltypeNoUnits),constvalue (tTypeNoUnits))
618618 RKO65Cache (u,uprev,k, k1,k2,k3,k4,k5,k6, tmp, fsalfirst, tab)
619619end
620+
621+ @cache struct FRK65Cache{uType,rateType,uNoUnitsType,TabType} <: OrdinaryDiffEqMutableCache
622+ u:: uType
623+ uprev:: uType
624+ utilde:: uType
625+ k1:: rateType
626+ k2:: rateType
627+ k3:: rateType
628+ k4:: rateType
629+ k5:: rateType
630+ k6:: rateType
631+ k7:: rateType
632+ k8:: rateType
633+ k9:: rateType
634+ tmp:: uType
635+ atmp:: uNoUnitsType
636+ tab:: TabType
637+ end
638+
639+ struct FRK65ConstantCache{T1,T2} <: OrdinaryDiffEqConstantCache
640+
641+ α21:: T1
642+ α31:: T1
643+ α41:: T1
644+ α51:: T1
645+ α61:: T1
646+ α71:: T1
647+ α81:: T1
648+ α91:: T1
649+
650+ α32:: T1
651+
652+ α43:: T1
653+ α53:: T1
654+ α63:: T1
655+ α73:: T1
656+ α83:: T1
657+
658+ α54:: T1
659+ α64:: T1
660+ α74:: T1
661+ α84:: T1
662+ α94:: T1
663+
664+ α65:: T1
665+ α75:: T1
666+ α85:: T1
667+ α95:: T1
668+
669+ α76:: T1
670+ α86:: T1
671+ α96:: T1
672+
673+ α87:: T1
674+ α97:: T1
675+
676+ α98:: T1
677+
678+ β1:: T1
679+ # β4::T1
680+ # β5::T1
681+ # β6::T1
682+ β7:: T1
683+ β8:: T1
684+
685+ β1tilde:: T1
686+ β4tilde:: T1
687+ β5tilde:: T1
688+ β6tilde:: T1
689+ β7tilde:: T1
690+ β8tilde:: T1
691+ β9tilde:: T1
692+
693+ c2:: T2
694+ c3:: T2
695+ c4:: T2
696+ c5:: T2
697+ c6:: T2
698+ c7:: T2
699+ c8:: T2
700+ c9:: T2
701+
702+ d1:: T1
703+ d2:: T1
704+ d3:: T1
705+ d4:: T1
706+ d5:: T1
707+ d6:: T1
708+ d7:: T1
709+ d8:: T1
710+ d9:: T1
711+ d10:: T1
712+ d11:: T1
713+ d12:: T1
714+ d13:: T1
715+
716+ e1:: T1
717+ e2:: T1
718+ e3:: T1
719+ e4:: T1
720+ e5:: T1
721+ e6:: T1
722+ e7:: T1
723+ e8:: T1
724+ e9:: T1
725+ e10:: T1
726+ e11:: T1
727+
728+ f1:: T1
729+ f2:: T1
730+ f3:: T1
731+ f4:: T1
732+ f5:: T1
733+ f6:: T1
734+ f7:: T1
735+ f8:: T1
736+ f9:: T1
737+ f10:: T1
738+ f11:: T1
739+
740+ function FRK65ConstantCache (T1,T2)
741+
742+ # elements of Butcher Table
743+ α21 = T1 (1 // 89 )
744+ α31 = T1 (- 38624 // 142129 )
745+ α41 = T1 (51 // 1508 )
746+ α51 = T1 (3259284578 // 3517556363 )
747+ α61 = T1 (- 108363632681 // 45875676369 )
748+ α71 = T1 (7137368591 // 11299833148 )
749+ α81 = T1 (8898824396 // 9828950919 )
750+ α91 = T1 (1026331676 // 33222204855 )
751+
752+ α32 = T1 (51442 // 142129 )
753+
754+ α43 = T1 (153 // 1508 )
755+ α53 = T1 (- 69727055112 // 19553806387 )
756+ α63 = T1 (80902506271 // 8700424616 )
757+ α73 = T1 (- 33088067061 // 10572251159 )
758+ α83 = T1 (25673454973 // 11497947835 )
759+
760+
761+ α54 = T1 (36230363390 // 11788838981 )
762+ α64 = T1 (- 120088218786 // 17139312481 )
763+ α74 = T1 (11481363823 // 3650030081 )
764+ α84 = T1 (- 74239028301 // 15737704666 )
765+ α94 = T1 (1450675392 // 5936579813 )
766+
767+ α65 = T1 (4533285649 // 6676940598 )
768+ α75 = T1 (- 4096673444 // 7349814937 )
769+ α85 = T1 (222688842816 // 44196813415 )
770+ α95 = T1 (4617877550 // 16762182457 )
771+
772+ α76 = T1 (9911918171 // 12847192605 )
773+ α86 = T1 (- 105204445705 // 30575217706 )
774+ α96 = T1 (1144867463 // 6520294355 )
775+
776+ α87 = T1 (8799291910 // 8966990271 )
777+ α97 = T1 (1822809703 // 7599996644 )
778+
779+ α98 = T1 (79524953 // 2351253316 )
780+
781+ β1 = T1 (1026331676 // 33222204855 )
782+ # β4 = T1(1450675392//5936579813)
783+ # β5 = T1(4617877550//16762182457)
784+ # β6 = T1(1144867463//6520294355)
785+ β7 = T1 (1822809703 // 7599996644 )
786+ β8 = T1 (79524953 // 2351253316 )
787+
788+ β1tilde = T1 (413034411 // 13925408836 )
789+ β4tilde = T1 (1865954212 // 7538591735 )
790+ β5tilde = T1 (4451980162 // 16576017119 )
791+ β6tilde = T1 (1157843020 // 6320223511 )
792+ β7tilde = T1 (802708729 // 3404369569 )
793+ β8tilde = T1 (- 251398161 // 17050111121 )
794+ β9tilde = T1 (1 // 20 )
795+
796+ c2 = T2 (1 // 89 )
797+ c3 = T2 (34 // 377 )
798+ c4 = T2 (51 // 377 )
799+ c5 = T2 (14497158 // 33407747 )
800+ c6 = T2 (9744566553 // 16002998914 )
801+ c7 = T2 (330 // 383 )
802+ c8 = T2 (1 // 1 )
803+ c9 = T2 (1 // 1 )
804+
805+ d1 = T1 (140209127 // 573775965 )
806+ d2 = T1 (- 8530039 // 263747097 )
807+ d3 = T1 (- 308551 // 104235790 )
808+ d4 = T1 (233511 // 333733259 )
809+ d5 = T1 (9126 // 184950985 )
810+ d6 = T1 (22 // 50434083 )
811+ d7 = T1 (19 // 424427471 )
812+ d8 = T1 (- 28711 // 583216934059 )
813+ d9 = T1 (- 3831531 // 316297807 )
814+ d10 = T1 (551767 // 187698280 )
815+ d11 = T1 (9205 // 210998423 )
816+ d12 = T1 (- 250 // 519462673 )
817+ d13 = T1 (67 // 327513887 )
818+
819+ e1= T1 (437217689 // 1587032700 )
820+ e2= T1 (- 15824413 // 592362279 )
821+ e3= T1 (- 1563775 // 341846569 )
822+ e4= T1 (270497 // 369611210 )
823+ e5= T1 (- 26623 // 453099487 )
824+ e6= T1 (- 616297487849 )
825+ e7= T1 (- 47682337 // 491732789 )
826+ e8= T1 (- 4778275 // 287766311 )
827+ e9= T1 (641177 // 265376522 )
828+ e10= T1 (44633 // 291742143 )
829+ e11= T1 (611 // 223639880 )
830+
831+ f1= T1 (44861261 // 255495624 )
832+ f2= T1 (- 11270940 // 352635157 )
833+ f3= T1 (- 182222 // 232874507 )
834+ f4= T1 (164263 // 307215200 )
835+ f5= T1 (32184 // 652060417 )
836+ f6= T1 (- 352 // 171021903 )
837+ f7= T1 (- 18395427 // 101056291 )
838+ f8= T1 (- 621686 // 139501937 )
839+ f9= T1 (2030024 // 612171255 )
840+ f10= T1 (- 711049 // 7105160932 )
841+ f11= T1 (267 // 333462710 )
842+
843+ new {T1,T2} (α21, α31, α41, α51, α61, α71, α81, α91, α32, α43, α53, α63, α73, α83, α54, α64, α74, α84, α94, α65, α75, α85, α95, α76, α86, α96, α87, α97, α98, β1, β7, β8, β1tilde, β4tilde, β5tilde, β6tilde, β7tilde, β8tilde, β9tilde, c2, c3, c4, c5, c6, c7, c8, c9, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11)
844+ end
845+ end
846+
847+ alg_cache (alg:: FRK65 ,u,rate_prototype,uEltypeNoUnits,uBottomEltypeNoUnits,tTypeNoUnits,uprev,uprev2,f,t,dt,reltol,p,calck,:: Val{false} ) = FRK65ConstantCache (constvalue (uBottomEltypeNoUnits),constvalue (tTypeNoUnits))
848+
849+ function alg_cache (alg:: FRK65 ,u,rate_prototype,uEltypeNoUnits,uBottomEltypeNoUnits,tTypeNoUnits,uprev,uprev2,f,t,dt,reltol,p,calck,:: Val{true} )
850+ tab = FRK65ConstantCache (constvalue (uBottomEltypeNoUnits),constvalue (tTypeNoUnits))
851+ k1 = zero (rate_prototype)
852+ k2 = zero (rate_prototype)
853+ k3 = zero (rate_prototype)
854+ k4 = zero (rate_prototype)
855+ k5 = zero (rate_prototype)
856+ k6 = zero (rate_prototype)
857+ k7 = zero (rate_prototype)
858+ k8 = zero (rate_prototype)
859+ k9 = zero (rate_prototype)
860+ utilde = similar (u)
861+ atmp = similar (u,uEltypeNoUnits)
862+ tmp = similar (u)
863+ FRK65Cache (u, uprev, utilde, k1, k2, k3, k4, k5, k6, k7, k8, k9, tmp, atmp, tab)
864+ end
0 commit comments