60 MeshChecker::assert_geometric_element<QElementGeometricBase, ELEMENT>(2);
87 unsigned nmacro_element = Domain_pt->nmacro_element();
88 for (
unsigned e = 0;
e < nmacro_element;
e++)
91 Element_pt.push_back(
new ELEMENT);
95 dynamic_cast<ELEMENT*
>(this->finite_element_pt(
e))->
nnode_1d();
101 for (
unsigned l2 = 0;
l2 <
np;
l2++)
105 this->finite_element_pt(
e)->construct_boundary_node(
111 Domain_pt->macro_element_pt(
e)->macro_map(
s,
r);
129 dynamic_cast<ELEMENT*
>(this->finite_element_pt(0))->
nnode_1d();
132 for (
unsigned n = 0;
n <
np;
n++)
136 this->finite_element_pt(0)->node_pt((
np - 1) *
np +
np - 1 -
n);
144 for (
unsigned n = 0;
n <
np;
n++)
148 this->finite_element_pt(1)->node_pt(
np *
n +
np - 1);
156 for (
unsigned n = 0;
n <
np;
n++)
159 this->finite_element_pt(3)->
node_pt(
np * (
np - 1) +
n) =
160 this->finite_element_pt(2)->node_pt(
np *
n +
np - 1);
168 for (
unsigned n = 0;
n <
np;
n++)
171 this->finite_element_pt(4)->
node_pt(
n) =
172 this->finite_element_pt(5)->node_pt(
np * (
np -
n - 1) +
np - 1);
180 for (
unsigned n = 0;
n <
np;
n++)
184 this->finite_element_pt(6)->node_pt(
np *
n +
np - 1);
192 for (
unsigned n = 0;
n <
np;
n++)
196 this->finite_element_pt(0)->node_pt(
n);
204 for (
unsigned n = 0;
n <
np;
n++)
208 this->finite_element_pt(2)->node_pt((
np - 1) *
np +
np - 1 -
n);
216 for (
unsigned n = 0;
n <
np;
n++)
220 this->finite_element_pt(3)->node_pt(
np *
n +
np - 1);
228 for (
unsigned n = 0;
n <
np;
n++)
232 this->finite_element_pt(4)->node_pt(
np *
n +
np - 1);
240 for (
unsigned n = 0;
n <
np;
n++)
243 this->finite_element_pt(10)->
node_pt(
n *
np) =
244 this->finite_element_pt(5)->node_pt(
n);
252 for (
unsigned n = 0;
n <
np;
n++)
255 this->finite_element_pt(11)->
node_pt(
n *
np) =
256 this->finite_element_pt(7)->node_pt(
np *
n +
np - 1);
264 for (
unsigned n = 0;
n <
np;
n++)
267 this->finite_element_pt(12)->
node_pt(
n *
np) =
268 this->finite_element_pt(8)->node_pt(
np *
n +
np - 1);
276 for (
unsigned n = 0;
n <
np;
n++)
279 this->finite_element_pt(13)->
node_pt(
n *
np) =
280 this->finite_element_pt(9)->node_pt(
np *
n +
np - 1);
288 for (
unsigned n = 0;
n <
np;
n++)
291 this->finite_element_pt(14)->
node_pt(
n *
np) =
292 this->finite_element_pt(10)->node_pt(
np *
n +
np - 1);
300 for (
unsigned n = 0;
n <
np;
n++)
303 this->finite_element_pt(8)->
node_pt(
np * (
np - 1) +
n) =
304 this->finite_element_pt(7)->node_pt(
n);
312 for (
unsigned n = 0;
n <
np;
n++)
315 this->finite_element_pt(10)->
node_pt(
np * (
np - 1) +
n) =
316 this->finite_element_pt(9)->node_pt(
n);
324 for (
unsigned n = 0;
n <
np;
n++)
327 this->finite_element_pt(15)->
node_pt(
n *
np) =
328 this->finite_element_pt(11)->node_pt(
np *
n +
np - 1);
336 for (
unsigned n = 0;
n <
np;
n++)
339 this->finite_element_pt(16)->
node_pt(
n *
np) =
340 this->finite_element_pt(12)->node_pt(
np *
n +
np - 1);
348 for (
unsigned n = 0;
n <
np;
n++)
351 this->finite_element_pt(17)->
node_pt(
n *
np) =
352 this->finite_element_pt(13)->node_pt(
np *
n +
np - 1);
360 for (
unsigned n = 0;
n <
np;
n++)
363 this->finite_element_pt(18)->
node_pt(
n *
np) =
364 this->finite_element_pt(14)->node_pt(
np *
n +
np - 1);
372 for (
unsigned n = 0;
n <
np;
n++)
375 this->finite_element_pt(12)->
node_pt(
np * (
np - 1) +
n) =
376 this->finite_element_pt(11)->node_pt(
n);
384 for (
unsigned n = 0;
n <
np;
n++)
387 this->finite_element_pt(14)->
node_pt(
np * (
np - 1) +
n) =
388 this->finite_element_pt(13)->node_pt(
n);
396 for (
unsigned n = 0;
n <
np;
n++)
399 this->finite_element_pt(19)->
node_pt(
np * (
np - 1) +
n) =
400 this->finite_element_pt(15)->node_pt(
np *
n +
np - 1);
408 for (
unsigned n = 0;
n <
np;
n++)
412 this->finite_element_pt(19)->node_pt(
n *
np);
420 for (
unsigned n = 0;
n <
np;
n++)
423 this->finite_element_pt(16)->
node_pt(
np * (
np - 1) +
n) =
424 this->finite_element_pt(15)->node_pt(
n);
432 for (
unsigned n = 0;
n <
np;
n++)
435 this->finite_element_pt(20)->
node_pt(
n) =
436 this->finite_element_pt(18)->node_pt(
np * (
np -
n - 1) +
np - 1);
444 for (
unsigned n = 0;
n <
np;
n++)
447 this->finite_element_pt(20)->
node_pt(
n *
np) =
448 this->finite_element_pt(17)->node_pt(
np *
n +
np - 1);
456 for (
unsigned n = 0;
n <
np;
n++)
459 this->finite_element_pt(18)->
node_pt(
np * (
np - 1) +
n) =
460 this->finite_element_pt(17)->node_pt(
n);
468 for (
unsigned n = 0;
n <
np;
n++)
471 this->finite_element_pt(21)->
node_pt(
n *
np) =
472 this->finite_element_pt(19)->node_pt(
np *
n +
np - 1);
480 for (
unsigned n = 0;
n <
np;
n++)
483 this->finite_element_pt(22)->
node_pt(
np * (
np - 1) +
n) =
484 this->finite_element_pt(21)->node_pt(
n);
492 for (
unsigned n = 0;
n <
np;
n++)
495 this->finite_element_pt(23)->
node_pt(
n *
np) =
496 this->finite_element_pt(20)->node_pt(
np *
n +
np - 1);
504 for (
unsigned n = 0;
n <
np;
n++)
507 this->finite_element_pt(22)->
node_pt(
n) =
508 this->finite_element_pt(23)->node_pt(
np * (
np - 1) +
n);
516 for (
unsigned n = 0;
n <
np;
n++)
519 this->finite_element_pt(24)->
node_pt(
n *
np) =
520 this->finite_element_pt(21)->node_pt(
np *
n +
np - 1);
528 for (
unsigned n = 0;
n <
np;
n++)
531 this->finite_element_pt(25)->
node_pt(
n *
np) =
532 this->finite_element_pt(22)->node_pt(
np *
n +
np - 1);
540 for (
unsigned n = 0;
n <
np;
n++)
543 this->finite_element_pt(26)->
node_pt(
n *
np) =
544 this->finite_element_pt(23)->node_pt(
np *
n +
np - 1);
552 for (
unsigned n = 0;
n <
np;
n++)
555 this->finite_element_pt(25)->
node_pt(
np * (
np - 1) +
n) =
556 this->finite_element_pt(24)->node_pt(
n);
564 for (
unsigned n = 0;
n <
np;
n++)
567 this->finite_element_pt(26)->
node_pt(
np * (
np - 1) +
n) =
568 this->finite_element_pt(25)->node_pt(
n);
576 for (
unsigned n = 0;
n <
np;
n++)
579 this->finite_element_pt(27)->
node_pt(
np * (
np - 1) +
n) =
580 this->finite_element_pt(24)->node_pt(
np *
n +
np - 1);
588 for (
unsigned n = 0;
n <
np;
n++)
591 this->finite_element_pt(27)->
node_pt(
n *
np) =
592 this->finite_element_pt(25)->node_pt(
np *
n +
np - 1);
600 for (
unsigned n = 0;
n <
np;
n++)
603 this->finite_element_pt(27)->
node_pt(
n) =
604 this->finite_element_pt(26)->node_pt(
np * (
np -
n - 1) +
np - 1);
612 for (
unsigned n = 0;
n <
np;
n++)
615 this->finite_element_pt(28)->
node_pt(
n *
np) =
616 this->finite_element_pt(27)->node_pt(
np *
n +
np - 1);
624 for (
unsigned n = 0;
n <
np;
n++)
627 this->finite_element_pt(29)->
node_pt(
n *
np) =
628 this->finite_element_pt(28)->node_pt(
np *
n +
np - 1);
636 for (
unsigned n = 0;
n <
np;
n++)
639 this->finite_element_pt(30)->
node_pt(
n *
np) =
640 this->finite_element_pt(29)->node_pt(
np *
n +
np - 1);
657 this->set_nboundary(8);
659 for (
unsigned n = 0;
n <
np;
n++)
662 this->add_boundary_node(3, this->finite_element_pt(0)->
node_pt(
n *
np));
664 this->add_boundary_node(
665 1, this->finite_element_pt(30)->
node_pt(
n *
np +
np - 1));
668 this->add_boundary_node(0, this->finite_element_pt(6)->
node_pt(
n));
671 this->add_boundary_node(
672 2, this->finite_element_pt(1)->
node_pt(
np * (
np - 1) +
n));
675 this->add_boundary_node(4, this->finite_element_pt(3)->
node_pt(
np *
n));
678 this->add_boundary_node(
679 5, this->finite_element_pt(4)->
node_pt(
np * (
np - 1) +
n));
682 this->add_boundary_node(6, this->finite_element_pt(3)->
node_pt(
n));
685 this->add_boundary_node(7, this->finite_element_pt(22)->
node_pt(
n *
np));
688 for (
unsigned n = 1;
n <
np;
n++)
691 this->add_boundary_node(0, this->finite_element_pt(10)->
node_pt(
n));
694 this->add_boundary_node(
695 2, this->finite_element_pt(7)->
node_pt(
np * (
np - 1) +
n));
698 this->add_boundary_node(
699 5, this->finite_element_pt(9)->
node_pt(
np * (
np - 1) +
n));
702 this->add_boundary_node(6, this->finite_element_pt(8)->
node_pt(
n));
705 for (
unsigned n =
np - 2;
n > 0;
n--)
708 this->add_boundary_node(4, this->finite_element_pt(2)->
node_pt(
n));
711 for (
unsigned n = 1;
n <
np;
n++)
714 this->add_boundary_node(0, this->finite_element_pt(14)->
node_pt(
n));
717 this->add_boundary_node(
718 2, this->finite_element_pt(11)->
node_pt(
np * (
np - 1) +
n));
721 this->add_boundary_node(
722 5, this->finite_element_pt(13)->
node_pt(
np * (
np - 1) +
n));
725 this->add_boundary_node(6, this->finite_element_pt(12)->
node_pt(
n));
728 for (
unsigned n =
np - 1;
n > 0;
n--)
731 this->add_boundary_node(4, this->finite_element_pt(1)->
node_pt(
n));
734 for (
unsigned n = 1;
n <
np;
n++)
737 this->add_boundary_node(0, this->finite_element_pt(18)->
node_pt(
n));
739 this->add_boundary_node(
740 2, this->finite_element_pt(15)->
node_pt(
np * (
np - 1) +
n));
743 this->add_boundary_node(
744 5, this->finite_element_pt(17)->
node_pt(
np * (
np - 1) +
n));
747 this->add_boundary_node(6, this->finite_element_pt(16)->
node_pt(
n));
750 for (
unsigned n =
np - 1;
n > 0;
n--)
753 this->add_boundary_node(
754 4, this->finite_element_pt(0)->
node_pt(
n *
np +
np - 1));
757 for (
unsigned n = 1;
n <
np;
n++)
760 this->add_boundary_node(0, this->finite_element_pt(23)->
node_pt(
n));
762 this->add_boundary_node(
763 2, this->finite_element_pt(21)->
node_pt(
np * (
np - 1) +
n));
766 this->add_boundary_node(
767 4, this->finite_element_pt(6)->
node_pt(
np * (
np - 1) +
n));
770 this->add_boundary_node(
771 5, this->finite_element_pt(20)->
node_pt(
np * (
np - 1) +
n));
774 this->add_boundary_node(6, this->finite_element_pt(19)->
node_pt(
n));
777 for (
unsigned n = 0;
n <
np;
n++)
780 this->add_boundary_node(
781 4, this->finite_element_pt(6)->
node_pt(
np * (
np - 1) +
n));
784 for (
unsigned n = 1;
n <
np;
n++)
787 this->add_boundary_node(0, this->finite_element_pt(26)->
node_pt(
n));
789 this->add_boundary_node(
790 2, this->finite_element_pt(24)->
node_pt(
np * (
np - 1) +
n));
793 this->add_boundary_node(
794 4, this->finite_element_pt(5)->
node_pt(
np * (
np - 1) +
n));
797 for (
unsigned n = 1;
n <
np;
n++)
800 this->add_boundary_node(0, this->finite_element_pt(28)->
node_pt(
n));
802 this->add_boundary_node(
803 2, this->finite_element_pt(28)->
node_pt(
np * (
np - 1) +
n));
806 this->add_boundary_node(4, this->finite_element_pt(4)->
node_pt(
np *
n));
809 for (
unsigned n = 1;
n <
np;
n++)
812 this->add_boundary_node(0, this->finite_element_pt(29)->
node_pt(
n));
814 this->add_boundary_node(
815 2, this->finite_element_pt(29)->
node_pt(
np * (
np - 1) +
n));
818 for (
unsigned n = 1;
n <
np;
n++)
821 this->add_boundary_node(0, this->finite_element_pt(30)->
node_pt(
n));
823 this->add_boundary_node(
824 2, this->finite_element_pt(30)->
node_pt(
np * (
np - 1) +
n));
828 setup_boundary_element_info();
836 unsigned nnode = this->nboundary_node(5);
837 for (
unsigned k = 0;
k <
nnode;
k++)
845 nnode = this->nboundary_node(6);
846 for (
unsigned k = 0;
k <
nnode;
k++)
854 nnode = this->nboundary_node(7);
855 for (
unsigned k = 0;
k <
nnode;
k++)
863 this->set_boundary_coordinate_exists(5);
864 this->set_boundary_coordinate_exists(6);
865 this->set_boundary_coordinate_exists(7);
868 for (
unsigned e = 0;
e < 31;
e++)
870 dynamic_cast<ELEMENT*
>(this->element_pt(
e))