13#include <Kokkos_Core.hpp>
31template <GeoSupport T>
45 Kokkos::abort(
"not implemented in the field transfer");
50KOKKOS_INLINE_FUNCTION
bool
57KOKKOS_INLINE_FUNCTION
bool
60 return (Kokkos::abs(xi - 0.5) < 0.5 +
_EPS_BARY);
64KOKKOS_INLINE_FUNCTION
bool
72KOKKOS_INLINE_FUNCTION
bool
75 return (Kokkos::abs(xi - 0.5) < 0.5 +
_EPS_BARY) &&
76 (Kokkos::abs(eta - 0.5) < 0.5 +
_EPS_BARY);
79KOKKOS_INLINE_FUNCTION
bool
87KOKKOS_INLINE_FUNCTION
bool
90 return (Kokkos::abs(xi - 0.5) < 0.5 +
_EPS_BARY) &&
91 (Kokkos::abs(eta - 0.5) < 0.5 +
_EPS_BARY) &&
92 (Kokkos::abs(phi - 0.5) < 0.5 +
_EPS_BARY);
96KOKKOS_INLINE_FUNCTION
bool
101 (Kokkos::abs(phi - 0.5) < 0.5 +
_EPS_BARY);
105KOKKOS_INLINE_FUNCTION
bool
108 const auto x = 0.5 * (xi - eta);
109 const auto y = 0.5 * (xi + eta);
111 const auto s = 1.0 - z;
112 return (Kokkos::abs(x) < 0.5 * s +
_EPS_BARY) &&
113 (Kokkos::abs(y) < 0.5 * s +
_EPS_BARY) &&
114 (Kokkos::abs(z - 0.5) < 0.5 +
_EPS_BARY);
130template <
typename ExecSpace>
135 KOKKOS_INLINE_FUNCTION
static void
137 Kokkos::View<fp_t *, ExecSpace> sfv) {
140 KOKKOS_INLINE_FUNCTION
static void
142 Kokkos::View<fp_t *, ExecSpace> sfv) {
145 KOKKOS_INLINE_FUNCTION
static void
148 Kokkos::View<fp_t **, ExecSpace> sfddv) {
156template <
typename ExecSpace>
161 KOKKOS_INLINE_FUNCTION
static void
163 Kokkos::View<fp_t *, ExecSpace> sfv) {
167 KOKKOS_INLINE_FUNCTION
static void
169 Kokkos::View<fp_t **, ExecSpace> sfdv) {
172 KOKKOS_INLINE_FUNCTION
static void
175 Kokkos::View<fp_t **, ExecSpace> sfddv) {
183template <
typename ExecSpace>
188 KOKKOS_INLINE_FUNCTION
static void
190 Kokkos::View<fp_t *, ExecSpace> sfv) {
195 KOKKOS_INLINE_FUNCTION
static void
197 Kokkos::View<fp_t **, ExecSpace> sfdv) {
202 KOKKOS_INLINE_FUNCTION
static void
205 Kokkos::View<fp_t **, ExecSpace> sfddv) {
213template <
typename ExecSpace>
218 KOKKOS_INLINE_FUNCTION
static void
220 Kokkos::View<fp_t *, ExecSpace> sfv) {
221 const fp_t x0 = 2.0 * xi - 1.0;
222 sfv(0) = -x0 * (1.0 - xi);
224 sfv(2) = xi * (4.0 - 4.0 * xi);
227 KOKKOS_INLINE_FUNCTION
static void
229 Kokkos::View<fp_t **, ExecSpace> sfdv) {
230 const fp_t x0 = 4.0 * xi;
231 sfdv(0, 0) = x0 - 3.0;
232 sfdv(0, 1) = x0 - 1.0;
233 sfdv(0, 2) = 4.0 - 8.0 * xi;
236 KOKKOS_INLINE_FUNCTION
static void
239 Kokkos::View<fp_t **, ExecSpace> sfddv) {
261template <
typename ExecSpace>
266 KOKKOS_INLINE_FUNCTION
static void
268 Kokkos::View<fp_t *, ExecSpace> sfv) {
269 sfv(0) = -eta - xi + 1.0;
274 KOKKOS_INLINE_FUNCTION
static void
276 Kokkos::View<fp_t **, ExecSpace> sfdv) {
285 KOKKOS_INLINE_FUNCTION
static void
288 Kokkos::View<fp_t **, ExecSpace> sfddv) {
296template <
typename ExecSpace>
301 KOKKOS_INLINE_FUNCTION
static void
303 Kokkos::View<fp_t *, ExecSpace> sfv) {
304 const fp_t x0 = 2 * eta;
305 const fp_t x1 = 2 * xi - 1;
306 const fp_t x2 = -eta - xi + 1;
307 const fp_t x3 = 4 * xi;
308 sfv(0) = x2 * (-x0 - x1);
310 sfv(2) = eta * (x0 - 1.0);
313 sfv(5) = 4.0 * eta * x2;
316 KOKKOS_INLINE_FUNCTION
static void
318 Kokkos::View<fp_t **, ExecSpace> sfdv) {
319 const fp_t x0 = 4.0 * eta;
320 const fp_t x1 = 4.0 * xi;
321 const fp_t x2 = x0 + x1 - 3.0;
324 sfdv(0, 1) = x1 - 1.0;
327 sfdv(1, 2) = x0 - 1.0;
328 sfdv(0, 3) = -x0 - 8.0 * xi + 4.0;
333 sfdv(1, 5) = -8.0 * eta - x1 + 4.0;
336 KOKKOS_INLINE_FUNCTION
static void
339 Kokkos::View<fp_t **, ExecSpace> sfddv) {
381template <
typename ExecSpace>
386 KOKKOS_INLINE_FUNCTION
static void
388 Kokkos::View<fp_t *, ExecSpace> sfv) {
389 const fp_t x0 = 1 - eta;
390 const fp_t x1 = 1 - xi;
397 KOKKOS_INLINE_FUNCTION
static void
399 Kokkos::View<fp_t **, ExecSpace> sfdv) {
400 const fp_t x0 = eta - 1;
401 const fp_t x1 = xi - 1;
412 KOKKOS_INLINE_FUNCTION
static void
415 Kokkos::View<fp_t **, ExecSpace> sfddv) {
445template <
typename ExecSpace>
450 KOKKOS_INLINE_FUNCTION
static void
452 Kokkos::View<fp_t *, ExecSpace> sfv) {
453 const fp_t x0 = 1.0 - eta;
454 const fp_t x1 = 1.0 - xi;
455 const fp_t x2 = 2.0 * eta;
456 const fp_t x3 = 2.0 * xi;
457 const fp_t x4 = x3 - 1.0;
458 const fp_t x5 = 1.0 - x4 * x4;
459 const fp_t x6 = 1.0 - (x2 - 1.0) * (x2 - 1.0);
460 sfv(0) = x0 * x1 * (-x2 - x4);
461 sfv(1) = x0 * xi * (-x2 + x3 - 1);
462 sfv(2) = eta * xi * (x2 + x3 - 3);
463 sfv(3) = eta * x1 * (x2 - x3 - 1);
464 sfv(4) = 0.5 * x5 * (2.0 - x2);
467 sfv(7) = 0.5 * x6 * (2.0 - x3);
470 KOKKOS_INLINE_FUNCTION
static void
472 Kokkos::View<fp_t **, ExecSpace> sfdv) {
473 const fp_t x0 = 1.0 - eta;
474 const fp_t x1 = 1.0 - xi;
475 const fp_t x2 = 2.0 * x0 * x1;
476 const fp_t x3 = 2.0 * xi;
477 const fp_t x4 = 2.0 * eta;
478 const fp_t x5 = x4 - 1.0;
479 const fp_t x6 = -x3 - x5;
480 const fp_t x7 = x0 * x3;
481 const fp_t x8 = x3 - x4 - 1.0;
482 const fp_t x9 = x4 * xi;
483 const fp_t x10 = x3 + x4 - 3.0;
484 const fp_t x11 = x1 * x4;
485 const fp_t x12 = -x3 + x4 - 1.0;
486 const fp_t x13 = 4.0 - 8.0 * xi;
487 const fp_t x14 = x5 * x5 - 1;
488 const fp_t x15 = (x3 - 1.0) * (x3 - 1.0) - 1.0;
489 const fp_t x16 = 4.0 - 8.0 * eta;
490 sfdv(0, 0) = -x0 * x6 - x2;
491 sfdv(1, 0) = -x1 * x6 - x2;
492 sfdv(0, 1) = x0 * x8 + x7;
493 sfdv(1, 1) = -x7 - x8 * xi;
494 sfdv(0, 2) = eta * x10 + x9;
495 sfdv(1, 2) = x10 * xi + x9;
496 sfdv(0, 3) = -eta * x12 - x11;
497 sfdv(1, 3) = x1 * x12 + x11;
498 sfdv(0, 4) = 0.5 * x13 * (2.0 - x4);
501 sfdv(1, 5) = x16 * xi;
502 sfdv(0, 6) = eta * x13;
505 sfdv(1, 7) = 0.5 * x16 * (2.0 - x3);
508 KOKKOS_INLINE_FUNCTION
static void
511 Kokkos::View<fp_t **, ExecSpace> sfddv) {
514 const fp_t x0 = 4 * eta;
515 const fp_t x1 = 4 * xi;
516 const fp_t x2 = -x0 - x1 + 5;
517 sfddv(0, 0) = 4 - x0;
520 sfddv(1, 1) = 4 - x1;
524 const fp_t x0 = 4 * eta;
525 const fp_t x1 = 4 * xi;
526 const fp_t x2 = x0 - x1 - 1;
527 sfddv(0, 0) = 4 - x0;
534 const fp_t x0 = 4 * eta;
535 const fp_t x1 = 4 * xi;
536 const fp_t x2 = x0 + x1 - 3;
544 const fp_t x0 = 4 * eta;
545 const fp_t x1 = 4 * xi;
546 const fp_t x2 = -x0 + x1 - 1;
550 sfddv(1, 1) = 4 - x1;
554 const fp_t x0 = 8 * xi - 4;
555 sfddv(0, 0) = 8 * eta - 8;
561 const fp_t x0 = 4 - 8 * eta;
564 sfddv(1, 1) = -8 * xi;
568 const fp_t x0 = 4 - 8 * xi;
569 sfddv(0, 0) = -8 * eta;
575 const fp_t x0 = 8 * eta - 4;
578 sfddv(1, 1) = 8 * xi - 8;
589template <
typename ExecSpace>
594 KOKKOS_INLINE_FUNCTION
static void
596 Kokkos::View<fp_t *, ExecSpace> sfv) {
597 sfv(0) = -eta - phi - xi + 1.0;
603 KOKKOS_INLINE_FUNCTION
static void
605 Kokkos::View<fp_t **, ExecSpace> sfdv) {
620 KOKKOS_INLINE_FUNCTION
static void
623 Kokkos::View<fp_t **, ExecSpace> sfddv) {
631template <
typename ExecSpace>
636 KOKKOS_INLINE_FUNCTION
static void
638 Kokkos::View<fp_t *, ExecSpace> sfv) {
639 const fp_t x0 = 2.0 * eta - 1.0;
640 const fp_t x1 = 2.0 * xi;
641 const fp_t x2 = 2.0 * phi;
642 const fp_t x3 = -eta - phi - xi + 1.0;
643 const fp_t x4 = 4.0 * eta;
644 const fp_t x5 = 4.0 * phi;
645 const fp_t x6 = -x4 - x5 - 4.0 * xi + 4.0;
647 sfv(1) = x3 * (-x0 - x1 - x2);
648 sfv(2) = xi * (x1 - 1.0);
649 sfv(3) = phi * (x2 - 1.0);
658 KOKKOS_INLINE_FUNCTION
static void
660 Kokkos::View<fp_t **, ExecSpace> sfdv) {
661 const fp_t x0 = 4.0 * xi;
662 const fp_t x1 = 4.0 * eta;
663 const fp_t x2 = 4.0 * phi;
664 const fp_t x3 = x1 + x2;
665 const fp_t x4 = x0 + x3 - 3.0;
668 const fp_t x7 = x0 - 4.0;
671 sfdv(1, 0) = x1 - 1.0;
676 sfdv(0, 2) = x0 - 1.0;
681 sfdv(2, 3) = x2 - 1.0;
683 sfdv(1, 4) = -8.0 * eta - x2 - x7;
685 sfdv(0, 5) = -x3 - 8.0 * xi + 4.0;
696 sfdv(2, 8) = -8.0 * phi - x1 - x7;
702 KOKKOS_INLINE_FUNCTION
static void
705 Kokkos::View<fp_t **, ExecSpace> sfddv) {
778template <
typename ExecSpace>
783 KOKKOS_INLINE_FUNCTION
static void
785 Kokkos::View<fp_t *, ExecSpace> sfv) {
786 const fp_t x0 = 1 - xi;
787 const fp_t x1 = 1 - eta;
788 const fp_t x2 = 1 - phi;
789 const fp_t x3 = x1 * x2;
790 const fp_t x4 = eta * x2;
791 const fp_t x5 = phi * x1;
792 const fp_t x6 = eta * phi;
803 KOKKOS_INLINE_FUNCTION
static void
805 Kokkos::View<fp_t **, ExecSpace> sfdv) {
806 const fp_t x0 = 1 - eta;
807 const fp_t x1 = 1 - phi;
808 const fp_t x2 = x0 * x1;
809 const fp_t x3 = eta * x1;
810 const fp_t x4 = phi * x0;
811 const fp_t x5 = eta * phi;
812 const fp_t x6 = 1 - xi;
813 const fp_t x7 = x1 * x6;
814 const fp_t x8 = x1 * xi;
815 const fp_t x9 = phi * x6;
816 const fp_t x10 = phi * xi;
817 const fp_t x11 = x0 * x6;
818 const fp_t x12 = x0 * xi;
819 const fp_t x13 = eta * xi;
820 const fp_t x14 = eta * x6;
847 KOKKOS_INLINE_FUNCTION
static void
850 Kokkos::View<fp_t **, ExecSpace> sfddv) {
853 const fp_t x0 = 1 - phi;
854 const fp_t x1 = 1 - eta;
855 const fp_t x2 = 1 - xi;
865 const fp_t x0 = phi - 1;
866 const fp_t x1 = eta - 1;
876 const fp_t x0 = 1 - phi;
877 const fp_t x1 = -eta;
888 const fp_t x0 = phi - 1;
889 const fp_t x1 = xi - 1;
899 const fp_t x0 = eta - 1;
900 const fp_t x1 = xi - 1;
910 const fp_t x0 = -phi;
911 const fp_t x1 = 1 - eta;
931 const fp_t x0 = -phi;
932 const fp_t x1 = -eta;
933 const fp_t x2 = 1 - xi;
950template <
typename ExecSpace>
955 KOKKOS_INLINE_FUNCTION
static void
957 Kokkos::View<fp_t *, ExecSpace> sfv) {
958 const fp_t x0 = 1 - xi;
959 const fp_t x1 = 2 * xi;
960 const fp_t x2 = 2 * eta;
961 const fp_t x3 = 2 * phi;
962 const fp_t x4 = x2 + x3;
963 const fp_t x5 = x1 + x4;
964 const fp_t x6 = 1 - eta;
965 const fp_t x7 = 1 - phi;
966 const fp_t x8 = x6 * x7;
968 const fp_t x10 = x4 + x9;
969 const fp_t x11 = x2 - x3;
970 const fp_t x12 = x1 + x11;
971 const fp_t x13 = eta * x7;
972 const fp_t x14 = x13 * xi;
973 const fp_t x15 = phi * x6;
974 const fp_t x16 = x15 * xi;
975 const fp_t x17 = eta * phi;
976 const fp_t x18 = x17 * xi;
977 const fp_t x19 = 2 - x2;
978 const fp_t x20 = 2 - x3;
979 const fp_t x21 = x20 * xi;
980 const fp_t x22 = x0 * x21;
981 const fp_t x23 = 2 - x1;
982 const fp_t x24 = x3 * xi;
983 const fp_t x25 = x19 * x7;
984 const fp_t x26 = phi * x23;
985 sfv(0) = x0 * x8 * (1 - x5);
986 sfv(1) = x8 * xi * (-x10 - 1);
987 sfv(2) = x14 * (x12 - 3);
988 sfv(3) = x0 * x13 * (-x1 + x2 - x3 - 1);
989 sfv(4) = x0 * x15 * (-x12 - 1);
990 sfv(5) = x16 * (-x11 - x9 - 3);
991 sfv(6) = x18 * (x5 - 5);
992 sfv(7) = x0 * x17 * (x10 - 3);
994 sfv(9) = x2 * x21 * x6;
996 sfv(11) = eta * x20 * x23 * x6;
997 sfv(12) = x0 * x19 * x24;
998 sfv(13) = 4 * eta * x16;
999 sfv(14) = 4 * x0 * x18;
1000 sfv(15) = x15 * x2 * x23;
1001 sfv(16) = x25 * x26;
1002 sfv(17) = x24 * x25;
1003 sfv(18) = 4 * phi * x14;
1004 sfv(19) = x2 * x26 * x7;
1007 KOKKOS_INLINE_FUNCTION
static void
1009 Kokkos::View<fp_t **, ExecSpace> sfdv) {
1010 const fp_t x0 = 1 - xi;
1011 const fp_t x1 = 1 - eta;
1012 const fp_t x2 = 1 - phi;
1013 const fp_t x3 = x1 * x2;
1014 const fp_t x4 = 2 * x0 * x3;
1015 const fp_t x5 = 2 * xi;
1016 const fp_t x6 = 2 * eta;
1017 const fp_t x7 = 2 * phi;
1018 const fp_t x8 = x6 + x7;
1019 const fp_t x9 = x5 + x8;
1020 const fp_t x10 = 1 - x9;
1021 const fp_t x11 = x3 * x5;
1022 const fp_t x12 = -x5;
1023 const fp_t x13 = x12 + x8;
1024 const fp_t x14 = -x13 - 1;
1025 const fp_t x15 = x2 * xi;
1026 const fp_t x16 = x15 * x6;
1027 const fp_t x17 = x6 - x7;
1028 const fp_t x18 = x17 + x5;
1029 const fp_t x19 = x18 - 3;
1030 const fp_t x20 = eta * x2;
1031 const fp_t x21 = x0 * x2;
1032 const fp_t x22 = x21 * x6;
1033 const fp_t x23 = -x5 + x6 - x7 - 1;
1034 const fp_t x24 = x0 * x1;
1035 const fp_t x25 = x24 * x7;
1036 const fp_t x26 = -x18 - 1;
1037 const fp_t x27 = phi * x1;
1038 const fp_t x28 = x1 * xi;
1039 const fp_t x29 = x28 * x7;
1040 const fp_t x30 = -x12 - x17 - 3;
1041 const fp_t x31 = phi * xi;
1042 const fp_t x32 = x31 * x6;
1043 const fp_t x33 = x9 - 5;
1044 const fp_t x34 = eta * phi;
1045 const fp_t x35 = phi * x0;
1046 const fp_t x36 = x35 * x6;
1047 const fp_t x37 = x13 - 3;
1048 const fp_t x38 = 2 - x6;
1049 const fp_t x39 = 2 - x7;
1050 const fp_t x40 = x39 * x6;
1051 const fp_t x41 = x1 * x40;
1052 const fp_t x42 = x40 * xi;
1053 const fp_t x43 = x38 * x7;
1054 const fp_t x44 = x43 * xi;
1055 const fp_t x45 = 4 * eta * x27;
1056 const fp_t x46 = 4 * x34 * xi;
1057 const fp_t x47 = x2 * x43;
1058 const fp_t x48 = 4 * phi;
1059 const fp_t x49 = x20 * x48;
1060 const fp_t x50 = x0 * x39 * x5;
1061 const fp_t x51 = 2 - x5;
1062 const fp_t x52 = 4 * x35 * xi;
1063 const fp_t x53 = x51 * x6;
1064 const fp_t x54 = phi * x53;
1065 const fp_t x55 = x2 * x51 * x7;
1066 const fp_t x56 = x15 * x48;
1067 const fp_t x57 = eta * xi;
1068 const fp_t x58 = eta * x0;
1069 const fp_t x59 = x0 * x38 * x5;
1070 const fp_t x60 = 4 * eta * x28;
1071 const fp_t x61 = 4 * x0 * x57;
1072 const fp_t x62 = x1 * x53;
1073 sfdv(0, 0) = -x10 * x3 - x4;
1074 sfdv(1, 0) = -x10 * x21 - x4;
1075 sfdv(2, 0) = -x10 * x24 - x4;
1076 sfdv(0, 1) = x11 + x14 * x3;
1077 sfdv(1, 1) = -x11 - x14 * x15;
1078 sfdv(2, 1) = -x11 - x14 * x28;
1079 sfdv(0, 2) = x16 + x19 * x20;
1080 sfdv(1, 2) = x15 * x19 + x16;
1081 sfdv(2, 2) = -x16 - x19 * x57;
1082 sfdv(0, 3) = -x20 * x23 - x22;
1083 sfdv(1, 3) = x21 * x23 + x22;
1084 sfdv(2, 3) = -x22 - x23 * x58;
1085 sfdv(0, 4) = -x25 - x26 * x27;
1086 sfdv(1, 4) = -x25 - x26 * x35;
1087 sfdv(2, 4) = x24 * x26 + x25;
1088 sfdv(0, 5) = x27 * x30 + x29;
1089 sfdv(1, 5) = -x29 - x30 * x31;
1090 sfdv(2, 5) = x28 * x30 + x29;
1091 sfdv(0, 6) = x32 + x33 * x34;
1092 sfdv(1, 6) = x31 * x33 + x32;
1093 sfdv(2, 6) = x32 + x33 * x57;
1094 sfdv(0, 7) = -x34 * x37 - x36;
1095 sfdv(1, 7) = x35 * x37 + x36;
1096 sfdv(2, 7) = x36 + x37 * x58;
1097 sfdv(0, 8) = x0 * x38 * x39 - x38 * x39 * xi;
1101 sfdv(1, 9) = 2 * x1 * x39 * xi - x42;
1103 sfdv(0, 10) = 2 * eta * x0 * x39 - x42;
1107 sfdv(1, 11) = -eta * x39 * x51 + x1 * x39 * x51;
1109 sfdv(0, 12) = 2 * phi * x0 * x38 - x44;
1113 sfdv(1, 13) = 4 * phi * x1 * xi - x46;
1115 sfdv(0, 14) = 4 * eta * phi * x0 - x46;
1119 sfdv(1, 15) = 2 * phi * x1 * x51 - x54;
1123 sfdv(2, 16) = -phi * x38 * x51 + x2 * x38 * x51;
1126 sfdv(2, 17) = 2 * x2 * x38 * xi - x44;
1129 sfdv(2, 18) = 4 * eta * x2 * xi - x46;
1132 sfdv(2, 19) = 2 * eta * x2 * x51 - x54;
1135 KOKKOS_INLINE_FUNCTION
static void
1138 Kokkos::View<fp_t **, ExecSpace> sfddv) {
1141 const fp_t x0 = 1 - phi;
1142 const fp_t x1 = 1 - eta;
1143 const fp_t x2 = x0 * x1;
1144 const fp_t x3 = 2 * x2;
1145 const fp_t x4 = 1 - xi;
1146 const fp_t x5 = 2 * x4;
1147 const fp_t x6 = x0 * x5;
1148 const fp_t x7 = -2 * eta - 2 * phi - 2 * xi + 1;
1149 const fp_t x8 = x0 * x7 + x3 + x6;
1150 const fp_t x9 = x1 * x5;
1151 const fp_t x10 = x1 * x7 + x3 + x9;
1152 const fp_t x11 = 4 * x4;
1153 const fp_t x12 = x4 * x7 + x6 + x9;
1154 sfddv(0, 0) = 4 * x2;
1158 sfddv(1, 1) = x0 * x11;
1162 sfddv(2, 2) = x1 * x11;
1166 const fp_t x0 = 1 - phi;
1167 const fp_t x1 = 1 - eta;
1168 const fp_t x2 = x0 * x1;
1169 const fp_t x3 = 2 * xi;
1170 const fp_t x4 = x0 * x3;
1171 const fp_t x5 = 2 * x2;
1172 const fp_t x6 = -2 * eta - 2 * phi + 2 * xi - 1;
1173 const fp_t x7 = -x0 * x6 - x4 - x5;
1174 const fp_t x8 = x1 * x3;
1175 const fp_t x9 = -x1 * x6 - x5 - x8;
1176 const fp_t x10 = 4 * xi;
1177 const fp_t x11 = x4 + x6 * xi + x8;
1178 sfddv(0, 0) = 4 * x2;
1182 sfddv(1, 1) = x0 * x10;
1186 sfddv(2, 2) = x1 * x10;
1190 const fp_t x0 = 1 - phi;
1191 const fp_t x1 = 4 * x0;
1192 const fp_t x2 = 2 * eta;
1193 const fp_t x3 = x0 * x2;
1194 const fp_t x4 = 2 * xi;
1195 const fp_t x5 = x0 * x4;
1196 const fp_t x6 = -2 * phi + x2 + x4 - 3;
1197 const fp_t x7 = x0 * x6 + x3 + x5;
1198 const fp_t x8 = x2 * xi;
1199 const fp_t x9 = -eta * x6 - x3 - x8;
1200 const fp_t x10 = -x5 - x6 * xi - x8;
1201 sfddv(0, 0) = eta * x1;
1205 sfddv(1, 1) = x1 * xi;
1209 sfddv(2, 2) = 4 * eta * xi;
1213 const fp_t x0 = 1 - phi;
1214 const fp_t x1 = 4 * x0;
1215 const fp_t x2 = 2 * eta;
1216 const fp_t x3 = x0 * x2;
1217 const fp_t x4 = 1 - xi;
1218 const fp_t x5 = 2 * x0 * x4;
1219 const fp_t x6 = 2 * eta - 2 * phi - 2 * xi - 1;
1220 const fp_t x7 = -x0 * x6 - x3 - x5;
1221 const fp_t x8 = x2 * x4;
1222 const fp_t x9 = eta * x6 + x3 + x8;
1223 const fp_t x10 = -x4 * x6 - x5 - x8;
1224 sfddv(0, 0) = eta * x1;
1228 sfddv(1, 1) = x1 * x4;
1232 sfddv(2, 2) = 4 * eta * x4;
1236 const fp_t x0 = 1 - eta;
1237 const fp_t x1 = 4 * phi;
1238 const fp_t x2 = 2 * phi;
1239 const fp_t x3 = x0 * x2;
1240 const fp_t x4 = 1 - xi;
1241 const fp_t x5 = x2 * x4;
1242 const fp_t x6 = -2 * eta + 2 * phi - 2 * xi - 1;
1243 const fp_t x7 = phi * x6 + x3 + x5;
1244 const fp_t x8 = x0 * x4;
1245 const fp_t x9 = 2 * x8;
1246 const fp_t x10 = -x0 * x6 - x3 - x9;
1247 const fp_t x11 = -x4 * x6 - x5 - x9;
1248 sfddv(0, 0) = x0 * x1;
1252 sfddv(1, 1) = x1 * x4;
1256 sfddv(2, 2) = 4 * x8;
1260 const fp_t x0 = 1 - eta;
1261 const fp_t x1 = 4 * phi;
1262 const fp_t x2 = 2 * phi;
1263 const fp_t x3 = x2 * xi;
1264 const fp_t x4 = x0 * x2;
1265 const fp_t x5 = -2 * eta + 2 * phi + 2 * xi - 3;
1266 const fp_t x6 = -phi * x5 - x3 - x4;
1267 const fp_t x7 = 2 * x0 * xi;
1268 const fp_t x8 = x0 * x5 + x4 + x7;
1269 const fp_t x9 = -x3 - x5 * xi - x7;
1270 sfddv(0, 0) = x0 * x1;
1274 sfddv(1, 1) = x1 * xi;
1278 sfddv(2, 2) = 4 * x0 * xi;
1282 const fp_t x0 = 4 * phi;
1283 const fp_t x1 = 2 * eta;
1284 const fp_t x2 = phi * x1;
1285 const fp_t x3 = 2 * phi;
1286 const fp_t x4 = x3 * xi;
1287 const fp_t x5 = x1 + x3 + 2 * xi - 5;
1288 const fp_t x6 = phi * x5 + x2 + x4;
1289 const fp_t x7 = x1 * xi;
1290 const fp_t x8 = eta * x5 + x2 + x7;
1291 const fp_t x9 = x4 + x5 * xi + x7;
1292 sfddv(0, 0) = eta * x0;
1296 sfddv(1, 1) = x0 * xi;
1300 sfddv(2, 2) = 4 * eta * xi;
1304 const fp_t x0 = 4 * phi;
1305 const fp_t x1 = 2 * eta;
1306 const fp_t x2 = phi * x1;
1307 const fp_t x3 = 1 - xi;
1308 const fp_t x4 = 2 * phi;
1309 const fp_t x5 = x3 * x4;
1310 const fp_t x6 = x1 + x4 - 2 * xi - 3;
1311 const fp_t x7 = -phi * x6 - x2 - x5;
1312 const fp_t x8 = x1 * x3;
1313 const fp_t x9 = -eta * x6 - x2 - x8;
1314 const fp_t x10 = x3 * x6 + x5 + x8;
1315 sfddv(0, 0) = eta * x0;
1319 sfddv(1, 1) = x0 * x3;
1323 sfddv(2, 2) = 4 * eta * x3;
1327 const fp_t x0 = 2 - 2 * eta;
1328 const fp_t x1 = 4 - 4 * phi;
1329 const fp_t x2 = 1 - xi;
1330 const fp_t x3 = -x1 * x2 + x1 * xi;
1331 const fp_t x4 = 2 * x0;
1332 const fp_t x5 = -x2 * x4 + x4 * xi;
1333 const fp_t x6 = 4 * x2 * xi;
1334 sfddv(0, 0) = -x0 * x1;
1344 const fp_t x0 = 2.0 - 2.0 * phi;
1345 const fp_t x1 = 1.0 - eta;
1346 const fp_t x2 = -2.0 * eta * x0 + 2.0 * x0 * x1;
1347 const fp_t x3 = 4.0 * x1;
1348 const fp_t x4 = -eta * x3;
1349 const fp_t x5 = 4.0 * xi;
1350 const fp_t x6 = eta * x5 - x3 * xi;
1354 sfddv(1, 1) = -x0 * x5;
1361 const fp_t x0 = 2.0 - 2.0 * phi;
1362 const fp_t x1 = 4.0 * eta;
1363 const fp_t x2 = 1.0 - xi;
1364 const fp_t x3 = 2.0 * x0 * x2 - 2.0 * x0 * xi;
1365 const fp_t x4 = -x1 * x2 + x1 * xi;
1366 const fp_t x5 = -4.0 * x2 * xi;
1367 sfddv(0, 0) = -x0 * x1;
1377 const fp_t x0 = 4.0 - 4.0 * phi;
1378 const fp_t x1 = 1.0 - eta;
1379 const fp_t x2 = eta * x0 - x0 * x1;
1380 const fp_t x3 = 4.0 * eta * x1;
1381 const fp_t x4 = 2.0 - 2.0 * xi;
1382 const fp_t x5 = 2.0 * x4;
1383 const fp_t x6 = eta * x5 - x1 * x5;
1387 sfddv(1, 1) = -x0 * x4;
1394 const fp_t x0 = 2.0 - 2.0 * eta;
1395 const fp_t x1 = 4.0 * phi;
1396 const fp_t x2 = 1.0 - xi;
1397 const fp_t x3 = -x1 * x2 + x1 * xi;
1398 const fp_t x4 = 2.0 * x0 * x2 - 2.0 * x0 * xi;
1399 const fp_t x5 = -4.0 * x2 * xi;
1400 sfddv(0, 0) = -x0 * x1;
1410 const fp_t x0 = 1.0 - eta;
1411 const fp_t x1 = -4.0 * eta * phi + 4.0 * phi * x0;
1412 const fp_t x2 = 4.0 * eta;
1413 const fp_t x3 = x0 * x2;
1414 const fp_t x4 = 4.0 * x0 * xi - x2 * xi;
1418 sfddv(1, 1) = -8 * phi * xi;
1425 const fp_t x0 = 1.0 - xi;
1426 const fp_t x1 = 4.0 * phi * x0 - 4.0 * phi * xi;
1427 const fp_t x2 = 4.0 * eta * x0 - 4.0 * eta * xi;
1428 const fp_t x3 = 4.0 * x0 * xi;
1429 sfddv(0, 0) = -8 * eta * phi;
1439 const fp_t x0 = 4.0 * phi;
1440 const fp_t x1 = 1.0 - eta;
1441 const fp_t x2 = eta * x0 - x0 * x1;
1442 const fp_t x3 = -4.0 * eta * x1;
1443 const fp_t x4 = 2.0 - 2.0 * xi;
1444 const fp_t x5 = -2.0 * eta * x4 + 2.0 * x1 * x4;
1448 sfddv(1, 1) = -x0 * x4;
1455 const fp_t x0 = 1.0 - phi;
1456 const fp_t x1 = 4.0 * phi * x0;
1457 const fp_t x2 = 4.0 - 4.0 * eta;
1458 const fp_t x3 = phi * x2 - x0 * x2;
1459 const fp_t x4 = 2.0 - 2.0 * xi;
1460 const fp_t x5 = 2.0 * x4;
1461 const fp_t x6 = phi * x5 - x0 * x5;
1468 sfddv(2, 2) = -x2 * x4;
1472 const fp_t x0 = 1.0 - phi;
1473 const fp_t x1 = 4.0 * x0;
1474 const fp_t x2 = -phi * x1;
1475 const fp_t x3 = 2.0 - 2.0 * eta;
1476 const fp_t x4 = -2.0 * phi * x3 + 2.0 * x0 * x3;
1477 const fp_t x5 = 4.0 * xi;
1478 const fp_t x6 = phi * x5 - x1 * xi;
1485 sfddv(2, 2) = -x3 * x5;
1489 const fp_t x0 = 1.0 - phi;
1490 const fp_t x1 = 4.0 * phi;
1491 const fp_t x2 = x0 * x1;
1492 const fp_t x3 = 4.0 * eta * x0 - eta * x1;
1493 const fp_t x4 = 4.0 * x0 * xi - x1 * xi;
1500 sfddv(2, 2) = -8.0 * eta * xi;
1504 const fp_t x0 = 1 - phi;
1505 const fp_t x1 = 4.0 * x0;
1506 const fp_t x2 = -phi * x1;
1507 const fp_t x3 = 4.0 * eta;
1508 const fp_t x4 = -eta * x1 + phi * x3;
1509 const fp_t x5 = 2.0 - 2.0 * xi;
1510 const fp_t x6 = -2.0 * phi * x5 + 2.0 * x0 * x5;
1517 sfddv(2, 2) = -x3 * x5;
1528template <
typename ExecSpace>
1533 KOKKOS_INLINE_FUNCTION
static void
1535 Kokkos::View<fp_t *, ExecSpace> sfv) {
1536 const fp_t x0 = 1.0 - phi;
1537 const fp_t x1 = -eta - xi + 1.0;
1546 KOKKOS_INLINE_FUNCTION
static void
1548 Kokkos::View<fp_t **, ExecSpace> sfdv) {
1549 const fp_t x0 = phi - 1.0;
1550 const fp_t x1 = -x0;
1551 const fp_t x2 = -phi;
1552 const fp_t x3 = eta + xi - 1.0;
1573 KOKKOS_INLINE_FUNCTION
static void
1576 Kokkos::View<fp_t **, ExecSpace> sfddv) {
1620template <
typename ExecSpace>
1625 KOKKOS_INLINE_FUNCTION
static void
1627 Kokkos::View<fp_t *, ExecSpace> sfv) {
1628 const fp_t x0 = -eta - xi + 1;
1629 const fp_t x1 = 2 * phi;
1630 const fp_t x2 = 1 - Kokkos::pow(x1 - 1, 2);
1631 const fp_t x3 = x0 * x2;
1632 const fp_t x4 = 0.5 * x3;
1633 const fp_t x5 = 2 - x1;
1634 const fp_t x6 = 2 * eta;
1635 const fp_t x7 = 2 * xi;
1636 const fp_t x8 = x7 - 1;
1637 const fp_t x9 = -x6 - x8;
1638 const fp_t x10 = x2 * xi;
1639 const fp_t x11 = 0.5 * x10;
1640 const fp_t x12 = x6 - 1;
1641 const fp_t x13 = eta * x2;
1642 const fp_t x14 = 0.5 * x13;
1643 const fp_t x15 = 1.0 * phi;
1644 const fp_t x16 = -x6 - x7 + 2;
1645 const fp_t x17 = x5 * xi;
1646 const fp_t x18 = 4 * eta * phi;
1647 sfv(0) = 0.5 * x0 * x5 * x9 - x4;
1648 sfv(1) = -x11 + 0.5 * x5 * x8 * xi;
1649 sfv(2) = 0.5 * eta * x12 * x5 - x14;
1650 sfv(3) = x0 * x15 * x9 - x4;
1651 sfv(4) = -x11 + x15 * x8 * xi;
1652 sfv(5) = eta * x12 * x15 - x14;
1655 sfv(8) = x0 * x5 * x6;
1656 sfv(9) = x1 * x16 * xi;
1664 KOKKOS_INLINE_FUNCTION
static void
1666 Kokkos::View<fp_t **, ExecSpace> sfdv) {
1667 const fp_t x0 = 2 * eta;
1668 const fp_t x1 = 2 * xi;
1669 const fp_t x2 = x1 - 1;
1670 const fp_t x3 = -x0 - x2;
1671 const fp_t x4 = 2 * phi;
1672 const fp_t x5 = 2 - x4;
1673 const fp_t x6 = 0.5 * x5;
1674 const fp_t x7 = -eta - xi + 1;
1675 const fp_t x8 = 1.0 * x5;
1676 const fp_t x9 = Kokkos::pow(x4 - 1, 2);
1677 const fp_t x10 = 0.5 * x9 - 0.5;
1678 const fp_t x11 = -x10 - x3 * x6 - x7 * x8;
1679 const fp_t x12 = 1.0 * phi;
1680 const fp_t x13 = 2.0 * phi;
1681 const fp_t x14 = -x10 - x12 * x3 - x13 * x7;
1682 const fp_t x15 = x1 * x5;
1683 const fp_t x16 = -x0 - x1 + 2;
1684 const fp_t x17 = x0 * x5;
1685 const fp_t x18 = 4 * phi;
1686 const fp_t x19 = x18 * xi;
1687 const fp_t x20 = eta * x18;
1688 const fp_t x21 = x9 - 1;
1689 const fp_t x22 = -x21;
1690 const fp_t x23 = x0 - 1;
1691 const fp_t x24 = 4 - 8 * phi;
1692 const fp_t x25 = x24 * x7;
1693 const fp_t x26 = 0.5 * x25;
1694 const fp_t x27 = 1.0 * x3 * x7;
1695 const fp_t x28 = x24 * xi;
1696 const fp_t x29 = 0.5 * x28;
1697 const fp_t x30 = 1.0 * x2 * xi;
1698 const fp_t x31 = eta * x24;
1699 const fp_t x32 = 0.5 * x31;
1700 const fp_t x33 = 1.0 * eta * x23;
1701 const fp_t x34 = x1 * x16;
1702 const fp_t x35 = 4 * eta;
1703 const fp_t x36 = x35 * xi;
1704 const fp_t x37 = x35 * x7;
1707 sfdv(2, 0) = -x26 - x27;
1708 sfdv(0, 1) = x10 + x2 * x6 + x8 * xi;
1710 sfdv(2, 1) = -x29 - x30;
1712 sfdv(1, 2) = eta * x8 + x10 + x23 * x6;
1713 sfdv(2, 2) = -x32 - x33;
1716 sfdv(2, 3) = -x26 + x27;
1717 sfdv(0, 4) = x10 + x12 * x2 + x13 * xi;
1719 sfdv(2, 4) = -x29 + x30;
1721 sfdv(1, 5) = eta * x13 + x10 + x12 * x23;
1722 sfdv(2, 5) = -x32 + x33;
1723 sfdv(0, 6) = -x15 + x16 * x5;
1730 sfdv(1, 8) = -x17 + 2 * x5 * x7;
1732 sfdv(0, 9) = 2 * phi * x16 - x19;
1739 sfdv(1, 11) = 4 * phi * x7 - x20;
1752 KOKKOS_INLINE_FUNCTION
static void
1755 Kokkos::View<fp_t **, ExecSpace> sfddv) {
1758 const fp_t x0 = 4.0 * phi;
1759 const fp_t x1 = 4.0 - x0;
1760 const fp_t x2 = 4.0 * eta + 4.0 * xi;
1761 const fp_t x3 = -x0 - x2 + 5.0;
1770 sfddv(2, 2) = 4.0 - x2;
1774 const fp_t x0 = 4.0 * phi;
1775 const fp_t x1 = 4.0 * xi;
1776 const fp_t x2 = x0 - x1 - 1.0;
1777 sfddv(0, 0) = 4.0 - x0;
1784 const fp_t x0 = 4.0 * phi;
1785 const fp_t x1 = 4.0 * eta;
1786 const fp_t x2 = x0 - x1 - 1.0;
1787 sfddv(1, 1) = 4.0 - x0;
1794 const fp_t x0 = 4.0 * phi;
1795 const fp_t x1 = 4.0 * eta + 4.0 * xi;
1796 const fp_t x2 = -x0 + x1 - 1.0;
1805 sfddv(2, 2) = 4.0 - x1;
1809 const fp_t x0 = 4.0 * phi;
1810 const fp_t x1 = 4.0 * xi;
1811 const fp_t x2 = x0 + x1 - 3.0;
1819 const fp_t x0 = 4.0 * phi;
1820 const fp_t x1 = 4.0 * eta;
1821 const fp_t x2 = x0 + x1 - 3.0;
1829 const fp_t x0 = 4 * phi - 4;
1830 const fp_t x1 = 4 * eta + 8 * xi - 4;
1831 const fp_t x2 = 4 * xi;
1832 sfddv(0, 0) = 8 * phi - 8;
1842 const fp_t x0 = 4 - 4 * phi;
1843 const fp_t x1 = -4 * eta;
1844 const fp_t x2 = -4 * xi;
1854 const fp_t x0 = 4 * phi - 4;
1855 const fp_t x1 = 4 * eta;
1856 const fp_t x2 = 8 * eta + 4 * xi - 4;
1860 sfddv(1, 1) = 8 * phi - 8;
1867 const fp_t x0 = -4 * phi;
1868 const fp_t x1 = -4 * eta - 8 * xi + 4;
1869 const fp_t x2 = -4 * xi;
1870 sfddv(0, 0) = -8 * phi;
1880 const fp_t x0 = 4 * phi;
1881 const fp_t x1 = 4 * eta;
1882 const fp_t x2 = 4 * xi;
1892 const fp_t x0 = -4 * phi;
1893 const fp_t x1 = -4 * eta;
1894 const fp_t x2 = -8 * eta - 4 * xi + 4;
1898 sfddv(1, 1) = -8 * phi;
1905 const fp_t x0 = 8 * phi - 4;
1910 sfddv(2, 2) = 8 * eta + 8 * xi - 8;
1914 const fp_t x0 = 4 - 8 * phi;
1917 sfddv(2, 2) = -8 * xi;
1921 const fp_t x0 = 4 - 8 * phi;
1924 sfddv(2, 2) = -8 * eta;
1935template <
typename ExecSpace>
1940 KOKKOS_INLINE_FUNCTION
static void
1942 Kokkos::View<fp_t *, ExecSpace> sfv) {
1946 if (Kokkos::abs(1 - z) < 1e-6) {
1954 const fp_t denom = 0.25 / (1 - z);
1955 const fp_t x0 = -x + y + z - 1.0;
1956 const fp_t x1 = -x - y + z - 1.0;
1957 const fp_t x2 = x - y + z - 1.0;
1958 const fp_t x3 = x + y + z - 1.0;
1959 sfv(0) = x0 * x1 * denom;
1960 sfv(1) = x1 * x2 * denom;
1961 sfv(2) = x2 * x3 * denom;
1962 sfv(3) = x3 * x0 * denom;
1966 KOKKOS_INLINE_FUNCTION
static void
1968 Kokkos::View<fp_t **, ExecSpace> sfdv) {
1972 if (Kokkos::abs(1 - phi) < 1e-6) {
1992 const fp_t denom = 0.25 / (1.0 - z);
1993 const fp_t denom2 = 4.0 * denom;
1994 const fp_t x0 = x + y + z - 1.0;
1995 const fp_t x1 = -x + y + z - 1.0;
1996 const fp_t x2 = -x - y + z - 1.0;
1997 const fp_t x3 = x - y + z - 1.0;
1999 sfdv(0, 0) = (-x1 - x2) * denom;
2000 sfdv(0, 1) = (x2 - x3) * denom;
2001 sfdv(0, 2) = (x0 + x3) * denom;
2002 sfdv(0, 3) = (x1 - x0) * denom;
2005 sfdv(1, 0) = (x2 - x1) * denom;
2006 sfdv(1, 1) = (-x2 - x3) * denom;
2007 sfdv(1, 2) = (x3 - x0) * denom;
2008 sfdv(1, 3) = (x0 + x1) * denom;
2011 sfdv(2, 0) = (x1 + x2 + x1 * x2 * denom2) * denom;
2012 sfdv(2, 1) = (x2 + x3 + x2 * x3 * denom2) * denom;
2013 sfdv(2, 2) = (x3 + x0 + x3 * x0 * denom2) * denom;
2014 sfdv(2, 3) = (x0 + x1 + x0 * x1 * denom2) * denom;
2018 KOKKOS_INLINE_FUNCTION
static void
2021 Kokkos::View<fp_t **, ExecSpace> sfddv) {
2022 if (Kokkos::abs(1.0 - phi) < 1e-6) {
2040 const fp_t t = 1.0 - phi;
2041 const fp_t inv_2t = 0.5 / t;
2042 const fp_t inv_2t2 = 0.5 / (t * t);
2043 const fp_t inv_2t3 = 0.5 / (t * t * t);
2044 sfddv(0, 0) = inv_2t;
2046 sfddv(0, 2) = xi * inv_2t2;
2048 sfddv(1, 1) = -inv_2t;
2049 sfddv(1, 2) = -eta * inv_2t2;
2050 sfddv(2, 0) = xi * inv_2t2;
2051 sfddv(2, 1) = -eta * inv_2t2;
2052 sfddv(2, 2) = (xi * xi - eta * eta) * inv_2t3;
2057 const fp_t t = 1.0 - phi;
2058 const fp_t inv_2t = 0.5 / t;
2059 const fp_t inv_2t2 = 0.5 / (t * t);
2060 const fp_t inv_2t3 = 0.5 / (t * t * t);
2061 sfddv(0, 0) = -inv_2t;
2063 sfddv(0, 2) = -xi * inv_2t2;
2065 sfddv(1, 1) = inv_2t;
2066 sfddv(1, 2) = eta * inv_2t2;
2067 sfddv(2, 0) = -xi * inv_2t2;
2068 sfddv(2, 1) = eta * inv_2t2;
2069 sfddv(2, 2) = (eta * eta - xi * xi) * inv_2t3;
2092template <
typename ExecSpace>
2097 KOKKOS_INLINE_FUNCTION
static void
2099 Kokkos::View<fp_t *, ExecSpace> sfv) {
2100 if (Kokkos::abs(1 - phi) < 1e-6) {
2116 const fp_t x0 = 2 * phi;
2117 const fp_t x1 = x0 - 1;
2118 const fp_t x2 = 2 * eta;
2119 const fp_t x3 = 2 * xi;
2120 const fp_t x4 = x2 + x3;
2121 const fp_t x5 = x0 - 2;
2122 const fp_t x6 = x3 + x5;
2123 const fp_t x7 = -x6;
2124 const fp_t x8 = 1.0 / (phi - 1.0);
2125 const fp_t x9 = x8 * (-x2 - x5);
2126 const fp_t x10 = x7 * x9;
2127 const fp_t x11 = x9 * xi;
2128 const fp_t x12 = eta * x8;
2129 const fp_t x13 = 1.0 * xi;
2130 const fp_t x14 = x12 * x7;
2131 const fp_t x15 = 2.0 * x11;
2132 const fp_t x16 = x12 * xi;
2133 const fp_t x17 = 1.0 * x10;
2134 sfv(0) = 0.25 * x10 * (x1 + x4);
2135 sfv(1) = -0.5 * x11 * (-x2 + x3 - 1);
2136 sfv(2) = x12 * x13 * (-x0 - x4 + 3);
2137 sfv(3) = -0.5 * x14 * (x2 - x3 - 1);
2139 sfv(5) = -x10 * x13;
2140 sfv(6) = -eta * x15;
2141 sfv(7) = 2.0 * x16 * x6;
2142 sfv(8) = -eta * x17;
2143 sfv(9) = -phi * x17;
2144 sfv(10) = -phi * x15;
2145 sfv(11) = -4.0 * phi * x16;
2146 sfv(12) = -2.0 * phi * x14;
2149 KOKKOS_INLINE_FUNCTION
static void
2151 Kokkos::View<fp_t **, ExecSpace> sfdv) {
2152 if (Kokkos::abs(1 - phi) < 1e-6) {
2194 const fp_t x0 = phi - 1.0;
2195 const fp_t x1 = 1.0 / x0;
2196 const fp_t x2 = 2 * eta;
2197 const fp_t x3 = 2 * phi;
2198 const fp_t x4 = x3 - 2;
2199 const fp_t x5 = -x2 - x4;
2200 const fp_t x6 = x1 * x5;
2201 const fp_t x7 = 2 * xi;
2202 const fp_t x8 = x4 + x7;
2203 const fp_t x9 = -x8;
2204 const fp_t x10 = 0.5 * x9;
2205 const fp_t x11 = x10 * x6;
2206 const fp_t x12 = x2 + x3 + x7;
2207 const fp_t x13 = x12 - 1;
2208 const fp_t x14 = 0.5 * x6;
2209 const fp_t x15 = x13 * x14;
2210 const fp_t x16 = x6 * xi;
2211 const fp_t x17 = 1.0 * x16;
2212 const fp_t x18 = -x2 + x7 - 1;
2213 const fp_t x19 = eta * x1;
2214 const fp_t x20 = 2.0 * x19;
2215 const fp_t x21 = x20 * xi;
2216 const fp_t x22 = 3 - x12;
2217 const fp_t x23 = x2 - x7 - 1;
2218 const fp_t x24 = 1.0 * x19;
2219 const fp_t x25 = x23 * x24;
2220 const fp_t x26 = x24 * x9;
2221 const fp_t x27 = 2.0 * x16;
2222 const fp_t x28 = 1.0 * x9;
2223 const fp_t x29 = -x28 * x6;
2224 const fp_t x30 = 2.0 * x6;
2225 const fp_t x31 = eta * x30;
2226 const fp_t x32 = 4.0 * x19;
2227 const fp_t x33 = x32 * xi;
2228 const fp_t x34 = phi * x30;
2229 const fp_t x35 = phi * x32;
2230 const fp_t x36 = x1 * x10;
2231 const fp_t x37 = x13 * x36;
2232 const fp_t x38 = x1 * xi;
2233 const fp_t x39 = 1.0 * x18 * x38;
2234 const fp_t x40 = 2.0 * x38;
2235 const fp_t x41 = x40 * x9;
2236 const fp_t x42 = -x27;
2237 const fp_t x43 = x20 * x9;
2238 const fp_t x44 = 2.0 * phi;
2239 const fp_t x45 = x44 * x9;
2240 const fp_t x46 = x1 * x45;
2241 const fp_t x47 = 4.0 * phi;
2242 const fp_t x48 = x38 * x47;
2243 const fp_t x49 = Kokkos::pow(x0, -2);
2244 const fp_t x50 = x49 * x5;
2245 const fp_t x51 = x50 * xi;
2246 const fp_t x52 = eta * x49;
2247 const fp_t x53 = x52 * xi;
2248 const fp_t x54 = x28 * x50;
2249 sfdv(0, 0) = x11 - x15;
2250 sfdv(1, 0) = x11 - x37;
2251 sfdv(2, 0) = 0.5 * x1 * x5 * x9 - 0.25 * x13 * x50 * x9 - x15 - x37;
2252 sfdv(0, 1) = -x14 * x18 - x17;
2253 sfdv(1, 1) = x17 + x39;
2254 sfdv(2, 1) = 0.5 * x18 * x51 + x39;
2255 sfdv(0, 2) = 1.0 * eta * x1 * x22 - x21;
2256 sfdv(1, 2) = 1.0 * x1 * x22 * xi - x21;
2257 sfdv(2, 2) = -x21 - 1.0 * x22 * x53;
2258 sfdv(0, 3) = x25 + x26;
2259 sfdv(1, 3) = -x23 * x36 - x26;
2260 sfdv(2, 3) = x10 * x23 * x52 + x25;
2263 sfdv(2, 4) = 4 * phi - 1;
2264 sfdv(0, 5) = x27 + x29;
2266 sfdv(2, 5) = x27 + x28 * x51 + x41;
2268 sfdv(1, 6) = x33 + x42;
2269 sfdv(2, 6) = 2.0 * eta * x51 + x33;
2270 sfdv(0, 7) = x20 * x8 + x33;
2271 sfdv(1, 7) = x40 * x8;
2272 sfdv(2, 7) = x33 - 2.0 * x53 * x8;
2274 sfdv(1, 8) = x29 + x43;
2275 sfdv(2, 8) = eta * x54 + x31 + x43;
2278 sfdv(2, 9) = phi * x54 + x29 + x34 + x46;
2281 sfdv(2, 10) = x42 + x44 * x51 + x48;
2284 sfdv(2, 11) = -x33 + x47 * x53;
2287 sfdv(2, 12) = x35 - x43 + x45 * x52;
2290 KOKKOS_INLINE_FUNCTION
static void
2293 Kokkos::View<fp_t **, ExecSpace> sfddv) {
2296 const fp_t x0 = phi - 1.0;
2297 const fp_t x1 = 1.0 / x0;
2298 const fp_t x2 = 2 * eta;
2299 const fp_t x3 = 2 * phi;
2300 const fp_t x4 = x3 - 2;
2301 const fp_t x5 = -x2 - x4;
2302 const fp_t x6 = x1 * x5;
2303 const fp_t x7 = 2.0 * x6;
2304 const fp_t x8 = -x7;
2305 const fp_t x9 = 1.0 * x6;
2306 const fp_t x10 = 2 * xi;
2307 const fp_t x11 = -x10 - x4;
2308 const fp_t x12 = x10 + x2 + x3 - 1;
2309 const fp_t x13 = -1.0 * x1 * x12;
2310 const fp_t x14 = 1.0 * x1 * x11 + x13;
2311 const fp_t x15 = -x14 - x9;
2312 const fp_t x16 = 0.5 * x5;
2313 const fp_t x17 = Kokkos::pow(x0, -2);
2314 const fp_t x18 = x11 * x17;
2315 const fp_t x19 = x16 * x18;
2316 const fp_t x20 = 0.5 * x12 * x17 * x5 - x14 - x19 - x7;
2317 const fp_t x21 = 2.0 * x1;
2318 const fp_t x22 = x11 * x21;
2319 const fp_t x23 = -x22;
2320 const fp_t x24 = 0.5 * x11 * x12 * x17 - x13 - x19 - x22 - x9;
2321 const fp_t x25 = 1.0 * x5;
2322 const fp_t x26 = x12 * x17;
2331 sfddv(2, 2) = 1.0 * x11 * x26 + x12 * x21 - x18 * x25 + x23 + x25 * x26 +
2332 x8 + x11 * x12 * x16 / Kokkos::pow(x0, 3);
2336 const fp_t x0 = phi - 1.0;
2337 const fp_t x1 = 1.0 / x0;
2338 const fp_t x2 = 2 * eta;
2339 const fp_t x3 = -2 * phi - x2 + 2;
2340 const fp_t x4 = x1 * x3;
2341 const fp_t x5 = -x2 + 2 * xi - 1;
2342 const fp_t x6 = 1.0 * x5;
2343 const fp_t x7 = x1 * xi;
2344 const fp_t x8 = 2.0 * x7;
2345 const fp_t x9 = x1 * x6 + x8;
2346 const fp_t x10 = 1.0 * x4 + x9;
2347 const fp_t x11 = Kokkos::pow(x0, -2);
2348 const fp_t x12 = x11 * x3;
2349 const fp_t x13 = 1.0 * x12 * xi;
2350 const fp_t x14 = 0.5 * x12 * x5 + x13 + x9;
2351 const fp_t x15 = x11 * xi;
2352 const fp_t x16 = -x13 - x15 * x6 - x8;
2353 sfddv(0, 0) = -2.0 * x4;
2357 sfddv(1, 1) = -4.0 * x7;
2361 sfddv(2, 2) = -2.0 * x15 * x5 - x3 * x6 * xi / Kokkos::pow(x0, 3);
2365 const fp_t x0 = phi - 1.0;
2366 const fp_t x1 = 1.0 / x0;
2367 const fp_t x2 = eta * x1;
2368 const fp_t x3 = 2.0 * x2;
2369 const fp_t x4 = x1 * xi;
2370 const fp_t x5 = 2.0 * x4;
2371 const fp_t x6 = -2 * eta - 2 * phi - 2 * xi + 3;
2372 const fp_t x7 = 1.0 * x1 * x6 - x3 - x5;
2373 const fp_t x8 = Kokkos::pow(x0, -2);
2374 const fp_t x9 = -2.0 * eta * x8 * xi;
2375 const fp_t x10 = 1.0 * x6;
2376 const fp_t x11 = eta * x8;
2377 const fp_t x12 = -x10 * x11 - x3 - x9;
2378 const fp_t x13 = -x10 * x8 * xi - x5 - x9;
2379 sfddv(0, 0) = -4.0 * x2;
2383 sfddv(1, 1) = -4.0 * x4;
2387 sfddv(2, 2) = 2.0 * eta * x6 * xi / Kokkos::pow(x0, 3) + 4.0 * x11 * xi;
2391 const fp_t x0 = phi - 1.0;
2392 const fp_t x1 = 1.0 / x0;
2393 const fp_t x2 = eta * x1;
2394 const fp_t x3 = 2 * xi;
2395 const fp_t x4 = -2 * phi - x3 + 2;
2396 const fp_t x5 = 1.0 * x1;
2397 const fp_t x6 = 2 * eta - x3 - 1;
2398 const fp_t x7 = 2.0 * x2;
2399 const fp_t x8 = x5 * x6 + x7;
2400 const fp_t x9 = x4 * x5 + x8;
2401 const fp_t x10 = Kokkos::pow(x0, -2);
2402 const fp_t x11 = x10 * x6;
2403 const fp_t x12 = 1.0 * eta;
2404 const fp_t x13 = x12 * x4;
2405 const fp_t x14 = x10 * x13;
2406 const fp_t x15 = -x11 * x12 - x14 - x7;
2407 const fp_t x16 = 0.5 * x11 * x4 + x14 + x8;
2408 sfddv(0, 0) = -4.0 * x2;
2412 sfddv(1, 1) = -2.0 * x1 * x4;
2416 sfddv(2, 2) = -2.0 * eta * x11 - x13 * x6 / Kokkos::pow(x0, 3);
2424 const fp_t x0 = 2 * phi - 2;
2425 const fp_t x1 = -2 * eta - x0;
2426 const fp_t x2 = phi - 1.0;
2427 const fp_t x3 = 1.0 / x2;
2428 const fp_t x4 = 4.0 * x3;
2429 const fp_t x5 = x4 * xi;
2430 const fp_t x6 = -x0 - 2 * xi;
2431 const fp_t x7 = 2.0 * x3 * x6 - x5;
2432 const fp_t x8 = 2.0 * x3;
2433 const fp_t x9 = Kokkos::pow(x2, -2);
2434 const fp_t x10 = x1 * x9;
2435 const fp_t x11 = 2.0 * xi;
2436 const fp_t x12 = x1 * x8 - x10 * x11 + 1.0 * x10 * x6 - x5 + x6 * x8;
2437 const fp_t x13 = x6 * x9;
2438 const fp_t x14 = -x11 * x13 - x5;
2439 const fp_t x15 = 4.0 * xi;
2440 sfddv(0, 0) = x1 * x4;
2447 sfddv(2, 2) = -x1 * x11 * x6 / Kokkos::pow(x2, 3) - x10 * x15 -
2448 x13 * x15 - 8.0 * x3 * xi;
2452 const fp_t x0 = phi - 1.0;
2453 const fp_t x1 = 1.0 / x0;
2454 const fp_t x2 = 4.0 * x1;
2455 const fp_t x3 = eta * x2;
2456 const fp_t x4 = -2 * eta - 2 * phi + 2;
2457 const fp_t x5 = 2.0 * x4;
2458 const fp_t x6 = -x1 * x5 + x3;
2459 const fp_t x7 = Kokkos::pow(x0, -2);
2460 const fp_t x8 = x5 * x7;
2461 const fp_t x9 = eta * x8 + x3;
2462 const fp_t x10 = 8.0 * xi;
2463 const fp_t x11 = eta * x7;
2464 const fp_t x12 = 4.0 * xi;
2465 const fp_t x13 = -x11 * x12 + x2 * xi + x8 * xi;
2469 sfddv(1, 1) = x1 * x10;
2473 sfddv(2, 2) = -eta * x12 * x4 / Kokkos::pow(x0, 3) - x10 * x11;
2477 const fp_t x0 = phi - 1.0;
2478 const fp_t x1 = 1.0 / x0;
2479 const fp_t x2 = 4.0 * xi;
2480 const fp_t x3 = x1 * x2;
2481 const fp_t x4 = 2 * phi + 2 * xi - 2;
2482 const fp_t x5 = 2.0 * x4;
2483 const fp_t x6 = x1 * x5 + x3;
2484 const fp_t x7 = Kokkos::pow(x0, -2);
2485 const fp_t x8 = eta * x7;
2486 const fp_t x9 = 4.0 * eta * x1 - x2 * x8 - x5 * x8;
2487 const fp_t x10 = x3 - x5 * x7 * xi;
2488 sfddv(0, 0) = 8.0 * eta * x1;
2495 sfddv(2, 2) = 4.0 * eta * x4 * xi / Kokkos::pow(x0, 3) - 8.0 * x8 * xi;
2499 const fp_t x0 = phi - 1.0;
2500 const fp_t x1 = 1.0 / x0;
2501 const fp_t x2 = 4.0 * x1;
2502 const fp_t x3 = eta * x2;
2503 const fp_t x4 = 2 * phi - 2;
2504 const fp_t x5 = -2 * eta - x4;
2505 const fp_t x6 = 2.0 * x1 * x5 - x3;
2506 const fp_t x7 = Kokkos::pow(x0, -2);
2507 const fp_t x8 = x5 * x7;
2508 const fp_t x9 = 2.0 * eta;
2509 const fp_t x10 = -x3 - x8 * x9;
2510 const fp_t x11 = -x4 - 2 * xi;
2511 const fp_t x12 = 2.0 * x1;
2512 const fp_t x13 = x11 * x7;
2513 const fp_t x14 = x11 * x12 + 1.0 * x11 * x8 + x12 * x5 - x13 * x9 - x3;
2514 const fp_t x15 = 4.0 * eta;
2518 sfddv(1, 1) = x11 * x2;
2522 sfddv(2, 2) = -8.0 * eta * x1 - x13 * x15 - x15 * x8 -
2523 x11 * x5 * x9 / Kokkos::pow(x0, 3);
2527 const fp_t x0 = phi - 1.0;
2528 const fp_t x1 = 1.0 / x0;
2529 const fp_t x2 = 4.0 * phi * x1;
2530 const fp_t x3 = -x2;
2531 const fp_t x4 = 2 * phi - 2;
2532 const fp_t x5 = -2 * eta - x4;
2533 const fp_t x6 = Kokkos::pow(x0, -2);
2534 const fp_t x7 = phi * x6;
2535 const fp_t x8 = 2.0 * x7;
2536 const fp_t x9 = 2.0 * x1 * x5 - x2 - x5 * x8;
2537 const fp_t x10 = -x4 - 2 * xi;
2538 const fp_t x11 = 2.0 * x1 * x10 - x10 * x8 - x2;
2539 const fp_t x12 = 4.0 * x7;
2546 sfddv(2, 2) = -8.0 * phi * x1 -
2547 2.0 * phi * x10 * x5 / Kokkos::pow(x0, 3) + 4.0 * x1 * x10 +
2548 4.0 * x1 * x5 - x10 * x12 + 2.0 * x10 * x5 * x6 - x12 * x5;
2552 const fp_t x0 = phi - 1.0;
2553 const fp_t x1 = 1.0 / x0;
2554 const fp_t x2 = 4.0 * phi * x1;
2555 const fp_t x3 = -2 * eta - 2 * phi + 2;
2556 const fp_t x4 = 2.0 * x3;
2557 const fp_t x5 = Kokkos::pow(x0, -2);
2558 const fp_t x6 = phi * x5;
2559 const fp_t x7 = -x1 * x4 + x2 + x4 * x6;
2560 const fp_t x8 = 4.0 * xi;
2561 const fp_t x9 = 4.0 * x1 * xi - x6 * x8;
2568 sfddv(2, 2) = -phi * x3 * x8 / Kokkos::pow(x0, 3) + 8.0 * x1 * xi +
2569 4.0 * x3 * x5 * xi - 8.0 * x6 * xi;
2573 const fp_t x0 = phi - 1.0;
2574 const fp_t x1 = 4.0 / x0;
2575 const fp_t x2 = -phi * x1;
2576 const fp_t x3 = Kokkos::pow(x0, -2);
2577 const fp_t x4 = 4.0 * phi;
2578 const fp_t x5 = -eta * x1 + eta * x3 * x4;
2579 const fp_t x6 = -x1 * xi + x3 * x4 * xi;
2587 -8.0 * eta * phi * xi / Kokkos::pow(x0, 3) + 8.0 * eta * x3 * xi;
2591 const fp_t x0 = phi - 1.0;
2592 const fp_t x1 = 1.0 / x0;
2593 const fp_t x2 = 4.0 * phi * x1;
2594 const fp_t x3 = Kokkos::pow(x0, -2);
2595 const fp_t x4 = phi * x3;
2596 const fp_t x5 = 4.0 * eta;
2597 const fp_t x6 = 4.0 * eta * x1 - x4 * x5;
2598 const fp_t x7 = -2 * phi - 2 * xi + 2;
2599 const fp_t x8 = 2.0 * x7;
2600 const fp_t x9 = -x1 * x8 + x2 + x4 * x8;
2607 sfddv(2, 2) = 8.0 * eta * x1 + 4.0 * eta * x3 * x7 - 8.0 * eta * x4 -
2608 phi * x5 * x7 / Kokkos::pow(x0, 3);
KOKKOS_INLINE_FUNCTION bool IsBaryCoordInsideGeo< GeoSupport::HEXAHEDRON >(const fp_t xi, const fp_t eta, const fp_t phi)
KOKKOS_INLINE_FUNCTION bool IsBaryCoordInsideGeo< GeoSupport::TETRA >(const fp_t xi, const fp_t eta, const fp_t phi)
KOKKOS_INLINE_FUNCTION bool IsBaryCoordInsideGeo< GeoSupport::POINT >(const fp_t xi, const fp_t eta, const fp_t phi)
KOKKOS_INLINE_FUNCTION bool IsBaryCoordInsideGeo(const fp_t xi, const fp_t eta, const fp_t phi)
Generic predicate to test if local coordinates lie inside a reference geometry.
KOKKOS_INLINE_FUNCTION bool IsBaryCoordInsideGeo< GeoSupport::QUAD >(const fp_t xi, const fp_t eta, const fp_t phi)
KOKKOS_INLINE_FUNCTION bool IsBaryCoordInsideGeo< GeoSupport::TRIANGLE >(const fp_t xi, const fp_t eta, const fp_t phi)
KOKKOS_INLINE_FUNCTION bool IsBaryCoordInsideGeo< GeoSupport::LINE >(const fp_t xi, const fp_t eta, const fp_t phi)
KOKKOS_INLINE_FUNCTION bool IsBaryCoordInsideGeo< GeoSupport::PYRAMID >(const fp_t xi, const fp_t eta, const fp_t phi)
KOKKOS_INLINE_FUNCTION bool IsBaryCoordInsideGeo< GeoSupport::WEDGE >(const fp_t xi, const fp_t eta, const fp_t phi)
@ VTK_QUADRATIC_HEXAHEDRON
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsValues(const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t *, ExecSpace > sfv)
static KOKKOS_INLINE_FUNCTION bool isInside(const fp_t xi, const fp_t eta, const fp_t phi)
static constexpr unsigned int numberOfShapeFunctions
static constexpr unsigned int dimensionality
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsDerDerValues(const int_t i, const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t **, ExecSpace > sfddv)
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsDerValues(const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t *, ExecSpace > sfv)
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsDerValues(const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t **, ExecSpace > sfdv)
static constexpr unsigned int dimensionality
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsValues(const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t *, ExecSpace > sfv)
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsDerDerValues(const int_t i, const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t **, ExecSpace > sfddv)
static KOKKOS_INLINE_FUNCTION bool isInside(const fp_t xi, const fp_t eta, const fp_t phi)
static constexpr unsigned int numberOfShapeFunctions
static constexpr unsigned int numberOfShapeFunctions
static constexpr unsigned int dimensionality
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsValues(const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t *, ExecSpace > sfv)
static KOKKOS_INLINE_FUNCTION bool isInside(const fp_t xi, const fp_t eta, const fp_t phi)
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsDerDerValues(const int_t i, const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t **, ExecSpace > sfddv)
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsDerValues(const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t **, ExecSpace > sfdv)
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsDerValues(const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t **, ExecSpace > sfdv)
static constexpr unsigned int dimensionality
static constexpr unsigned int numberOfShapeFunctions
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsValues(const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t *, ExecSpace > sfv)
static KOKKOS_INLINE_FUNCTION bool isInside(const fp_t xi, const fp_t eta, const fp_t phi)
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsDerDerValues(const int_t i, const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t **, ExecSpace > sfddv)
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsValues(const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t *, ExecSpace > sfv)
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsDerValues(const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t **, ExecSpace > sfdv)
static constexpr unsigned int numberOfShapeFunctions
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsDerDerValues(const int_t i, const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t **, ExecSpace > sfddv)
static constexpr unsigned int dimensionality
static KOKKOS_INLINE_FUNCTION bool isInside(const fp_t xi, const fp_t eta, const fp_t phi)
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsValues(const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t *, ExecSpace > sfv)
static constexpr unsigned int numberOfShapeFunctions
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsDerValues(const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t **, ExecSpace > sfdv)
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsDerDerValues(const int_t i, const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t **, ExecSpace > sfddv)
static constexpr unsigned int dimensionality
static KOKKOS_INLINE_FUNCTION bool isInside(const fp_t xi, const fp_t eta, const fp_t phi)
static constexpr unsigned int dimensionality
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsDerValues(const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t **, ExecSpace > sfdv)
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsDerDerValues(const int_t i, const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t **, ExecSpace > sfddv)
static KOKKOS_INLINE_FUNCTION bool isInside(const fp_t xi, const fp_t eta, const fp_t phi)
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsValues(const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t *, ExecSpace > sfv)
static constexpr unsigned int numberOfShapeFunctions
static constexpr unsigned int dimensionality
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsDerValues(const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t **, ExecSpace > sfdv)
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsDerDerValues(const int_t i, const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t **, ExecSpace > sfddv)
static constexpr unsigned int numberOfShapeFunctions
static KOKKOS_INLINE_FUNCTION bool isInside(const fp_t xi, const fp_t eta, const fp_t phi)
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsValues(const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t *, ExecSpace > sfv)
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsDerValues(const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t **, ExecSpace > sfdv)
static KOKKOS_INLINE_FUNCTION bool isInside(const fp_t xi, const fp_t eta, const fp_t phi)
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsDerDerValues(const int_t i, const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t **, ExecSpace > sfddv)
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsValues(const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t *, ExecSpace > sfv)
static constexpr unsigned int numberOfShapeFunctions
static constexpr unsigned int dimensionality
static constexpr unsigned int numberOfShapeFunctions
static KOKKOS_INLINE_FUNCTION bool isInside(const fp_t xi, const fp_t eta, const fp_t phi)
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsDerValues(const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t **, ExecSpace > sfdv)
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsValues(const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t *, ExecSpace > sfv)
static constexpr unsigned int dimensionality
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsDerDerValues(const int_t i, const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t **, ExecSpace > sfddv)
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsDerDerValues(const int_t i, const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t **, ExecSpace > sfddv)
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsDerValues(const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t **, ExecSpace > sfdv)
static constexpr unsigned int dimensionality
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsValues(const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t *, ExecSpace > sfv)
static KOKKOS_INLINE_FUNCTION bool isInside(const fp_t xi, const fp_t eta, const fp_t phi)
static constexpr unsigned int numberOfShapeFunctions
static constexpr unsigned int numberOfShapeFunctions
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsDerValues(const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t **, ExecSpace > sfdv)
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsValues(const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t *, ExecSpace > sfv)
static constexpr unsigned int dimensionality
static KOKKOS_INLINE_FUNCTION bool isInside(const fp_t xi, const fp_t eta, const fp_t phi)
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsDerDerValues(const int_t i, const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t **, ExecSpace > sfddv)
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsValues(const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t *, ExecSpace > sfv)
static KOKKOS_INLINE_FUNCTION bool isInside(const fp_t xi, const fp_t eta, const fp_t phi)
static constexpr unsigned int numberOfShapeFunctions
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsDerDerValues(const int_t i, const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t **, ExecSpace > sfddv)
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsDerValues(const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t **, ExecSpace > sfdv)
static constexpr unsigned int dimensionality
static constexpr unsigned int dimensionality
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsDerDerValues(const int_t i, const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t **, ExecSpace > sfddv)
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsValues(const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t *, ExecSpace > sfv)
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsDerValues(const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t **, ExecSpace > sfdv)
static KOKKOS_INLINE_FUNCTION bool isInside(const fp_t xi, const fp_t eta, const fp_t phi)
static constexpr unsigned int numberOfShapeFunctions
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsDerValues(const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t **, ExecSpace > sfdv)
static KOKKOS_INLINE_FUNCTION bool isInside(const fp_t xi, const fp_t eta, const fp_t phi)
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsValues(const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t *, ExecSpace > sfv)
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsDerDerValues(const int_t i, const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t **, ExecSpace > sfddv)
static constexpr unsigned int numberOfShapeFunctions
static constexpr unsigned int dimensionality
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsDerDerValues(const int_t i, const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t **, ExecSpace > sfddv)
static KOKKOS_INLINE_FUNCTION bool isInside(const fp_t xi, const fp_t eta, const fp_t phi)
static constexpr unsigned int dimensionality
static constexpr unsigned int numberOfShapeFunctions
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsValues(const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t *, ExecSpace > sfv)
static KOKKOS_INLINE_FUNCTION void UpdateShapeFunctionsDerValues(const fp_t xi, const fp_t eta, const fp_t phi, Kokkos::View< fp_t **, ExecSpace > sfdv)
Compile-time FE geometry interface for one cell type.