#! /usr/bin/env python3 # def tetrahedron_arbq_rule_test ( ): #*****************************************************************************80 # ## tetrahedron_arbq_rule_test() tests tetrahedron_arbq_rule(). # # Licensing: # # This code is distributed under the GNU GPL license. # # Modified: # # 06 May 2023 # # Author: # # John Burkardt. # # Reference: # # Hong Xiao, Zydrunas Gimbutas, # A numerical algorithm for the construction of efficient quadrature # rules in two and higher dimensions, # Computers and Mathematics with Applications, # Volume 59, 2010, pages 663-676. # import platform print ( '' ) print ( 'tetrahedron_arbq_rule_test():' ) print ( ' Python version: ' + platform.python_version ( ) ) print ( ' Test tetrahedron_arbq_rule().' ) degree = 8 n = tetrahedron_arbq_size ( degree ) tetrahedron_arbq_rule_test01 ( degree, n ) # # Terminate. # print ( '' ) print ( 'tetrahedron_arbq_rule_test():' ) print ( ' Normal end of execution.' ) print ( '' ) return def tetrahedron_arbq_rule_test01 ( degree, n ): #*****************************************************************************80 # ## tetrahedron_arbq_rule_test01() calls tetrahedron_arbq() for a quadrature rule of given order. # # Licensing: # # This code is distributed under the GNU GPL license. # # Modified: # # 06 May 2023 # # Author: # # Original FORTRAN77 version by Hong Xiao, Zydrunas Gimbutas. # This version by John Burkardt. # # Reference: # # Hong Xiao, Zydrunas Gimbutas, # A numerical algorithm for the construction of efficient quadrature # rules in two and higher dimensions, # Computers and Mathematics with Applications, # Volume 59, 2010, pages 663-676. # # Input: # # integer DEGREE, the desired total polynomial degree exactness # of the quadrature rule. # # integer N, the number of nodes. # import numpy as np print ( '' ) print ( 'tetrahedron_arbq_rule_test01():' ) print ( ' Quadrature rule for the tetrahedron.' ) print ( ' Polynomial exactness degree DEGREE =', degree ) volume = np.sqrt ( 8.0 ) / 3.0 # # Retrieve and print a symmetric quadrature rule. # x, y, z, w = tetrahedron_arbq ( degree, n ) print ( '' ) print ( ' Number of nodes N = ', n ) print ( '' ) print ( ' I W X Y Z' ) print ( '' ) for i in range ( 0, n ): print ( ' %4d %14.6g %14.6g %14.6g %14.6g' \ % ( i, w[i], x[i], y[i], z[i] ) ) w_sum = np.sum ( w ) print ( ' Sum ', w_sum ) print ( ' Volume ', volume ) return def rule00 ( n ): #*****************************************************************************80 # ## rule00() returns the rule of degree 0. # # Licensing: # # This code is distributed under the MIT license. # # Modified: # # 06 May 2023 # # Author: # # Original FORTRAN77 version by Hong Xiao, Zydrunas Gimbutas. # This version by John Burkardt. # # Reference: # # Hong Xiao, Zydrunas Gimbutas, # A numerical algorithm for the construction of efficient quadrature # rules in two and higher dimensions, # Computers and Mathematics with Applications, # Volume 59, 2010, pages 663-676. # # Input: # # integer N, the number of nodes. # # Output: # # real x(n), y(n), z(n): the coordinates of the nodes. # # real W(N), the weights. # import numpy as np x = np.array ( [ \ 0.00000000000000000 ] ) y = np.array ( [ \ 0.00000000000000000 ] ) z = np.array ( [ \ 0.00000000000000000 ] ) w = np.array ( [ \ 0.9709835434146467 ] ) return x, y, z, w def rule01 ( n ): #*****************************************************************************80 # ## rule01() returns the rule of degree 1. # # Licensing: # # This code is distributed under the MIT license. # # Modified: # # 06 May 2023 # # Author: # # Original FORTRAN77 version by Hong Xiao, Zydrunas Gimbutas. # This version by John Burkardt. # # Reference: # # Hong Xiao, Zydrunas Gimbutas, # A numerical algorithm for the construction of efficient quadrature # rules in two and higher dimensions, # Computers and Mathematics with Applications, # Volume 59, 2010, pages 663-676. # # Input: # # integer N, the number of nodes. # # Output: # # real x(n), y(n), z(n): the coordinates of the nodes. # # real W(N), the weights. # import numpy as np x = np.array ( [ \ 0.00000000000000000 ] ) y = np.array ( [ \ 0.00000000000000000 ] ) z = np.array ( [ \ 0.00000000000000000 ] ) w = np.array ( [ \ 0.9709835434146467 ] ) return x, y, z, w def rule02 ( n ): #*****************************************************************************80 # ## rule02() returns the rule of degree 2. # # Licensing: # # This code is distributed under the MIT license. # # Modified: # # 06 May 2023 # # Author: # # Original FORTRAN77 version by Hong Xiao, Zydrunas Gimbutas. # This version by John Burkardt. # # Reference: # # Hong Xiao, Zydrunas Gimbutas, # A numerical algorithm for the construction of efficient quadrature # rules in two and higher dimensions, # Computers and Mathematics with Applications, # Volume 59, 2010, pages 663-676. # # Input: # # integer N, the number of nodes. # # Output: # # real x(n), y(n), z(n): the coordinates of the nodes. # # real W(N), the weights. # import numpy as np x = np.array ( [ \ -0.2677028585910073, 0.1510931841533142, \ -0.1367699195237390, 0.8067449309051964 ] ) y = np.array ( [ \ 0.5939017006199488E-01, 0.4354087732476309, \ -0.3280341115590410, -0.3400977314285288 ] ) z = np.array ( [ \ -0.3969426941142150, 0.2151719254306919, \ 0.2950846519937133, -0.3430378951002550 ] ) w = np.array ( [ \ 0.2918008865477151, 0.2706884392356724, \ 0.3098349601753470, 0.9865925745591227E-01 ] ) return x, y, z, w def rule03 ( n ): #*****************************************************************************80 # ## rule03() returns the rule of degree 3. # # Licensing: # # This code is distributed under the MIT license. # # Modified: # # 06 May 2023 # # Author: # # Original FORTRAN77 version by Hong Xiao, Zydrunas Gimbutas. # This version by John Burkardt. # # Reference: # # Hong Xiao, Zydrunas Gimbutas, # A numerical algorithm for the construction of efficient quadrature # rules in two and higher dimensions, # Computers and Mathematics with Applications, # Volume 59, 2010, pages 663-676. # # Input: # # integer N, the number of nodes. # # Output: # # real x(n), y(n), z(n): the coordinates of the nodes. # # real W(N), the weights. # import numpy as np x = np.array ( [ \ -0.1685037180276000,0.2783799427534418E-01, \ -0.3512216177343445,0.4308532463549043, \ -0.4676763747967377,0.1492831253848431 ] ) y = np.array ( [ \ 0.1910914916271708,-0.2304932838839657E-01, \ 0.1835144026339993,-0.2474715823180446, \ -0.4235250827264375,0.6397847685164516 ] ) z = np.array ( [ \ -0.3896267314585163,0.5481350663241830, \ 0.5147815330343534E-01,-0.1683315641007033, \ -0.1586973077889307,-0.1080219253055393 ] ) w = np.array ( [ \ 0.1287213727402025,0.2179034339695993, \ 0.1243503792062836,0.2446917182410072, \ 0.1365439875826512,0.1187726516749031 ] ) return x, y, z, w def rule04 ( n ): #*****************************************************************************80 # ## rule04() returns the rule of degree 4. # # Licensing: # # This code is distributed under the MIT license. # # Modified: # # 06 May 2023 # # Author: # # Original FORTRAN77 version by Hong Xiao, Zydrunas Gimbutas. # This version by John Burkardt. # # Reference: # # Hong Xiao, Zydrunas Gimbutas, # A numerical algorithm for the construction of efficient quadrature # rules in two and higher dimensions, # Computers and Mathematics with Applications, # Volume 59, 2010, pages 663-676. # # Input: # # integer N, the number of nodes. # # Output: # # real x(n), y(n), z(n): the coordinates of the nodes. # # real W(N), the weights. # import numpy as np x = np.array ( [ \ -0.1459612280979987E-01,-0.2937244896309993, \ 0.3230878337158274,-0.8819654179396583E-01, \ 0.1270203663314710,-0.4414307688091184, \ 0.3939418589633429,-0.6034469714614210E-01, \ -0.8914059834601185E-01,0.6545213033603760, \ -0.7307642259677857 ] ) y = np.array ( [ \ 0.2426564579199708E-02,0.1764396506764613, \ -0.1932070410956556,0.2317884270105980E-01, \ 0.5451410677215219,-0.3848225631590180, \ 0.2068744670639530,-0.4573739074927080, \ 0.7268092659599459,-0.3970356243870571, \ -0.2669420088648982 ] ) z = np.array ( [ \ 0.7093565780103633,0.1108860494941134, \ 0.1695426396704650,-0.2011819391325586, \ 0.1309503990759315,0.9225429679162532E-01, \ -0.3111560426198242,-0.3302215329322376, \ -0.3507931737363739,-0.2970424833951137, \ -0.3861037570241846 ] ) w = np.array ( [ \ 0.1033787090646894,0.1070356256090164, \ 0.1504792582740940,0.1877987156186583, \ 0.7395274312521298E-01,0.7712199925411270E-01, \ 0.6745419368701999E-01,0.5819413648173244E-01, \ 0.5378646711152148E-01,0.5366953183949744E-01, \ 0.3811216334909158E-01 ] ) return x, y, z, w def rule05 ( n ): #*****************************************************************************80 # ## rule05() returns the rule of degree 5. # # Licensing: # # This code is distributed under the MIT license. # # Modified: # # 06 May 2023 # # Author: # # Original FORTRAN77 version by Hong Xiao, Zydrunas Gimbutas. # This version by John Burkardt. # # Reference: # # Hong Xiao, Zydrunas Gimbutas, # A numerical algorithm for the construction of efficient quadrature # rules in two and higher dimensions, # Computers and Mathematics with Applications, # Volume 59, 2010, pages 663-676. # # Input: # # integer N, the number of nodes. # # Output: # # real x(n), y(n), z(n): the coordinates of the nodes. # # real W(N), the weights. # import numpy as np x = np.array ( [ \ 0.1664180721577685E-15,0.4089925917487008, \ 0.6338467275429999E-16,-0.4089925917487006, \ 0.3723900931035782E-16,-0.2435436770532023, \ 0.7718657600705262E-17,0.2435436770532026, \ 0.6290589987564350,-0.6290589987564351, \ -0.1407768953799327E-15,0.4089925917487006, \ -0.1047965211464895E-15,-0.4089925917487007 ] ) y = np.array ( [ \ 0.1094362324146226E-15,-0.2361319829426750, \ 0.4722639658853500,-0.2361319829426750, \ 0.3548001489301807E-16,0.1406100075060977, \ -0.2812200150121953,0.1406100075060977, \ -0.3631873822681842,-0.3631873822681841, \ 0.7263747645363684,0.2361319829426750, \ -0.4722639658853500,0.2361319829426750 ] ) z = np.array ( [ \ 0.7704367825296720,0.3339410527875835, \ 0.3339410527875834,0.3339410527875834, \ -0.2982788694307592,0.9942628981025299E-01, \ 0.9942628981025306E-01,0.9942628981025299E-01, \ -0.2568122608432240,-0.2568122608432239, \ -0.2568122608432239,-0.3339410527875835, \ -0.3339410527875834,-0.3339410527875835 ] ) w = np.array ( [ \ 0.7136053542145054E-01,0.4131148601232373E-01, \ 0.4131148601232375E-01,0.4131148601232376E-01, \ 0.1094181214137256,0.1094181214137255, \ 0.1094181214137255,0.1094181214137255, \ 0.7136053542145050E-01,0.7136053542145052E-01, \ 0.7136053542145050E-01,0.4131148601232370E-01, \ 0.4131148601232373E-01,0.4131148601232375E-01 ] ) return x, y, z, w def rule06 ( n ): #*****************************************************************************80 # ## rule06() returns the rule of degree 6. # # Licensing: # # This code is distributed under the MIT license. # # Modified: # # 06 May 2023 # # Author: # # Original FORTRAN77 version by Hong Xiao, Zydrunas Gimbutas. # This version by John Burkardt. # # Reference: # # Hong Xiao, Zydrunas Gimbutas, # A numerical algorithm for the construction of efficient quadrature # rules in two and higher dimensions, # Computers and Mathematics with Applications, # Volume 59, 2010, pages 663-676. # # Input: # # integer N, the number of nodes. # # Output: # # real x(n), y(n), z(n): the coordinates of the nodes. # # real W(N), the weights. # import numpy as np x = np.array ( [ \ 0.4919941951523113E-02,0.3415058060219544E-01, \ -0.4561198328617235,0.2144499229769493, \ -0.1540693059995943,0.3064525403222947, \ -0.1305882959514773E-01,0.1535244689838072E-01, \ -0.1567784487775340,-0.3973616940506757, \ 0.9764884616649552E-02,-0.5228087984647453, \ 0.5565605702210328,0.8423081979023464E-01, \ 0.2174166091160236,0.3212158945225647, \ -0.2593648078545398,0.5636454767202584, \ -0.6410949644625729,-0.3344151090582155, \ -0.1894588386892019E-01,-0.8214655896199351, \ 0.8597415475615655 ] ) y = np.array ( [ \ -0.1392238503430922E-01,0.2542073830543402, \ -0.3110385447445375,-0.1234903873249722, \ -0.6865214472302168E-01,0.1818495501923178, \ -0.2488891169073396E-01,-0.3261143100532925, \ 0.2522454301000923,-0.1977159083378496, \ 0.6504184291133676,-0.6635055304123420E-01, \ -0.3186690054220115,0.2138059822864521E-01, \ 0.4599507004997997,-0.4260052421545051, \ 0.3851980211137577,-0.1111606227821696, \ -0.1934318338507612,-0.4491758699723651, \ 0.9010599459930961,-0.5109860359355179, \ -0.5208085141225744 ] ) z = np.array ( [ \ 0.1066228263967720E+01,0.6315886967039234, \ 0.2300267655106985,0.5632351636302827, \ 0.6206264896282621,0.1254685876442911, \ -0.3357705926282663,0.1147788985927003, \ 0.2140597800705522,-0.7963361802882329E-01, \ 0.5868446281578688E-02,0.1934272688455952E-02, \ 0.1379740251424839E-01,0.3195756126912550E-01, \ -0.3027232303753162,-0.2994855602604263, \ -0.2825197099253122,-0.3068140495300409, \ -0.3660473605161587,-0.3102423292746128, \ -0.3473952050436902,-0.2635645240101362, \ -0.3603432585369335 ] ) w = np.array ( [ \ 0.6889900028407776E-02,0.3059511845881479E-01, \ 0.2352818079375775E-01,0.4747145913756433E-01, \ 0.5149448476741100E-01,0.4198464552012798E-01, \ 0.6518777271610311E-01,0.5808554412413398E-01, \ 0.6079762507769643E-01,0.6246727661754427E-01, \ 0.4232555916776466E-01,0.2191089157324707E-01, \ 0.4526058614388953E-01,0.1093321687620292, \ 0.5237000773398501E-01,0.4832452079715138E-01, \ 0.6123639953387314E-01,0.4577996169297793E-01, \ 0.2476427914920903E-01,0.3856173525882120E-01, \ 0.1546337820963114E-01,0.1012088745519476E-01, \ 0.7031160695311595E-02 ] ) return x, y, z, w def rule07 ( n ): #*****************************************************************************80 # ## rule07() returns the rule of degree 7. # # Licensing: # # This code is distributed under the MIT license. # # Modified: # # 06 May 2023 # # Author: # # Original FORTRAN77 version by Hong Xiao, Zydrunas Gimbutas. # This version by John Burkardt. # # Reference: # # Hong Xiao, Zydrunas Gimbutas, # A numerical algorithm for the construction of efficient quadrature # rules in two and higher dimensions, # Computers and Mathematics with Applications, # Volume 59, 2010, pages 663-676. # # Input: # # integer N, the number of nodes. # # Output: # # real x(n), y(n), z(n): the coordinates of the nodes. # # real W(N), the weights. # import numpy as np x = np.array ( [ \ -.3082522913562920,0.3230068564765168, \ 0.1790030943099486E-02,-.1749858562850217, \ 0.3515818224512229E-01,-.1148912802505062, \ 0.1080242619580473,0.9960886019209524E-01, \ 0.2552589657173040,0.3018972093964544, \ -.3637995251662868E-01,-.1979748432674351, \ 0.1705547608587194,0.5382714575357732, \ -.5826255951559661,-.6638827484255140E-01, \ 0.1394865450483365,-.2525448211561483, \ -.3364179479356783,0.5088174095091343, \ -.3997676771299581,0.2233579208997628, \ -.2887689832327979,0.2430056805988458, \ -.2402459184668794,-.5737122495168941, \ 0.5530740586345179,0.7632160871540358, \ 0.1108323525316276E-02,-.7666589725519221, \ 0.3314379268437029 ] ) y = np.array ( [ \ -.1978432879678884,-.1166608144800289, \ 0.2760223041671345E-02,0.1492553071272583, \ 0.3222570009831960,0.3598150246997987E-01, \ -.2123211082745265,0.3370600346165786, \ 0.2345931387652712E-01,-.2797440812728529, \ 0.6784158147792628,-.1099260120706853, \ 0.5854481149716676E-01,-.3326202438156060, \ -.2866394288669600,0.3396643732745171, \ -.3078502318368667,-.9687707852320762E-01, \ -.4222809305623556,-.4607960014652947E-01, \ 0.1694117934001565,0.5070263922318456, \ -.4320411612241725,0.5262155488082486, \ 0.4919239659783042,-.7453182334351910E-01, \ -.3355026530466742E-02,-.4345394288375978, \ 0.8835815093231754,-.4540327424996255, \ -.5419034033722774 ] ) z = np.array ( [ \ 0.6553771405341420,0.5963217268212818, \ 0.9191670342435462,0.5162921387398244, \ 0.5492103599470217,-.3886917653966460, \ 0.5138214657068572,-.2732502226402171, \ -.1289266426427488,-.3368155028155599, \ 0.4965154590499942E-01,0.3688101367310880, \ 0.3245398450336227,0.6530998463389483E-01, \ 0.4050073689194288E-01,0.4339137621154699E-01, \ -.8554188228126980E-02,-.1212234343128167, \ 0.2244936992133664E-01,-.5389155149780182E-01, \ -.1331769110761944E-01,-.3996173060097081E-01, \ -.3304370757138854,-.3633697548034391, \ -.3184670075538235,-.3348000741414298, \ -.3507444035401421,-.3120479891575616, \ -.3155336884007630,-.3148702231578014, \ -.3104410268762152 ] ) w = np.array ( [ \ 0.7484517057961263E-02,0.1165548467333077E-01, \ 0.2254313978794985E-01,0.2176106698437745E-01, \ 0.2261516504544270E-01,0.2653689704536702E-01, \ 0.2796071748247393E-01,0.4174371077929897E-01, \ 0.5125012874361469E-01,0.4062452567161350E-01, \ 0.2011109093086575E-01,0.5855177928202636E-01, \ 0.6477548431925077E-01,0.3049968783939012E-01, \ 0.2749125083938057E-01,0.6480294592357103E-01, \ 0.6232630627722486E-01,0.7994900688083093E-01, \ 0.2026705321864424E-01,0.2384971520555609E-01, \ 0.2170019222676944E-01,0.2153672490681497E-01, \ 0.3586406280991152E-01,0.1621736817489311E-01, \ 0.3281522904442925E-01,0.2724694235165297E-01, \ 0.2048072851756261E-01,0.1999288967511468E-01, \ 0.1864561424137827E-01,0.1753312507928042E-01, \ 0.1215099239866789E-01 ] ) return x, y, z, w def rule08 ( n ): #*****************************************************************************80 # ## rule08() returns the rule of degree 8. # # Licensing: # # This code is distributed under the MIT license. # # Modified: # # 06 May 2023 # # Author: # # Original FORTRAN77 version by Hong Xiao, Zydrunas Gimbutas. # This version by John Burkardt. # # Reference: # # Hong Xiao, Zydrunas Gimbutas, # A numerical algorithm for the construction of efficient quadrature # rules in two and higher dimensions, # Computers and Mathematics with Applications, # Volume 59, 2010, pages 663-676. # # Input: # # integer N, the number of nodes. # # Output: # # real x(n), y(n), z(n): the coordinates of the nodes. # # real W(N), the weights. # import numpy as np x = np.array ( [ \ -0.1611772551670525E-01,-0.7148827236840712E-02, \ 0.4589923372088558,-0.4520990492494178, \ 0.1109560356430631,0.1825224293648890, \ -0.1507489805419971,-0.2877324734878600, \ 0.3680747212378487,0.4788156424890513, \ -0.3478779367400819,-0.3548285868734744E-01, \ 0.2591650442934043,-0.1305037378946309E-02, \ -0.3493996070828597E-01,-0.1660462859707297, \ 0.1010085522422429,-0.3587468163605144, \ -0.3473067563985682,-0.8635741121401184E-01, \ 0.2901168201778487,0.1042093355150105, \ -0.6419387451918364E-01,-0.2016986972118968, \ 0.1846170677356399,0.3788893958160157, \ -0.4818716163165796,0.6821719050778170, \ 0.3978642293015137,-0.6975889470159129, \ 0.2742964749336314E-02,0.1645687860050991E-01, \ -0.4618349214785903,0.1575090568397094, \ 0.5399175203215238,-0.1403905262089725, \ 0.4453396570037857E-01,-0.4234360302104348, \ -0.7214176376894034,0.7278118716190342, \ 0.4901890779701343,-0.8758887352507779, \ 0.7632377205619759E-02,0.9317431147169187 ] ) y = np.array ( [ \ 0.7998600119500696E-03,0.1723914595007140, \ -0.1744716351651229,-0.2632941629071404, \ -0.6295720376005641E-01,0.1678382818593359, \ -0.7826941873249307E-01,-0.1234686974783635, \ -0.2169876766339741,-0.4629437300594242E-01, \ -0.1295630336164733,-0.2268108031307481, \ 0.1330071443027294,0.4919409115894537, \ 0.3001995169122194,0.1407736457687509, \ -0.2259257575315161,-0.1083199795573463, \ -0.3742304739030127,-0.1478062482085008, \ -0.3449512373726749,0.2883671141680468E-01, \ 0.2558125570853043,0.4404368079041183, \ 0.3998568605285963,-0.9956585162815586E-01, \ -0.1509747383909747E-01,-0.3956518618817587, \ 0.2256616013248351,-0.3899651023918449, \ 0.8134998230879619,-0.4451036700294634, \ -0.4535647479937944,0.6650145460171435, \ -0.4674624469973033,0.7012653983759632, \ -0.5107241847309127,0.2263324997687613, \ -0.2727155170636352,-0.2861627803070728, \ 0.1856306523332632,-0.5566374678887420, \ 0.1056056946669113E+01,-0.5664247124705913 ] ) z = np.array ( [ \ 0.1140750120480647E+01,0.7860696072793454, \ -0.3991430912330994,0.3536092960240441, \ 0.8189404142301465,0.4764962716361752, \ 0.7628974295081231,-0.3880058323817796, \ 0.3997553695274408,0.1144656464995089, \ 0.2509171968778639,0.4174615578343315, \ -0.2747778345118032,0.3031929324753210, \ -0.3442503524230918,0.3970537434180833, \ -0.3070893258601431,-0.1989904396903917, \ 0.1526258958568332E-01,-0.1542350189843949E-03, \ 0.4121026001314489E-01,0.3248913848279931, \ -0.6957900515388780E-01,-0.3340987564879216E-01, \ -0.1303527431545757E-01,-0.8390322512212595E-01, \ -0.4501404031339341E-01,-0.7451523522744341E-01, \ -0.3993939022009145,-0.1254210458205579, \ -0.1415815795205319,-0.1858244299410800, \ -0.3245512424809017,-0.3317121001508232, \ -0.3168159505701121,-0.3372150239150091, \ -0.3950013670511707,-0.3336444006035868, \ -0.3519392970001664,-0.3226167582915808, \ -0.2780042325707565,-0.3720577799104590, \ -0.3972751008974220,-0.3821073616790632 ] ) w = np.array ( [ \ 0.1694544493019982E-02,0.1462667227182682E-01, \ 0.9589935274093377E-02,0.9835015847019813E-02, \ 0.1710148279355958E-01,0.1516325692442914E-01, \ 0.1746691605511999E-01,0.1604974314640067E-01, \ 0.2185156320663785E-01,0.1242799062066869E-01, \ 0.2646409426919389E-01,0.3135597218974045E-01, \ 0.2736783716876112E-01,0.2345735439005822E-01, \ 0.3130572641601596E-01,0.3548953658742431E-01, \ 0.4036134913447077E-01,0.3792924852161072E-01, \ 0.2440963887102594E-01,0.5132903383025206E-01, \ 0.3177764520649842E-01,0.5417358749775593E-01, \ 0.5180566415546370E-01,0.2633068360731991E-01, \ 0.3893527990282211E-01,0.5027716272897634E-01, \ 0.2208377845212325E-01,0.1429278762793107E-01, \ 0.6697289387082959E-02,0.1648266825522313E-01, \ 0.1688462952130244E-01,0.2190464958161271E-01, \ 0.2281706804403004E-01,0.1956212468616595E-01, \ 0.1994889218942623E-01,0.1737944394368884E-01, \ 0.7302913219204132E-02,0.2128832734454982E-01, \ 0.1333720911018169E-01,0.1494192725418561E-01, \ 0.1152112823254964E-01,0.2472998490996246E-02, \ 0.2018756899942699E-02,0.1470016064285112E-02 ] ) return x, y, z, w def rule09 ( n ): #*****************************************************************************80 # ## rule09() returns the rule of degree 9. # # Licensing: # # This code is distributed under the MIT license. # # Modified: # # 06 May 2023 # # Author: # # Original FORTRAN77 version by Hong Xiao, Zydrunas Gimbutas. # This version by John Burkardt. # # Reference: # # Hong Xiao, Zydrunas Gimbutas, # A numerical algorithm for the construction of efficient quadrature # rules in two and higher dimensions, # Computers and Mathematics with Applications, # Volume 59, 2010, pages 663-676. # # Input: # # integer N, the number of nodes. # # Output: # # real x(n), y(n), z(n): the coordinates of the nodes. # # real W(N), the weights. # import numpy as np x = np.array ( [ \ 0.2108052017103265,0.1283729355850052E-02, \ -0.2918734175018473E-01,-0.4357949297689266, \ -0.1799341637870203,0.6942222186204158E-01, \ -0.1005642991135230,0.1904855696753355, \ 0.3231238851996552,0.6819987943340138E-01, \ 0.9708131623556143E-01,0.4246239788055203, \ -0.3569664256203109,-0.2145752061141752, \ -0.4818674305781609E-02,-0.4314954104621454, \ -0.1312453567417025,-0.4083558222913988, \ -0.1245612605849638,0.1136348780330888, \ 0.3351668846328467,0.2159589333207287, \ -0.1228639493897767,0.1380276243456064, \ 0.3905319783823730,-0.4580867844324543, \ 0.2310228564389770,0.3554068884610396, \ -0.6505241861040961E-01,-0.1786506541288197, \ 0.1265104521534247E-01,-0.4573827823867556, \ -0.5542731199877091E-01,-0.6387630000068671E-01, \ -0.3413749732146179,0.5966077890976830, \ 0.6917314710518101,0.1078283022003015E-01, \ 0.1833983579629060,-0.1566832100689738, \ -0.7215475195156269,0.5634418100399829, \ -0.6038175317729408,0.4424617155479634, \ 0.5376954508544742,0.5801674951413821, \ 0.1418634443888370,0.3802052805108170E-01, \ -0.6766546338276799,-0.1483779428740810, \ 0.7588538984987838,-0.4009332704109223, \ 0.4294022281773516,-0.4911820218387012, \ -0.8230436696819400,0.8307385272442451, \ 0.2847756354434797E-02 ] ) y = np.array ( [ \ -0.8955776048075967E-01,0.6121197754911472E-03, \ 0.2122758579659528,-0.2839355480318341, \ -0.9582556152029258E-01,-0.1394666680707507, \ 0.4836397528261835,0.3248843951738821, \ -0.3091097002134723,-0.1799541017656358, \ 0.1346690341273634,-0.1974037451364399, \ 0.5240665094885540E-01,0.2761387382865308, \ 0.4840041246351735,-0.3972752286396523, \ 0.7569076187744307E-01,-0.1239859742013766, \ -0.2344790300437711,-0.3305476987034425E-01, \ 0.1770622072827525E-01,0.2385246764606510, \ 0.5313763678851683E-01,0.7344859267512056E-02, \ -0.2434286634053894,-0.2589556174266634, \ -0.2578369917972710,0.1458366018963618, \ -0.3194064610603558,-0.8361295659204318E-01, \ 0.2789606323941811,-0.3620544381079852, \ 0.4583494650640864,-0.4110512725485398, \ 0.1453586652323175,-0.2817335623108552, \ -0.4244951895917183,0.7740686042096789, \ 0.5096501737807261,0.5871627777302516, \ -0.4069288134308984,-0.8745287448038948E-01, \ -0.1605011166676197,-0.4658949840050826, \ -0.4822919051612324,-0.2630487459758545E-01, \ 0.7093134008050596,-0.4981319573109797, \ -0.1608102554139131,0.7476578114817578, \ -0.2863864956290275,0.3184909341350718, \ 0.3342451266830045,-0.5259906817121476, \ -0.4752298758892802,-0.4894484556416516, \ 0.9800293546928647 ] ) z = np.array ( [ \ 0.7735882074261043,0.1020940836140086E+01, \ 0.7799358723388078,0.3644377643783332, \ 0.7572044348058194,0.7055487604983020, \ -0.4071603611745789,0.2784337835342537, \ 0.3220003691351323,-0.3955135683176328, \ 0.6632209417507691,0.3671897521183273, \ -0.3747481356463467,0.2325932263186099, \ 0.3487840306818015,-0.4035704541972099, \ 0.5374900196303547,0.2654318104765763, \ 0.3698883029355781,0.4369873036895401, \ 0.1860393220233105,-0.3479911186004724, \ -0.2731450419753432,-0.8193864872695196E-01, \ -0.2812924318728223,-0.2546313790752990, \ 0.8678030145840356E-01,-0.1428438498378993, \ -0.2156622116049685,0.9674903232992661E-01, \ 0.1583036737187768,-0.2371578880066309E-01, \ -0.2083640565350588,-0.1327703130967625E-01, \ -0.8664488303113425E-01,-0.7748272430107629E-01, \ -0.9669501947122619E-02,-0.6316745396431407E-01, \ -0.1041997605600258,-0.7558004547861685E-01, \ -0.7999199041063003E-01,-0.3751069250486347, \ -0.1299227031705554,-0.1892728310331580, \ -0.3910612496171095,-0.1907765273821742, \ -0.3477134529420335,-0.3474543531762018, \ -0.3606479588180986,-0.3440499686491684, \ -0.3474563411684222,-0.3276892436683218, \ -0.3542380917718721,-0.3040019129455090, \ -0.3440705957046394,-0.3298160634602457, \ -0.3378012113084769 ] ) w = np.array ( [ \ 0.5680408778529046E-02,0.6887854441113948E-02, \ 0.6899595536569939E-02,0.6990873936739353E-02, \ 0.1142122940842178E-01,0.1220808590880294E-01, \ 0.7651487209643779E-02,0.9540263940869291E-02, \ 0.9495638963926394E-02,0.1385248437188017E-01, \ 0.1446333231867884E-01,0.1128763818550772E-01, \ 0.1290073048331596E-01,0.1468008559737106E-01, \ 0.1526131467815127E-01,0.7960414659472547E-02, \ 0.2551792590874883E-01,0.1931170779707098E-01, \ 0.2561026230172263E-01,0.3169262013385435E-01, \ 0.2455872440888530E-01,0.2465571070153197E-01, \ 0.3419839251013865E-01,0.4066027350436995E-01, \ 0.3092126671144214E-01,0.2731106642703576E-01, \ 0.3711204543388613E-01,0.2490755526192437E-01, \ 0.3425568258765496E-01,0.4767735489615401E-01, \ 0.4389950894493362E-01,0.2234183537671572E-01, \ 0.3468016547781724E-01,0.1599733331684861E-01, \ 0.3216001820424372E-01,0.2173130208768448E-01, \ 0.4172519829863862E-02,0.1261067900439839E-01, \ 0.2073467359947484E-01,0.1259876220642243E-01, \ 0.6842300320404830E-02,0.1001228308171065E-01, \ 0.1328037050111305E-01,0.1493735138014892E-01, \ 0.6932861063756816E-02,0.6827617690151055E-02, \ 0.1270616397760185E-01,0.1288875403806118E-01, \ 0.8899252930026689E-02,0.8881169613715286E-02, \ 0.5288619835392034E-02,0.1284718318260967E-01, \ 0.6409598847098365E-02,0.8055508398015583E-02, \ 0.7788463427997768E-02,0.6545788868966830E-02, \ 0.5341431206058898E-02 ] ) return x, y, z, w def rule10 ( n ): #*****************************************************************************80 # ## rule10() returns the rule of degree 10. # # Licensing: # # This code is distributed under the MIT license. # # Modified: # # 06 May 2023 # # Author: # # Original FORTRAN77 version by Hong Xiao, Zydrunas Gimbutas. # This version by John Burkardt. # # Reference: # # Hong Xiao, Zydrunas Gimbutas, # A numerical algorithm for the construction of efficient quadrature # rules in two and higher dimensions, # Computers and Mathematics with Applications, # Volume 59, 2010, pages 663-676. # # Input: # # integer N, the number of nodes. # # Output: # # real x(n), y(n), z(n): the coordinates of the nodes. # # real W(N), the weights. # import numpy as np x = np.array ( [ \ 0.4135441926108436,0.6920344574148628E-02, \ -0.4204645371849727,0.1212827019050737, \ 0.2550746585402268,-0.3763573604446380, \ -0.4793578815415788E-03,-0.9545817212686222E-01, \ 0.9593753000785579E-01,0.3126301401176562, \ -0.6029042538437952,0.2902741137267026, \ 0.1793124962974703,-0.3341633308670676, \ 0.1548508345696874,0.4006666604011494, \ -0.3875674230187136,-0.1309923738259358E-01, \ -0.1159749898125322,-0.6294076737424348, \ 0.7453826635553922,-0.1465165887848432, \ -0.4643141868299223,0.6108307756147643, \ 0.1526773226986329,-0.6092465369941313, \ 0.4565692142952937,-0.2349836288652037, \ 0.5557206177695652,-0.3207369889038079, \ 0.2617190792164227,-0.2353754650695125, \ -0.2634361414712093E-01,-0.1518707842414898, \ -0.2491539125596758,0.4010246968008866, \ 0.2108318943729519,0.7968056612120857E-02, \ -0.2187999509850842,-0.6451845341149960, \ 0.5779406907458116,0.6724384336957467E-01, \ -0.1117027003111241,-0.2717471055583957, \ 0.3834498058697393,0.2353864631064914, \ 0.1649339445101810,-0.4003204076167762, \ 0.7813866474350551,0.1310349087707534E-02, \ -0.7826969965232643,-0.1446486485942199, \ -0.1795841794748884E-02,0.1464444903888344, \ 0.5662897411515679,0.1839447497576211E-02, \ -0.5681291886496517,0.1959958820407995E-02, \ -0.3041697942355038,0.3022098354145521, \ -0.7138061627291874E-01,-0.3075192230121023, \ 0.3788998392856530,-0.3187848524903898E-01, \ -0.9081742825948123,0.9400527678433584, \ 0.9976676831438748E-01,-0.8701982408315725, \ 0.7704314725177221,-0.8207757778140335E-14, \ -0.3478417597234231E-12,0.4790952016774938E-12, \ 0.1374787712765062E-12,0.1420358457394610E-12 ] ) y = np.array ( [ \ -0.2467507765313092,0.4815151646539115, \ -0.2347643881227681,-0.3645574461360758, \ 0.2873126239566789,0.7724482217897545E-01, \ 0.1105023601492690,-0.5566631617759855E-01, \ -0.5483604397160680E-01,0.5156767709512212, \ 0.1290725785546668E-01,-0.5285840288063388, \ 0.2823324600522004,0.1412294698335291E-01, \ -0.2964554070359728,0.2161993077800489, \ 0.2388878524669672,-0.4550871602470489, \ 0.7937355713187059,-0.4973050730407310, \ -0.2964304982776649,0.6207352334853357, \ -0.4372547047061620,-0.1834805287791172, \ 0.6153490109135903,-0.1754520654179484, \ -0.4398969454955785,-0.5060230351463111, \ 0.4950972550220373E-01,0.4565133096445042, \ 0.1206845953990400,0.1663130735568127, \ -0.2869976689562073,0.3753807951356096, \ -0.3192143548135662,-0.5616644032198326E-01, \ -0.1309245702301312,0.2480480615696827, \ -0.1171234913398124,-0.2948509623067830, \ -0.4113207155193597,0.7061716778256595, \ 0.3782781131850991,-0.2858764327334718, \ -0.9240168045211911E-01,-0.3263497523611192, \ 0.3670255329377183,-0.4067578057659137E-01, \ -0.4526468520348789,0.9030241128745099, \ -0.4503772608395989,0.8558659569093126E-01, \ -0.1680627021511816,0.8247610646027727E-01, \ -0.3290715455089481,0.6549570744945620, \ -0.3258855289855604,0.3500934424096372, \ -0.1733493470760727,-0.1767440953334651, \ 0.3963042303943790,-0.2599695422276034, \ -0.1363346881672204,0.1067074385094486E+01, \ -0.5611447706066169,-0.5059296144870963, \ 0.9472180066426262,-0.3872084475068061, \ -0.5600095591352807,-0.1466739111569232E-12, \ 0.2419854376387837E-13,-0.1552488340937713E-12, \ -0.2306323605219641E-12,-0.1706174368865759E-12 ] ) z = np.array ( [ \ -0.2246678712539802E-01,-0.2246678712556187E-01, \ -0.2246678712549978E-01,-0.3674985430672734, \ -0.3674985430672704,-0.3674985430673924, \ 0.9168884763080956,0.9168884763077307, \ 0.9168884763085783,-0.3553336558198409, \ -0.3553336558198190,-0.3553336558198354, \ -0.1983165808272536,-0.1983165808275630, \ -0.1983165808272446,-0.1447858405450569, \ -0.1447858405451866,-0.1447858405451966, \ -0.3542393281108072,-0.3542393281107521, \ -0.3542393281107588,-0.1251511927365907, \ -0.1251511927364737,-0.1251511927364298, \ -0.1387177797398434,-0.1387177797398834, \ -0.1387177797396668,-0.3549137865746493, \ -0.3549137865746083,-0.3549137865746373, \ 0.8659130596210637E-01,0.8659130596171444E-01, \ 0.8659130596207916E-01,0.2597687530320102, \ 0.2597687530321350,0.2597687530322305, \ 0.2630632081142404,0.2630632081143893, \ 0.2630632081144756,-0.3453833089184027, \ -0.3453833089183551,-0.3453833089183527, \ -0.2327889534298980,-0.2327889534297419, \ -0.2327889534296802,0.2415268120578684, \ 0.2415268120576211,0.2415268120576665, \ -0.2133068003220094,-0.2133068003224423, \ -0.2133068003227821,0.6055816506735499, \ 0.6055816506736809,0.6055816506737702, \ 0.1414131684170811,0.1414131684165572, \ 0.1414131684162387,0.5593538346997974, \ 0.5593538346994973,0.5593538347003276, \ -0.3961007879024273,-0.3961007879023746, \ -0.3961007879023505,-0.3950741090480416, \ -0.3950741090482457,-0.3950741090476022, \ -0.3779492208572051,-0.3779492208572193, \ -0.3779492208571862,-0.3464548867786856E-01, \ 0.1201009856985286E+01,0.4068123865912653, \ -0.3341407786078385,0.5699475205900819 ] ) w = np.array ( [ \ 0.2007080596188233E-01,0.2007080596192337E-01, \ 0.2007080596192014E-01,0.1202850982705908E-01, \ 0.1202850982706234E-01,0.1202850982703673E-01, \ 0.6428246923028596E-02,0.6428246923032827E-02, \ 0.6428246923025550E-02,0.5961017737373873E-02, \ 0.5961017737376429E-02,0.5961017737354793E-02, \ 0.2466985253776778E-01,0.2466985253776116E-01, \ 0.2466985253775616E-01,0.1220343371669821E-01, \ 0.1220343371668563E-01,0.1220343371666686E-01, \ 0.6782282187245643E-02,0.6782282187250343E-02, \ 0.6782282187251558E-02,0.1276699476009991E-01, \ 0.1276699476009263E-01,0.1276699476009060E-01, \ 0.1330898468041284E-01,0.1330898468040929E-01, \ 0.1330898468040468E-01,0.8872828138103311E-02, \ 0.8872828138107657E-02,0.8872828138112581E-02, \ 0.2604852195750169E-01,0.2604852195750782E-01, \ 0.2604852195751094E-01,0.1091598279364878E-01, \ 0.1091598279363667E-01,0.1091598279364397E-01, \ 0.2727741583607240E-01,0.2727741583609616E-01, \ 0.2727741583610115E-01,0.1214067234472188E-01, \ 0.1214067234470734E-01,0.1214067234471387E-01, \ 0.2653047387010774E-01,0.2653047387011107E-01, \ 0.2653047387012045E-01,0.1147407678956960E-01, \ 0.1147407678960903E-01,0.1147407678957783E-01, \ 0.6941339438094368E-02,0.6941339438087489E-02, \ 0.6941339438089641E-02,0.1618088676127407E-01, \ 0.1618088676125095E-01,0.1618088676125473E-01, \ 0.9879744049167588E-02,0.9879744049174469E-02, \ 0.9879744049169482E-02,0.1106165676903961E-01, \ 0.1106165676903509E-01,0.1106165676904102E-01, \ 0.7973762810133187E-02,0.7973762810143904E-02, \ 0.7973762810145713E-02,0.7671732380845806E-03, \ 0.7671732380905287E-03,0.7671732380951896E-03, \ 0.1643453575966134E-02,0.1643453575957693E-02, \ 0.1643453575955291E-02,0.4522697832344839E-01, \ 0.3708344580879497E-03,0.1141401437229523E-01, \ 0.2710167289616961E-01,0.1108569325544364E-01 ] ) return x, y, z, w def rule11 ( n ): #*****************************************************************************80 # ## rule11() returns the rule of degree 11. # # Licensing: # # This code is distributed under the MIT license. # # Modified: # # 06 May 2023 # # Author: # # Original FORTRAN77 version by Hong Xiao, Zydrunas Gimbutas. # This version by John Burkardt. # # Reference: # # Hong Xiao, Zydrunas Gimbutas, # A numerical algorithm for the construction of efficient quadrature # rules in two and higher dimensions, # Computers and Mathematics with Applications, # Volume 59, 2010, pages 663-676. # # Input: # # integer N, the number of nodes. # # Output: # # real x(n), y(n), z(n): the coordinates of the nodes. # # real W(N), the weights. # import numpy as np x = np.array ( [ \ 0.9651177776899700E-01,-0.7093619453993043, \ 0.6128501676297941,-0.4527836424396549E-02, \ -0.4612438490926584,0.4657716855189367, \ 0.2438655531438615E-01,0.3220723301923039, \ -0.3464588855081770,-0.1267500664585161, \ -0.5368057828378728,0.6635558492970384, \ -0.9547972451775022E-01,-0.2357077639614438, \ 0.3311874884792527,-0.7908328086591814E-02, \ -0.7854922635641037,0.7934005916498822, \ -0.1494644432070149,-0.3155198764172914, \ 0.4649843196230657,0.1165276860785583, \ -0.4038862538014747,0.2873585677227137, \ -0.2047755067090988E-02,-0.9205200026937792E-01, \ 0.9409975533966558E-01,0.3468354574885807, \ 0.1682368211989309,-0.5150722786890125, \ -0.1144319727418180,-0.7020417246489494, \ 0.8164736973908203,-0.3048702567593000, \ -0.1613129802547456,0.4661832370146523, \ 0.2101640308259509,0.3270815374994656, \ -0.5372455683250684,-0.6404070599046534E-01, \ -0.5801912598472644,0.6442319658370544, \ 0.5470009647103604E-02,-0.2517469475214085, \ 0.2462769378777770,0.1008461981380965E-01, \ 0.1731441764929287,-0.1832287963083161, \ 0.1748982078445799,-0.3794913490849509, \ 0.2045931412407059,0.1065391638487668E-01, \ -0.3452291078932529,0.3345751915058239, \ -0.7083686826885625E-03,0.2101573677291210, \ -0.2094489990466886,-0.2851273048890965, \ -0.3267460563855006,0.6118733612746845, \ -0.2323209396920720E-02,-0.2164769352136706, \ 0.2188001446096009,-0.2051577904029304E-01, \ -0.5570838828147304,0.5775996618543481, \ -0.3026455196997997E-02,0.1457949533626576, \ -0.1427684981666913,-0.1973538549140939, \ -0.1582348302473636,0.3555886851614904, \ 0.1068857744362264,-0.4126086236419754, \ 0.3057228492051779,-0.3003364082942412, \ 0.3997857603256970,-0.9944935203203158E-01, \ 0.1221835246093986E-01,-0.8799955089249785, \ 0.8677771564639284,0.1534568838650121, \ -0.7253511736488428,0.5718942897840599, \ 0.2235456216473980E-02,-0.5785135622840735, \ 0.5762781060658508,0.9436416592156352E-01, \ 0.3995572440244000,-0.4939214099453045, \ 0.1578951817317316E-11,-0.7234508899977211E-12, \ -0.1195010503052243E-12,0.1273193864088492E-12, \ -0.1398313045262104E-12 ] ) y = np.array ( [ \ 0.7633795193833395,-0.2981081083795290, \ -0.4652714110037153,0.5352126684505152, \ -0.2715275555928822,-0.2636851128574337, \ -0.3859766773459927,0.2141077150870582, \ 0.1718689622588539,0.6930291114382893, \ -0.4562833332036821,-0.2367457782343889, \ 0.3272971265990525,-0.2463364302786462, \ -0.8096069632058686E-01,0.9115742149797984, \ -0.4626359205144959,-0.4489382944649009, \ 0.4506243076880464,-0.3547521586231100, \ -0.9587214906505584E-01,0.3990903837832518, \ -0.9862925550286258E-01,-0.3004611282798994, \ 0.1074747662091034,-0.5551079101315480E-01, \ -0.5196397519770712E-01,-0.3945086927598004, \ 0.4976226634994518,-0.1031139707392109, \ 0.8767152876835527,-0.5374586392410802, \ -0.3392566484421098,0.3622851099556234, \ -0.4451679421897679,0.8288283223322354E-01, \ -0.4990194872156122,0.4315171332646398, \ 0.6750235395125617E-01,0.7069210789517217, \ -0.4089214177391241,-0.2979996612119608, \ 0.2875342242963981,-0.1390299448345922, \ -0.1485042794638735,-0.2057520317788134, \ 0.1116095528368255,0.9414247894240614E-01, \ 0.3372213377187678,-0.1714437779017452E-01, \ -0.3200769599289869,0.3924851952555710, \ -0.1870160353880812,-0.2054691598668353, \ -0.2422598488114232,0.1205164591315570, \ 0.1217433896809788,0.5419121734527502, \ -0.5178835760728716,-0.2402859737978143E-01, \ 0.2513073392081394,-0.1276656279597885, \ -0.1236417112471668,0.6551098499602489, \ -0.3453221108076170,-0.3097877391525884, \ -0.1666021864185573,0.8068010612598300E-01, \ 0.8592208029345208E-01,0.2966561449375769, \ -0.3192415243590572,0.2258537942164062E-01, \ 0.4147288692159332,-0.1147986386430089, \ -0.2999302305730746,-0.2882335265091744, \ -0.1159821960086673,0.4042157225193962, \ 0.1009077018844530E+01,-0.4939571057987255, \ -0.5151199130457724,0.7489650175178515, \ -0.2415849489462737,-0.5073800685715635, \ 0.6667192805807411,-0.3314236784178127, \ -0.3352956021620059,-0.5158501413847826, \ 0.3396468355868865,0.1762033057983631, \ -0.8069526265224892E-12,0.4596851666550035E-12, \ 0.1156254386801148E-12,0.5765654131403360E-13, \ -0.1226198587930237E-12 ] ) z = np.array ( [ \ -0.1868268863122697,-0.1868268863123053, \ -0.1868268863112705,0.4194136456710284, \ 0.4194136456717518,0.4194136456711013, \ 0.5030086583798776E-01,0.5030086583729960E-01, \ 0.5030086583707338E-01,-0.1505956145194099, \ -0.1505956145190243,-0.1505956145192429, \ -0.1725275785423899,-0.1725275785429845, \ -0.1725275785414913,-0.1709810615420194, \ -0.1709810615421794,-0.1709810615408042, \ 0.7674742839401762E-01,0.7674742839470597E-01, \ 0.7674742839681360E-01,-0.3720134569923326, \ -0.3720134569922893,-0.3720134569921418, \ 0.9342960665019454,0.9342960665021878, \ 0.9342960664953203,-0.3611736289802844E-01, \ -0.3611736289860155E-01,-0.3611736289902880E-01, \ -0.3535560367475518,-0.3535560367476202, \ -0.3535560367476884,-0.1926114352197085, \ -0.1926114352198034,-0.1926114352197086, \ -0.2818523519641055,-0.2818523519643090, \ -0.2818523519648298,-0.3888552761464975, \ -0.3888552761464523,-0.3888552761454053, \ 0.6654848063127317,0.6654848063130780, \ 0.6654848063078891,0.1794683181875785E-01, \ 0.1794683181975163E-01,0.1794683181866871E-01, \ -0.2272794453431112,-0.2272794453432979, \ -0.2272794453429204,0.8078480103364902E-01, \ 0.8078480103319574E-01,0.8078480103608091E-01, \ 0.3406111942551650,0.3406111942551089, \ 0.3406111942537021,-0.3549131236009490, \ -0.3549131236011042,-0.3549131236012491, \ 0.4213057676587053,0.4213057676584742, \ 0.4213057676619541,-0.2430250873757710, \ -0.2430250873755122,-0.2430250873736784, \ 0.6939507005767215,0.6939507005768448, \ 0.6939507005757009,-0.3547895907184612, \ -0.3547895907186004,-0.3547895907184947, \ 0.3273634204692249,0.3273634204691543, \ 0.3273634204697847,0.3797479097987934, \ 0.3797479098019154,0.3797479097984070, \ -0.3626672020688875,-0.3626672020689380, \ -0.3626672020686431,-0.3656623860600263, \ -0.3656623860600038,-0.3656623860598407, \ 0.1056953360682411,0.1056953360682777, \ 0.1056953360707847,-0.4015122352990265, \ -0.4015122352990430,-0.4015122352995484, \ 0.1118223609071020E+01,0.6664104583675564, \ -0.3809990858052303,-0.2253945502682283, \ 0.2604940999755755 ] ) w = np.array ( [ \ 0.6188005592967251E-02,0.6188005592972490E-02, \ 0.6188005592984317E-02,0.1421063031043561E-02, \ 0.1421063031047919E-02,0.1421063030985486E-02, \ 0.9481646089825704E-02,0.9481646089870772E-02, \ 0.9481646089801222E-02,0.6814905118771046E-02, \ 0.6814905118757536E-02,0.6814905118753749E-02, \ 0.1912041674313553E-01,0.1912041674309802E-01, \ 0.1912041674324984E-01,0.3076029506690844E-02, \ 0.3076029506690773E-02,0.3076029506710983E-02, \ 0.1135836724916717E-01,0.1135836724921729E-01, \ 0.1135836724932070E-01,0.1091603321391938E-01, \ 0.1091603321391454E-01,0.1091603321395138E-01, \ 0.4213691001392970E-02,0.4213691001384827E-02, \ 0.4213691001487200E-02,0.1206837849134008E-01, \ 0.1206837849134312E-01,0.1206837849132945E-01, \ 0.2578861292324762E-02,0.2578861292345221E-02, \ 0.2578861292334968E-02,0.1252456101442731E-01, \ 0.1252456101442267E-01,0.1252456101444618E-01, \ 0.8063913155156468E-02,0.8063913155154395E-02, \ 0.8063913155182456E-02,0.4993280626450522E-02, \ 0.4993280626459499E-02,0.4993280626580781E-02, \ 0.6150188384809636E-02,0.6150188384813883E-02, \ 0.6150188384677927E-02,0.2678388417077401E-01, \ 0.2678388417077927E-01,0.2678388417078649E-01, \ 0.1946856127752551E-01,0.1946856127748248E-01, \ 0.1946856127749281E-01,0.2102094189170934E-01, \ 0.2102094189169974E-01,0.2102094189174428E-01, \ 0.1685367818736497E-01,0.1685367818729912E-01, \ 0.1685367818732997E-01,0.5900869705091857E-02, \ 0.5900869705093673E-02,0.5900869705073673E-02, \ 0.1690563324458130E-01,0.1690563324459602E-01, \ 0.1690563324456019E-01,0.1476341187397782E-01, \ 0.1476341187398414E-01,0.1476341187397479E-01, \ 0.6992794755775152E-02,0.6992794755747075E-02, \ 0.6992794755746150E-02,0.1513056742691520E-01, \ 0.1513056742688911E-01,0.1513056742692685E-01, \ 0.7015883109811540E-02,0.7015883109809210E-02, \ 0.7015883109746114E-02,0.4965174122051565E-02, \ 0.4965174121903291E-02,0.4965174122041231E-02, \ 0.2712699778890213E-02,0.2712699778885687E-02, \ 0.2712699778899985E-02,0.5900718944404856E-02, \ 0.5900718944405426E-02,0.5900718944424988E-02, \ 0.8768888887154097E-02,0.8768888887160882E-02, \ 0.8768888887196669E-02,0.3175432879836244E-02, \ 0.3175432879833069E-02,0.3175432879794895E-02, \ 0.1078986495318477E-02,0.1747404076054822E-01, \ 0.1129982873905144E-01,0.2890093028298477E-01, \ 0.2624431483486055E-01 ] ) return x, y, z, w def rule12 ( n ): #*****************************************************************************80 # ## rule12() returns the rule of degree 12. # # Licensing: # # This code is distributed under the MIT license. # # Modified: # # 06 May 2023 # # Author: # # Original FORTRAN77 version by Hong Xiao, Zydrunas Gimbutas. # This version by John Burkardt. # # Reference: # # Hong Xiao, Zydrunas Gimbutas, # A numerical algorithm for the construction of efficient quadrature # rules in two and higher dimensions, # Computers and Mathematics with Applications, # Volume 59, 2010, pages 663-676. # # Input: # # integer N, the number of nodes. # # Output: # # real x(n), y(n), z(n): the coordinates of the nodes. # # real W(N), the weights. # import numpy as np x = np.array ( [ \ 0.3958544098912666,-0.4870511331351648, \ 0.9119672324389515E-01,-0.5926431804946591, \ 0.5193516147881150,0.7329156570653904E-01, \ -0.4544141850245140E-01,-0.2756993864806933, \ 0.3211408049831440,-0.3413860630862161, \ 0.5248742662396945,-0.1834882031534880, \ -0.1319722431139201,0.2771078804366659, \ -0.1451356373227354,0.2916719156941026, \ -0.6416905801467393,0.3500186644526196, \ -0.4070439485536645E-01,-0.4815006651936328, \ 0.5222050600490048,-0.9820856549819251E-01, \ -0.4276075601779065,0.5258161256761047, \ 0.2184089033681613,-0.4656593625800790, \ 0.2472504592119225,-0.6606777491144762E-02, \ 0.1271987824323769,-0.1205920049412379, \ -0.1862346674942773,-0.1097662119993451, \ 0.2960008794936306,-0.5890402754221185, \ 0.6424505517737594,-0.5341027635165645E-01, \ -0.1196400210307819E-01,-0.7808240524677493, \ 0.7927880545708264,0.6235239461686299E-01, \ -0.4408318818916021,0.3784794872747496, \ 0.2235903863093564,-0.5240787479715297E-01, \ -0.1711825115122079,0.1666477050331823, \ -0.2729955606600447,0.1063478556268736, \ -0.7415049139037595E-01,0.7389518464069887E-01, \ 0.2553067496801190E-03,0.1955908717228039, \ 0.1141488778114551,-0.3097397495342445, \ -0.1802680258591541E-01,-0.2161777731993448, \ 0.2342045757852541,-0.1532613811702923, \ -0.1800985367097719,0.3333599178800782, \ 0.5776336665233524E-02,-0.6762886678803212, \ 0.6705123312150877,-0.8304590790913337E-01, \ 0.3554044991859694,-0.2723585912768360, \ 0.5423845315967933,-0.2526088517557438, \ -0.2897756798410528,0.5573431967310101, \ -0.3595768372350124,-0.1977663594959926, \ 0.4731366238769863,-0.1975148047452081E-01, \ -0.4533851434024622,0.3153219324427421, \ -0.2494039878683618E-01,-0.2903815336558955, \ -0.1831653764008917E-01,-0.9317223914837645, \ 0.9500389291238570,-0.6699974553713883, \ 0.5322783600952914,0.1377190952760970, \ 0.2782783282780965,-0.3217122219145910, \ 0.4343389363650290E-01,0.9746770878915403E-01, \ -0.3733686186921615,0.2759009099030095, \ 0.1089081465931238E-01,-0.8195375330783097, \ 0.8086467184189974,-0.1251938886030335, \ 0.3429675592810749E-01,0.9089713267491691E-01, \ 0.4868852723886817,0.1198290818690802, \ -0.6067143542577578,0.3382540465835279, \ -0.4603539675728300,0.1220999209893009, \ -0.9480210749913888E-01,-0.6451285680033118, \ 0.7399306755024498,0.1140113067761596, \ -0.8552704011446526,0.7412590943684850, \ -0.1658421801556803,-0.6245895743792733, \ 0.7904317545349575,0.2557413056493574, \ 0.3270954418922731E-01,-0.2884508498385872, \ -0.1613157569571640,-0.4583565335140027, \ 0.6196722904711670,0.2156998987651826E-14, \ 0.2157685773910294E-14,0.9329761593328095E-14, \ -0.1937826095544789E-14,0.5112100598082816E-14 ] ) y = np.array ( [ \ 0.3338515555387722,0.1758941973965540, \ -0.5097457529353365,-0.2575328894119814, \ -0.3844776049819921,0.6420104943939733, \ 0.3445858452048264,-0.2116463454095397, \ -0.1329394997952951,-0.4089732623879643, \ -0.9116237193661333E-01,0.5001356343245807, \ -0.2437824086419522,0.7599889189904093E-02, \ 0.2361825194520526,0.5725635993272842, \ -0.3368651110208424E-01,-0.5388770882252032, \ 0.5794897706560004,-0.3249959253184209, \ -0.2544938453375776,0.5504594216795844, \ -0.3602808234304559,-0.1901785982491242, \ 0.4115986775195391,-0.1665168003024589E-01, \ -0.3949469974892933,-0.1430620777928657, \ 0.6580940175195596E-01,0.7725267604090996E-01, \ 0.2342697395017627,-0.2784188228662802, \ 0.4414908336450658E-01,-0.4017554364367290, \ -0.3092461241493650,0.7110015605860860, \ 0.9085253735987711,-0.4646238165515825, \ -0.4439015570471948,0.4730296395382988, \ -0.1825160620441602,-0.2905135774941487, \ -0.6857456848032077E-01,0.2279222388260412, \ -0.1593476703457152,0.2190140235085516, \ 0.3481413428683416E-01,-0.2538281577953898, \ -0.4251600332346974E-01,-0.4295820758543226E-01, \ 0.8547421090889233E-01,-0.2447322131044543, \ 0.2917527702125314,-0.4702055710805701E-01, \ 0.2600283704245143,-0.1456258542006649, \ -0.1144025162238410,0.2964453769751457, \ -0.2809509380001344,-0.1549443897500673E-01, \ 0.7775759193725890,-0.3837855053933897, \ -0.3937904139792007,-0.3624391892660122, \ 0.1092997287033503,0.2531394605626634, \ -0.2145827819997083E-01,0.4804479220825398, \ -0.4589896438825594,0.9342132288033096E-01, \ 0.4359627055553254,-0.5293840284356405, \ -0.2503585120211285,0.5349275917488283, \ -0.2845690797277077,-0.1532525106706588, \ 0.3497030592011267,-0.1964505485304861, \ 0.1086435405003431E+01,-0.5590802894074118, \ -0.5273551155960269,-0.2277988977546228, \ -0.4663353679452422,0.6941342656998574, \ 0.2108172081069621,0.1355874975580061, \ -0.3464047056649888,0.3748559371110348, \ -0.1030184566954502,-0.2718374804155939, \ 0.9400326158922729,-0.4605845857832677, \ -0.4794480301090108,0.3267824275100505E-01, \ -0.1247602093042907,0.9208196655328471E-01, \ -0.4194700484257879,0.6313900388299887, \ -0.2119199904042083,0.3362799093518891, \ 0.1247966425982771,-0.4610765519501666, \ 0.7996643270816305,-0.4819331969673737, \ -0.3177311301142533,0.9217567340036824, \ -0.3621416790150311,-0.5596150549886635, \ 0.8169629451576943,-0.5521050136126617, \ -0.2648579315450346,-0.1854220399449956, \ 0.3141894874618389,-0.1287674475168422, \ 0.6224002317220075,-0.4509036594166286, \ -0.1714965723053837,-0.1747363709921250E-14, \ -0.7841339838758449E-14,-0.1038742413216324E-13, \ -0.6434088705165255E-14,0.8511611593137641E-14 ] ) z = np.array ( [ \ -0.3905577451659811,-0.3905577451659810, \ -0.3905577451659885,-0.4194761577597843E-02, \ -0.4194761577604291E-02,-0.4194761577584145E-02, \ 0.1874027021856000,0.1874027021856146, \ 0.1874027021856214,-0.3071102013390232, \ -0.3071102013390279,-0.3071102013390283, \ -0.2701961597911837E-01,-0.2701961597911512E-01, \ -0.2701961597910549E-01,-0.3650223874563840, \ -0.3650223874563843,-0.3650223874563830, \ -0.8612392000622994E-01,-0.8612392000621880E-01, \ -0.8612392000621745E-01,0.1070791221730147, \ 0.1070791221730203,0.1070791221730225, \ 0.3230374822491166E-01,0.3230374822490626E-01, \ 0.3230374822491062E-01,0.3289827199375365, \ 0.3289827199375268,0.3289827199375392, \ -0.2002324469987915,-0.2002324469988037, \ -0.2002324469988010,-0.2771825970811163, \ -0.2771825970811178,-0.2771825970811177, \ -0.3794145952130761,-0.3794145952130777, \ -0.3794145952130777,0.2887592197883361, \ 0.2887592197883261,0.2887592197883259, \ 0.7307953050563157,0.7307953050563196, \ 0.7307953050563138,0.4124918246328610, \ 0.4124918246328517,0.4124918246328527, \ 0.9839020121236216,0.9839020121236166, \ 0.9839020121236378,0.6829751492607604E-01, \ 0.6829751492606395E-01,0.6829751492607447E-01, \ 0.5090267712108498,0.5090267712108671, \ 0.5090267712108663,0.3851617855258526, \ 0.3851617855258565,0.3851617855258507, \ 0.2348420776072121E-01,0.2348420776071207E-01, \ 0.2348420776071097E-01,0.7747281662419676E-01, \ 0.7747281662420324E-01,0.7747281662419568E-01, \ -0.1630338566084656,-0.1630338566084718, \ -0.1630338566084695,-0.3584562395667113, \ -0.3584562395667106,-0.3584562395667084, \ 0.3698626219613211,0.3698626219613297, \ 0.3698626219613188,-0.3667298228875690, \ -0.3667298228875713,-0.3667298228875721, \ -0.3790081337166384,-0.3790081337166408, \ -0.3790081337166418,-0.2197227060814419, \ -0.2197227060814434,-0.2197227060814370, \ -0.3654645869052863,-0.3654645869052863, \ -0.3654645869052867,-0.2014726326233556, \ -0.2014726326233535,-0.2014726326233503, \ -0.2464405285751480,-0.2464405285751552, \ -0.2464405285751559,0.7375395719855852, \ 0.7375395719855836,0.7375395719855902, \ -0.3689240261223760,-0.3689240261223751, \ -0.3689240261223750,-0.2202508600260902, \ -0.2202508600260935,-0.2202508600260907, \ -0.1594720366091775,-0.1594720366091723, \ -0.1594720366091740,-0.3758886073617869, \ -0.3758886073617894,-0.3758886073617892, \ -0.3542700621002714,-0.3542700621002700, \ -0.3542700621002702,0.6895589091912253, \ 0.6895589091912366,0.6895589091912278, \ -0.4073916692470354,-0.4073916692470370, \ -0.4073916692470400,0.6482117053575507, \ 0.1198603539538932E+01,-0.4041509145471567, \ -0.2710584986072719,0.8757555073873696E-02 ] ) w = np.array ( [ \ 0.2025764222341204E-02,0.2025764222341283E-02, \ 0.2025764222340314E-02,0.6116300216663094E-02, \ 0.6116300216663310E-02,0.6116300216663541E-02, \ 0.1275819159212241E-01,0.1275819159212196E-01, \ 0.1275819159212162E-01,0.8334684897884583E-02, \ 0.8334684897884422E-02,0.8334684897884272E-02, \ 0.1507614954107500E-01,0.1507614954107359E-01, \ 0.1507614954107202E-01,0.2734637742973762E-02, \ 0.2734637742973644E-02,0.2734637742974016E-02, \ 0.1154303798541227E-01,0.1154303798541274E-01, \ 0.1154303798541255E-01,0.7163952410599667E-02, \ 0.7163952410599083E-02,0.7163952410598778E-02, \ 0.7580503447649259E-02,0.7580503447650207E-02, \ 0.7580503447650126E-02,0.1894249152240793E-01, \ 0.1894249152240805E-01,0.1894249152240727E-01, \ 0.1641784697591419E-01,0.1641784697591236E-01, \ 0.1641784697591317E-01,0.8436640400263927E-02, \ 0.8436640400264633E-02,0.8436640400264418E-02, \ 0.3036004079076158E-02,0.3036004079076059E-02, \ 0.3036004079076094E-02,0.7492415688372185E-02, \ 0.7492415688372261E-02,0.7492415688372197E-02, \ 0.3062456464426824E-02,0.3062456464427586E-02, \ 0.3062456464427105E-02,0.8856133214568079E-02, \ 0.8856133214567973E-02,0.8856133214568157E-02, \ 0.3071402699546415E-02,0.3071402699546453E-02, \ 0.3071402699546178E-02,0.1823835135198804E-01, \ 0.1823835135198757E-01,0.1823835135198796E-01, \ 0.1121658861163283E-01,0.1121658861163258E-01, \ 0.1121658861163293E-01,0.5177567930581361E-02, \ 0.5177567930581481E-02,0.5177567930580846E-02, \ 0.3242723020974106E-02,0.3242723020974469E-02, \ 0.3242723020974430E-02,0.1136422978208590E-01, \ 0.1136422978208548E-01,0.1136422978208555E-01, \ 0.8174247103577847E-02,0.8174247103578128E-02, \ 0.8174247103578329E-02,0.4083194002127334E-02, \ 0.4083194002127503E-02,0.4083194002128160E-02, \ 0.3128101586450114E-02,0.3128101586450456E-02, \ 0.3128101586450350E-02,0.1081664090579396E-01, \ 0.1081664090579364E-01,0.1081664090579339E-01, \ 0.4910680133298682E-03,0.4910680133297917E-03, \ 0.4910680133297780E-03,0.8074513061447679E-02, \ 0.8074513061447566E-02,0.8074513061448123E-02, \ 0.1112708329974781E-01,0.1112708329974803E-01, \ 0.1112708329974812E-01,0.2131526487678964E-01, \ 0.2131526487679003E-01,0.2131526487678986E-01, \ 0.3571026646377801E-02,0.3571026646377656E-02, \ 0.3571026646377794E-02,0.7768447076866043E-02, \ 0.7768447076865915E-02,0.7768447076866019E-02, \ 0.7618830679555172E-02,0.7618830679555604E-02, \ 0.7618830679555573E-02,0.1180399216908969E-01, \ 0.1180399216908947E-01,0.1180399216908933E-01, \ 0.2753708273597594E-02,0.2753708273597404E-02, \ 0.2753708273597407E-02,0.1252040626033346E-02, \ 0.1252040626033167E-02,0.1252040626033129E-02, \ 0.2035505637330654E-02,0.2035505637330660E-02, \ 0.2035505637330673E-02,0.2152733016776995E-02, \ 0.2152733016776493E-02,0.2152733016776350E-02, \ 0.2538969965943544E-02,0.2538969965943405E-02, \ 0.2538969965943241E-02,0.1078372873958245E-01, \ 0.1943908493037603E-03,0.4799528389705479E-02, \ 0.2477673544485754E-01,0.2864883777302190E-01 ] ) return x, y, z, w def rule13 ( n ): #*****************************************************************************80 # ## rule13() returns the rule of degree 13. # # Licensing: # # This code is distributed under the MIT license. # # Modified: # # 06 May 2023 # # Author: # # Original FORTRAN77 version by Hong Xiao, Zydrunas Gimbutas. # This version by John Burkardt. # # Reference: # # Hong Xiao, Zydrunas Gimbutas, # A numerical algorithm for the construction of efficient quadrature # rules in two and higher dimensions, # Computers and Mathematics with Applications, # Volume 59, 2010, pages 663-676. # # Input: # # integer N, the number of nodes. # # Output: # # real x(n), y(n), z(n): the coordinates of the nodes. # # real W(N), the weights. # import numpy as np x = np.array ( [ \ -0.4777385017466611E-01,-0.7568808830760128, \ 0.8046547332507396,0.3005907944967990E-01, \ -0.3472424886466524,0.3171834091971876, \ -0.3529824413110864E-01,-0.4209487812102883, \ 0.4562470253414500,-0.7153537080888878, \ 0.5989558965388279,0.1163978115501301, \ 0.3710519456025519E-02,0.4652335033519287, \ -0.4689440228078527,-0.3599160575353618E-01, \ 0.1939924024452817,-0.1580007966914678, \ -0.2161537359848647E-01,0.2912599485905940, \ -0.2696445749921000,-0.4913573074965884, \ 0.2288888183023164,0.2624684891944182, \ -0.1426281098822192,-0.3118486240867259, \ 0.4544767339690260,0.7618754763810419, \ -0.1422306180040716,-0.6196448583768703, \ 0.5776897880027803E-01,0.1164689180950719, \ -0.1742378968955057,-0.1414719142296262, \ -0.3229372289650024,0.4644091431945710, \ -0.1398258170326137,-0.5098850522745304, \ 0.6497108693071825,0.3610318921371553, \ 0.1054629929099188,-0.4664948850470391, \ 0.2459013465212476E-01,-0.7178146556427887, \ 0.6932245209907225,-0.1065595141175732E-01, \ -0.9217121855780308,0.9323681369897492, \ -0.4115285528872360,0.2668526805669106, \ 0.1446758723202021,0.1571190412397715E-02, \ -0.6922217370423006E-01,0.6765098329171684E-01, \ -0.2991189861629327,-0.1245621803681009, \ 0.4236811665311025,0.3871696430393148, \ 0.1500785041234294,-0.5372481471625822, \ -0.8064886300342536E-01,-0.4844598247542774, \ 0.5651086877577737,0.6705603853993255, \ -0.2613693382805031,-0.4091910471186840, \ -0.2994914861160214,-0.2674832138785850, \ 0.5669746999946459,0.4510147973428894E-01, \ 0.2172069032075606,-0.2623083829418457, \ -0.2495785492724049,-0.2085110500880744, \ 0.4580895993605156,0.2707504828489703, \ -0.4821600751443009,0.2114095922954477, \ -0.4554280384514680E-01,-0.7996627976605564, \ 0.8452056015056444,0.2029674430134095E-01, \ -0.7997175993984930,0.7794208550971885, \ 0.1441756236446537,-0.6915442312985614, \ 0.5473686076540003,0.3528170518753222E-01, \ -0.3311753761570134,0.2958936709696454, \ -0.7827835701762442E-02,0.2760083802741976, \ -0.2681805445724308,0.6806655606966093E-01, \ -0.5973241026022454,0.5292575465325308, \ -0.9685067665231929E-01,0.2259602937925122, \ -0.1291096171402099,-0.1001708030503953E-01, \ -0.5630399697700922,0.5730570500751420, \ 0.3465920273834422E-01,-0.1777529113458167, \ 0.1430937086076311,0.7285263734559304E-01, \ -0.8758889229618175,0.8030362856162614, \ 0.1343389663918027,0.3445210697535890, \ -0.4788600361453874,-0.1348321313217423E-01, \ 0.1154680832801965,-0.1019848701479677, \ -0.5176848990301737E-01,-0.2375948027597131, \ 0.2893632926627010,0.1729207472857360E-01, \ -0.4389324777852445,0.4216404030566085, \ -0.3914791775164566E-02,-0.2309684344749786, \ 0.2348832262501366,-0.6881144138718593, \ 0.4266860230809687,0.2614283907909357, \ 0.4960973006288234E-02,-0.2137441872471665, \ 0.2087832142407756,-0.7325006065249269E-01, \ -0.2659488483143491,0.3391989089668666, \ -0.4678501489682662E-01,-0.5410293892575722, \ 0.5878144041543488,-0.2500405721723705E-01, \ -0.6313699376952513,0.6563739949124212, \ 0.1364199568193839,-0.2996193314702689, \ 0.1631993746509763,0.1198743702984181E-12, \ -0.7662979863046558E-13,-0.4829662024390088E-14, \ -0.2111050829994401E-13,-0.1270671025297558E-13 ] ) y = np.array ( [ \ 0.9015530084355994,-0.4921498721057091, \ -0.4094031363297998,0.3836064709764307, \ -0.1657713090704851,-0.2178351619061508, \ 0.5064492350445715,-0.2837937936488191, \ -0.2226554413958301,-0.2786050402678961, \ -0.4802119637624816,0.7588170040302994, \ -0.5393476461992264,0.2728872272096964, \ 0.2664604189895141,-0.2032233682745297, \ 0.7044203923151297E-01,0.1327813290428652, \ -0.3238383776801540,0.1431997261914898, \ 0.1806386514886541,0.1938723202896774E-01, \ -0.4352215266416702,0.4158342946127344, \ 0.4424381517603146,-0.3447386423319839, \ -0.9769950942847148E-01,-0.2756352401942940, \ 0.7976211371634238,-0.5219858969692130, \ -0.1678396578899558,0.1339492321368408, \ 0.3389042575316226E-01,0.4545746399118207, \ -0.3498055916007531,-0.1047690483110467, \ 0.6694930174765074,-0.4558392183934259, \ -0.2136537990830517,-0.3302200348036231, \ 0.4777728075688429,-0.1475527727653846, \ 0.8146638484662959,-0.3860362429420576, \ -0.4286276055244945,0.1070453773333782E+01, \ -0.5444552112909320,-0.5259985620427312, \ -0.7053881312997473E-01,-0.3211247746179037, \ 0.3916635877479940,0.7902375403647920E-01, \ -0.3815118620693258E-01,-0.4087256782951131E-01, \ 0.3165284439137526,-0.4173088627282204, \ 0.1007804188144937,-0.3968282271412536, \ 0.5337128600166933,-0.1368846328756112, \ 0.6059686632316962,-0.3728282957631877, \ -0.2331403674686730,-0.8534490338988292E-01, \ 0.6233947802222222,-0.5380498768323672, \ 0.4817745012020841,-0.5002544857946896, \ 0.1847998459249884E-01,-0.2768482795388788, \ 0.1774831669675317,0.9936511257127259E-01, \ 0.3848620644010382,-0.4085723961101285, \ 0.2371033170906487E-01,0.4004326341980497, \ 0.3426047913492075E-01,-0.4346931133331124, \ 0.9496652130401684,-0.5142738316095435, \ -0.4353913814305450,0.9117160117907287, \ -0.4382805097163334,-0.4734355020744341, \ 0.7152866610716716,-0.2327835778531099, \ -0.4825030832186010,0.3620384831590592, \ -0.1504643885983839,-0.2115740945607743, \ -0.3141876222502283,0.1503147065506677, \ 0.1638729156994478,0.6504322183920584, \ -0.2662687424915907,-0.3841634759004985, \ -0.2049997086581880,0.1862470797446676E-01, \ 0.1863750006837488,0.6559259202331654, \ -0.3366380061325622,-0.3192879141007369, \ 0.1852408823986869,-0.6260469115301880E-01, \ -0.1226361912458057,0.9693279211217602, \ -0.4215717258868716,-0.5477561952349157, \ -0.4753793031363919,0.3540306091815932, \ 0.1213486939547357,-0.1255465211978510, \ 0.5109645550180968E-01,0.7445006569601835E-01, \ 0.3042393982437668,-0.1969525264934776, \ -0.1072868717503699,0.4968519844113532, \ -0.2334506162065882,-0.2634013682047193, \ 0.2689595817220580,-0.1378700999889159, \ -0.1310894817332517,-0.9541153848828572E-01, \ -0.5482187938791565,0.6436303323674273, \ 0.2439463089891027,-0.1176768258436301, \ -0.1262694831454210,0.3493822205657847, \ -0.2381275236366834,-0.1112546969291192, \ 0.6517382679995124,-0.3663861454168269, \ -0.2853521225825763,0.7434793061384100, \ -0.3933938018169897,-0.3500855043213671, \ 0.2672085045651081,-0.1546110409379758E-01, \ -0.2517474004713509,-0.6195967642546056E-13, \ 0.3002370388193685E-13,-0.5457794979132388E-13, \ 0.1164494042115649E-12,0.3123283355285955E-13 ] ) z = np.array ( [ \ -0.2327715323996341,-0.2327715323996078, \ -0.2327715323995431,0.3496762696550786, \ 0.3496762696549099,0.3496762696549561, \ 0.2717988565409110,0.2717988565409942, \ 0.2717988565407555,-0.3874128688211647, \ -0.3874128688212131,-0.3874128688212028, \ -0.3783145937148669,-0.3783145937148664, \ -0.3783145937148837,-0.3908054363428844, \ -0.3908054363428517,-0.3908054363428521, \ 0.2214621132658698,0.2214621132658886, \ 0.2214621132658825,-0.5332156026748039E-01, \ -0.5332156026744841E-01,-0.5332156026745260E-01, \ -0.1366126720097484,-0.1366126720097481, \ -0.1366126720097814,-0.3405718815923187, \ -0.3405718815923307,-0.3405718815923774, \ 0.2482158558753812,0.2482158558753821, \ 0.2482158558753401,0.1493078550521198, \ 0.1493078550521607,0.1493078550521824, \ -0.1246861001425667,-0.1246861001425311, \ -0.1246861001424509,-0.8804090671666169E-01, \ -0.8804090671661184E-01,-0.8804090671646460E-01, \ -0.2903904416529835,-0.2903904416529482, \ -0.2903904416530703,-0.3588716811515187, \ -0.3588716811515073,-0.3588716811515079, \ 0.1748649644824907,0.1748649644825259, \ 0.1748649644824762,0.1005626022480115E+01, \ 0.1005626022480066E+01,0.1005626022480308E+01, \ -0.6085363845277859E-01,-0.6085363845275459E-01, \ -0.6085363845275343E-01,-0.2907416212662024, \ -0.2907416212662147,-0.2907416212661059, \ -0.2928675049685535,-0.2928675049684912, \ -0.2928675049686165,-0.3986190384060752, \ -0.3986190384060841,-0.3986190384061074, \ -0.2763005028815692,-0.2763005028815834, \ -0.2763005028815310,-0.3171132373617958E-01, \ -0.3171132373613690E-01,-0.3171132373618723E-01, \ -0.3670072924650872,-0.3670072924650821, \ -0.3670072924650642,-0.3918966809387769, \ -0.3918966809387540,-0.3918966809387686, \ -0.3945112928982144,-0.3945112928982283, \ -0.3945112928982709,-0.1689813827450514, \ -0.1689813827450869,-0.1689813827450585, \ -0.1988456360856388,-0.1988456360856537, \ -0.1988456360856610,-0.3581788966687771, \ -0.3581788966687613,-0.3581788966687278, \ -0.2652570624981906,-0.2652570624981415, \ -0.2652570624981432,0.9127655651197962E-01, \ 0.9127655651192465E-01,0.9127655651200027E-01, \ 0.4712027028361149,0.4712027028361768, \ 0.4712027028361248,-0.4789101434801453E-01, \ -0.4789101434802212E-01,-0.4789101434808656E-01, \ 0.5562071598537035,0.5562071598536467, \ 0.5562071598533351,-0.3666902411131864, \ -0.3666902411132085,-0.3666902411132190, \ -0.2500081968302335,-0.2500081968302558, \ -0.2500081968302762,0.7953910781041313, \ 0.7953910781041719,0.7953910781041406, \ 0.1246295654192337,0.1246295654192380, \ 0.1246295654192949,0.4430780439124138, \ 0.4430780439124452,0.4430780439125641, \ -0.1789190687389412,-0.1789190687388659, \ -0.1789190687388622,-0.3621753277358900, \ -0.3621753277358689,-0.3621753277358712, \ 0.7590201625172059,0.7590201625171641, \ 0.7590201625173268,0.5385097619725802, \ 0.5385097619725214,0.5385097619724014, \ -0.4034889863680245,-0.4034889863679839, \ -0.4034889863680722,0.9129480050841532E-01, \ 0.9129480050844316E-01,0.9129480050850451E-01, \ 0.5076476008019328,0.5076476008020036, \ 0.5076476008019484,0.7587686360919684, \ 0.1174064403165666E+01,-0.2917588131252908, \ 0.4072850512806022,-0.2737975651676979E-02 ] ) w = np.array ( [ \ 0.2068909148962774E-02,0.2068909148960302E-02, \ 0.2068909148962221E-02,0.6862179883351744E-02, \ 0.6862179883357749E-02,0.6862179883341077E-02, \ 0.4745055930506758E-02,0.4745055930499521E-02, \ 0.4745055930498638E-02,0.2639271833496386E-02, \ 0.2639271833492975E-02,0.2639271833493415E-02, \ 0.2420284628312029E-02,0.2420284628310808E-02, \ 0.2420284628311964E-02,0.5428029730193044E-02, \ 0.5428029730198515E-02,0.5428029730197811E-02, \ 0.7363269664287002E-02,0.7363269664287796E-02, \ 0.7363269664288242E-02,0.4622589345403796E-02, \ 0.4622589345400746E-02,0.4622589345402929E-02, \ 0.1113014179512893E-01,0.1113014179512515E-01, \ 0.1113014179513268E-01,0.3019898782414975E-02, \ 0.3019898782415646E-02,0.3019898782415196E-02, \ 0.1497918593186746E-01,0.1497918593186317E-01, \ 0.1497918593186622E-01,0.6570279132551560E-02, \ 0.6570279132554112E-02,0.6570279132553927E-02, \ 0.4504033084972921E-02,0.4504033084968776E-02, \ 0.4504033084972839E-02,0.1239429415995445E-01, \ 0.1239429415996196E-01,0.1239429415995679E-01, \ 0.5367281142254301E-02,0.5367281142251953E-02, \ 0.5367281142250357E-02,0.6316169904420855E-03, \ 0.6316169904431759E-03,0.6316169904440820E-03, \ 0.8876101030265546E-02,0.8876101030282007E-02, \ 0.8876101030274161E-02,0.2162421606464688E-02, \ 0.2162421606465037E-02,0.2162421606462924E-02, \ 0.8054280667477870E-02,0.8054280667477506E-02, \ 0.8054280667478849E-02,0.9049885628396499E-02, \ 0.9049885628398672E-02,0.9049885628405025E-02, \ 0.9196546074381425E-02,0.9196546074380063E-02, \ 0.9196546074381355E-02,0.1389679560298547E-02, \ 0.1389679560298251E-02,0.1389679560296835E-02, \ 0.5469361348986402E-02,0.5469361348984248E-02, \ 0.5469361348984599E-02,0.1725450508839409E-01, \ 0.1725450508839278E-01,0.1725450508839148E-01, \ 0.6733913747887457E-02,0.6733913747885728E-02, \ 0.6733913747886398E-02,0.4022564578398640E-02, \ 0.4022564578402713E-02,0.4022564578399363E-02, \ 0.1301944787144861E-02,0.1301944787144253E-02, \ 0.1301944787143136E-02,0.2027792916616635E-02, \ 0.2027792916617886E-02,0.2027792916616735E-02, \ 0.4379548102164245E-02,0.4379548102164029E-02, \ 0.4379548102160293E-02,0.9788773323829804E-02, \ 0.9788773323830982E-02,0.9788773323832441E-02, \ 0.1491498412616913E-01,0.1491498412617151E-01, \ 0.1491498412617137E-01,0.3816494659634458E-02, \ 0.3816494659634902E-02,0.3816494659631925E-02, \ 0.1053753256419563E-01,0.1053753256419800E-01, \ 0.1053753256419685E-01,0.9378412737876001E-02, \ 0.9378412737873921E-02,0.9378412737876034E-02, \ 0.1034943926448387E-01,0.1034943926449078E-01, \ 0.1034943926449734E-01,0.1253515438165336E-02, \ 0.1253515438163976E-02,0.1253515438162651E-02, \ 0.7631115735488028E-02,0.7631115735488942E-02, \ 0.7631115735487678E-02,0.4662247664665583E-02, \ 0.4662247664663175E-02,0.4662247664669866E-02, \ 0.1924508745358327E-01,0.1924508745357723E-01, \ 0.1924508745358518E-01,0.2150599791391388E-02, \ 0.2150599791389261E-02,0.2150599791389503E-02, \ 0.1815794181007045E-01,0.1815794181007355E-01, \ 0.1815794181007060E-01,0.2074509937828351E-02, \ 0.2074509937826631E-02,0.2074509937827053E-02, \ 0.3856301126724407E-02,0.3856301126725213E-02, \ 0.3856301126727490E-02,0.2342776832115179E-02, \ 0.2342776832117610E-02,0.2342776832119853E-02, \ 0.2485903899501151E-02,0.2485903899504086E-02, \ 0.2485903899497665E-02,0.1958269886432824E-02, \ 0.1958269886433108E-02,0.1958269886434393E-02, \ 0.3112037442333638E-02,0.3112037442336383E-02, \ 0.3112037442329971E-02,0.8380938111968996E-02, \ 0.2408616607470909E-03,0.1651223797192308E-01, \ 0.1363274166717042E-01,0.2507433395640973E-01 ] ) return x, y, z, w def rule14 ( n ): #*****************************************************************************80 # ## rule14() returns the rule of degree 14. # # Licensing: # # This code is distributed under the MIT license. # # Modified: # # 06 May 2023 # # Author: # # Original FORTRAN77 version by Hong Xiao, Zydrunas Gimbutas. # This version by John Burkardt. # # Reference: # # Hong Xiao, Zydrunas Gimbutas, # A numerical algorithm for the construction of efficient quadrature # rules in two and higher dimensions, # Computers and Mathematics with Applications, # Volume 59, 2010, pages 663-676. # # Input: # # integer N, the number of nodes. # # Output: # # real x(n), y(n), z(n): the coordinates of the nodes. # # real W(N), the weights. # import numpy as np x = np.array ( [ \ -0.5752422835841802,0.4314967658691802, \ 0.1437455177139820,-0.3303076984155172, \ 0.4866309056595519,-0.1563232072429510, \ -0.5770168798465761E-02,-0.7016819527781105, \ 0.7074521215770434,-0.3032416710412216, \ -0.2339888323701999,0.5372305034104569, \ 0.2995840525991514,-0.4325354814520043, \ 0.1329514288534004,0.2313978508942549, \ -0.4060579401191659E-01,-0.1907920568806182, \ 0.1198459969693036,-0.5485013403177168, \ 0.4286553433493205,-0.4223067018453286, \ 0.2051376117542425,0.2171690900904567, \ -0.1995552059487330,-0.3336302067365579, \ 0.5331854126840413,-0.3362367775957516E-02, \ -0.2082502914064486,0.2116126591830406, \ 0.3901789196843061,-0.4123770748876975E-03, \ -0.3897665426036371,0.5440475521812093E-02, \ -0.5671976659757272,0.5617571904593656, \ 0.5109903009675820E-01,-0.8812309166767075, \ 0.8301318865798517,-0.3334033396451877, \ -0.4849473999181729E-01,0.3818980796337723, \ 0.2967209217147687,0.6320475373066934E-02, \ -0.3030413970906470,0.3947081540530285, \ -0.2978075731654519,-0.9690058088341083E-01, \ 0.4602277425410929,-0.2588695285519879, \ -0.2013582139898412,0.4320204013442107, \ 0.2158666376867163,-0.6478870390304328, \ 0.3243502588043465E-02,-0.8153377567221353, \ 0.8120942541315551,-0.2929639748058975, \ 0.3937181324850053E-01,0.2535921615554882, \ -0.2911712364207900,0.4448737339859005, \ -0.1537024975672874,0.3770577628402459, \ -0.4566844608555435,0.7962669801609278E-01, \ -0.7343568438702067E-03,-0.6012198115212343E-01, \ 0.6085633799849959E-01,-0.7860612444751536, \ 0.7072341550237046,0.7882708945288715E-01, \ -0.1798079430257987,-0.5716591672723068, \ 0.7514671102985679,0.2349121749284232E-01, \ -0.2977965988756665,0.2743053813811669, \ -0.3508185900315901,0.3561089208016359, \ -0.5290330768361618E-02,-0.4799997070573949, \ 0.3284477153105494,0.1515519917450605, \ 0.5503749362395663,-0.1236979845612246, \ -0.4266769516797990,-0.1160913996018244, \ 0.1218716230766462,-0.5780223478460763E-02, \ -0.1795966192456130,-0.5071498846594161, \ 0.6867465039037227,-0.4731311596169461E-02, \ -0.6889415863849245,0.6936728979813912, \ 0.1838019755826437,-0.7414338401434005, \ 0.5576318645605018,-0.3157482778904093, \ 0.1186260398816200E-01,0.3038856739015107, \ -0.3760156844932397,0.2533165859904101, \ 0.1226990985037814,0.3132847887437243E-01, \ 0.1567813343830147,-0.1881098132555542, \ -0.5940398288585815,0.6767061397330466, \ -0.8266631087504343E-01,0.5799063749491890, \ 0.7755651500224905E-01,-0.6574628899522570, \ 0.1959288531923632,0.8941019681549953E-01, \ -0.2853390500081148,0.2938476934905306, \ 0.2019773488401272E-02,-0.2958674669799366, \ 0.3655020525321305,-0.5615458414677339, \ 0.1960437889355228,-0.5706595245720943E-01, \ -0.7715171223939032,0.8285830748522059, \ 0.1011528057210596,-0.1051837271533038, \ 0.4030921431232027E-02,-0.2124197258439737, \ 0.3605072524272380,-0.1480875265845512, \ -0.1651782199629099,0.7878215733569789E-02, \ 0.1573000042284481,-0.3617927525610758, \ -0.2009201308789826,0.5627128834404685, \ -0.5015820600281335,0.4144850071548899, \ 0.8709705287395679E-01,0.9434068372117834, \ 0.4463509082121593E-02,-0.9478703462960307, \ 0.2005751720829750,-0.1945620110873523, \ -0.6013160997523850E-02,-0.1255658338458569E-01, \ -0.4674319437690188,0.4799885271519170, \ -0.1716908737168969E-01,0.1956591346765856, \ -0.1784900473056204,-0.5462757915789873E-03, \ -0.5780834828017836,0.5786297585932533, \ -0.1833877013210589,0.2818210581349795, \ -0.9843335681437262E-01,0.1916617895075464, \ -0.7885465203364792E-03,-0.1908732429835174, \ -0.4813891231174998E-01,-0.8618855209039119, \ 0.9100244332179739,-0.4424462871708599, \ 0.5232153544540827,-0.8076906728405848E-01, \ 0.2330164669103972,-0.5137198179676699, \ 0.2807033510564895,0.3967080654003286E-12, \ 0.1722425458471176E-11,0.3502410373140708E-12, \ -0.2947942461866533E-11,-0.1032091026644403E-11, \ -0.4359393565820349E-12 ] ) y = np.array ( [ \ -0.1661332605832194,-0.4151078006247312, \ 0.5812410612053462,-0.3712097301616572, \ -0.1004499928153783,0.4716597229753685, \ 0.8135639371543177,-0.4117790813394923, \ -0.4017848558132318,0.4452636911188574, \ -0.4852468361674822,0.3998314505168596E-01, \ 0.3264840198869604,0.9620539017564665E-01, \ -0.4226894100630985,-0.8671007929617915E-01, \ 0.2437514569045547,-0.1570413776087273, \ 0.5641616743542007,-0.1782911592597502, \ -0.3858705150939825,0.6946377256844247E-02, \ -0.3692015206135402,0.3622551433574067, \ 0.5004562312099742,-0.4230479934143149, \ -0.7740823779440852E-01,0.2424079875448238, \ -0.1241158896833233,-0.1182920978621629, \ -0.2247937322813834,0.4503017226062891, \ -0.2255079903239726,0.6518023902669200, \ -0.3211896051207328,-0.3306127851443094, \ 0.9880557751410730,-0.4497748293987996, \ -0.5382809457428603,0.2484874102685690, \ -0.4129794669742624,0.1644920567082871, \ -0.1786101603431211,0.3462729362116060, \ -0.1676627758691386,0.1159937060740129, \ 0.2838304354535469,-0.3998241415280471, \ 0.3320417294495800E-01,0.3819668300942372, \ -0.4151710030395980,-0.4986884177668357, \ 0.6234848514007479,-0.1247964336323278, \ 0.9395983095546842,-0.4669901991392865, \ -0.4726081104148907,0.1236801757609007, \ -0.3155543324553964,0.1918741566946638, \ -0.3455881484181401,-0.7936761338079117E-01, \ 0.4249557617992578,0.3096393919455638, \ 0.1717219053442890,-0.4813612972863747, \ 0.6984686512807867E-01,-0.3555940424550629E-01, \ -0.3428746088226146E-01,-0.3628109884665136, \ -0.4993435124130320,0.8621545008801837, \ 0.7639073125277335,-0.5376719027263360, \ -0.2262354098013041,0.3303032323049931, \ -0.1448076250378262,-0.1854956072669932, \ -0.2086539551781068,-0.1994908334986071, \ 0.4081447886767858,-0.1021307936198597, \ -0.3646265433107137,0.4667573369306311, \ -0.1749249882226239,0.5641011705032603, \ -0.3891761822782046,-0.7369982797233314E-01, \ -0.6368818722810367E-01,0.1373880152000548, \ 0.6892964013212863,-0.5001834353611165, \ -0.1891129659598641,0.7982528447344757, \ -0.4032238584029919,-0.3950289863308680, \ 0.7500159343054114,-0.2158307870331475, \ -0.5341851472730395,0.1685995980230182, \ -0.3577458288655779,0.1891462308433379, \ -0.7541204156110640E-01,-0.2879331142125014, \ 0.3633451557721906,-0.1991229969303482, \ 0.1266927570309605,0.7243023989959384E-01, \ -0.4384238887740483,-0.2952416382641486, \ 0.7336655270377042,-0.4243636513101600, \ 0.7143954781786902,-0.2900318268675506, \ -0.2163615785319861,0.2778601534641544, \ -0.6149857493356037E-01,-0.1719852784726787, \ 0.3404722066425572,-0.1684869281697858, \ 0.4373945770482864,0.9783677410376379E-01, \ -0.5352313511523523,0.9238182796099402, \ -0.5113297043238586,-0.4124885752868345, \ 0.6305510675913090E-01,0.5607334603928896E-01, \ -0.1191284527989022,-0.2936373325714834, \ -0.3714221255853142E-01,0.3307795451305264, \ 0.8626870981050186E-01,-0.1861828895445977, \ 0.9991417973422896E-01,0.4408837263795412, \ -0.5337635778128931,0.9287985143315733E-01, \ -0.1890175235323525,-0.3398740442993634, \ 0.5288915678318241,-0.5498302077599997, \ 0.1091929391010154E+01,-0.5420991832506766, \ 0.1088587293550235,0.1192738297139006, \ -0.2281325590696736,0.5469934639217403, \ -0.2843710521572813,-0.2626224117648735, \ -0.2160151309343958,0.9313869964408443E-01, \ 0.1228764312899015,0.6678287012945778, \ -0.3343874393606580,-0.3334412619346900, \ -0.2195399888316988,-0.4904841366906035E-01, \ 0.2685884025019004,-0.1097454506740659, \ 0.2208567039838767,-0.1111112533091888, \ 0.1023012688991847E+01,-0.5531958654682623, \ -0.4698168235239601,-0.3487105684781340, \ -0.2088144402600705,0.5575250087387288, \ 0.4586604304883936,-0.2753203539748657E-01, \ -0.4311283950878784,0.1424849530503414E-12, \ 0.4163207520226179E-12,0.2564407634679153E-12, \ -0.9489253825677672E-12,0.5725707601904812E-12, \ -0.4307858177802721E-12 ] ) z = np.array ( [ \ -0.3002408419822953,-0.3002408419833086, \ -0.3002408419833821,-0.2367243537500485, \ -0.2367243537456669,-0.2367243537470976, \ -0.1124874139319764E-01,-0.1124874139141120E-01, \ -0.1124874139183386E-01,-0.2091200491939335, \ -0.2091200491951212,-0.2091200491943568, \ -0.3871070169557922,-0.3871070169557220, \ -0.3871070169561885,0.1576758205577684, \ 0.1576758205557184,0.1576758205553296, \ -0.3804994466636671,-0.3804994466631279, \ -0.3804994466634047,-0.2566785126781401, \ -0.2566785126792934,-0.2566785126782982, \ -0.7550445623527601E-02,-0.7550445625559176E-02, \ -0.7550445625114355E-02,0.3966685271521035, \ 0.3966685271469443,0.3966685271536675, \ 0.5436295368746583,0.5436295368772041, \ 0.5436295368824269,0.2108533972691848, \ 0.2108533972755834,0.2108533972664533, \ -0.3846227632566736,-0.3846227632563715, \ -0.3846227632570768,0.4320199156927147E-01, \ 0.4320199156864359E-01,0.4320199157222126E-01, \ -0.3942552261036596,-0.3942552261036111, \ -0.3942552261035123,-0.2900823721656310, \ -0.2900823721654074,-0.2900823721650085, \ -0.4001954700908103,-0.4001954700902223, \ -0.4001954700893645,-0.2514599966999538, \ -0.2514599967001752,-0.2514599967005651, \ -0.2052993465249218,-0.2052993465263826, \ -0.2052993465223245,0.2946594740406009, \ 0.2946594740416467,0.2946594740425612, \ -0.5795226862357377E-01,-0.5795226862121653E-01, \ -0.5795226862189089E-01,-0.2212157144490026, \ -0.2212157144492802,-0.2212157144486162, \ 0.1031915041617615E+01,0.1031915041621368E+01, \ 0.1031915041615854E+01,-0.2843664701680810, \ -0.2843664701691355,-0.2843664701684534, \ -0.3916632709551901,-0.3916632709550742, \ -0.3916632709550005,-0.5853404503565347E-01, \ -0.5853404503336719E-01,-0.5853404503471410E-01, \ 0.4349032593314631,0.4349032593318472, \ 0.4349032593321483,-0.7166469320204438E-01, \ -0.7166469320319802E-01,-0.7166469320166638E-01, \ -0.3651020078507813,-0.3651020078509204, \ -0.3651020078510956,0.6666741608359100, \ 0.6666741608427517,0.6666741608415513, \ -0.2850607980246553,-0.2850607980246767, \ -0.2850607980239678,-0.3767139049041499, \ -0.3767139049041446,-0.3767139049041464, \ -0.3847323113293710,-0.3847323113294659, \ -0.3847323113294736,-0.1430711791014896E-01, \ -0.1430711790970269E-01,-0.1430711791041984E-01, \ 0.2226893434846138,0.2226893434844011, \ 0.2226893434848597,0.1861368718435910, \ 0.1861368718416253,0.1861368718431125, \ -0.1072795622749953,-0.1072795622745489, \ -0.1072795622748554,-0.6485516948547954E-01, \ -0.6485516948561629E-01,-0.6485516948569679E-01, \ 0.5725622693459446,0.5725622693472699, \ 0.5725622693460108,-0.2791087112264201, \ -0.2791087112266160,-0.2791087112254542, \ -0.3714154371111505,-0.3714154371112492, \ -0.3714154371110855,-0.3161738417128371, \ -0.3161738417122791,-0.3161738417134797, \ 0.8373277100424955,0.8373277100425663, \ 0.8373277100420310,0.2498873918545072, \ 0.2498873918552929,0.2498873918556660, \ 0.5108904140436563,0.5108904140435110, \ 0.5108904140435037,-0.3706147756740159, \ -0.3706147756740524,-0.3706147756740479, \ 0.2433004560275582,0.2433004560300772, \ 0.2433004560291551,-0.3538702545014873, \ -0.3538702545021283,-0.3538702545024522, \ -0.3582651744000784,-0.3582651743999515, \ -0.3582651744000865,0.8755062971445479E-01, \ 0.8755062971455986E-01,0.8755062971379197E-01, \ -0.1397307998126365,-0.1397307998123260, \ -0.1397307998124737,-0.2183761124774179, \ -0.2183761124772129,-0.2183761124776710, \ 0.5763507816362148,0.5763507816368744, \ 0.5763507816365103,0.8062208425433149, \ 0.8062208425454057,0.8062208425485021, \ -0.4049658784349283,-0.4049658784337947, \ -0.4049658784361176,0.2225706813796632, \ 0.2225706813790471,0.2225706813801265, \ -0.4096725239466332E-02,-0.4096725240921904E-02, \ -0.4096725238250503E-02,-0.2592447810085974, \ 0.1191149121741652E+01,0.4120653127511454, \ 0.8435262601344188,-0.4003639673386698, \ 0.3321002545060888E-01 ] ) w = np.array ( [ \ 0.4194830168311239E-02,0.4194830168326290E-02, \ 0.4194830168354955E-02,0.6505251369757091E-02, \ 0.6505251369749837E-02,0.6505251369724089E-02, \ 0.1511857423469778E-02,0.1511857423531536E-02, \ 0.1511857423435278E-02,0.3576693638591392E-02, \ 0.3576693638610991E-02,0.3576693638618915E-02, \ 0.3373656058688358E-02,0.3373656058691433E-02, \ 0.3373656058671795E-02,0.1076784154760114E-01, \ 0.1076784154761919E-01,0.1076784154751974E-01, \ 0.3758938857122322E-02,0.3758938857165091E-02, \ 0.3758938857143189E-02,0.8302444588410703E-02, \ 0.8302444588357655E-02,0.8302444588429193E-02, \ 0.2942777031213149E-02,0.2942777031243674E-02, \ 0.2942777031245480E-02,0.8843589566618218E-02, \ 0.8843589566569863E-02,0.8843589566624911E-02, \ 0.9759028519288406E-03,0.9759028519397565E-03, \ 0.9759028519575427E-03,0.2004802238525724E-02, \ 0.2004802238518510E-02,0.2004802238530063E-02, \ 0.9695765259457370E-03,0.9695765259577475E-03, \ 0.9695765259399248E-03,0.1954897938090337E-02, \ 0.1954897938078232E-02,0.1954897938036924E-02, \ 0.3691846518220940E-02,0.3691846518218663E-02, \ 0.3691846518232707E-02,0.7970801887754822E-02, \ 0.7970801887704541E-02,0.7970801887626933E-02, \ 0.1979189926163023E-02,0.1979189926220139E-02, \ 0.1979189926268928E-02,0.3698742482337427E-02, \ 0.3698742482364018E-02,0.3698742482353030E-02, \ 0.1687317723859350E-02,0.1687317723863163E-02, \ 0.1687317723875827E-02,0.3835254087109209E-02, \ 0.3835254087144783E-02,0.3835254087114301E-02, \ 0.1016260451104831E-01,0.1016260451098046E-01, \ 0.1016260451102241E-01,0.5267012161743862E-02, \ 0.5267012161757533E-02,0.5267012161774349E-02, \ 0.1528430187195588E-02,0.1528430187157122E-02, \ 0.1528430187208298E-02,0.2982437800867588E-02, \ 0.2982437800865273E-02,0.2982437800863566E-02, \ 0.1466557323209961E-02,0.1466557323217223E-02, \ 0.1466557323219012E-02,0.1461057795662250E-01, \ 0.1461057795662684E-01,0.1461057795667047E-01, \ 0.5561076940885510E-02,0.5561076940819906E-02, \ 0.5561076940859880E-02,0.9751977499183117E-02, \ 0.9751977499261835E-02,0.9751977499259098E-02, \ 0.5302530732607095E-02,0.5302530732562353E-02, \ 0.5302530732501225E-02,0.7136244952723934E-02, \ 0.7136244952687442E-02,0.7136244952687213E-02, \ 0.3962851386077182E-02,0.3962851386075291E-02, \ 0.3962851386117417E-02,0.3518864309482585E-02, \ 0.3518864309488224E-02,0.3518864309487660E-02, \ 0.1910503466789297E-02,0.1910503466785413E-02, \ 0.1910503466785542E-02,0.1114372702758599E-01, \ 0.1114372702763622E-01,0.1114372702759230E-01, \ 0.9339073844350225E-02,0.9339073844312899E-02, \ 0.9339073844325385E-02,0.1427519172629088E-01, \ 0.1427519172633135E-01,0.1427519172637184E-01, \ 0.4705321020321325E-02,0.4705321020382762E-02, \ 0.4705321020369120E-02,0.4787930353379107E-02, \ 0.4787930353341169E-02,0.4787930353337981E-02, \ 0.3363836009342347E-02,0.3363836009325845E-02, \ 0.3363836009335837E-02,0.1284569887457350E-01, \ 0.1284569887456974E-01,0.1284569887463706E-01, \ 0.2752818417406538E-02,0.2752818417393949E-02, \ 0.2752818417406429E-02,0.2544892612698709E-02, \ 0.2544892612676544E-02,0.2544892612707782E-02, \ 0.3052619386398206E-02,0.3052619386307692E-02, \ 0.3052619386349196E-02,0.8865680919273325E-02, \ 0.8865680919243184E-02,0.8865680919267345E-02, \ 0.9030103498125034E-02,0.9030103498122236E-02, \ 0.9030103498131978E-02,0.2991177381103681E-02, \ 0.2991177381087045E-02,0.2991177381095963E-02, \ 0.2211164766946887E-02,0.2211164766969601E-02, \ 0.2211164766996503E-02,0.2973562062279324E-03, \ 0.2973562062207861E-03,0.2973562062075669E-03, \ 0.9172628789611696E-02,0.9172628789611484E-02, \ 0.9172628789627685E-02,0.9783236108387362E-02, \ 0.9783236108363432E-02,0.9783236108405431E-02, \ 0.1738125981964304E-01,0.1738125981965133E-01, \ 0.1738125981965202E-01,0.9766706161581359E-02, \ 0.9766706161581049E-02,0.9766706161590663E-02, \ 0.3005216389199320E-02,0.3005216389178637E-02, \ 0.3005216389160241E-02,0.2785222700150757E-02, \ 0.2785222700144989E-02,0.2785222700178524E-02, \ 0.3753359578155891E-03,0.3753359578293081E-03, \ 0.3753359577958143E-03,0.2191182863239439E-02, \ 0.2191182863316704E-02,0.2191182863281961E-02, \ 0.2531026444894308E-02,0.2531026444936393E-02, \ 0.2531026444945725E-02,0.1445748928029682E-01, \ 0.1287820052356487E-03,0.1574864463007665E-01, \ 0.4621613088145150E-02,0.2792502892512972E-02, \ 0.1851564470805342E-01 ] ) return x, y, z, w def rule15 ( n ): #*****************************************************************************80 # ## rule15() returns the rule of degree 15. # # Licensing: # # This code is distributed under the MIT license. # # Modified: # # 06 May 2023 # # Author: # # Original FORTRAN77 version by Hong Xiao, Zydrunas Gimbutas. # This version by John Burkardt. # # Reference: # # Hong Xiao, Zydrunas Gimbutas, # A numerical algorithm for the construction of efficient quadrature # rules in two and higher dimensions, # Computers and Mathematics with Applications, # Volume 59, 2010, pages 663-676. # # Input: # # integer N, the number of nodes. # # Output: # # real x(n), y(n), z(n): the coordinates of the nodes. # # real W(N), the weights. # import numpy as np x = np.array ( [ \ 0.2581521194788427, -0.3924996680742822, \ 0.1343475485954617, 0.1747936627600043, \ -0.3848787335398570, 0.2100850707798483, \ -0.2686158385486640, 0.3159539810469303, \ -0.4733814249823749E-01, 0.5356808415765576E-02, \ -0.8659172184635908E-01, 0.8123491343054050E-01, \ -0.8144631134845116, 0.8470041241206219, \ -0.3254101063610144E-01, 0.2249358441935477, \ -0.7323416768865754, 0.5074058326930275, \ -0.5473570384341295, 0.4843265718105462, \ 0.6303046662358983E-01, -0.2378791442311287E-01, \ -0.2016252113668169, 0.2254131257898949, \ -0.7391871819240758E-01, 0.5113049221289290, \ -0.4373862039365108, -0.2968004530699073, \ 0.1205383163903803,0.1762621366794993, \ -0.4241098255347354E-02,-0.3585193417940622, \ 0.3627604400494130,0.4202386364031931E-02, \ 0.1599370643332776E-01,-0.2019609279738776E-01, \ -0.5388551273867861E-01,-0.7018353952881240, \ 0.7557209080267955,0.3646027806298292E-01, \ -0.6343658219832248,0.5979055439202614, \ 0.1258503466822884E-01,0.2393555213511634, \ -0.2519405560194015,0.3851625317792869E-02, \ 0.1534194382150093,-0.1572710635328328, \ -0.3485301409937485E-02,0.1619818108911392, \ -0.1584965094812263,0.5304635114647127E-01, \ 0.3545913748848099,-0.4076377260313040, \ 0.6653928546486268E-01,-0.2403180998360646, \ 0.1737788143712072,-0.1667348931062531, \ -0.2713747582479675,0.4381096513542055, \ 0.9493532822319652E-01,0.1868738963948708E-02, \ -0.9680406718713280E-01,-0.5105981722468006E-01, \ 0.3251121848754134,-0.2740523676507155, \ -0.2080245286773480E-01,-0.1497129535134266, \ 0.1705154063812837,0.2921781238709439, \ 0.1381062592802215,-0.4302843831511968, \ -0.8780905828000338E-01,0.2673000828923510, \ -0.1794910246123719,-0.1944587456799732E-01, \ -0.2823011707456111,0.3017470453136293, \ -0.7313431320411609E-01,-0.5236633756518274, \ 0.5967976888559381,-0.3762507052448836, \ 0.2871315908267298,0.8911911441816055E-01, \ -0.3797896271838643E-01,-0.4650879543817582, \ 0.5030669171001346,0.2750555493489867E-02, \ -0.7277556508895471,0.7250050953960729, \ 0.6123006138565600,-0.1192649298638286, \ -0.4930356839927218,-0.2645727220089428, \ -0.1730736170401170,0.4376463390490505, \ -0.6630962451131286E-01,-0.1763224174379790, \ 0.2426320419492632,-0.4200384093190587E-02, \ -0.5418782850881636,0.5460786691813587, \ 0.5394663228522688E-01,0.1507657818092707, \ -0.2047124140944948,0.1018171426999433, \ -0.5394039692520657,0.4375868265521267, \ 0.1245513301303478,-0.6455557549708775, \ 0.5210044248405197,-0.9855929555799212E-01, \ -0.7473211662573033,0.8458804618152944, \ -0.1755388020283085,-0.5318861672552897, \ 0.7074249692836033,-0.6267629157220122E-02, \ 0.6632219831012681E-01,-0.6005456915289890E-01, \ -0.2023381108267559,0.1094534186561336, \ 0.9288469217061772E-01,-0.6473499743579236E-01, \ -0.3234505788317799,0.3881855762675665, \ -0.1233025545427212,-0.2864321270324415, \ 0.4097346815751876,0.1989648914526389, \ -0.5364226464888502,0.3374577550361906, \ 0.2178991630195039E-01,-0.5426229008583486, \ 0.5208329845563997,-0.2014523059829409, \ -0.1081005526244278,0.3095528586073633, \ -0.1169567835631198E-01,0.1260374294457714, \ -0.1143417510894922,0.6829681010950600E-01, \ -0.2897229857831844,0.2214261756736523, \ -0.4298175003068387,0.2110526002984961, \ 0.2187649000083270,0.6578307149076966, \ -0.1808749039318607,-0.4769558109758388, \ -0.3704630736636612,0.3211543940711805, \ 0.4930867959248819E-01,-0.1193005517808560, \ -0.3998990653549201,0.5191996171357768, \ -0.1504520555101911,0.4460532087610402, \ -0.2956011532508667,0.1975830054753616, \ -0.6709593039696905,0.4733762984943273, \ -0.7463137388742009E-02,-0.4211815306853685, \ 0.4286446680740814,0.2049473200886011E-02, \ -0.2026603403979144,0.2006108671970308, \ 0.7152086010197926E-01,-0.7652447634530471, \ 0.6937239033510662,0.2166839105383212, \ 0.3458968024421906,-0.5625807129804981, \ 0.1279853939984014,0.3081799665774158, \ -0.4361653605757960,-0.1577812374505563E-01, \ -0.6857246456300986,0.7015027693751511, \ -0.7105996230949263E-03,-0.9227565022751169, \ 0.9234671018982127,-0.1882955447783474E-01, \ -0.7344571519218671,0.7532867063996859, \ -0.3375217299349303,-0.2041740513278847, \ 0.5416957812628146,0.4996795038021838, \ 0.1342360979189166,-0.6339156017211199, \ 0.7596408799506882,0.8346506611711336E-01, \ -0.8431059460678011,-0.8820027427037123, \ 0.8657493528015160,0.1625338990220750E-01, \ 0.7067742334596752,-0.2761780760336056, \ -0.4305961574260422,-0.9186459446440826E-01, \ -0.1188760024130717,0.2107405968774760, \ 0.5405133012525005,-0.2620825757773786, \ -0.2784307254751027,0.1458059413495244, \ 0.3829161242112978,-0.5287220655607965, \ -0.1823158001392015E-13,-0.1699106971810907E-13, \ 0.1569922552833598E-12,0.5359985656924711E-13 ] ) y = np.array ( [ \ 0.3041753823660573,0.7147860232646702E-01, \ -0.3756539846925305,0.3435025125820099, \ -0.2037550392031693E-01,-0.3231270086616979, \ -0.2097468053232621,-0.1277547373803833, \ 0.3375015427036143,0.9689475305431051E-01, \ -0.4380824435589394E-01,-0.5308650869840935E-01, \ -0.5078056203162217,-0.4514429365648450, \ 0.9592485568810678,0.7157685583829504, \ -0.1630841238981528,-0.5526844344847958, \ -0.2432354197382121,-0.3524073903550577, \ 0.5956428100933059,0.2465506989117151, \ -0.1438762876493171,-0.1026744112624022, \ -0.5477270770116898,0.2098480507360208, \ 0.3378790262756754,0.3217216264418476E-01, \ -0.2731228135353417,0.2409506508911702, \ 0.4164310762083722,-0.2118884369332560, \ -0.2045426392751013,-0.2089419032777848E-01, \ 0.1408646851164702E-01,0.6807721816119913E-02, \ 0.8415205240779101,-0.4674264849665979, \ -0.3740940391113035,0.7114522048190210, \ -0.3241505753779200,-0.3873016294411025, \ -0.2836499225217341,0.1527239209910285, \ 0.1309260015306806,-0.1793772448187649, \ 0.9302422778043601E-01,0.8635301703831089E-01, \ -0.1850282445363872,0.8949576270733584E-01, \ 0.9553248182902167E-01,-0.4400731765980834, \ 0.2659760759699537,0.1740971006281070, \ 0.2390789648881394,-0.6191477088183470E-01, \ -0.1771641940062932,0.4096210148696401, \ -0.3492071605621237,-0.6041385430752706E-01, \ -0.5696877119302565E-01,0.1107007915544150, \ -0.5373202036138137E-01,-0.3459278156898313, \ 0.1287448090157230,0.2171830066740836, \ 0.1848839297874223,-0.1104574175380845, \ -0.7442651224930893E-01,-0.3281604904126481, \ 0.4171139229086880,-0.8895343249598349E-01, \ -0.2579549661893832,0.5293260794183284E-01, \ 0.2050223582475361,0.3372003947615109, \ -0.1854408187554140,-0.1517595760060760, \ 0.6468984972100610,-0.3867854217281152, \ -0.2601130754819361,-0.1143225565573846, \ -0.2686813906552311,0.3830039472125820, \ 0.5589644756672905,-0.3123729843571679, \ -0.2465914913101748,0.8387518079361266, \ -0.4169938530361755,-0.4217579548999488, \ -0.2157966455115084,0.6381662091083642, \ -0.4223695635968309,0.3525993310475737, \ -0.4054263639319154,0.5282703288436957E-01, \ 0.2418834699054176,-0.1783675542949067, \ -0.6351591561047869E-01,0.6281322404142361, \ -0.3177037595374698,-0.3104284808767618, \ -0.2052354320960713,0.1493368700556973, \ 0.5589856204040973E-01,0.5640658989533277, \ -0.1938567173577759,-0.3702091815955630, \ 0.6735138338400053,-0.2288923009519804, \ -0.4446215328880427,0.9198353888410614, \ -0.5452725481528549,-0.3745628406882141, \ 0.7155166182904237,-0.5097793710516186, \ -0.2057372472388190,-0.7296366071409344E-01, \ 0.3105390428539375E-01,0.4190975642870679E-01, \ -0.9565958696542072E-02,-0.1704469647814408, \ 0.1800129234779798,0.4108633257116824, \ -0.2614938151491584,-0.1493695105625245, \ 0.4019320943505255,-0.3077491917607414, \ -0.9418290258973967E-01,0.5045350850600017, \ -0.7995889207082835E-01,-0.4245761929892107, \ 0.6139865417154907,-0.2881226497939412, \ -0.3258638919215674,0.2411323094026556, \ -0.2950289693335045,0.5389665993088002E-01, \ -0.1387829845896145,0.5926273772376190E-01, \ 0.7952024686583803E-01,0.2951121059631410, \ -0.8840928042931671E-01,-0.2067028255338328, \ 0.4452698313519278E-02,-0.3744592234135989, \ 0.3700065251000597,-0.1709423913837525, \ 0.6551693061916171,-0.4842269148078915, \ -0.1569501964323080,-0.2423553347406391, \ 0.3993055311729469,0.5306418717478397, \ -0.3686382444016378,-0.1620036273461921, \ -0.4281943455532308,0.8380187065320079E-01, \ 0.3443924749000115,0.6606824681258688, \ -0.1592293319651774,-0.5014531361606821, \ 0.4906473846181765,-0.2517869588796617, \ -0.2388604257384930,0.2328287402613732, \ -0.1146394742743420,-0.1181892659870265, \ 0.8423359525185951,-0.3592290945104593, \ -0.4831068580081231,-0.5245097380820163, \ 0.4499086401585516,0.7460109792348690E-01, \ -0.4297479750019432,0.3257125900169633, \ 0.1040353849849871,0.8009161214805088, \ -0.4141223167275365,-0.3867938047529831, \ 0.1065917694853711E+01,-0.5335742447523749, \ -0.5323434501013379,0.8589493170871557, \ -0.4457815310633328,-0.4131677860238335, \ 0.4306281486266579,-0.5076164667662489, \ 0.7698831813957928E-01,-0.4434925905656182, \ 0.6544814393259342,-0.2109888487602922, \ -0.5349560233082641,0.9253463114445929, \ -0.3903902881363264,-0.4904567228554135, \ -0.5186084199612601,0.1009065142816689E+01, \ -0.8915332085968262E-01,0.6566611013461990, \ -0.5675077804865333,0.1903042323297749, \ -0.1747091886794188,-0.1559504365035713E-01, \ -0.9438608628742183E-02,0.4728175542824327, \ -0.4633789456536745,-0.5263345542684673, \ 0.3894389263656265,0.1368956279028533, \ -0.1738343488671503E-14,-0.2490206331023665E-15, \ 0.1028727833546315E-12,0.7810443937532853E-13 ] ) z = np.array ( [ \ 0.1149415369298274,0.1149415369297980, \ 0.1149415369297721,-0.1425141964887960, \ -0.1425141964887534,-0.1425141964887875, \ -0.3897391650202160,-0.3897391650202120, \ -0.3897391650202178,0.7425283167186030, \ 0.7425283167186189,0.7425283167186136, \ -0.2856112242082660,-0.2856112242082698, \ -0.2856112242082572,-0.3891867546444293, \ -0.3891867546444389,-0.3891867546444343, \ 0.1847325582324109,0.1847325582324027, \ 0.1847325582324080,0.5802704682522071, \ 0.5802704682522261,0.5802704682522338, \ -0.3914413911049179,-0.3914413911049140, \ -0.3914413911049208,0.4061500673930710, \ 0.4061500673931097,0.4061500673930845, \ 0.5808632391400850,0.5808632391400872, \ 0.5808632391401026,0.1122300778479799E+01, \ 0.1122300778479790E+01,0.1122300778479803E+01, \ -0.1702382601410010,-0.1702382601409925, \ -0.1702382601409868,-0.2928517214460706E-01, \ -0.2928517214460719E-01,-0.2928517214460035E-01, \ -0.2378639271913669E-01,-0.2378639271913052E-01, \ -0.2378639271915441E-01,-0.3876002482780669, \ -0.3876002482780664,-0.3876002482780634, \ -0.1573276400467179,-0.1573276400467495, \ -0.1573276400467503,-0.9846677659403662E-01, \ -0.9846677659401415E-01,-0.9846677659402990E-01, \ 0.4195749508887953,0.4195749508888120, \ 0.4195749508888156,0.1698706478280650, \ 0.1698706478280417,0.1698706478280619, \ 0.1001045633396894E+01,0.1001045633396896E+01, \ 0.1001045633396904E+01,0.1278252986614525, \ 0.1278252986614319,0.1278252986614156, \ 0.6699851292944298E-01,0.6699851292952046E-01, \ 0.6699851292943053E-01,0.1888603052005784, \ 0.1888603052005364,0.1888603052005152, \ 0.4162319117452538,0.4162319117452708, \ 0.4162319117452612,-0.1429377419107346, \ -0.1429377419107034,-0.1429377419107302, \ 0.7526757476604347E-01,0.7526757476604869E-01, \ 0.7526757476604784E-01,0.5502259745637508E-01, \ 0.5502259745639024E-01,0.5502259745637604E-01, \ -0.3783645730290734,-0.3783645730290731, \ -0.3783645730290733,-0.3557858186989302E-01, \ -0.3557858186987815E-01,-0.3557858186989157E-01, \ -0.1180094770935530,-0.1180094770935434, \ -0.1180094770935428,-0.1637480027557202, \ -0.1637480027557221,-0.1637480027557144, \ 0.2977454860475704,0.2977454860475816, \ 0.2977454860475674,0.2596712604598457, \ 0.2596712604598533,0.2596712604598482, \ 0.2271508926955859,0.2271508926955554, \ 0.2271508926955697,-0.2779926178974129, \ -0.2779926178973848,-0.2779926178974117, \ -0.3823432777224465,-0.3823432777224400, \ -0.3823432777224473,-0.3775386322444910, \ -0.3775386322444932,-0.3775386322444943, \ -0.2829688627011475,-0.2829688627011491, \ -0.2829688627011544,0.9266659902735654, \ 0.9266659902735608,0.9266659902735637, \ 0.7042408708164912,0.7042408708164883, \ 0.7042408708164785,0.4116884047492347, \ 0.4116884047492301,0.4116884047492345, \ 0.1190964787818936E-01,0.1190964787820830E-01, \ 0.1190964787819720E-01,-0.9824886296290353E-01, \ -0.9824886296290938E-01,-0.9824886296292371E-01, \ -0.1210076932793752,-0.1210076932793519, \ -0.1210076932793500,-0.2970323317075053, \ -0.2970323317075050,-0.2970323317075011, \ 0.5828065214604544,0.5828065214604353, \ 0.5828065214604685,-0.3017876570907457, \ -0.3017876570907429,-0.3017876570907401, \ -0.3862244277990527,-0.3862244277990511, \ -0.3862244277990521,-0.3804346304483138, \ -0.3804346304483134,-0.3804346304483132, \ 0.4614518667838061,0.4614518667838234, \ 0.4614518667838163,-0.2664567796530529, \ -0.2664567796530461,-0.2664567796530568, \ -0.3834440210666236,-0.3834440210666228, \ -0.3834440210666243,-0.2809660745834901, \ -0.2809660745835049,-0.2809660745834982, \ 0.1843225423322873,0.1843225423322890, \ 0.1843225423322869,0.7949931745648482, \ 0.7949931745648681,0.7949931745648552, \ -0.2296019504049502,-0.2296019504049503, \ -0.2296019504049410,-0.3768873297184356, \ -0.3768873297184376,-0.3768873297184345, \ -0.2779742390429553,-0.2779742390429600, \ -0.2779742390429549,-0.3088199065240608, \ -0.3088199065240601,-0.3088199065240508, \ -0.3819799973245133,-0.3819799973245119, \ -0.3819799973245152,-0.4015361795222331, \ -0.4015361795222343,-0.4015361795222284, \ -0.3045707129688655,-0.3045707129688613, \ -0.3045707129688553,-0.3905755491124832E-01, \ -0.3905755491127184E-01,-0.3905755491126780E-01, \ -0.3726108784532423,-0.3726108784532439, \ -0.3726108784532431,-0.2575990026123318, \ -0.2575990026123464,-0.2575990026123427, \ -0.3954674471205766,-0.3954674471205773, \ -0.3954674471205850,0.7158508859841455, \ 0.7158508859841465,0.7158508859841323, \ -0.9143187100549784E-01,-0.9143187100549642E-01, \ -0.9143187100549681E-01,-0.2639610543972574, \ -0.2639610543972473,-0.2639610543972535, \ -0.3003943802989339,0.4275416212259733, \ 0.1454645115620674,-0.1072798570797851 ] ) w = np.array ( [ \ 0.2565379947273549E-02,0.2565379947271849E-02, \ 0.2565379947272177E-02,0.6723785911414816E-02, \ 0.6723785911411640E-02,0.6723785911413937E-02, \ 0.3085562545744757E-02,0.3085562545745181E-02, \ 0.3085562545744572E-02,0.4446982777989968E-02, \ 0.4446982777989351E-02,0.4446982777990241E-02, \ 0.1185105459270273E-02,0.1185105459270278E-02, \ 0.1185105459270443E-02,0.8364165694309715E-03, \ 0.8364165694306848E-03,0.8364165694306367E-03, \ 0.1867492375962935E-02,0.1867492375963348E-02, \ 0.1867492375962387E-02,0.4264615556690722E-02, \ 0.4264615556689985E-02,0.4264615556689865E-02, \ 0.1036750961119152E-02,0.1036750961119384E-02, \ 0.1036750961118855E-02,0.2897017453521770E-02, \ 0.2897017453522957E-02,0.2897017453522235E-02, \ 0.9931774636746942E-03,0.9931774636749676E-03, \ 0.9931774636745359E-03,0.2968267531327685E-03, \ 0.2968267531331858E-03,0.2968267531325610E-03, \ 0.2082824878589059E-02,0.2082824878589280E-02, \ 0.2082824878589393E-02,0.3532360099744144E-02, \ 0.3532360099743258E-02,0.3532360099742647E-02, \ 0.9852850436647919E-02,0.9852850436649995E-02, \ 0.9852850436648092E-02,0.4465622015302662E-02, \ 0.4465622015302984E-02,0.4465622015303046E-02, \ 0.1064447126836857E-01,0.1064447126836189E-01, \ 0.1064447126836531E-01,0.4362160716691730E-02, \ 0.4362160716692162E-02,0.4362160716691511E-02, \ 0.7013986090707679E-02,0.7013986090706681E-02, \ 0.7013986090707788E-02,0.4089047890127443E-02, \ 0.4089047890127423E-02,0.4089047890126841E-02, \ 0.8331696920946515E-03,0.8331696920946096E-03, \ 0.8331696920947063E-03,0.5692536319085584E-02, \ 0.5692536319084854E-02,0.5692536319085869E-02, \ 0.1193994326736248E-01,0.1193994326737174E-01, \ 0.1193994326736250E-01,0.4894866890556946E-02, \ 0.4894866890557526E-02,0.4894866890558155E-02, \ 0.4559845100025953E-02,0.4559845100026132E-02, \ 0.4559845100026570E-02,0.1112520926249036E-01, \ 0.1112520926249222E-01,0.1112520926248886E-01, \ 0.2944181342559152E-02,0.2944181342559592E-02, \ 0.2944181342559789E-02,0.8953416346063897E-02, \ 0.8953416346061954E-02,0.8953416346063781E-02, \ 0.3952683058023190E-02,0.3952683058023330E-02, \ 0.3952683058022607E-02,0.1439142717612964E-02, \ 0.1439142717612978E-02,0.1439142717612582E-02, \ 0.5039224704625283E-02,0.5039224704625251E-02, \ 0.5039224704625310E-02,0.7617567889070472E-02, \ 0.7617567889069997E-02,0.7617567889070361E-02, \ 0.1054110867291372E-01,0.1054110867291354E-01, \ 0.1054110867291408E-01,0.1741617181694419E-02, \ 0.1741617181694472E-02,0.1741617181694386E-02, \ 0.1100640373498494E-01,0.1100640373498203E-01, \ 0.1100640373498438E-01,0.6926338144663090E-02, \ 0.6926338144663959E-02,0.6926338144663389E-02, \ 0.2939871895670393E-02,0.2939871895670890E-02, \ 0.2939871895670184E-02,0.1098371982889171E-02, \ 0.1098371982888983E-02,0.1098371982889088E-02, \ 0.2867324218775673E-02,0.2867324218775326E-02, \ 0.2867324218775453E-02,0.2627584056743849E-02, \ 0.2627584056743863E-02,0.2627584056743943E-02, \ 0.2450903116528004E-02,0.2450903116528749E-02, \ 0.2450903116529087E-02,0.3781264707127557E-02, \ 0.3781264707127677E-02,0.3781264707128319E-02, \ 0.9717660774153364E-02,0.9717660774155940E-02, \ 0.9717660774153394E-02,0.5844696436169811E-02, \ 0.5844696436168778E-02,0.5844696436168716E-02, \ 0.7798609566561363E-02,0.7798609566560966E-02, \ 0.7798609566562299E-02,0.9537993724461966E-02, \ 0.9537993724462559E-02,0.9537993724462396E-02, \ 0.6470868601806971E-02,0.6470868601806687E-02, \ 0.6470868601806209E-02,0.9788338589999005E-02, \ 0.9788338589999012E-02,0.9788338589999477E-02, \ 0.4149912310618085E-02,0.4149912310618563E-02, \ 0.4149912310618460E-02,0.2801823664802904E-02, \ 0.2801823664802910E-02,0.2801823664803036E-02, \ 0.3473047605746596E-02,0.3473047605746489E-02, \ 0.3473047605747130E-02,0.8146696772355114E-02, \ 0.8146696772356077E-02,0.8146696772355570E-02, \ 0.4104346629768971E-02,0.4104346629769071E-02, \ 0.4104346629768999E-02,0.3673293016416287E-02, \ 0.3673293016415687E-02,0.3673293016415978E-02, \ 0.7385814346097036E-02,0.7385814346096885E-02, \ 0.7385814346097676E-02,0.1952835342529582E-02, \ 0.1952835342529196E-02,0.1952835342529467E-02, \ 0.2956577367937866E-02,0.2956577367938132E-02, \ 0.2956577367937872E-02,0.2429727102722713E-02, \ 0.2429727102722471E-02,0.2429727102722800E-02, \ 0.7838569405690889E-02,0.7838569405690287E-02, \ 0.7838569405690948E-02,0.4786830078294293E-02, \ 0.4786830078294275E-02,0.4786830078294352E-02, \ 0.6464879373388097E-03,0.6464879373388156E-03, \ 0.6464879373387403E-03,0.1094759729336998E-02, \ 0.1094759729336943E-02,0.1094759729337179E-02, \ 0.4183486775030887E-02,0.4183486775030987E-02, \ 0.4183486775031043E-02,0.1388382329059297E-02, \ 0.1388382329058254E-02,0.1388382329057900E-02, \ 0.1547261679853963E-02,0.1547261679853909E-02, \ 0.1547261679853913E-02,0.5245559039887955E-03, \ 0.5245559039888078E-03,0.5245559039885548E-03, \ 0.4714073461717449E-03,0.4714073461717063E-03, \ 0.4714073461712849E-03,0.1734297963526248E-02, \ 0.1734297963526404E-02,0.1734297963527124E-02, \ 0.2194380264311005E-02,0.2194380264311055E-02, \ 0.2194380264311861E-02,0.1505920846848116E-02, \ 0.1505920846847692E-02,0.1505920846848549E-02, \ 0.1092191482369307E-01,0.1402579642206070E-01, \ 0.9137907285788647E-02,0.8807144129412933E-02 ] ) return x, y, z, w def tetrahedron_arbq ( degree, n ): #*****************************************************************************80 # ## tetrahedron_arbq() returns a quadrature rule for a tetrahedron. # # Licensing: # # This code is distributed under the MIT license. # # Modified: # # 06 May 2023 # # Author: # # Original FORTRAN77 version by Hong Xiao, Zydrunas Gimbutas. # This version by John Burkardt. # # Reference: # # Hong Xiao, Zydrunas Gimbutas, # A numerical algorithm for the construction of efficient quadrature # rules in two and higher dimensions, # Computers and Mathematics with Applications, # Volume 59, 2010, pages 663-676. # # Input: # # integer DEGREE, the desired degree of exactness. # 0 <= DEGREE <= 15. # # integer N, the number of points in the rule. # This value should be requested first from TETRAHEDRON_ARBQ_SIZE. # # Output: # # real x(n), y(n), z(n): the quadrature nodes. # # real W(N), the quadrature weights. # import numpy as np if ( degree == 0 ): x, y, z, w = rule00 ( n ) elif ( degree == 1 ): x, y, z, w = rule01 ( n ) elif ( degree == 2 ): x, y, z, w = rule02 ( n ) elif ( degree == 3 ): x, y, z, w = rule03 ( n ) elif ( degree == 4 ): x, y, z, w = rule04 ( n ) elif ( degree == 5 ): x, y, z, w = rule05 ( n ) elif ( degree == 6 ): x, y, z, w = rule06 ( n ) elif ( degree == 7 ): x, y, z, w = rule07 ( n ) elif ( degree == 8 ): x, y, z, w = rule08 ( n ) elif ( degree == 9 ): x, y, z, w = rule09 ( n ) elif ( degree == 10 ): x, y, z, w = rule10 ( n ) elif ( degree == 11 ): x, y, z, w = rule11 ( n ) elif ( degree == 12 ): x, y, z, w = rule12 ( n ) elif ( degree == 13 ): x, y, z, w = rule13 ( n ) elif ( degree == 14 ): x, y, z, w = rule14 ( n ) elif ( degree == 15 ): x, y, z, w = rule15 ( n ) else: print ( '' ) print ( 'tetrahedron_arbq(): Fatal error!' ) print ( ' Illegal value of DEGREE.' ) raise Exception ( 'tetrahedron_arbq(): Fatal error!' ) d = np.sum ( w ) volume = np.sqrt ( 8.0 ) / 3.0 w = w * volume / d return x, y, z, w def tetrahedron_arbq_size ( degree ): #*****************************************************************************80 # ## tetrahedron_arbq_size() returns the size of quadrature rule for a tetrahedron. # # Licensing: # # This code is distributed under the MIT license. # # Modified: # # 06 May 2023 # # Author: # # John Burkardt. # # Reference: # # Hong Xiao, Zydrunas Gimbutas, # A numerical algorithm for the construction of efficient quadrature # rules in two and higher dimensions, # Computers and Mathematics with Applications, # Volume 59, 2010, pages 663-676. # # Input: # # integer DEGREE, the desired degree of exactness. # 0 <= DEGREE <= 15. # # Output: # # integer n: the number of points in the rule. # import numpy as np n_save = np.array ( [ \ 1, 1, 4, 6, 11, 14, 23, 31, 44, 57, 74, \ 95, 122, 146, 177, 214 ] ) if ( degree < 0 or 15 < degree ): print ( '' ) print ( 'tetrahedron_arbq_size(): Fatal error!' ) print ( ' Illegal value of DEGREE.' ) raise Exception ( 'tetrahedron_arbq_size(): Fatal error!' ) n = n_save[degree] return n def tetrahedron_ref ( ): #*****************************************************************************80 # ## tetrahedron_ref() returns the vertices of the reference tetrahedron. # # Discussion: # # The reference tetrahedron has its centroid at (0,0,0). # # Licensing: # # This code is distributed under the MIT license. # # Modified: # # 08 July 2014 # # Author: # # John Burkardt. # # Reference: # # Hong Xiao, Zydrunas Gimbutas, # A numerical algorithm for the construction of efficient quadrature # rules in two and higher dimensions, # Computers and Mathematics with Applications, # Volume 59, 2010, pages 663-676. # # Output: # # real V1(3), V2(3), V3(3), V4(3), the vertices. # import numpy as np v1 = np.array ( [ - 1.0, - 1.0 / np.sqrt ( 3.0 ), - 1.0 / np.sqrt ( 6.0 ) ] ) v2 = np.array ( [ 0.0, 2.0 / np.sqrt ( 3.0 ), - 1.0 / np.sqrt ( 6.0 ) ] ) v3 = np.array ( [ 1.0, - 1.0 / np.sqrt ( 3.0 ), - 1.0 / np.sqrt ( 6.0 ) ] ) v4 = np.array ( [ 0.0, 0.0, 3.0 / np.sqrt ( 6.0 ) ] ) return v1, v2, v3, v4 def timestamp ( ): #*****************************************************************************80 # ## timestamp() prints the date as a timestamp. # # Licensing: # # This code is distributed under the MIT license. # # Modified: # # 21 August 2019 # # Author: # # John Burkardt # import time t = time.time ( ) print ( time.ctime ( t ) ) return if ( __name__ == '__main__' ): timestamp ( ) tetrahedron_arbq_rule_test ( ) timestamp ( )