564 psi(0, 0) = Psi[0][0][0] * Psi[1][0][0];
566 psi(0, 1) = Psi[0][0][1] * Psi[1][0][0];
568 psi(0, 2) = Psi[0][0][0] * Psi[1][0][1];
570 psi(0, 3) = Psi[0][0][1] * Psi[1][0][1];
574 psi(1, 0) = Psi[0][1][0] * Psi[1][0][0];
576 psi(1, 1) = Psi[0][1][1] * Psi[1][0][0];
578 psi(1, 2) = Psi[0][1][0] * Psi[1][0][1];
580 psi(1, 3) = Psi[0][1][1] * Psi[1][0][1];
584 psi(2, 0) = Psi[0][0][0] * Psi[1][1][0];
586 psi(2, 1) = Psi[0][0][1] * Psi[1][1][0];
588 psi(2, 2) = Psi[0][0][0] * Psi[1][1][1];
590 psi(2, 3) = Psi[0][0][1] * Psi[1][1][1];
594 psi(3, 0) = Psi[0][1][0] * Psi[1][1][0];
596 psi(3, 1) = Psi[0][1][1] * Psi[1][1][0];
598 psi(3, 2) = Psi[0][1][0] * Psi[1][1][1];
600 psi(3, 3) = Psi[0][1][1] * Psi[1][1][1];
607 dpsids(0, 0, 0) = DPsi[0][0][0] * Psi[1][0][0];
608 dpsids(0, 1, 0) = DPsi[0][0][1] * Psi[1][0][0];
609 dpsids(0, 2, 0) = DPsi[0][0][0] * Psi[1][0][1];
610 dpsids(0, 3, 0) = DPsi[0][0][1] * Psi[1][0][1];
613 dpsids(1, 0, 0) = DPsi[0][1][0] * Psi[1][0][0];
614 dpsids(1, 1, 0) = DPsi[0][1][1] * Psi[1][0][0];
615 dpsids(1, 2, 0) = DPsi[0][1][0] * Psi[1][0][1];
616 dpsids(1, 3, 0) = DPsi[0][1][1] * Psi[1][0][1];
619 dpsids(2, 0, 0) = DPsi[0][0][0] * Psi[1][1][0];
620 dpsids(2, 1, 0) = DPsi[0][0][1] * Psi[1][1][0];
621 dpsids(2, 2, 0) = DPsi[0][0][0] * Psi[1][1][1];
622 dpsids(2, 3, 0) = DPsi[0][0][1] * Psi[1][1][1];
625 dpsids(3, 0, 0) = DPsi[0][1][0] * Psi[1][1][0];
626 dpsids(3, 1, 0) = DPsi[0][1][1] * Psi[1][1][0];
627 dpsids(3, 2, 0) = DPsi[0][1][0] * Psi[1][1][1];
628 dpsids(3, 3, 0) = DPsi[0][1][1] * Psi[1][1][1];
633 dpsids(0, 0, 1) = Psi[0][0][0] * DPsi[1][0][0];
634 dpsids(0, 1, 1) = Psi[0][0][1] * DPsi[1][0][0];
635 dpsids(0, 2, 1) = Psi[0][0][0] * DPsi[1][0][1];
636 dpsids(0, 3, 1) = Psi[0][0][1] * DPsi[1][0][1];
639 dpsids(1, 0, 1) = Psi[0][1][0] * DPsi[1][0][0];
640 dpsids(1, 1, 1) = Psi[0][1][1] * DPsi[1][0][0];
641 dpsids(1, 2, 1) = Psi[0][1][0] * DPsi[1][0][1];
642 dpsids(1, 3, 1) = Psi[0][1][1] * DPsi[1][0][1];
645 dpsids(2, 0, 1) = Psi[0][0][0] * DPsi[1][1][0];
646 dpsids(2, 1, 1) = Psi[0][0][1] * DPsi[1][1][0];
647 dpsids(2, 2, 1) = Psi[0][0][0] * DPsi[1][1][1];
648 dpsids(2, 3, 1) = Psi[0][0][1] * DPsi[1][1][1];
651 dpsids(3, 0, 1) = Psi[0][1][0] * DPsi[1][1][0];
652 dpsids(3, 1, 1) = Psi[0][1][1] * DPsi[1][1][0];
653 dpsids(3, 2, 1) = Psi[0][1][0] * DPsi[1][1][1];
654 dpsids(3, 3, 1) = Psi[0][1][1] * DPsi[1][1][1];
716 d2psids(0, 0, 2) = DPsi[0][0][0] * DPsi[1][0][0];
717 d2psids(0, 1, 2) = DPsi[0][0][1] * DPsi[1][0][0];
718 d2psids(0, 2, 2) = DPsi[0][0][0] * DPsi[1][0][1];
719 d2psids(0, 3, 2) = DPsi[0][0][1] * DPsi[1][0][1];
722 d2psids(1, 0, 2) = DPsi[0][1][0] * DPsi[1][0][0];
723 d2psids(1, 1, 2) = DPsi[0][1][1] * DPsi[1][0][0];
724 d2psids(1, 2, 2) = DPsi[0][1][0] * DPsi[1][0][1];
725 d2psids(1, 3, 2) = DPsi[0][1][1] * DPsi[1][0][1];
728 d2psids(2, 0, 2) = DPsi[0][0][0] * DPsi[1][1][0];
729 d2psids(2, 1, 2) = DPsi[0][0][1] * DPsi[1][1][0];
730 d2psids(2, 2, 2) = DPsi[0][0][0] * DPsi[1][1][1];
731 d2psids(2, 3, 2) = DPsi[0][0][1] * DPsi[1][1][1];
734 d2psids(3, 0, 2) = DPsi[0][1][0] * DPsi[1][1][0];
735 d2psids(3, 1, 2) = DPsi[0][1][1] * DPsi[1][1][0];
736 d2psids(3, 2, 2) = DPsi[0][1][0] * DPsi[1][1][1];
737 d2psids(3, 3, 2) = DPsi[0][1][1] * DPsi[1][1][1];
748 outfile <<
"ZONE I=" << 2 <<
", J=" << 2 << std::endl;
754 for (
unsigned l2 = 0;
l2 < 2;
l2++)
756 for (
unsigned l1 = 0;
l1 < 2;
l1++)
758 unsigned l =
l2 * 2 +
l1;
761 for (
unsigned i = 0;
i <
n_dim;
i++)
771 for (
unsigned i = 0;
i <
n_dim;
i++)
815 for (
unsigned i = 0;
i <
n_dim;
i++)
838 for (
unsigned l2 = 0;
l2 < 2;
l2++)
840 for (
unsigned l1 = 0;
l1 < 2;
l1++)
842 unsigned l =
l2 * 2 +
l1;
845 for (
unsigned i = 0;
i <
n_dim;
i++)
855 for (
unsigned i = 0;
i <
n_dim;
i++)
898 for (
unsigned i = 0;
i <
n_dim;
i++)
968 for (
unsigned i = 0;
i < 2;
i++)
991 for (
unsigned i = 0;
i < 2;
i++)
1014 for (
unsigned i = 0;
i < 2;
i++)
1037 for (
unsigned i = 0;
i < 2;
i++)
1053 std::ostringstream error_message;
1055 <<
"Face index should only take the values +/- 1 or +/- 2,"
1056 <<
" not " << face_index << std::endl;
1071 template<
unsigned DIM>
1101 s[0] = -1.0 +
l * 2.0 / (
n_plot - 1);
1104 for (
unsigned i = 0;
i <
n_dim;
i++)
1112 outfile << interpolated_xi(
s,
i) <<
" ";
1122 template<
unsigned DIM>
1151 s[0] = -1.0 +
l * 2.0 / (
n_plot - 1);
1154 for (
unsigned i = 0;
i <
n_dim;
i++)
1179 const unsigned&
n_p)
1196 s[1] = -1.0 +
l2 * 2.0 / (
n_p - 1);
1199 s[0] = -1.0 +
l1 * 2.0 / (
n_p - 1);
1202 for (
unsigned i = 0;
i <
n_dim;
i++)
1210 outfile << interpolated_xi(
s,
i) <<
" ";
1246 for (
unsigned i = 0;
i <
n_dim;
i++)
1269 template<
unsigned DIM>
1271 const int& face_index,
FaceElement* face_element_pt)
1278 ->set_lagrangian_dimension(