9 April 2023 8:53:36.138 AM tetrahedron_keast_rule_test(): FORTRAN90 version Test TETRAHEDRON_KEAST_RULE(). TEST01 KEAST_RULE_NUM returns the number of rules; KEAST_DEGREE returns the degree of a rule; KEAST_ORDER_NUM returns the order of a rule. Number of available rules = 10 Rule Degree Order 1 0 1 2 1 4 3 2 5 4 3 10 5 4 11 6 4 14 7 5 15 8 6 24 9 7 31 10 8 45 TEST02 KEAST_RULE returns the points and weights of a Keast rule for the tetrahedron. In this test, we simply check that the weights sum to 1. Number of available rules = 10 Rule Sum of weights 1 1.000000000000000 2 1.000000000000000 3 0.9999999999999998 4 1.000000000000000 5 0.9999999999999999 6 1.000000000000000 7 0.9999999999999999 8 0.9999999999999996 9 1.000000000000000 10 0.9999999999999990 TEST03 KEAST_RULE returns the points and weights of a Keast rule for the tetrahedron. In this test, we simply check that, for each quadrature point, the barycentric coordinates sum to 1. Rule Suborder Sum of coordinates 1 1 1.000000000000000 2 1 1.000000000000000 3 2 1.000000000000000 0.9999999999999999 4 2 1.000000000000000 1.000000000000000 5 3 1.000000000000000 0.9999999999999999 1.000000000000000 6 3 1.000000000000000 0.9999999999999999 1.000000000000000 7 4 1.000000000000000 1.000000000000000 1.000000000000000 1.000000000000000 8 4 1.000000000000000 0.9999999999999999 1.000000000000000 1.000000000000000 9 6 1.000000000000000 1.000000000000000 1.000000000000000 1.000000000000000 1.000000000000000 1.000000000000000 10 7 1.000000000000000 1.000000000000000 0.9999999999999999 1.000000000000000 1.000000000000000 1.000000000000000 1.000000000000000 TEST04 TETRAHEDRON_REFERENCE_TO_PHYSICAL transforms a rule on the unit (reference) tetrahedron to a rule on an arbitrary (physical) tetrahedron. The reference tetrahedron: 1 0.00000 0.00000 0.00000 2 1.00000 0.00000 0.00000 3 0.00000 1.00000 0.00000 4 0.00000 0.00000 1.00000 Rule 2 for reference tetrahedron with volume = 0.166667 X Y Z W 1 0.585410 0.138197 0.138197 0.250000 2 0.138197 0.138197 0.138197 0.250000 3 0.138197 0.138197 0.585410 0.250000 4 0.138197 0.585410 0.138197 0.250000 The physical tetrahedron: 1 1.00000 2.00000 3.00000 2 2.00000 2.00000 3.00000 3 1.00000 3.00000 3.00000 4 1.00000 2.00000 9.00000 Rule 2 for physical tetrahedron with volume = 1.00000 X Y Z W 1 1.58541 2.13820 3.82918 0.250000 2 1.13820 2.13820 3.82918 0.250000 3 1.13820 2.13820 6.51246 0.250000 4 1.13820 2.58541 3.82918 0.250000 TEST05 Demonstrate the KEAST rules on a sequence of monomial integrands X^A Y^B Z^C on the unit tetrahedron. Rule Order Quad F(X,Y,Z) = X^0 * Y^0 * Z^0 1 1 1.00000 2 4 1.00000 3 5 1.00000 4 10 1.00000 5 11 1.00000 6 14 1.00000 7 15 1.00000 8 24 1.00000 9 31 1.00000 10 45 1.00000 F(X,Y,Z) = X^1 * Y^0 * Z^0 1 1 0.250000 2 4 0.250000 3 5 0.250000 4 10 0.250000 5 11 0.250000 6 14 0.250000 7 15 0.250000 8 24 0.250000 9 31 0.250000 10 45 0.250000 F(X,Y,Z) = X^0 * Y^1 * Z^0 1 1 0.250000 2 4 0.250000 3 5 0.250000 4 10 0.250000 5 11 0.250000 6 14 0.250000 7 15 0.250000 8 24 0.250000 9 31 0.250000 10 45 0.250000 F(X,Y,Z) = X^0 * Y^0 * Z^1 1 1 0.250000 2 4 0.250000 3 5 0.250000 4 10 0.250000 5 11 0.250000 6 14 0.250000 7 15 0.250000 8 24 0.250000 9 31 0.250000 10 45 0.250000 F(X,Y,Z) = X^2 * Y^0 * Z^0 1 1 0.625000E-01 2 4 0.100000 3 5 0.100000 4 10 0.100000 5 11 0.100000 6 14 0.100000 7 15 0.100000 8 24 0.100000 9 31 0.100000 10 45 0.100000 F(X,Y,Z) = X^1 * Y^1 * Z^0 1 1 0.625000E-01 2 4 0.500000E-01 3 5 0.500000E-01 4 10 0.500000E-01 5 11 0.500000E-01 6 14 0.500000E-01 7 15 0.500000E-01 8 24 0.500000E-01 9 31 0.500000E-01 10 45 0.500000E-01 F(X,Y,Z) = X^0 * Y^2 * Z^0 1 1 0.625000E-01 2 4 0.100000 3 5 0.100000 4 10 0.100000 5 11 0.100000 6 14 0.100000 7 15 0.100000 8 24 0.100000 9 31 0.100000 10 45 0.100000 F(X,Y,Z) = X^1 * Y^0 * Z^1 1 1 0.625000E-01 2 4 0.500000E-01 3 5 0.500000E-01 4 10 0.500000E-01 5 11 0.500000E-01 6 14 0.500000E-01 7 15 0.500000E-01 8 24 0.500000E-01 9 31 0.500000E-01 10 45 0.500000E-01 F(X,Y,Z) = X^0 * Y^1 * Z^1 1 1 0.625000E-01 2 4 0.500000E-01 3 5 0.500000E-01 4 10 0.500000E-01 5 11 0.500000E-01 6 14 0.500000E-01 7 15 0.500000E-01 8 24 0.500000E-01 9 31 0.500000E-01 10 45 0.500000E-01 F(X,Y,Z) = X^0 * Y^0 * Z^2 1 1 0.625000E-01 2 4 0.100000 3 5 0.100000 4 10 0.100000 5 11 0.100000 6 14 0.100000 7 15 0.100000 8 24 0.100000 9 31 0.100000 10 45 0.100000 F(X,Y,Z) = X^3 * Y^0 * Z^0 1 1 0.156250E-01 2 4 0.521353E-01 3 5 0.500000E-01 4 10 0.500000E-01 5 11 0.500000E-01 6 14 0.500000E-01 7 15 0.500000E-01 8 24 0.500000E-01 9 31 0.500000E-01 10 45 0.500000E-01 F(X,Y,Z) = X^2 * Y^1 * Z^0 1 1 0.156250E-01 2 4 0.159549E-01 3 5 0.166667E-01 4 10 0.166667E-01 5 11 0.166667E-01 6 14 0.166667E-01 7 15 0.166667E-01 8 24 0.166667E-01 9 31 0.166667E-01 10 45 0.166667E-01 F(X,Y,Z) = X^1 * Y^2 * Z^0 1 1 0.156250E-01 2 4 0.159549E-01 3 5 0.166667E-01 4 10 0.166667E-01 5 11 0.166667E-01 6 14 0.166667E-01 7 15 0.166667E-01 8 24 0.166667E-01 9 31 0.166667E-01 10 45 0.166667E-01 F(X,Y,Z) = X^0 * Y^3 * Z^0 1 1 0.156250E-01 2 4 0.521353E-01 3 5 0.500000E-01 4 10 0.500000E-01 5 11 0.500000E-01 6 14 0.500000E-01 7 15 0.500000E-01 8 24 0.500000E-01 9 31 0.500000E-01 10 45 0.500000E-01 F(X,Y,Z) = X^2 * Y^0 * Z^1 1 1 0.156250E-01 2 4 0.159549E-01 3 5 0.166667E-01 4 10 0.166667E-01 5 11 0.166667E-01 6 14 0.166667E-01 7 15 0.166667E-01 8 24 0.166667E-01 9 31 0.166667E-01 10 45 0.166667E-01 F(X,Y,Z) = X^1 * Y^1 * Z^1 1 1 0.156250E-01 2 4 0.904508E-02 3 5 0.833333E-02 4 10 0.833333E-02 5 11 0.833333E-02 6 14 0.833333E-02 7 15 0.833333E-02 8 24 0.833333E-02 9 31 0.833333E-02 10 45 0.833333E-02 F(X,Y,Z) = X^0 * Y^2 * Z^1 1 1 0.156250E-01 2 4 0.159549E-01 3 5 0.166667E-01 4 10 0.166667E-01 5 11 0.166667E-01 6 14 0.166667E-01 7 15 0.166667E-01 8 24 0.166667E-01 9 31 0.166667E-01 10 45 0.166667E-01 F(X,Y,Z) = X^1 * Y^0 * Z^2 1 1 0.156250E-01 2 4 0.159549E-01 3 5 0.166667E-01 4 10 0.166667E-01 5 11 0.166667E-01 6 14 0.166667E-01 7 15 0.166667E-01 8 24 0.166667E-01 9 31 0.166667E-01 10 45 0.166667E-01 F(X,Y,Z) = X^0 * Y^1 * Z^2 1 1 0.156250E-01 2 4 0.159549E-01 3 5 0.166667E-01 4 10 0.166667E-01 5 11 0.166667E-01 6 14 0.166667E-01 7 15 0.166667E-01 8 24 0.166667E-01 9 31 0.166667E-01 10 45 0.166667E-01 F(X,Y,Z) = X^0 * Y^0 * Z^3 1 1 0.156250E-01 2 4 0.521353E-01 3 5 0.500000E-01 4 10 0.500000E-01 5 11 0.500000E-01 6 14 0.500000E-01 7 15 0.500000E-01 8 24 0.500000E-01 9 31 0.500000E-01 10 45 0.500000E-01 TEST06 KEAST_RULE returns the points and weights of a Keast rule for the tetrahedron. In this test, we simply print a rule. Rule = 10 Degree = 8 Order = 3 I W X Y Z 1 -0.235962 0.250000 0.250000 0.250000 2 0.244879E-01 0.617587 0.127471 0.127471 3 0.244879E-01 0.127471 0.127471 0.127471 4 0.244879E-01 0.127471 0.127471 0.617587 5 0.244879E-01 0.127471 0.617587 0.127471 6 0.394852E-02 0.903764 0.320788E-01 0.320788E-01 7 0.394852E-02 0.320788E-01 0.320788E-01 0.320788E-01 8 0.394852E-02 0.320788E-01 0.320788E-01 0.903764 9 0.394852E-02 0.320788E-01 0.903764 0.320788E-01 10 0.263056E-01 0.450223 0.497771E-01 0.497771E-01 11 0.263056E-01 0.497771E-01 0.450223 0.497771E-01 12 0.263056E-01 0.497771E-01 0.497771E-01 0.450223 13 0.263056E-01 0.497771E-01 0.450223 0.450223 14 0.263056E-01 0.450223 0.497771E-01 0.450223 15 0.263056E-01 0.450223 0.450223 0.497771E-01 16 0.829804E-01 0.316270 0.183730 0.183730 17 0.829804E-01 0.183730 0.316270 0.183730 18 0.829804E-01 0.183730 0.183730 0.316270 19 0.829804E-01 0.183730 0.316270 0.316270 20 0.829804E-01 0.316270 0.183730 0.316270 21 0.829804E-01 0.316270 0.316270 0.183730 22 0.254426E-01 0.229178E-01 0.231901 0.231901 23 0.254426E-01 0.231901 0.229178E-01 0.231901 24 0.254426E-01 0.231901 0.231901 0.229178E-01 25 0.254426E-01 0.513280 0.231901 0.231901 26 0.254426E-01 0.231901 0.513280 0.231901 27 0.254426E-01 0.231901 0.231901 0.513280 28 0.254426E-01 0.231901 0.229178E-01 0.513280 29 0.254426E-01 0.229178E-01 0.513280 0.231901 30 0.254426E-01 0.513280 0.231901 0.229178E-01 31 0.254426E-01 0.231901 0.513280 0.229178E-01 32 0.254426E-01 0.229178E-01 0.231901 0.513280 33 0.254426E-01 0.513280 0.229178E-01 0.231901 34 0.134324E-01 0.730313 0.379700E-01 0.379700E-01 35 0.134324E-01 0.379700E-01 0.730313 0.379700E-01 36 0.134324E-01 0.379700E-01 0.379700E-01 0.730313 37 0.134324E-01 0.193746 0.379700E-01 0.379700E-01 38 0.134324E-01 0.379700E-01 0.193746 0.379700E-01 39 0.134324E-01 0.379700E-01 0.379700E-01 0.193746 40 0.134324E-01 0.379700E-01 0.730313 0.193746 41 0.134324E-01 0.730313 0.193746 0.379700E-01 42 0.134324E-01 0.193746 0.379700E-01 0.730313 43 0.134324E-01 0.379700E-01 0.193746 0.730313 44 0.134324E-01 0.730313 0.379700E-01 0.193746 45 0.134324E-01 0.193746 0.730313 0.379700E-01 TEST07 KEAST_RULE returns the points and weights of a Keast rule for the tetrahedron. In this test, we write each rule to a file. Wrote rule 1 to "keast0_w.txt" and "keast0_x.txt". Wrote rule 2 to "keast1_w.txt" and "keast1_x.txt". Wrote rule 3 to "keast2_w.txt" and "keast2_x.txt". Wrote rule 4 to "keast3_w.txt" and "keast3_x.txt". Wrote rule 5 to "keast4_w.txt" and "keast4_x.txt". Wrote rule 6 to "keast5_w.txt" and "keast5_x.txt". Wrote rule 7 to "keast6_w.txt" and "keast6_x.txt". Wrote rule 8 to "keast7_w.txt" and "keast7_x.txt". Wrote rule 9 to "keast8_w.txt" and "keast8_x.txt". Wrote rule 10 to "keast9_w.txt" and "keast9_x.txt". TEST08 Transform a Keast rule to a general tetrahedron. Apply it to monomial integrands. The physical tetrahedron: 1 1.00000 2.00000 3.00000 2 4.00000 1.00000 2.00000 3 2.00000 4.00000 4.00000 4 3.00000 2.00000 5.00000 Rule 7 for physical tetrahedron with volume = 2.66667 X Y Z W 1 2.50000 2.25000 3.50000 0.181702 2 2.00000 2.66667 4.00000 0.361607E-01 3 3.00000 2.33333 3.66667 0.361607E-01 4 2.33333 2.33333 3.00000 0.361607E-01 5 2.66667 1.66667 3.33333 0.361607E-01 6 3.45455 1.45455 2.54545 0.698715E-01 7 1.54545 2.09091 3.18182 0.698715E-01 8 2.81818 2.09091 4.45455 0.698715E-01 9 2.18182 3.36364 3.81818 0.698715E-01 10 2.50000 1.69965 2.76620 0.656948E-01 11 1.76620 2.80035 3.50000 0.656948E-01 12 2.13310 2.06655 3.86690 0.656948E-01 13 2.50000 2.80035 4.23380 0.656948E-01 14 3.23380 1.69965 3.50000 0.656948E-01 15 2.86690 2.43345 3.13310 0.656948E-01 Rule Order Quad F(X,Y,Z) = X^0 * Y^0 * Z^0 7 15 2.666666666666666 F(X,Y,Z) = X^1 * Y^0 * Z^0 7 15 6.666666666666666 F(X,Y,Z) = X^0 * Y^1 * Z^0 7 15 6.000000000000000 F(X,Y,Z) = X^0 * Y^0 * Z^1 7 15 9.333333333333334 F(X,Y,Z) = X^2 * Y^0 * Z^0 7 15 17.33333333333333 F(X,Y,Z) = X^1 * Y^1 * Z^0 7 15 14.66666666666666 F(X,Y,Z) = X^0 * Y^2 * Z^0 7 15 14.13333333333333 F(X,Y,Z) = X^1 * Y^0 * Z^1 7 15 23.20000000000000 F(X,Y,Z) = X^0 * Y^1 * Z^1 7 15 21.33333333333333 F(X,Y,Z) = X^0 * Y^0 * Z^2 7 15 33.33333333333333 F(X,Y,Z) = X^3 * Y^0 * Z^0 7 15 46.66666666666666 F(X,Y,Z) = X^2 * Y^1 * Z^0 7 15 37.20000000000000 F(X,Y,Z) = X^1 * Y^2 * Z^0 7 15 33.86666666666667 F(X,Y,Z) = X^0 * Y^3 * Z^0 7 15 34.79999999999999 F(X,Y,Z) = X^2 * Y^0 * Z^1 7 15 59.82222222222221 F(X,Y,Z) = X^1 * Y^1 * Z^1 7 15 51.95555555555556 F(X,Y,Z) = X^0 * Y^2 * Z^1 7 15 50.93333333333334 F(X,Y,Z) = X^1 * Y^0 * Z^2 7 15 82.57777777777777 F(X,Y,Z) = X^0 * Y^1 * Z^2 7 15 77.19999999999997 F(X,Y,Z) = X^0 * Y^0 * Z^3 7 15 121.3333333333333 F(X,Y,Z) = X^4 * Y^0 * Z^0 7 15 129.6000000000000 F(X,Y,Z) = X^3 * Y^1 * Z^0 7 15 97.56190476190474 F(X,Y,Z) = X^2 * Y^2 * Z^0 7 15 83.97460317460316 F(X,Y,Z) = X^1 * Y^3 * Z^0 7 15 81.94285714285712 F(X,Y,Z) = X^0 * Y^4 * Z^0 7 15 89.37142857142857 F(X,Y,Z) = X^3 * Y^0 * Z^1 7 15 159.3904761904762 F(X,Y,Z) = X^2 * Y^1 * Z^1 7 15 130.9714285714286 F(X,Y,Z) = X^1 * Y^2 * Z^1 7 15 121.7904761904762 F(X,Y,Z) = X^0 * Y^3 * Z^1 7 15 126.8571428571429 F(X,Y,Z) = X^2 * Y^0 * Z^2 7 15 211.6825396825396 F(X,Y,Z) = X^1 * Y^1 * Z^2 7 15 187.6952380952381 F(X,Y,Z) = X^0 * Y^2 * Z^2 7 15 186.3746031746032 F(X,Y,Z) = X^1 * Y^0 * Z^3 7 15 300.1904761904761 F(X,Y,Z) = X^0 * Y^1 * Z^3 7 15 284.0380952380952 F(X,Y,Z) = X^0 * Y^0 * Z^4 7 15 449.6000000000000 TETRAHEDRON_KEAST_RULE_TEST(): Normal end of execution. 9 April 2023 8:53:36.140 AM