602 MeshChecker::assert_geometric_element<QHermiteElementBase, ELEMENT>(2);
608 Element_pt.resize(Nelement[0] * Nelement[1]);
611 Element_pt[0] =
new ELEMENT;
612 finite_element_pt(0)->set_macro_elem_pt(Domain_pt->macro_element_pt(0));
645 set_position_of_boundary_node(
661 if (Nelement[0] == 1)
667 set_position_of_boundary_node(
683 if (Nelement[1] == 1)
689 set_position_of_boundary_node(
702 if (Nelement[0] == 1)
707 if (Nelement[1] == 1)
713 if (Nelement[0] == 1 || Nelement[1] == 1)
716 set_position_of_boundary_node(
734 for (
unsigned j = 1;
j < (Nelement[0] - 1);
j++)
737 Element_pt[
j] =
new ELEMENT;
744 finite_element_pt(
j)->
node_pt(0) = finite_element_pt(
j - 1)->node_pt(1);
756 set_position_of_boundary_node(
765 finite_element_pt(
j)->
node_pt(2) = finite_element_pt(
j - 1)->node_pt(3);
774 if (Nelement[0] == 1)
780 if (Nelement[0] == 1)
781 set_position_of_boundary_node(
797 Element_pt[Nelement[0] - 1] =
new ELEMENT;
798 finite_element_pt(Nelement[0] - 1)
804 finite_element_pt(Nelement[0] - 1)->
node_pt(0) =
805 finite_element_pt(Nelement[0] - 2)->node_pt(1);
811 if (Xperiodic ==
true)
814 finite_element_pt(Nelement[0] - 1)->node_pt(1) =
815 finite_element_pt(0)->node_pt(0);
830 set_position_of_boundary_node(
834 if (Xperiodic ==
false)
842 finite_element_pt(Nelement[0] - 1)->
node_pt(2) =
843 finite_element_pt(Nelement[0] - 2)->node_pt(3);
846 if (Nelement[1] == 1)
852 if (Nelement[1] == 1)
853 set_position_of_boundary_node(
857 finite_element_pt(Nelement[0] - 2)->
node_pt(3)));
863 if (Xperiodic ==
true)
866 finite_element_pt(Nelement[0] - 1)->node_pt(3) =
867 finite_element_pt(0)->node_pt(2);
878 if (Nelement[1] == 1)
887 set_position_of_boundary_node(
891 if (Xperiodic ==
false)
903 for (
unsigned i = 1;
i < (Nelement[1] - 1);
i++)
909 Element_pt[Nelement[0] *
i] =
new ELEMENT;
910 finite_element_pt(Nelement[0] *
i)
914 for (
unsigned l = 0;
l < 2;
l++)
916 finite_element_pt(Nelement[0] *
i)->
node_pt(
l) =
917 finite_element_pt(Nelement[0] * (
i - 1))->node_pt(2 +
l);
930 set_position_of_boundary_node(
939 if (Nelement[0] == 1)
952 if (Nelement[0] == 1)
958 if (Nelement[0] == 1)
959 set_position_of_boundary_node(
971 for (
unsigned j = 1;
j < (Nelement[0] - 1);
j++)
974 Element_pt[Nelement[0] *
i +
j] =
new ELEMENT;
975 finite_element_pt(Nelement[0] *
i +
j)
981 for (
unsigned l = 0;
l < 2;
l++)
983 finite_element_pt(Nelement[0] *
i +
j)->
node_pt(
l) =
984 finite_element_pt(Nelement[0] * (
i - 1) +
j)->node_pt(2 +
l);
990 finite_element_pt(Nelement[0] *
i +
j)->node_pt(2) =
991 finite_element_pt(Nelement[0] *
i + (
j - 1))->node_pt(3);
1010 if (Nelement[0] > 1)
1013 Element_pt[Nelement[0] *
i + Nelement[0] - 1] =
new ELEMENT;
1014 finite_element_pt(Nelement[0] *
i + Nelement[0] - 1)
1020 for (
unsigned l = 0;
l < 2;
l++)
1022 finite_element_pt(Nelement[0] *
i + Nelement[0] - 1)->
node_pt(
l) =
1023 finite_element_pt(Nelement[0] * (
i - 1) + Nelement[0] - 1)
1030 finite_element_pt(Nelement[0] *
i + Nelement[0] - 1)->node_pt(2) =
1031 finite_element_pt(Nelement[0] *
i + Nelement[0] - 2)->node_pt(3);
1037 if (Xperiodic ==
true)
1040 finite_element_pt(Nelement[0] *
i + Nelement[0] - 1)->node_pt(3) =
1041 finite_element_pt(Nelement[0] *
i)->node_pt(2);
1047 finite_element_pt(Nelement[0] *
i + Nelement[0] - 1)
1055 set_position_of_boundary_node(
1070 if (Nelement[1] > 1)
1076 Element_pt[Nelement[0] * (Nelement[1] - 1)] =
new ELEMENT;
1077 finite_element_pt(Nelement[0] * (Nelement[1] - 1))
1083 for (
unsigned l = 0;
l < 2;
l++)
1085 finite_element_pt(Nelement[0] * (Nelement[1] - 1))->
node_pt(
l) =
1086 finite_element_pt(Nelement[0] * (Nelement[1] - 2))->node_pt(2 +
l);
1100 set_position_of_boundary_node(
1116 set_position_of_boundary_node(
1126 for (
unsigned j = 1;
j < (Nelement[0] - 1);
j++)
1129 Element_pt[Nelement[0] * (Nelement[1] - 1) +
j] =
new ELEMENT;
1130 finite_element_pt(Nelement[0] * (Nelement[1] - 1) +
j)
1136 for (
unsigned l = 0;
l < 2;
l++)
1138 finite_element_pt(Nelement[0] * (Nelement[1] - 1) +
j)->
node_pt(
l) =
1139 finite_element_pt(Nelement[0] * (Nelement[1] - 2) +
j)
1146 finite_element_pt(Nelement[0] * (Nelement[1] - 1) +
j)->node_pt(2) =
1147 finite_element_pt(Nelement[0] * (Nelement[1] - 1) + (
j - 1))
1154 finite_element_pt(Nelement[0] * (Nelement[1] - 1) +
j)
1161 set_position_of_boundary_node(
1175 if (Nelement[0] > 1)
1178 Element_pt[Nelement[0] * (Nelement[1] - 1) + Nelement[0] - 1] =
1180 finite_element_pt(Nelement[0] * (Nelement[1] - 1) + Nelement[0] - 1)
1186 for (
unsigned l = 0;
l < 2;
l++)
1188 finite_element_pt(Nelement[0] * (Nelement[1] - 1) + Nelement[0] - 1)
1190 finite_element_pt(Nelement[0] * (Nelement[1] - 2) + Nelement[0] - 1)
1197 finite_element_pt(Nelement[0] * (Nelement[1] - 1) + Nelement[0] - 1)
1199 finite_element_pt(Nelement[0] * (Nelement[1] - 1) + Nelement[0] - 2)
1206 if (Xperiodic ==
true)
1209 finite_element_pt(Nelement[0] * (Nelement[1] - 1) + Nelement[0] - 1)
1211 finite_element_pt(Nelement[0] * (Nelement[1] - 1))->node_pt(2);
1217 finite_element_pt(Nelement[0] * (Nelement[1] - 1) + Nelement[0] - 1)
1226 set_position_of_boundary_node(
1237 setup_boundary_element_info();